Is anyone working on a Discourse Wiki?

If you want to split the requests, that probably could be done through another feature:

Topic templates commands. So we could issue a command to turn it into wiki. Not sure if this have been considered yet, or why not. If it haven’t, I’m probably posting this in the wrong place… :stuck_out_tongue:

1 Like

Just to throw in my 2 cents. I love Discourse, and a Wiki option would be AWESOME! I too feel like most wiki software is stuck in 2005 or earlier.

1 Like

To be clear “Wiki” functionality exists:

Perhaps it’s not an exact replacement for Wikipedia’s MediaWiki - but the base functionality to a large degree exists and works.


It’s a solid foundation that could be much improved with a little bit of work:

In a “wiki category” :

  • All new topics are wikified by default
  • Author attribution is suppressed
  • Always go to first post when viewing a topic
    (option to hide replies on separate page)

And made into a “proper” wiki with some more detailed and involved work:

  • Table of contents generation with [contents] object and headers
  • Create links to other topics by “tagging” them ie. &PageTitle
  • Create new topics by tagging a non-existant page eg. &NewTopic

I happened to be looking at this today in another context. While it’s a little convoluted, it is actually possible to pass non-default parameters (such as wiki) to new posts. It took me a little while to figure this out, so someone else may find it useful. There are four things you need to do:

  1. Set wiki to true when creating the post record in the store.
  2. Add wiki to the serialized composer properties via Composer.serializeOnCreate.
  3. Use PostRevisor.track_topic_field(:wiki) to add wiki as a permitted param in the posts_controller.
  4. Save the wiki opt to the Post using the post_created event.

I’ve been trying to decide which official Wiki to create a plugin with MediaWiki Classic of the new FederatedWiki.

Thank you so much for posting your experience.

Wiki pages on a forum are a great idea, kudos to Discourse. The revisions system works well. The editor is great.

But there’s a massive gap in functionality from my PoV.

If two people edit concurrently, one person’s work is lost

We’ve not had much use of the wiki feature on my forum (1000 visits/day) but we’ve already seen multiple edit clashes.

Suggested solutions in order of preference (preferred first):

  1. Live collaboration (show where the editors’ cursors are, as per google docs).
  2. Lock a post to other editors when it’s being edited
  3. Allow conflicts to be merged by the last editor.

I haven’t tested this locally, but are both revisions available in the edit history modal?

(BTW you posted an incomplete URL to the example of the problem)


I believe both revisions are there in the history, yes. The link is just to the forum. The conflicts were in our private staff area. The issue is easily reproducible.

Yes, both are visible – but the second person to make the edit usually won’t notice that they reverted the previous person’s changes. :frowning:


I’ve not tried this myself, but I think the Pages theme for Grav (a flat file CMS) could serve as a wiki. Additionally, Grav has support for Discourse comments via the JS Comments plugin.

The official Grav docs use the same theme.

1 Like

This discussion is several years old, but I came upon it after realizing that organizing my forum as a wiki would be really cool. @peternlewis has captured well what I would have in mind too. It’s not just allowing wiki functionality in individual posts–its having my discourse site act like a wikipedia like wiki. Like he said:

Is this possible with discourse?

1 Like

Would this be it?


You can install DiscoTOC - automatic table of contents on any plan

You can embed runnable code using Codepen or



To be more specific I think we are on one of the open source plans and probably this one in particular: Free Hosting for Open Source v2 | Blog

As an admin I checked to see if I could install DiscoTOC and it was not in the list of available plugins. :slightly_frowning_face:

Thanks but sadly we are Prolog programmers, specifically SWI-Prolog (Discourse forum) and while there is some ability to do some Prolog with CodePen, it is no where near what can be done with Prolog and since it was not specifically SWI-Prolog, it was not used. SWI-Prolog does have an online tool called SWISH, but even this is handicapped for security reasons from doing what can be fully done with Prolog; if you know how much you can do with LISP being homoiconic then you get the idea. I did try to integate SWISH with an Iframe and some other ideas but could not get any of them to work as desired; I did get something working but it was not practical, screen width IIRC.

Again, thanks for the feedback it was much appreciated.

It’s a theme component


what were you referring to there?

DiscoTOC is a theme component not a plugin. It is installed following How do I install a Theme or Theme Component? and it is definetly available for you, give it a try.

Oh I see.

I think trying to get a working instance for prolog, even if powered by SWI-Prolog compiled to WASM may be your best bet. Try contacting the founder @Amjad_Masad .


Is the way to create a wiki site with discourse just to have each wikipage be a discourse wiki-fied post?

Seems strange to think that a single post could take on the characteristics of a wikipage: multiple users can edit, it will be edited over weeks or more, and can grow very large (hard to imagine a single post that looks like this). But to give users the experience of creating wikipages, is the actual solution with discourse to allow them to create posts that have been wiki-fied?


Both answers

  1. It is a template and not a plugin.
  2. SWI-Prolog compiled to WASM

look promising. Trying them now and will update once I reach a success or failure. :smiley:


Some feedback:

Since this post is moving more toward being off-topic I will just update in the post so as not to distract from the main thread.

  1. Partial success.

I did get the table of contents to work but since knowledge-explorer is a plugin not available with our current Discourse plan, could not implement that , e.g.

  1. Might be possible but Jan W. suggested an alternative.

In clicking More info was taken to a GitHub issue which is not really an issue as it is part of the SWI-Prolog roadmap, so the issues are more of a forum for discussion of ideas and desires instead of problems or bugs. Following along the GitHub topic it is apparent that progress was made but that certain technical difficulties were never resolved thus leaving the idea partially working but impractical for common use. As Jan W. worked on this it was obviously considered of importance and something that is desired to have fully functional. I asked Jan W. about the status of SWI-Prolog ported to WebAssembly and if there would be any known limitations to using it in a Discourse page (ref). He purposed an alternative that relies on SWISH.