Way earlier than anticipated, we have a new wiki!
What does that mean?
- All OpenTTD services now use GitHub authentication. You can login everywhere using your GitHub account.
- We restructured the whole wiki. All pages are now categorised and organised in a folder tree.
- Over half of the pages with ancient content were moved into the Archive folder, so the rest of the wiki can breathe again.
- There is a second sandbox wiki, just for experimentation, without hurting the main wiki.
- The whole wiki has support for translations. No more manual cross-linking.
- We parted with user pages. Today everyone can host their private GitHub wiki, which automatically fades into history, when the user is no longer active.
- The search function will be added in a few days. We will use an external search engine, and it has to index everything first.
That’s it in short. But how did we get here?
The initial goals for the new wiki were:
- Login should use GitHub accounts, so we can finally retire the old OpenTTD-specific accounts.
- The whole thing should run in a container in some cloud.
The old wiki ran on MediaWiki, which has a hard time meeting these goals:
- OAuth2 authentication needs an extension, and we did not find any decent one.
- MediaWiki requires a relational database for its content, which makes it expensive to host in the cloud, compared to other solutions.
In addition we felt that just moving the content to yet another MediaWiki does not improve the situation of the wiki overall.
- Over the years the wiki has accumulated quite some dust. Over half of the pages were about old features, abandoned projects and other ancient stuff.
- Prominent space was occupied by things, that is no longer relevant.
- The translation system required a lot of manual inter-language linking, and was cumbersome to use.
- MediaWiki is most prominently used for encyclopaedias, where you search for a specific term, and then get a pretty self-contained page about the topic. There is no overview structure for pages, and who really reads the front page of Wikipedia? The concept of MediaWiki does not really work for a game manual, many pages were kind of lost in space and noone would find them.
So we were also looking for alternatives to MediaWiki.
- Many wikis enforce more structure on their content. Often the pages are arranged in a tree, which directly categorizes and links pages via a primary criterion.
- When not using a relational database as storage, the next best thing is a file-based storage, which can be versioned using git.
Needless to say, both aspects point to the same solution:
- A wiki that primarily organises pages as files in folders.
- The whole thing is versioned with git, and stored on GitHub.
- As a bonus: mass edits can be done using a local checkout, and your favorite search-and-replace tool (read: python).
While in fact multiple people had this idea before, the available implementations have issues:
- Only a few support MediaWiki syntax. While this is a reasonable decision considering the legacy of MediaWiki syntax, we kind of need that. MediaWiki syntax features the most advanced template support by far, and our wiki uses that a lot.
- Those wikis, which claim to support MediaWiki, actually do not support templates properly.
- The closest options had huge memory requirements and poor performance.
- Actually no solution supported all our needs :/
Well, what to do now… we went for an experiment: while there was no ready available solution for our needs, there are solutions for some parts.
- We found an awesome - high quality - parser for MediaWiki.
- Our recent BaNaNaS renewal already features infrastructure to store input from the web in a git repository, and supports all the syncing needed.
So, our own TrueBrain went ahead and created TrueWiki. You can find more information on TrueWiki in its own readme. When you meet him, have some cookies ready :)