Публикация страниц

:bookmark: Это руководство посвящено использованию функции публикации страниц в Discourse. Она позволяет пользователям с правами Staff преобразовывать темы в отдельные статические страницы с пользовательским оформлением. Примеры включают страницы «Условия использования» и «Политика конфиденциальности».

:person_raising_hand: Требуемый уровень доступа: Staff

Публикация статических страниц в Discourse

Функция публикации страниц позволяет пользователям с правами Staff создавать отдельные статические страницы на основе тем. Это аналогично процессу создания страниц «Условия использования» или «Политика конфиденциальности».

Краткое содержание

В этой документации рассматриваются следующие вопросы:

  • Включение функции публикации страниц
  • Публикация темы в виде страницы
  • Отмена публикации темы
  • Распространённые проблемы и их решения
  • Часто задаваемые вопросы (FAQ)
  • Дополнительные ресурсы

Включение функции публикации страниц

  1. Перейдите в раздел Admin > Settings.
  2. Активируйте настройку enable page publishing.
    Enable Page Publishing

Включение публикации страниц при необходимости входа в систему

Чтобы опубликованные страницы были видны даже при отсутствии входа в систему:

  1. Активируйте настройку show_published_pages_login_required в разделе Admin > Settings.
    Show Published Pages

Публикация темы

  1. Перейдите к первому сообщению публичной темы и выберите иконку с тремя точками (...).
    Ellipsis Menu

  2. Выберите иконку гаечного ключа.
    Wrench Icon

  3. Выберите опцию «Page Publishing».

  4. Появится модальное окно, в котором вы сможете подтвердить slug (который может быть предварительно заполнен на основе заголовка сообщения) и просмотреть URL опубликованной страницы.

:warning: Для включения публикации страниц необходимо отключить настройки сайта secure upload.

:information_source: Для размещённых на хостинге сайтов безопасная загрузка файлов доступна только в плане Enterprise.

Опубликованная тема

  • Если выбрана опция Public, появится метка public.
    Public Option

  • Опубликованная тема будет отображать уведомление под заголовком, позволяющее получить доступ к настройкам публикации.

Опубликованная страница

Отмена публикации темы

  1. Выберите Publishing Settings в уведомлении.

  2. Нажмите Unpublish

  3. Страница будет снята с публикации.

Распространённые проблемы и их решения

Невозможно увидеть опубликованные страницы при отсутствии входа в систему

Убедитесь, что настройка show_published_pages_login_required активирована в разделе Admin > Settings.

Добавление заголовка Discourse на опубликованные страницы

В настоящее время статические страницы предназначены для минималистичного отображения и не включают стандартные заголовок и подвал Discourse.

Часто задаваемые вопросы (FAQ)

Могу ли я сделать страницу FAQ или «О нас» публичной?

Вы можете создать новую тему с нужным содержимым и опубликовать её как страницу. Затем измените ссылки в настройках сайта, чтобы они указывали на эти новые страницы.

Как можно изменить внешний вид опубликованной страницы?

Используйте структуру HTML-документа и соответствующие CSS-селекторы для применения пользовательских стилей в разделе Admin > Customize > Themes > CSS.

Дополнительные ресурсы

