23 September 2021, Ralf D. Müller

docToolchain v2.0.0 has been released!

Today marks an important milestone for docToolchain: the release of v2.0.0, aka ‘ng’ or next generation! The focus of this huge release is simplified setup, better usability and distraction-free writing.

Changes and New Features

The most important change is the switch-to-a-command-line based approach. You can now fully focus on your documentation without crowding your repo with lots of other files like scripts and themes.

This is made possible by the new docToolchain wrapper (or dtcw for short). dtcw is a little script that resides together with a config file in your repository. It ensures that the right docToolchain version is in use, ensures that all prerequisites are met, and it even checks whether Docker or a local installation should be used to execute docToolchain. And, if docToolchain is not currently installed, dtcw will install it for you.

In this release, we have tried very hard to avoid error messages. Where we can’t avoid them, we’ve tried to make them as meaningful as possible.

Another huge feature is the generateSite-Task which includes jBake as static site generator to help you to create awesome docs. You can now create a full documentation website with a few commands. We chose the beautiful docsy theme from hugo, and it even contains a local search implemented with lunr.

To get you started with your solution architecture docs, we’ve added the downloadTemplate-task which delivers the famous arc42 template in four languages.

And last but not least, we have used the new generateSite-Feature to restructure docToolchain’s very own documentation!

Coming Soon

Our goal for the coming weeks is to provide tutorials that demonstrate all of the new features.

A Personal Thank You from Ralf

Thank you to all docToolchain contributors, sponsors and users for your efforts in getting this major release out the door. I wouldn’t have made it this far without you.

Happy writing!


Changelog v2.0.0


  • added lunrjs as local search engine

  • added warning when running on WSL

  • added dtcw.bat to avoid execution restrictions

  • updated developer docs

  • added docsy as theme

  • if the outputPath from the config starts with a '/', it will be considered as absolute path.
    This way, you can move the build folder outside of your repository.
    outputPath = System.getenv('HOME')+'/.doctoolchain/build/'+(new File('.')).canonicalPath.md5()

  • repository theme gets only copied to build if it is defined in siteFolder

  • generateSite will now add meta-data to all asciidoc files which have no meta-data defined. The menu name and order will be created corresponding to the folder and file name. The title will be extracted as first headline from the file itself.

  • Headless mode for themes

  • fix landing page (only gets copied once when microsite config isn’t set yet.)

  • generateSite can now handle themes

  • downloadTemplate can now handle further templates

  • copyThemes task

  • generateSite task

  • first version of powershell wrapper

  • manual test script

  • dtc wrapper

  • first definition of a static site taken from arc42-template-project

  • updated gradle wrapper (6.6.1)

  • added downloadTemplates task

  • added feature to automatically create a Config file if it doesn’t exist

  • configured gradle to run without daemon


  • streamingExecute (exportPPT, exportEA) now emits a note instead ot an error when running on linux

  • brushed up powershell wrapper


  • updated exportContributors to follow moved files

  • fixed downloadTemplate

  • fixed favicons

  • fixed blog

  • fix copyThemes to also copy the external theme

  • fix #574: publishToConfluence: Problem with wrong ancestorId

  • fix copyImages for generateSite

  • removed default imagesdir for generateSite

  • fixed imagesdir typo

  • updated docs for generateSite

  • fixed menu for generateSite

  • fixed createDist task

  • fixed plantUML for generatePDF

  • fixed plantUML for generateSite

  • [543] dtcw: added pre-requisites check and alternative curl instead of wget

  • handling of images for generateHTML