Landing Pages Blog 🛩

Working, but no longer maintained [July 2022]

You can now use the Landing Pages Plugin to run a blog with Discourse :tada:. Set a category to be your blog, and the first post of every topic in that category will have its own blog page, and appear on a blog post list page.

Screen Shot 2021-05-13 at 5.04.18 PM

This project has been a joint effort between @meghna and myself. All of the nice design work is hers. If you like the design of this blog make sure to check our her Discourse Themes. Any bugs you find in the functionality are mine :slight_smile:

Get the code

GitHub-Mark-64px Landing Pages Plugin
GitHub-Mark-64px Blog Landing Pages
GitHub-Mark-64px Blog Landing Theme

See it in action

try.thepavilion.io/blog

Please note that all content on the blog and displayed in screenshots in this post is from The Conversation, and used under the Creative Commons License used by that site. All content belongs to its original authors and is used for demonstration purposes only.

How to set it up

Follow these steps in order

  1. Install the Landing Pages Plugin (how to install a plugin in Discourse).
  2. Install the Blog Landing Theme, (how to install a theme in Discourse).
  3. Set up the Blog Landing Pages as your landing pages repository.
  4. In the Landing Pages Administration UI change the category of the “Blog” page to whatever category you want to use to run your blog.

That’s it! The first post of every topic in that category will now be posts on your blog :slight_smile:

Restrict posting to contributors

You’ll probably want to restrict posting in that category to a group of blog contributors. If you’re not sure how to do that, here’s a quick guide

  1. Create a user group, e.g. “Contributors”, by going to /groups and clicking “New Group”
  2. Add users to the group (“Add Members” in the top right)
  3. In the blog category “Security” settings remove the “Create” permission from “Everyone”, and add your Contributors group

Now only your contributors can post on your blog, but everyone can comment on posts.

What makes this different from other blog solutions?

There’s some great existing solutions to running a blog inside or alongside Discourse, including

This is a bit different as it’s an entirely seperate set of pages that are not part of the Discourse client app, but it still uses the same server. This gives you a few advantages over running a seperate blog (e.g. on Wordpress), or using a Discourse category directly (e.g. with a theme component), including

  • You can create content and let users reply in Discourse, but have a dedicated blog environment for reading and sharing. Readers of your blog will feel like they’re reading a blog instead of a forum post.
  • You have a single user account system (Discourse’s)
  • You can use Discourse groups to restrict access to the blog
  • You can make Discourse posts appear as comments on your blog with no additional setup
  • You get nice responsive blog theme out of the box
  • You only have to set up, and pay for, one server
  • The blog doesn’t need to load your forum to work, so it can load quickly
  • You can easily keep your blog pages (and theme) in version control
  • You get a nicely formatted New Blog Post notification email (see below)
  • You can easily manage it alongside any other landing pages you need using the Landing Pages Plugin.

However, while the Blog Landing Pages have some clear advantages, they aren’t going to be the best community blog solution for everyone. You should test out the different solutions and see which one works for you.

What does it mean to “Subscribe” to the blog?

If you’re logged in and click the “Subscribe” button you’ll see a modal (if you’re logged out you’ll be redirected to Discourse login)

If you’ve checked the box next to “Subscribe to [site name]'s posts” and submitted the form, you’ll automatically be set to “Watching First Post” for the blog category. That means you’ll get an email notification every time there’s a new post in that category, like you would if you were subscribed to a blog!

You can also set your notifications for the blog category to “Watching First Post” in the normal way (in Discourse) and that will have the same effect. “Watching” the category (were you get an email for every post, including replies), also counts as being subscribed.

The email notifications for a blog category are a bit special. Firstly, unless you made the post yourself, you’ll always get an email notification if you’re subscribed, even if you visited the site recently. Secondly, they’re designed to look like a blog post email

