Link Search Menu Expand Document

Frontmatter

Frontmatter is YAML that you can add to the front of your markdown file. It was first introduced by jekyll and is a convenient way of adding metadata to your plaintext documents.

Dendron supports frontmatter. By default, we add the following keys to a new note created with Dendron:

  • id: a globally unique identifier for the note
  • title: your note title. Used to label nodes in graph view
  • desc: optional description about your note. Will show up in lookup results
  • updated: unix timestamp of when note was updated
  • created: unix timestamp of when note was created

Frontmatter isn't required in Dendron and Dendron will happily index markdown files without frontmatter. Feel free to add your attributes. As long as it doesn't conflict with a Dendron builtin keyword, Dendron will leave it alone. In the future, we plan on adding a lot more functionality to the frontmatter you see in Dendron so stay tuned.

Reserved Keys

Note that not all the keys are written out to the markdown file. Dendron merges the attributes from the markdown frontmatter to its own internal set of attributes.

id

A globally unique identifier for the note. This identifier is used for two things: (1) generating unique URLs when notes are published and (2) ensuring each note in the index is unique.

title

Your note title. Used to label nodes in graph view

desc

Optional description about your note. Will show up in lookup results.

updated

Unix timestamp of when note was updated

created

Unix timestamp of when note was created

parent

Node parent

children

Node children

uri

Absolute filepath to the note

data

This is reserved for internal use

custom

This is reserved for internal use

Other keys

Note Configuration

You can specify how notes are published via the frontmatter of each note.

published

  • default: true

To exclude a page from publication, you can add the following to the frontmatter. If you set publishByDefault: false for a hierarchy, this needs to be set to true to publish

...
published: false

If set, do not include the current note in the navigation bar.

  • type: number

If set, denote order that item appears in the published nav bar

noindex

  • default: false

To tell google to not index a page, you can add the following tag to the frontmatter. You can also have this as a default for a given hierarchy by setting noIndexByDefault: true in the site config.

...
noindex: true

Disable git linking for this page

gitNotePath

When set, override how we generate the URL for the edit on github link.

There are a few special variables you can set:

  • ${noteHierarchy}: this specifies the full hiearchy to the note in posix format
    • eg. foo.bar will translate to foot/bar

collection options

has_collection

  • default: false

Whether a given page is a collection. A collection doesn't have a table of contents and allows you to set collection specific options.

date

If set, used to designate a custom publication date. By default, use timestamp of created field.

skipLevels

If set, determines how many levels of children to skip when making the collection. For example, you might have the following hierarchy.

- blog.md
- blog.reading.md
- blog.reading.journal.md
- blog.reading.journal.2020.md
- blog.reading.journal.2020.12.md
- blog.reading.journal.2020.12.20.one.md
- blog.reading.journal.2020.12.31.two.md

When you publish, you might only want to show the leaf nodes and skip the intermediary levels. In the above example, setting skipLevels: 3 on blog.reading.md will result in the following hierarchy being published.

- blog.md
- blog.reading.md
- blog.reading.journal.2020.12.20.one.md
- blog.reading.journal.2020.12.31.two.md

sort_order

  • default: ascending
  • values: ascending|reverse

Sort items in a collection page. Ascending by default. Specify reverse to sort in descending order.

Line Configuration

You can control publication on a per line basis.

LOCAL_ONLY_LINE

Sometimes, you just want to keep a few lines private while publishing the rest of your vault. You can do that with Local only. In order to mark a line as Local Only, add the following markdown comment at the end of the line:

Hello World!  <!-- Will be published -->

This is a secret <!--LOCAL_ONLY_LINE--> <!-- won't be published -->