Link Search Menu Expand Document

Release Notes(version 0.12)

Dendron 0.12 is here 🌱

This week's focus was on publishing. We have a bunch of enhancements and additions to the publishing workflows. We also introduced the seeds library, a way of you to remix existing content with Dendron. You can see an example of this here

This release also brings some changes to Dendron's update cycle. You might have noticed that Dendron updates rather aggressively πŸš€πŸš€πŸš€

Our current release cycle is a patch update every day and a minor release every week. Moving forward, we will be doing patch updates every few days and a minor release every two weeks.

The move to this new release cycle is a reflection that Dendron is growing rapidly and starting to mature.

We will be working on some major changes in October to stabilize the core feature set and make them easier to use. We will also be shifting our underlying architecture from a VSCode plugin to the Language Server Protocol which will result in a richer feature set and the ability for Dendron to be more easily integrated into additional editors.

As part of this update, we've put out the first version of the Dendron principles which reflects our design philosophies and the direction we are taking Dendron.

This is a work in progress so feel free to make suggestions and comments in the discord.

I've mentioned this before but we will also be releasing our formal roadmap by the end of the month. This roadmap will cover all major projects we plan on doing in 2020.

We are looking to come out of preview by the end of October and do a formal 1.0 release before the end of the year.

I want to take this moment to again thank everyone for being part of our journey to build a better tool for managing knowledge πŸ‘¨β€πŸŒΎπŸ‘©β€πŸŒΎ

I believe we're are planting something special here and am excited to see us grow 🌱

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


Cli

Support for seeds

Note: Seeds are highly experimental and under active development. Content here is subject to change.

Seeds represent existing knowledge out in the world. A seed could be a wikipedia article, a github repo, or an arbitrary website.

You can use a Dendron Seed to ingest data from existing sources and import them into your vault. Data ingestion is also referred to as planting.

Note that seeds differ from pods in that they help you ingest content from external sources from content that you might have no control over. Pods help you import/export your content between various platforms.

You can see an example of a published seeded vault here.

Enhancements

  • Standardize on core cli flags across all commands
  • More options when planting seeds

Hierarchies

Fixes

  • Rename when stub is present

Lookup

Lookup new notes with Selection

Start anchor creating notes with a selection not found

Enhancements

  • Lookup can extract highlighted text

Pods

Implement Json import pod

Summary

  • id: dendron.json
  • coverage
    • βœ… import
    • βœ… export
    • βœ… publish

Import

Imports a JSON file as Dendron notes

  • format:
    • fname: name of note (without extension)
    • body: contents of note
  • eg:
[
  {
    "fname": "one",
    "body": "one body"
  }
]

Export

Below is sample output from an export of a vault with the following files

.
└── vault
    β”œβ”€β”€ root.md
    β”œβ”€β”€ sample.child.md
    └── sample.md

Exported JSON

[
  {
    "id": "root",
    "title": "root",
    "desc": "",
    "type": "note",
    "updated": 1599430958377,
    "created": 1599430958377,
    "fname": "root",
    "data": {},
    "stub": false,
    "custom": {},
    "parent": null,
    "children": [
      "01d712a3-3676-403c-87d7-f3e7057ca43e",
      "01d712a3-3676-403c-87d7-f3e7057ca43e"
    ]
  },
  {
    "id": "01d712a3-3676-403c-87d7-f3e7057ca43e",
    "title": "Sample",
    "desc": "",
    "type": "note",
    "updated": 1599430965554,
    "created": 1599430965554,
    "fname": "sample",
    "data": {},
    "stub": false,
    "custom": {
      "tags": [
        "one",
        "two",
        "three"
      ]
    },
    "parent": "root",
    "children": [
      "1d947d6e-39c4-4d31-9bec-749a467fc514"
    ]
  },
  {
    "id": "1d947d6e-39c4-4d31-9bec-749a467fc514",
    "title": "Child",
    "desc": "",
    "type": "note",
    "updated": 1599430969355,
    "created": 1599430969355,
    "fname": "sample.child",
    "data": {},
    "stub": false,
    "custom": {
      "customProp": "yellow",
      "customStat": 5
    },
    "parent": "01d712a3-3676-403c-87d7-f3e7057ca43e",
    "children": []
  }
]

Video example of exporting to JSON

Publish Pod

Publish notre to JSON and copy into clipboard

Sample output

{
    "id": "814f9a2c-f011-4852-a077-c887dd985656",
    "title": "Two",
    "type": "note",
    "desc": "",
    "links": [
        {
            "type": "wiki",
            "from": {
                "fname": "bar.two",
                "id": "814f9a2c-f011-4852-a077-c887dd985656"
            },
            "original": "bar.two.child",
            "value": "bar.two.child",
            "alias": "bar.two.child",
            "pos": {
                "start": 23,
                "end": 40
            },
            "to": {
                "fname": "bar.two.child"
            }
        },
        {
            "type": "wiki",
            "from": {
                "fname": "bar.two",
                "id": "814f9a2c-f011-4852-a077-c887dd985656"
            },
            "original": "bar.two.child",
            "value": "bar.two.child",
            "alias": "bar.two.child",
            "pos": {
                "start": 50,
                "end": 67
            },
            "to": {
                "fname": "bar.two.child"
            }
        }
    ],
    "fname": "bar.two",
    "updated": 1603305706789,
    "created": 1602872932440,
    "parent": "93f6a3ad-2b0f-4843-9b65-961c65de9237",
    "children": [
        "8e19c23d-4335-4684-846e-ca7fed893b51"
    ],
    "body": "\n\n# Inner Note\n\n((ref: [[bar.two.child]]))\n((ref: [[bar.two.child]]))",
    "data": {},
    "custom": {},
    "schema": {
        "schemaId": "bar",
        "moduleId": "bar"
    }
}

Enhancements

  • All filepaths can be set relative to the workspace root
  • Json pod can import filenames as links
  • Standardize interface for import/export pod commands

Fixes

  • Handle stub notes correctly on import

Publishing

Publish command

  • shortcuts: none

Build, commit and publish your notes with a single command

  • NOTE: this is mean for v1 publishing. V2 publishing currently does not have a publish command.

Copy note url command

  • shortcuts:
    • mac: cmd+shift+u
    • windows: ctrl+shift+u

Get URL of current note from published site

If you highlight a header, will copy the url with the header set as the anchor

The url is taken from the siteUrl property.


Enhancements

  • Support relative path for all file paths
  • Set custom path for publishing repo
  • Keyboard shortcuts for copy note url cmd
  • Be able to pass in custom args to commands
  • Support incremental page building

Fixes

  • Copy url truncates //

Thank You

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