We plan to allow a site admin to edit the blog post email html in the Landing Pages Administration UI in the near future. Note that if you’re “Watching” the blog category, only the email notification for the first post in each topic will be different. Notifications for replies will look like normal Discourse notifications.

Beyond blogging

You can use the functionality described above to create a set of landing pages for any content, like how Wordpress is a blogging engine that you can use for displaying other (non-blog) types of content. You could use a category to manage a set of products, places or people, and automatically get both a landing page and a discussion topic for the content, just by making a single post in Discourse.

Any developer who knows a bit of Ruby on Rails could achieve any of those additional use cases using this system. You don’t need to know how Discourse works. As these blog pages are part of the landing pages plugin, you also get access to all the existing templates in that plugin, including contact forms, header, footer, topic lists and user profiles. You can read more about these templates, and others, in the plugin documentation.

41 „Gefällt mir“

Looks great, good job! Is the Blog Landing Theme a requirement? Would it be possibel in that case to have it as a component (since those who already have another/customized theme might want to stick with it)?

2 „Gefällt mir“

The Blog Landing Pages, and the functionality in the Landing Pages Plugin they rely on, are both designed to work with any theme :slight_smile: You can customise this however you like.

It doesn’t need to be active on your Discourse site to work, it just needs to be installed, then selected in the relevant page in the Landing Pages Admin UI. This is what the theme settings look like on try.thepavilion.io (you can see the page settings in the OP)

3 „Gefällt mir“

Epic! Excited to try this out. Thanks for this :slight_smile:

2 „Gefällt mir“

:exploding_head:

This is really cool. Got me rethinking my entire approach. Thanks! :laughing:

2 „Gefällt mir“

This is great!

For customizing, should I fork the repo to input my site’s info? Or is there a better way to do that?

2 „Gefällt mir“

Thanks @sethm, yes the Blog Landing Theme and Blog Landing Pages are intended as templates, so you could:

  • import them directly into your instance as described above;
  • fork them; or
  • download them and modify them like you would with a template for Wordpress, Ghost etc.
3 „Gefällt mir“

Gibt es eine Möglichkeit, eine Teilmenge von Discourse-Inhalten öffentlich sichtbar zu machen (wie diese Blog-Inhalte), anstatt eine Registrierung/Anmeldung zu verlangen? Danke.

–Peter

1 „Gefällt mir“

Hallo Peter, ja, standardmäßig sind Inhalte in Discourse öffentlich sichtbar. Wenn dies nicht der Fall ist, bedeutet dies, dass Sie die Website-Einstellung „Login erforderlich“ aktiviert haben. Sie können dann die Sichtbarkeit bestimmter Kategorien über kategoriespezifische Berechtigungen (in den Kategorieeinstellungen) steuern. Sie können einen Screenshot der kategoriespezifischen Zugriffseinstellungen oben sehen.

1 „Gefällt mir“

Danke, aber ich sehe den Screenshot fĂĽr kategoriespezifische Zugriffseinstellungen nicht?

1 „Gefällt mir“

Irgendwelche Hilfe?
Vielleicht erscheinen die kategoriespezifischen Einstellungen nicht, es sei denn, ich entferne die Anforderung, dass ein Login erforderlich ist?
Aber ich möchte das nicht entfernen, bis ich die Kategorien auf öffentlich oder Login erforderlich eingestellt habe…
Danke.

–Peter

1 „Gefällt mir“

Sie sollten die Berechtigungen der Kategorie auf der Registerkarte „Sicherheit“ im Admin-Schraubenschlüssel auf der Kategorieseite sehen können:

Ich hoffe, das hilft. :slightly_smiling_face:

2 „Gefällt mir“

Ah! Danke.
Also, wenn ich alle Kategorien und aktuellen Benutzer auf Vertrauensstufe 2 setze und die neue Kategorie, die ich öffentlich haben möchte, auf Vertrauensstufe 0, und die Anmeldepflicht ändere, sollte das funktionieren? Oder ist diese Logik falsch?