118 лайков
Best landing page solution
ProCourse Static Pages
Using Discourse as a News Blog and Forum - Any Known Good Examples?
How to add a new page into the community? (Login isolated page)
Blog Post Styling
Is anyone here using their Discourse instance as their entire website?
How do I redirect urls or create new ones?
Is there an upper limit to how many pages can be published?
Host HTML page on Discourse install
Integrating webpage to current forum
Shared Drafts: Allow staff to collaborate on posts before publishing
Open (anon) interaction with a forum
Discourse + CMS, which one?
Is there any way to listen User login event using Theme component
How to share only few posts to public as links?
Open (anon) interaction with a forum
Create a "Docs" page like discource meta's
Invite people to reply to a topic without them needing to create an account
Allow anonymous users to view a topic?
What's the usage of "show published pages login required" setting?
How to add contact us page?
Embed my Discourse Forum as IFrame
Is there any way to restrict posting in a topic to members of a group, but allow all users to read the topic?
Order posts by Title
Edit Code
Published page not visible?
Inline Tooltips
Making the About and FAQ visible to anon
Allow published pages to be visible to anon
Customize login page
7 myths why a blog isn't needed in the discourse core
Landing Page
Customizing FAQs and Guidelines
ProCourse Static Pages
Can I use secure media and page publishing simultaneously in Discourse?
Publishing - how deep/good is fine-grained permisson control?
500 character ‘Reject Reason’ is too small a limit
How do I create a blank page within Discourse
How-to use Discourse for managing a collaborative newsletter?
Customize Login pop-up box?
Building a custom html page in discourse
Page for not-logged in users with a single topic displayed
Duplicate Terms of Service/Privacy Policy
Paid Groups
Help custom page?
Should Discourse make an effort to become the next best "CMS"
Is It Possible to Create Custom Pages in Discourse?
How to Enable Terms of Service and Privacy Policy Pages in Discourse?
Is It Possible to Create Custom Pages in Discourse?
Blank Pages Related Help
How do root level links work?
How can I make a static page?
Creating custom pages like "About" and "FAQ"
Static pages for things like guidelines?
Multi-factor authentication enforcement lock in without help
Can you create a custom landing page?
Publish Direct Messages
Create a new text page option?
Change topic visibility in an admin category to public
Create a custom page with theme cli?
DiscoTOC - automatic table of contents
Adding a static web page
[Urgent] privacy policy page
How to make a website with Discourse
Generate static file in discourse
Discourse for Teams is here!
Category Previews
Public Static pages and Private Forums - possible?
Filter view for muted categories
Category Previews
How to hide a single topic from showing up in "latest"?
ProCourse Static Pages
Control the visibility of /faq and /about
[Question/Request] Featured image url for post
Custom Homepage for Groups
Embedding private discussions on a wordpress site
Table of Contents not working on Published Pages

Мне всё ещё нужно проверить это на собственном опыте, поэтому следующее может быть не совсем обоснованным, но:

Мне кажется, что эта модель прав создаёт ситуацию, при которой вы всегда видите две копии содержимого страниц — одну в соответствующей категории Discourse и другую в самих опубликованных страницах. Это, конечно, кажется избыточным, если вы хотите публиковать страницы для широкой аудитории, которые похожи на вашу базу пользователей Discourse или идентичны ей.

С другой стороны, если бы у страниц была возможность установить флаг «доступно всем», вы могли бы ограничить просмотр и редактирование небольшой группой, и тогда единственное место, где содержимое будет доступно другим пользователям Discourse, — это сами опубликованные ссылки.

(Я имею в виду сценарий использования «сайта документации».)

В остальном я очень рад протестировать всё на практике!

8 лайков

Отлично, и ещё раз спасибо за то, что прислушиваетесь к пользователям. Мне нравится атмосфера «давайте сделаем это лучше для всех», которая царит в Discourse! Мы будем активно использовать эту возможность.

Когда мы обсуждали один из сценариев использования (исправление установки, которая пошла не совсем по плану), другой пользователь обратил внимание на ещё одну деталь, которую можно было бы добавить в качестве вишенки на торте:

Привет, есть ли возможность сделать страницы /faq и /about публичными? В настоящее время они скрыты на сайтах, требующих входа. Конечно, мы можем использовать уже выпущенную вами функциональность для /faq, создав собственную страницу, изменив ссылку в настройках и явно указав на неё. Однако это выглядит не очень эстетично, и существующая навигация к ней остаётся скрытой. Для /about мы, разумеется, не можем сделать ничего подобного.

9 лайков

Отличным дополнением к этой функции была бы поддержка формата onebox для публикаций, чтобы пользователи могли легко делиться контентом.

15 лайков

Прошу прощения за мою неосведомлённость, так как я только начинаю работать с HTML/CSS, однако как применить выбранные нами цвета темы к опубликованным страницам? В самом простом случае я хотел бы использовать тёмный фон и белый текст, чтобы опубликованные страницы имели такой же тёмный режим, как и при доступе к нашим форумам. Это уже реализовано в продукте, или мне нужно поиграть с HTML/CSS? Если второе, не могли бы вы дать мне несколько подсказок в правильном направлении? Спасибо!

4 лайка

Не могли бы вы создать отдельный запрос на эту функцию? Это не связано с публикацией страниц, то есть мне не нужно будет ничего менять в механизме публикации страниц, чтобы это стало возможным. Я согласен, что было бы лучше, если бы все эти «статические» страницы вели себя примерно одинаково, но здесь есть несколько решений (ничего не делать? добавить настройки сайта? перенести их в систему публикации страниц?). Поэтому, возможно, стоит создать для этого отдельную тему.

