0.08

Schemas and pods were the focus of this week's efforts.

Schemas are now both more powerful and re-usable with a custom pattern attribute as well as the ability to import existing schemas. As a bonus, you can also visualize your schemas using the Show Schema Graph command!

On the Pod site, we've made the process of publishing a pod more flexible with per hierarchical configuration options, a unified config syntax and automatic reloading of your config on every publish.

These release notes are summary of the more notable changes, for the full list, please look at our CHANGELOG

Bundled extensions

Add ShowSchema Command (docs)

You can now view your schemas using the same graph visualization as you do your notes!

Enhancements

  • Dendron: reload graphs will reload both schema and note graphs
  • Dendron: reload graphs will reload both schema and note graphs
  • Dendron schema graph will show schemas by their title. if not set, revert to id.

Markdown

Enhancements

  • Markdown parsing can now be up to 300% faster publishing a site

Notes

Create Daily Journal Note Command (docs)

The daily journal helps you keep a journal for each day of the year. By default, it will create the journal under daily.{date} though this is configurable by setting the dendron.dailyJournalDomain.

You can create a daily journal using > Dendron: Create Daily Journal Note or CMD+SHIFT+I shortcut.

Pods

Support different defaults on a per hierarchy basis when publishing (docs)

You can now set different publishing defaults for each hierarchy (as well as general defaults for your entire vault.)

As an example, below is the config for my website. It publishes everything under the home and blog hierarchies but will only publish notes under books if published: true is set on the frontmatter.

  • dendron.yml
site:
siteHierarchies: [home, blog, books]
siteRootDir: docs
config:
    books:
    publishByDefault: false

Implement new website config syntax (docs)

New config syntax unifies a bunch of different configuration options and renames others to more sensible names.

Enhancements

  • Auto migrate old-style site config to new style site config
  • Always read config before publishing. no more reloading the workspace after updating dendron.yml!
  • Update site config on Dendron starter template
  • Use rsync to copy assets when building pods

Fixes

  • Use regular copy command if rsync not installed
  • Links not being converted to ids when publishing

Schemas

Support schema import (docs)

It's now possible to import schemas! This means you can now create composable schemas from re-usable pieces.

Example:

  • foo.schema. yml
version: 1
imports:
- bar
schemas:
- id: foo
parent: root
children:
    - bar.bar # notice that we prefix the id bar with the filename
  • bar.schema.yml
version: 1
schemas:
- id: bar
parent: root
children: 
    - one
- id: one

The above would match the following files

foo.bar # match
foo.bar.one #match

Support match by pattern (docs)

You can now explicitly specify a glob pattern for any level of your schema. If not set, defaults to the schema id.

The following is an example of a schema for journal hierarchy.

schemas:
- id: journal
title: journal
desc: ""
parent: root
children:
    - year
- id: year
title: year
pattern: "[0-2][0-9][0-9][0-9]"
children: 
    - month
- id: month
title: month
pattern: "[0-9][0-9]"
children: 
    - day
- id: day
title: day
pattern: "[0-9][0-9]"
namespace: true

This will match the following queries

# journal
# journal.2020
# journal.2020.09
# journal.2020.09.12
# journal.2020.09.12.foo.md

Enhancements

  • Set schema title to id if not set
  • Better error message on bad schema

Fixes

  • Autocomplete correctly on imported schema

Workspace

Fixes

  • A misconfigured POSIX path causes Dendron to not load on windows

Thank You

Last and most of all, a big thanks to the following gardeners that brought up issues and contributed fixes to this release.