Блог посадочных страниц 🛩

Работает, но больше не поддерживается [июль 2022]

Теперь вы можете использовать плагин Landing Pages, чтобы запустить блог на базе Discourse :tada:. Назначьте категорию в качестве вашего блога, и первая публикация каждой темы в этой категории будет иметь собственную страницу блога и отображаться на странице списка публикаций.

Screen Shot 2021-05-13 at 5.04.18 PM

Этот проект стал результатом совместной работы @meghna и меня. Весь красивый дизайн — её заслуга. Если вам нравится дизайн этого блога, обязательно посмотрите её темы для Discourse. Любые ошибки в функциональности — это моя вина :slight_smile:

Получить код

GitHub-Mark-64px Плагин Landing Pages
GitHub-Mark-64px Blog Landing Pages
GitHub-Mark-64px Тема Blog Landing

Посмотреть в действии

try.thepavilion.io/blog

{> Обратите внимание, что весь контент в блоге и изображения в скриншотах этого поста взяты из The Conversation и используются в соответствии с лицензией Creative Commons, применяемой на этом сайте. Весь контент принадлежит его оригинальным авторам и используется исключительно в демонстрационных целях.

Как настроить

Выполните следующие шаги по порядку:

  1. Установите плагин Landing Pages (как установить плагин в Discourse).
  2. Установите тему Blog Landing (как установить тему в Discourse).
  3. Настройте Blog Landing Pages как ваш репозиторий landing pages.
  4. В интерфейсе администрирования Landing Pages измените категорию страницы «Blog» на ту категорию, которую вы хотите использовать для своего блога.

Всё! Теперь первая публикация каждой темы в этой категории будет отображаться как пост в вашем блоге :slight_smile:

Ограничение публикации только для авторов

Скорее всего, вы захотите ограничить публикацию в этой категории группой авторов блога. Если вы не знаете, как это сделать, вот краткое руководство:

  1. Создайте группу пользователей, например «Contributors», перейдя по адресу /groups и нажав «New Group».
  2. Добавьте пользователей в группу («Add Members» в правом верхнем углу).
  3. В настройках безопасности категории блога удалите разрешение «Create» для группы «Everyone» и добавьте вашу группу Contributors.

Теперь только ваши авторы могут публиковать посты в блоге, но все пользователи могут комментировать их.

Чем это отличается от других решений для блогов?

Существует несколько отличных готовых решений для запуска блога внутри или рядом с Discourse, включая:

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

  • Вы можете создавать контент и позволять пользователям отвечать в Discourse, но при этом иметь отдельную среду блога для чтения и распространения. Читатели вашего блога будут чувствовать, что читают блог, а не пост на форуме.
  • У вас единая система учётных записей пользователей (система Discourse).
  • Вы можете использовать группы Discourse для ограничения доступа к блогу.
  • Вы можете отображать посты Discourse как комментарии на вашем блоге без дополнительной настройки.
  • Вы получаете красивую адаптивную тему блога «из коробки».
  • Вам нужно настроить и оплатить только один сервер.
  • Блог не требует загрузки форума для работы, поэтому он загружается быстро.
  • Вы можете легко хранить страницы блога (и тему) в системе контроля версий.
  • Вы получаете красиво оформленное уведомление по электронной почте о новом посте в блоге (см. ниже).
  • Вы можете легко управлять им вместе с любыми другими landing pages, используя плагин Landing Pages.

Однако, хотя Blog Landing Pages имеют ряд очевидных преимуществ, они не будут лучшим решением для блога сообщества для всех. Вам стоит протестировать различные решения и выбрать то, которое подходит именно вам.

Что означает «Подписаться» на блог?

Если вы вошли в систему и нажали кнопку «Subscribe», вы увидите модальное окно (если вы не вошли в систему, вас перенаправят на страницу входа в Discourse).

Если вы отметили галочку напротив «Subscribe to [site name]'s posts» и отправили форму, вы автоматически будете установлены в режим «Watching First Post» для категории блога. Это означает, что вы будете получать уведомление по электронной почте каждый раз, когда в этой категории появляется новый пост, как если бы вы подписались на блог!

Вы также можете вручную установить уведомления для категории блога на «Watching First Post» обычным способом (в Discourse), и это даст тот же эффект. Подписка на категорию (когда вы получаете письмо на каждый пост, включая ответы) также считается подпиской.

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

Мы планируем в ближайшее время предоставить администратору сайта возможность редактировать HTML-код письма с постом в блоге в интерфейсе администрирования Landing Pages. Обратите внимание, что если вы «следите» за категорией блога, только уведомление по электронной почте для первого поста в каждой теме будет отличаться. Уведомления об ответах будут выглядеть как обычные уведомления Discourse.

За пределами блогов

Вы можете использовать описанную выше функциональность для создания набора landing pages для любого контента, как WordPress является движком для блогов, который можно использовать для отображения других (не блоговых) типов контента. Вы можете использовать категорию для управления набором продуктов, мест или людей и автоматически получать как landing page, так и тему обсуждения для контента, просто создав один пост в Discourse.

Любой разработчик, который немного знает Ruby on Rails, может реализовать любые из этих дополнительных вариантов использования с помощью этой системы. Вам не нужно знать, как работает Discourse. Поскольку эти страницы блога являются частью плагина landing pages, вы также получаете доступ ко всем существующим шаблонам этого плагина, включая контактные формы, заголовки, подвалы, списки тем и профили пользователей. Вы можете узнать больше об этих и других шаблонах в документации плагина.

41 лайк

Выглядит отлично, хорошая работа! Является ли тема Blog Landing обязательной? В таком случае, возможно ли сделать её компонентом (поскольку те, у кого уже есть другая или кастомизированная тема, возможно, захотят остаться на ней)?

2 лайка

Страницы входа в блог и функциональность плагина Landing Pages, на которую они опираются, разработаны для работы с любой темой :slight_smile: Вы можете настроить их как угодно.

Ему не нужно быть активным на вашем сайте Discourse для работы, достаточно установить его, а затем выбрать на соответствующей странице в административном интерфейсе Landing Pages. Вот как выглядят настройки темы на try.thepavilion.io (вы можете увидеть настройки страницы в первом посте)

3 лайка

Круто! С нетерпением хочу попробовать это в действии. Спасибо за это :slight_smile:

2 лайка

:exploding_head:

Это действительно круто. Заставило меня пересмотреть весь свой подход. Спасибо! :laughing:

2 лайка

Это здорово!

Что касается настройки, мне стоит сделать форк репозитория, чтобы внести информацию о моём сайте? Или есть более подходящий способ?

2 лайка

Спасибо, @sethm. Да, Blog Landing Theme и Blog Landing Pages предназначены в качестве шаблонов, поэтому вы можете:

  • импортировать их напрямую в свой экземпляр, как описано выше;
  • создать форк;
  • загрузить их и изменить, как это делается с шаблонами для WordPress, Ghost и других систем.
3 лайка

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

–Peter

1 лайк

Привет, Питер, да, по умолчанию контент в Discourse доступен для просмотра всем. Если это не так, значит у вас включена настройка сайта «Требуется вход». Затем вы можете управлять видимостью конкретных категорий, используя разрешения для каждой категории (в настройках категории). Скриншот настроек доступа для конкретных категорий приведен выше.

1 лайк

Спасибо, но я не вижу скриншот настроек доступа для конкретных категорий?

1 лайк

Любая помощь?
Возможно, настройки, специфичные для категорий, не отображаются, пока я не уберу требование входа?
Но я не хочу убирать это, пока не установлю для категорий режим «общедоступно» или «требуется вход»…
Спасибо.

–Питер

1 лайк

Вы должны иметь возможность просматривать права доступа к категории на вкладке «Безопасность» в значке гаечного ключа администратора на странице категории:

Надеемся, это поможет. :slightly_smiling_face:

2 лайка

Ах! Спасибо.
Значит, если установить для всех категорий и текущих пользователей уровень доверия 2, а для новой категории, которую я хочу сделать общедоступной, — уровень доверия 0, и отключить требование входа в систему, это должно сработать? Или я что-то понимаю неправильно?

— Питер

1 лайк

Если вы хотите, чтобы категория блога была видна как анонимным пользователям, так и зарегистрированным, то для группы «Все» установите как минимум уровень доступа «Просмотр».

Затем для остальных категорий установите уровень доверия trust_level_0 или выше, чтобы для просмотра и взаимодействия с темами в них требовалась учётная запись.

1 лайк

Спасибо, сработало. Благодарю за помощь.

2 лайка

Мне нужна небольшая помощь в понимании этого плагина. С одной стороны, вы пишете, что можно

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

а с другой стороны

  1. Настройте страницы входа в блог как репозиторий страниц входа.

Я запутался. Могу ли я вести блог на основе постов Discourse без репозитория Git и любых файлов *html.erb?

1 лайк

Содержание блога берётся из постов в Discourse. Макет блога обрабатывается HTML-файлами, которые могут находиться в репозитории Blog Landing Pages.

Этот плагин не похож на Hugo, где вы создаёте посты в разметке. Хотя интеграция этого решения с Hugo была бы крутой, мы могли бы попытаться сделать это в будущем (cc @jumagura).

3 лайка

Я управляю форумом на Discourse уже пару месяцев, поэтому всё ещё довольно новичок в этой системе. Ранее я устанавливал плагины, но сегодня вечером при попытке установить плагин Landing Pages получил ошибку во время пересборки приложения, и оно не запустилось. Возможно, проблема в совместимости или версии какого-то компонента, но я не знаю, с чего начать. Может, кто-то сможет подсказать? Я просмотрел логи, но не могу понять, в чём именно проблема.

Вот последняя часть вывода при выполнении пересборки:

Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 364 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
fb680c9c3b46dcd068abe877ed4187c730351c10139cc3eda2a8b7202822bf07
saul@discourseonubuntu2004-s-1vcpu-2gb-intel-lon1-01:/var/discourse$ 
saul@discourseonubuntu2004-s-1vcpu-2gb-intel-lon1-01:/var/discourse$ 

Спасибо за любую помощь.

1 лайк

Кто-нибудь, пожалуйста, проверьте этот плагин. У меня та же проблема, что и у человека выше. При попытке сборки возникают ошибки; похоже, что начиная с версии 2.9.0 beta 4 и выше он не работает.

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

Я точно следовал инструкциям из первоначального поста:

  1. Установите плагин Landing Pages Plugin (как установить плагин в Discourse) .
  2. Установите тему Blog Landing Theme (как установить тему в Discourse) .
  3. Настройте Blog Landing Pages как ваш репозиторий для посадочных страниц .
  4. В административном интерфейсе Landing Pages измените категорию страницы «Blog» на любую категорию, которую вы хотите использовать для запуска своего блога.
1 лайк

На следующей неделе я обновлю этот плагин, чтобы он был совместим с последней версией Discourse.

4 лайка