8 лайков

GTM не загружается на опубликованных страницах? Было бы здорово.

2 лайка

Хм, это действительно отличный момент.

Просто пытаюсь найти решение… сработало бы, если бы type="text/javascript" и type="text/discourse-plugin" обрабатывались по-разному? API ведь нуждается во втором, верно?

5 лайков

Да, я думаю, что мы уже поддерживаем использование text/javascript в полях темы, поэтому в этой области наверняка есть решения.

7 лайков

Это было бы здорово.

1 лайк

Таким образом, в настоящее время невозможно иметь адаптивные опубликованные страницы, а этот сайт особенно нуждается в:

  1. доступности изображений при публикации в публичные медиа, и
  2. отображении адаптивных/изменяющих размер изображений, особенно на мобильных устройствах. Хотя мобильные устройства могут просто изменять размер изображения с помощью CSS — это должно сработать, верно?
6 лайков

+1 за то, что в опубликованных страницах отображается заголовок Discourse. Мне не хватает логотипа моего сайта, пользовательских ссылок в заголовке и любимого меню-гамбургера :slight_smile:

Ещё одна странность: в постах изображения в лайтбоксе открываются в удобном всплывающем окне, тогда как в опубликованных страницах они открываются в новой вкладке…

7 лайков

Думаю, что нужно создать набор тематических компонентов, которые это обеспечивают. Последний клиент, с которым я работал, хотел удалить создателя темы. Сложно угадать, что удовлетворит потребности людей в этом!

6 лайков

Существуют ли в настоящее время какие-либо усилия по добавлению поддержки «простого» (не API) JavaScript на опубликованные страницы? Или нам стоит отказаться от этой идеи в ближайшей или среднесрочной перспективе?

9 лайков

Могу ли я отображать на этой странице внешние JSON-файлы, не связанные с Discourse? Поскольку здесь нельзя использовать PHP-код, а Discourse удаляет большую часть HTML, я не знаю, как это сделать.

2 лайка

У меня проблема с опубликованной страницей — кнопка копирования содержимого блока кода не отображается на опубликованной странице. Скриншот: Screenshot by Lightshot. Я навожу курсор на блок, но кнопка не появляется. При входе в систему — всё работает как обычно — нормально.

Может ли кто-нибудь воспроизвести эту проблему? Есть ли решение?

2 лайка

Спасибо @riking!

Действительно, похоже, что «обычный» text/javascript выполняется на опубликованных страницах, когда он находится в header или footer компонента темы.

8 лайков

Ха! Похоже, что есть хак-способ заставить некоторые компоненты темы работать с публикацией страниц.

Я изучаю возможность добавления заголовка/подвала к опубликованным страницам, и кажется, что компоненты темы — это правильный путь. Но мне не нравится идея реализации чего-то, что может сломаться в ближайшем будущем.

@riking, похоже, что тип text/javascript в header или footer, работающий на опубликованных страницах, был не преднамеренным. Планируется ли его исправить или использовать для расширения функционала опубликованных страниц?

@syl, автор DiscPage, упомянул возможность переосмыслить плагин DiscPage с использованием функционала Page Publishing. Вы всё ещё об этом думаете, @syl? Как вы считаете, какой путь будет наименее сложным для интеграции обоих функционалов, @riking?

7 лайков

К сожалению, функция «Page Publishing» не соответствует моим требованиям. Чтобы я мог её использовать, опубликованные страницы должны:

  1. отображаться в стандартной разметке Discourse, то есть со стандартным заголовком Discourse (как, например, Условия использования и Политика конфиденциальности), и
  2. рендериться как обычные (оформленные) темы, то есть поддерживать bbcode и плагины.
15 лайков

Тем временем я использовал стандартный инструмент настройки Discourse:

  1. Определите добавленный элемент, например, с помощью CSS-класса published-page-footer-links.
  2. Настройте CSS, чтобы скрыть этот элемент по умолчанию и отображать его только на опубликованных страницах.
  3. Добавьте элемент в пространство Footer.

2. В CSS добавьте:

/* Отображать ссылки в подвале только на опубликованных страницах */
.published-page-footer-links { display: none; }
.published-page .published-page-footer-links { display: block;}

3. В Footer добавьте:

<nav class="published-page-footer-links">
Привет! Это подвал для опубликованных страниц!
</nav>
8 лайков