–Peter

1 „Gefällt mir“

Wenn die Blog-Kategorie auch für anonyme Personen und Kontoinhaber sichtbar sein soll, dann sollte die Gruppe “Everyone” mindestens die Berechtigung “See” haben.

Und dann setzen Sie die anderen Kategorien auf mindestens “trust_level_0”, damit Personen ein Konto benötigen, um die Themen darin anzuzeigen und mit ihnen zu interagieren.

1 „Gefällt mir“

Danke, das hat funktioniert. Ich schätze die Hilfe.

2 „Gefällt mir“

Ich brauche ein wenig Hilfe beim Verständnis dieses Plugins. Einerseits sagen Sie, dass Sie können

Eine Kategorie als Ihren Blog festlegen, und der erste Beitrag jedes Themas in dieser Kategorie erhält eine eigene Blogseite und wird auf einer Blogbeitragslistenseite angezeigt.

und andererseits

  1. Richten Sie die Blog-Landingpages als Ihr Repository fĂĽr Landingpages ein.

Ich bin verwirrt. Kann ich einen Blog mit meinen Discourse-Beiträgen ohne ein Git-Repository und ohne *html.erb-Dateien betreiben?

1 „Gefällt mir“

Der Inhalt des Blogs wird aus Discourse-Posts bezogen. Das Layout des Blogs wird durch die HTML-Dateien gehandhabt, die sich im Repository Blog Landing Pages befinden könnten.

Dieses Plugin ist nicht wie Hugo, wo man Blog-Posts in Markup erstellt. Obwohl die Integration mit Hugo cool wäre, könnten wir das irgendwann versuchen (cc @jumagura)

3 „Gefällt mir“

Ich betreibe ein Forum mit Discourse seit ein paar Monaten, bin also noch ziemlich neu darin. Ich habe schon einmal ein Plugin installiert, aber als ich heute Abend versuchte, das Landing Pages Plugin zu installieren, erhielt ich eine Fehlermeldung, als die App neu aufgebaut wurde, und sie ließ sich nicht starten. Vielleicht gibt es ein Kompatibilitäts- oder Versionsproblem mit etwas, aber ich bin mir nicht sicher, wo ich anfangen soll. Kann mir jemand einen Hinweis geben? Ich habe mir das Protokoll angesehen, aber ich kann nicht erkennen, was das Problem sein könnte.

Dies ist der letzte Teil der Ergebnisse des Wiederaufbaus:

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$ 

Vielen Dank fĂĽr jede Hilfe.

1 „Gefällt mir“

Kann jemand dieses Plugin überprüfen? Ich habe das gleiche Problem wie der Benutzer über mir. Ich erhalte einige Fehler beim Versuch, es zu erstellen. Anscheinend ist es seit 2.9.0 Beta 4 und höher kaputt.

Ich könnte einige Protokolle bereitstellen, aber es wäre besser, wenn der Ersteller eine frische Discourse-Installation überprüft und es dann versucht zu erstellen, da ich dies sowohl bei einer bestehenden als auch bei einer frischen Discourse-Installation getestet habe und es immer fehlschlägt.

Ich habe die im Eröffnungspost bereitgestellten Schritte genau befolgt.

  1. Installieren Sie das Landing Pages Plugin (wie man ein Plugin in Discourse installiert) .
  2. Installieren Sie das Blog Landing Theme , (wie man ein Theme in Discourse installiert) .
  3. Richten Sie die Blog Landing Pages als Ihr Repository fĂĽr Landing Pages ein.
  4. Ändern Sie in der Landing Pages Administration UI die Kategorie der „Blog“-Seite in die Kategorie, die Sie für Ihren Blog verwenden möchten.
1 „Gefällt mir“

Ich werde dieses Plugin in der kommenden Woche mit der neuesten Discourse-Version kompatibel machen.

4 „Gefällt mir“