Это руководство посвящено использованию функции публикации страниц в Discourse. Она позволяет пользователям с правами Staff преобразовывать темы в отдельные статические страницы с пользовательским оформлением. Примеры включают страницы «Условия использования» и «Политика конфиденциальности».
Требуемый уровень доступа: Staff
Публикация статических страниц в Discourse
Функция публикации страниц позволяет пользователям с правами Staff создавать отдельные статические страницы на основе тем. Это аналогично процессу создания страниц «Условия использования» или «Политика конфиденциальности».
Краткое содержание
В этой документации рассматриваются следующие вопросы:
Включение функции публикации страниц
Публикация темы в виде страницы
Отмена публикации темы
Распространённые проблемы и их решения
Часто задаваемые вопросы (FAQ)
Дополнительные ресурсы
Включение функции публикации страниц
Перейдите в раздел Admin > Settings.
Активируйте настройку enable page publishing.
Включение публикации страниц при необходимости входа в систему
Чтобы опубликованные страницы были видны даже при отсутствии входа в систему:
Активируйте настройку show_published_pages_login_required в разделе Admin > Settings.
Публикация темы
Перейдите к первому сообщению публичной темы и выберите иконку с тремя точками (...).
Появится модальное окно, в котором вы сможете подтвердить slug (который может быть предварительно заполнен на основе заголовка сообщения) и просмотреть URL опубликованной страницы.
Невозможно увидеть опубликованные страницы при отсутствии входа в систему
Убедитесь, что настройка show_published_pages_login_required активирована в разделе Admin > Settings.
Добавление заголовка Discourse на опубликованные страницы
В настоящее время статические страницы предназначены для минималистичного отображения и не включают стандартные заголовок и подвал Discourse.
Часто задаваемые вопросы (FAQ)
Могу ли я сделать страницу FAQ или «О нас» публичной?
Вы можете создать новую тему с нужным содержимым и опубликовать её как страницу. Затем измените ссылки в настройках сайта, чтобы они указывали на эти новые страницы.
Как можно изменить внешний вид опубликованной страницы?
Используйте структуру HTML-документа и соответствующие CSS-селекторы для применения пользовательских стилей в разделе Admin > Customize > Themes > CSS.
Мне всё ещё нужно проверить это на собственном опыте, поэтому следующее может быть не совсем обоснованным, но:
Мне кажется, что эта модель прав создаёт ситуацию, при которой вы всегда видите две копии содержимого страниц — одну в соответствующей категории Discourse и другую в самих опубликованных страницах. Это, конечно, кажется избыточным, если вы хотите публиковать страницы для широкой аудитории, которые похожи на вашу базу пользователей Discourse или идентичны ей.
С другой стороны, если бы у страниц была возможность установить флаг «доступно всем», вы могли бы ограничить просмотр и редактирование небольшой группой, и тогда единственное место, где содержимое будет доступно другим пользователям Discourse, — это сами опубликованные ссылки.
(Я имею в виду сценарий использования «сайта документации».)
В остальном я очень рад протестировать всё на практике!
Отлично, и ещё раз спасибо за то, что прислушиваетесь к пользователям. Мне нравится атмосфера «давайте сделаем это лучше для всех», которая царит в Discourse! Мы будем активно использовать эту возможность.
Когда мы обсуждали один из сценариев использования (исправление установки, которая пошла не совсем по плану), другой пользователь обратил внимание на ещё одну деталь, которую можно было бы добавить в качестве вишенки на торте:
Привет, есть ли возможность сделать страницы /faq и /about публичными? В настоящее время они скрыты на сайтах, требующих входа. Конечно, мы можем использовать уже выпущенную вами функциональность для /faq, создав собственную страницу, изменив ссылку в настройках и явно указав на неё. Однако это выглядит не очень эстетично, и существующая навигация к ней остаётся скрытой. Для /about мы, разумеется, не можем сделать ничего подобного.
Прошу прощения за мою неосведомлённость, так как я только начинаю работать с HTML/CSS, однако как применить выбранные нами цвета темы к опубликованным страницам? В самом простом случае я хотел бы использовать тёмный фон и белый текст, чтобы опубликованные страницы имели такой же тёмный режим, как и при доступе к нашим форумам. Это уже реализовано в продукте, или мне нужно поиграть с HTML/CSS? Если второе, не могли бы вы дать мне несколько подсказок в правильном направлении? Спасибо!
Не могли бы вы создать отдельный запрос на эту функцию? Это не связано с публикацией страниц, то есть мне не нужно будет ничего менять в механизме публикации страниц, чтобы это стало возможным. Я согласен, что было бы лучше, если бы все эти «статические» страницы вели себя примерно одинаково, но здесь есть несколько решений (ничего не делать? добавить настройки сайта? перенести их в систему публикации страниц?). Поэтому, возможно, стоит создать для этого отдельную тему.
Просто пытаюсь найти решение… сработало бы, если бы type="text/javascript" и type="text/discourse-plugin" обрабатывались по-разному? API ведь нуждается во втором, верно?
Таким образом, в настоящее время невозможно иметь адаптивные опубликованные страницы, а этот сайт особенно нуждается в:
доступности изображений при публикации в публичные медиа, и
отображении адаптивных/изменяющих размер изображений, особенно на мобильных устройствах. Хотя мобильные устройства могут просто изменять размер изображения с помощью CSS — это должно сработать, верно?
+1 за то, что в опубликованных страницах отображается заголовок Discourse. Мне не хватает логотипа моего сайта, пользовательских ссылок в заголовке и любимого меню-гамбургера
Ещё одна странность: в постах изображения в лайтбоксе открываются в удобном всплывающем окне, тогда как в опубликованных страницах они открываются в новой вкладке…
Думаю, что нужно создать набор тематических компонентов, которые это обеспечивают. Последний клиент, с которым я работал, хотел удалить создателя темы. Сложно угадать, что удовлетворит потребности людей в этом!
Существуют ли в настоящее время какие-либо усилия по добавлению поддержки «простого» (не API) JavaScript на опубликованные страницы? Или нам стоит отказаться от этой идеи в ближайшей или среднесрочной перспективе?
Могу ли я отображать на этой странице внешние JSON-файлы, не связанные с Discourse? Поскольку здесь нельзя использовать PHP-код, а Discourse удаляет большую часть HTML, я не знаю, как это сделать.
У меня проблема с опубликованной страницей — кнопка копирования содержимого блока кода не отображается на опубликованной странице. Скриншот: Screenshot by Lightshot. Я навожу курсор на блок, но кнопка не появляется. При входе в систему — всё работает как обычно — нормально.
Может ли кто-нибудь воспроизвести эту проблему? Есть ли решение?
Ха! Похоже, что есть хак-способ заставить некоторые компоненты темы работать с публикацией страниц.
Я изучаю возможность добавления заголовка/подвала к опубликованным страницам, и кажется, что компоненты темы — это правильный путь. Но мне не нравится идея реализации чего-то, что может сломаться в ближайшем будущем.
@riking, похоже, что тип text/javascript в header или footer, работающий на опубликованных страницах, был не преднамеренным. Планируется ли его исправить или использовать для расширения функционала опубликованных страниц?