June 20, 2016 · 2 min read
When you have to document a project you are working on, you always have at least two targets: developers looking for understanding the code and its architecture and end users that just want to use it.
The documentation for the first target is usually easy to handle, you can document carefully the source code and use a tool that auto generates the documentation such as Swagger, Apidoc, Javadoc, etc.
The second target is more complicated to handle by developers, it’s not automatic and we have to use a less schematic and more descriptive language. Fortunately, there are tools that help us to write this kind of documentation. MkDocs is a good one.
MkDocs is a really simple static site generator that is focused on building project documentation. Its main features are:
Using MkDocs is so easy that you can learn how to use it just reading its home page in 2 minutes. In fact, the MkDocs home page is generated with MkDocs, as well as Django Rest Framework. Tom Christie, the author of both projects, is eating his own dog food.
Despite all these great features, MkDocs may not be the best tool for your project. Markdown has some limitations so if you need to write huge, complex and/or scientific documentation, you probably should use something like Sphinx or Asciidoctor.
Use the right tool for the right job.