ejabberd Docs now using MkDocs

The ejabberd Docs website did just get a major rework: new content management system, reorganized navigation, improved markdown, and several improvements!

ProcessOne
· 2 min read
Send by email

Brief documentation timeline

ejabberd started in November 2002 (see a timeline in the ejabberd turns 20 blog post). And the first documentation was published in January 2003, using LaTeX, see Ejabberd Installation and Operation Guide. That was one single file, hosted in the ejabberd CVS source code repository, and was available as a single HTML file and a PDF.

As the project grew and got more content, in 2015 the documentation was converted from LaTeX to Markdown, moved from ejabberd repository to a dedicated docs.ejabberd.im git repository, and published using a Go HTTP server in docs.ejabberd.im, see an archived ejabberd Docs site.

New ejabberd Docs site

Now the ejabberd documentation has moved to MkDocs+Material, and this brings several changes and improvements:

Site and Web Server:

  • Replaced Go site with MkDocs
  • Material theme for great features and visual appeal, including light/dark color schemes
  • Still written in Markdown, but now using several MkDocs, Material and Python-Markdown extensions
  • The online site is built by GitHub Actions and hosted in Pages, with smaller
    automatic deployment time
  • Offline reading: the ejabberd Docs site can be downloaded as a PDF or zipped HTML, see the links in home page
  • Major navigation reorganization, keeping URLs intact so old links still work (only Install got some relevant URL changes)
  • Install section is split into several sections: Containers, Binaries, Compile, …
  • Reorganized the Archive section, and now it includes the corresponding Upgrade notes
  • Several markdown files from the ejabberd and docker-ejabberd repositories are now incorporated here

Content

  • Many markdown visual improvements, specially in code snippets
  • Options and commands that were modified in the last release will show a mark, see for example API Reference
  • Version annotations are shown after the corresponding title, see for example sql_flags
  • Modules can have version annotations, see for example mod_matrix_gw
  • Links to modules, options and API now use the real name with _ character instead of - (compare old #auth-opts with #auth_opts). The old links are still supported, no broken links.
  • Listen Modules section is now better organized
  • New experimental ejabberd Developer Livebook

So, please check the revamped ejabberd Docs site, and head to docs.ejabberd.im git repository to report problems and propose improvements.