docmodel show menu hide menu


The docmodel project configuration file (docmodel.json) supports the following values:

  "documents"       : {}, 
  "outdir"          : null, 
  "latest_version"  : null, 
  "site_navigation" : null,
  "index"           : null,
  "prev_next"       : null,
  "theme"           : {
    "name"          : "default"


The hierarchy of individual markdown files which make up your documentation site.


By default, docmodel bakes your project to an output directory in your project folder. You can use this property to override this location. You may use an absolute path, or a path relative to your project folder.

Default location:

"outdir": null

Custom location:

"outdir": "/path/to/some/other/location"


If this property is set, any baked document which is not part of the latest version will have a warning injected which links to the latest version. In addition to setting this property, your theme strings collection for each language must have an outdated_warning entry. See the section on the Default Theme. Please note that, unlike other string elements, this value will not fall-back to your default language if not set--you must explicitly add it for each supported language.

"latest_version": "0.1.0"

An array of objects in the following format:

{"title": "Link Text",  "role": "index|docs|null", "link": ""}

If your project's theme supports site links, each object will be converted into a link element which will be injected into your baked documents. title will be used as link text, link will be the URL linked to. If a link role is set to docs this link will be given an active class in all baked documents. If this value is set to index, this link will be given an active class in your baked site index. There should only be a single link for each of these roles; all others should be null.

"site_navigation": [
  {"title": "get",  "role": "index", "link": "/"},
  {"title": "docs", "role": "docs",  "link": "/0.1.0-en/"},
  {"title": "code", "role": null,    "link": ""}


Path to a markdown document which will be rendered as your site's index file, relative to your project's documents directory.

"index": ""


If set to true, each baked document will contain links to the previous and next document in any given document's version/language group. If there are theme strings for previous_document and next_document these values will be used as link text. If not, then a documents configuration key will be used. If your project's theme does not support previous and next links, the links will not be added.

"prev_next": true


An object which will be merged into the configuration options for your project's theme. At a minimum, this must contain the name key to specify which theme you are using. If you are using a local theme (located at <project>/theme), you should set the name value to local.

"theme"  : {
  "name" : "default"


Here's an example of this site's configuration file:

  "documents": {
    "#0.1.0:en": {"$include": "0.1.0-en"}
  "theme": {
    "name": "default",
    "strings": {
      "en": {
        "site_title": "<img src='/assets/images/logo-light.svg' alt='docmodel'>", 
        "meta_title": "docmodel"
    "client_options": {
      "sidebar_toc": true
  "outdir": null,
  "site_navigation": [
    {"title": "get",  "role": "index", "link": "/"},
    {"title": "docs", "role": "docs",  "link": "/0.1.0-en/"},
    {"title": "code", "role": null,    "link": ""}
  "index" : "", 
  "latest_version": "0.1.0",
  "prev_next": true
« PreviousNext »