Experimental Nunjuck Templates

Extremely powerful templating capabilities with nunjuck templates


  • better multi-vault defaults
    • instead of keeping remote vaults under a special repos folder, you can now initialize them where ever you want
  • better git defaults with new vaults

Bug Fixes

  • support turning off pretty refs for Dendron preview (docs)



  • private vaults (docs)
  • popover 403 links (docs)
  • standardize pod cli interface

Bug Fixes

  • use builtin clipboard manager
  • private wiki links render errors on published page

House Cleaning



Managed Publishing (Early Preview)

The initial release comes with the ability to publish a Dendron workspace under {username}.dendron.wiki. Dendron takes care of configuring your domain and building your site.

After you connect your GitHub repo with Dendron, we'll kick off the initial publication. Every subsequent time you push to your repo, Dendron will automatically build your site with the latest changes.

At launch, we are supporting publishing from a connected GitHub repo. Instructions to get started are here


  • show last modified time for published sites (docs)
  • add option to configure human readable ts formatting (docs)
  • smaller downloads when using publishing commands for the first time
  • much faster publishing commands
  • frontmatter can now be folded

Bug Fixes

  • 11ty build issues
  • Dendron move note command can fail when parents are stubs
  • preview can get out of sync with Dendron

House Cleaning

  • dendron monorepo is now on yarn
    • this results in 4x faster initial builds and 6x smaller bundle sizes when developing
  • dendron-11ty is now merged into the dendron monorepo

If you currently have Dendron checked out, you can use the following instructions to migrate

# get latest version
git pull

npm install -g yarn
# remove old node_modules
yarn bootstrap:bootstrap
yarn bootstrap:build



  • diagnostics report (docs)

  • shortcuts: none

Copy last 3000 lines of all logs and config to clipboard. Use when submitting an issue to Dendron

Information displayed:

  • workspace type
  • current dendron version
  • previous workspace version
  • previous global version
  • extension install status
  • contents of dendron.yml
  • contents of dendron.code-workspace
  • telemetry status
  • last 3000 lines of logs from client and server

Contextual UI

File Operations

New File

Dendron recognises a new Markdown file created from VS Code context menu and populate it with the frontmatter.

Rename Note

If looking to move a note to a different vault, within a Multi Vault workspace, use Move Note instead.

  • shortcuts: none

Rename a note and all backlinks.

If the title is the same as what Dendron would autogenerate (kebab-case capitalized), then refactor will change the title as well. Otherwise, it will preserve the existing title.

You can also rename a note from the explorer, and all of the backlinks to that note will be updated automatically (see an example loom video):

  • Right Click on the note
  • Select Dendron: Rename Note

NOTE: Dendron will not allow you to rename a note to a note that already exists

Header Operations

These are Dendron-specific features made available as Quick Fix operations in VS Code.

A header action is announced by a lightbulb when the cursor is within a header. Clicking on the Code Action lightbulb or using the Quick Fix command Ctrl+. will display the following quick fixes.

πŸ’‘ TIP: If you prefer to not see the Code Action lightbulb in your editor, you can disable lightbulbs with the editor.lightbulb.enable setting. You can still open Quick Fixes through Quick Fix command and Ctrl+. keyboard shortcut.

Rename Header

  • shortcuts: none

Rename the selected header.

