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

Ой; мой блокировщик рекламы каким-то образом заблокировал ваше второе изображение, странно.

Для тех, кто хочет увидеть страницы вживую:

https://noobish.me/t/open-source-culture-no-tags/525https://noobish.me/t/open-source-culture-with-tags/320

Круто.

6 лайков

Это потрясающе!!! Спасибо за分享!!! :star_struck:
Это заслуживает отдельной записи «как сделать» :ok_hand:

3 лайка

Один из очевидных недостатков использования CSS для «удаления» контента заключается в том, что он на самом деле не удаляется, а лишь скрывается. Следовательно, вы загружаете данные, которые клиент не будет использовать.

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

3 лайка

@hellekin «между инстансами» чего?

Вы используете WordPress?

… или Ghost?

Существует новая, ещё более тесная интеграция между Ghost и Discourse, обеспечивающая единый вход (SSO)…

Также есть этот плагин…

3 лайка

Между инстансами Discourse.

Привет! У меня сейчас есть сайт на Discourse, где для просмотра и выполнения любых действий требуется вход в систему. Я хочу использовать функцию «Опубликовать тему» (publish topic), чтобы создать домашнюю страницу для моих пользователей, но поскольку я также использую защищённые медиафайлы (secure media), получаю ошибку, показанную ниже. Есть ли какой-либо способ обойти это?

Я пробовал плагины procourse-static-pages (не работает с последней версией Discourse; я не могу сохранить новую страницу — выпадающий список групп безопасности не заполняется, так что, возможно, это и есть проблема) и discpage (похоже, не работает с используемой мной темой). Поэтому я очень надеюсь, что смогу заставить эту функцию работать. Есть ли у кого-нибудь какие-либо советы?

2 лайка

Вау!
Какая потрясающая доработка вы сделали для Discourse, поздравляю и спасибо, что поделились :)
:heartbeat:

1 лайк

Это очень круто. Молодец, спасибо, что поделился :+1:

1 лайк

Спасибо, @brasofilo и @Lilly! Я планирую разработать некоторые компоненты тем на основе этого и связанных вариантов использования.

4 лайка

Если я что-то упустил в этой функции, то опубликованная страница показывает только исходный пост, а не ответы на него. Если это ожидаемое поведение, существует ли способ (плагин?), чтобы отдельная страница также отображала все ответы на исходный пост?

Привет, Рафаэль,

В этом и заключается цель опубликованных страниц. :slight_smile:

Опубликованная страница имеет ограниченный доступ ко многим функциям Discourse.
Единственным обходным путём было бы использование трюка, подобного этому: Page Publishing - #145 by denvergeeks, но у опубликованной страницы не будет собственного URL (и она будет загружать ненужные вещи в фоновом режиме).

1 лайк

Здравствуйте, Даниэль,
К сожалению, у меня нет других советов, кроме как создать новую тему в разделе #feature page-publishing и спросить, можно ли что-то с этим сделать.

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

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

Простой вариант, например:

Разрешить отображение опубликованных страниц на странице, требующей входа

был бы хорошим началом.

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

Я действительно не знал об этой функции, пока не начал изучать настройки, требующие входа.

Индексация опубликованных страниц

Пока мы ждем функцию Index or search published pages, вот способ сделать это вручную.

Поиск опубликованных страниц

Используя Discourse Data Explorer, вы можете создать новый запрос Опубликованные страницы:

SELECT CONCAT('/pub/', pp.slug) AS URL, pp.topic_id
FROM published_pages pp
ORDER BY pp.id

Предоставление индекса

Конечно, можно использовать Run Data Explorer queries with the Discourse API для создания и поддержания индекса опубликованных страниц. Это даже может быть выполнимо с помощью плагина Custom Wizard Plugin 🧙.

Я вручную создал новую тему, используя данные из запроса «Опубликованные страницы» выше, а затем опубликовал её по адресу /pub/index.

Поскольку я Run other websites on the same machine as Discourse, я мог легко сделать индекс опубликованных страниц доступным по адресу https://discourse.example/pub с помощью этого фрагмента:

    # Предоставить индекс опубликованных страниц
    location ~* ^/pub/?$ {
        return 307 https://discourse.example/pub/index;
    }
7 лайков

Присоединяюсь к этому списку :blush:

4 лайка

Можно ли изменить маршрутизацию, чтобы убрать /pub/ из URL опубликованной страницы?

Например, эта опубликованная страница:

https://example.com/pub/my-magic-page-here

стала бы:

https://example.com/my-magic-page-here

:thinking:

3 лайка

Привет, @Richie! Это можно сделать с помощью постоянных ссылок (admin-customize-permalinks). Введите слаг «my-magic-page-here» в первое поле, выберите опцию «Внешний URL» в выпадающем списке, а затем добавьте опубликованный URL страницы в поле URL. Обратите внимание, однако, что постоянная ссылка не будет работать как URL в разделе пользовательского меню — всё ещё нужен фактический URL опубликованного документа.

6 лайков

Привет! Кроме использования CSS с display: none, как можно удалить пользователя, публикующего страницу?

Также есть ли способ добавить ссылку обратно на форум?

1 лайк

Другой способ — изменить владельца темы на @system или какого-либо другого общего пользователя.

Самый простой способ — сделать это вручную, просто добавив ссылку в markdown первого сообщения (OP).

Вы, вероятно, сможете запустить TC (Topic Cleaner), чтобы автоматизировать этот процесс без особых проблем (в зависимости от того, на что именно вы хотите вернуть ссылку). Попробуйте раздел Marketplace для этого.

4 лайка

Спасибо, мне удалось это решить.

3 лайка