You must put the caret on the header you want to rename. All wikilinks that link to this header (like [[note#header]]) will automatically get updated to the new header.

Having the cursor within a header will also show a lightbulb for the Contextual UI Header Operations, which includes a Rename Note quick fix.

Copy Header Reference

If you have a header selected while running this command, it will copy the note ref with the selected header to the next note ref.

Having the cursor within a header will also show a lightbulb for the Contextual UI Header Operations, which includes a Copy Header Reference quick fix. This will copy the note ref to your clipboard.


  • add path customization to build-site (docs)
  • Add default description option to Dendron config (docs)
  • add config to publish multi-vault when adding vault (docs)

Bug Fixes

  • build-site doesn't overwrite STAGE environment
  • do not delete text when extracting non-vault text
  • add new vaults to newline in .gitignore


Bug Fixes

  • server close error when building website for production



  • move notes between vaults using the move note command (docs)


  • nicer 403 page on unpublished pages (docs)

Bug Fixes

  • issue with daily journal notes not getting pretty titles
  • ctrl hover over images will create a note
  • when removing a note with empty parents, clean up empty parents



  • mermaid diagram support when publishing (docs)
  • display note title as link (docs)


  • use list of vaults when resolving duplicate notes (docs)
  • go to definition now works for ![[refs]]
  • Copy Note Link now updates alias to header value when copying header

Bug Fix

  • grammar issue with unpublished page notification

House Cleaning

  • remove sync_vault as a step when building Dendron for the first time


Bug Fix

  • issue with new vaults not having welcome note


Bug Fix

  • issue with md outline not showing



Site Build and Preview built-in to extension

You can now publish and build your notes without going to the command line (docs)


  • show progress bar when syncing graph
  • show progress bar when installing node modules
  • useFMTitle set to true by default
  • add .gitignore to newly created workspace
  • Copy Note Url uses siteUrl as value for noteRef

Bug Fixes

  • fix issues with nav capitalization
  • fix dup items in nav
  • windows site preview not cleaning up child processes
  • fix note graph errors


  • revamped publishing docs

House Cleaning




Bug Fixes

  • fix multi-vault breadcrump null issue
  • fix windows build for site




  • better 403 page (docs)
  • spurious error message if user doesn't create note from not selecting a vault
  • better default journal note titles

Bug Fixes

  • issue publishing with subdomain
  • some queries not being returned in multi-vault settings
  • issue with noteRef mangling when using doctor

House Cleaning


  • Dendron Markdown Preview: 0.10.18
  • Dendron 11ty: 1.23.6


Updated Note Ref Syntax

You can now do references to notes using ![[note]] instead of ((ref: [[note]])) syntax. To reference a header, use ![[note#foo]]. This changes makes our note ref syntax more consistent with our wiki link syntax.

Note that the new ref syntax expects a sluggified header. This is done automatically when you use the updated copy note ref command.

This change makes it possible to create a ref to a header with special characters.

The old syntax ref syntax will still work but should now be considered deprecated. We will release a doctor command to help you auto-upgrade from the old syntax to the new syntax in the coming week.

Frontmatter Variable Substitution

It is now possible to use variables defined in your note frontmatter inside your note. The syntax is {{fm.VAR_NAME}} where VAR_NAME is the name of your variable. The fm designates that you want to use a frontmatter variable.


  • nav_exclude property excludes from nav sider and table of contents (docs)
  • copy note ref command will use the new note ref syntax
  • footnote support in preview and when publishing (docs)

Bug Fixes

  • spaces in wiki link not rendering in preview



  • better fuzzy search for lookup
  • publishing v2 enhancements
    • abbreviation support for 11ty publishing (docs)
    • better note titles (docs)
    • shrink size of published page 10x
    • fix left nav position of current active page
    • ability to override output folder from CLI when building site
    • don't throw error on code blocks that are unsupported by prismjs

Bug Fixes

  • Markdown preview delay in showing newly created notes
  • buildSiteV2 not connect to running workspace



  • Collections support for 11ty
    • publish blog like archives using Dendron
  • CLI Based Doctor (docs)
    • run various tests to make your notes are healthy for the new year
  • use frontmatter as title when publishing and in the preview (docs)


  • additional metadata tags for published pages
  • support noindex option (docs)
  • add anchor links to headers
  • use note title for page title
  • support nav_exclude option
  • support overriding output in buildSiteV2 command
  • don't throw error if no syntax highlighter available for code block

Bug Fixes

  • issue connecting to open workspace using CLI
  • nav bar when publishing multiple hierarchies will show wrong expansion options



  • build-site command can connect to current running workspace (docs)
  • support inline math when publishing
  • support block math when publishing
  • support rendering gfm inside note reference when publishing
  • support anchor headings when publishing
  • support relative links when publishing

Bug Fixes

  • issue with displaying math in preview

House Cleaning

  • the code highlighter has been changed from prismjs to highligher.js



  • add seo tags (docs)
  • enable edit on GitHub link (docs)
  • migrate all Jekyll _config.yml settings to dendron.yml

Bug Fixes

  • build-site errors when building from vaults without asset folder
  • build-site error on certain operating systems
  • build-site error on node version != 12




Publishing For Multi Vault


You can publish your notes from a multi-vault workspace just as you would from a single vault workspace.

We have added a new configuration, duplicateNoteBehavior, which controls how Dendron handles duplicate notes across multiple vaults.


  • creating engine via cli also initializes meta files (d72f097)(docs)
  • remove GitHub light theme from Dendron bundle (33d5708)
  • support note refs for multi-vault
  • support relative links in Dendron preview (docs)
  • further speed enhancements to publishing using 11ty resulting in another 5x improvement
  • configure writeStubs from dendron.yml

Bug Fixes

  • refactor hierarchy miss self referential links (00b385d)
  • reduce frequency of engine not connecting error when launching Dendron preview

House Cleaning

  • writeStubs is set to true by default (or when not set) when publishing using 11ty


Publishing V2 (preview)

We've re-build publishing for Dendron from the ground up to be faster, better, and easier to use.

Besides for schemas, publishing has consistently been one of the hardest to use features in Dendron. Dendron currently publishes using Jekyll using our own template. While this has served us well initially, slow compile times for large sites and difficulty of getting started has made it a growing pain point.

To address this, we've migrated our publishing stack to 11ty, a super fast javascript based static generator. This means much faster, and perhaps more importantly, easier publishing.

There's still some work left to integrate publishing into the Dendron plugin - meanwhile, you can take the new publishing workflow for a spin using the Dendron CLI

In order to to use the 11ty based publishing, initialize your workspace with the following commands.

npm init -y
npm install @dendronhq/dendron-cli@latest
npm install @dendronhq/dendron-11ty@latest

After you have your dependencies installed, build your your site using the following command.

npx dendron-cli buildSiteV2 --wsRoot .  --stage dev --serve

This will both compile your site locally and make it available at localhost:8080 for instant preview. When building your site locally, the pages will be build to {wsRoot}/build/site.

When you are ready to publish to github, make sure to change the stage to prod.

npx dendron-cli buildSiteV2 --wsRoot .  --stage prod

This will build your site to the path specified by siteRootDir in dendron.yml.


Publishing V2 is ~10x faster than Jekyll based publishing for sites with +100 pages. For comparison, below is the compilation difference between building the Dendron site using 11ty vs Jekyll.

  • 11ty: 24.45s
  • Jekyll: 220.33s

There are additional optimizations still on the table that will further drive down he compilation time by another order of magnitude for future releases.


11ty publishing is currently not at full feature parity with Jekyll publishing. Notably, the following features are missing:

  • setting a custom color theme
  • edit on GitHub links
  • jekyll-seo functionality
  • mathjax


All values that used to be written into _config.yml will now be moved into dendron.yml. You can see the currently supported configuration values here: https://github.com/dendronhq/dendron/blob/master/packages/common-all/src/types/typesv2.ts

If you currently have a Jekyll based Dendron page, note that the following settings have changed:

  • the url property from _config.yml is now siteUrl in dendron.yml
  • favicon is now controlled by siteFaviconPath in dendron.yml and is a path relative to your workspace root
  • CNAME is now controlled by githubCname property in dendron.yml

Sample dendron.yml config

  • publishing without a cname
version: 1
    - fsPath: vault
    copyAssets: true
        - dendron
    siteRootDir: docs
    siteUrl: "kevinslin.github.io/dendron-11ty-test"
    usePrettyRefs: true
  • using custom cname
version: 1
    - fsPath: vault
    copyAssets: true
        - dendron
    siteRootDir: docs
    usePrettyRefs: true
    siteUrl: "11ty.dendron.so"
    githubCname: "11ty.dendron.so"

Sample repo

CLI Command Reference

dendron-cli buildSiteV2

build notes for publication using 11ty

  --version  Show version number                                       [boolean]
  --help     Show help                                                 [boolean]
  --wsRoot   location of workspace                                    [required]
  --vaults   location of vault                                           [array]
  --serve    serve over local http server             [boolean] [default: false]
  --stage    serve over local http server