Move the Logseq Markdown Mirror syntax/export work out of the two-way sync branch while leaving file-to-DB sync behavior behind. Details:\n- add docs/logseq-markdown-syntax.md and update ADR 0016 with the one-way mirror syntax contract\n- export mirror files with page id markers, property list items, nested default property values, node page refs, task status markers, and datetime values with time\n- preserve block refs as uuid links where needed while keeping page/node refs readable\n- update focused export and markdown mirror tests Validation:\n- bb dev:lint-and-test
2.0 KiB
Logseq Markdown Syntax
This document describes the Markdown syntax used by Logseq Markdown Mirror for DB graphs.
Page Identity
Mirror files start with an internal page id marker:
id:: 11111111-1111-4111-8111-111111111111
The marker associates a mirror file with the DB page. It is not a normal page property.
Blocks
Blocks are Markdown list items that use -.
- Parent
- Child
- Another child
- Sibling
Indentation defines block nesting. Markdown Mirror writes two spaces per nested level.
Properties
Properties are Markdown list items that use * and keep the Logseq property
marker key::.
* page-property:: [[Page value]]
- Block
* block-property:: 42
Page properties appear before the first block. Block properties appear under the block they belong to.
Open :default property values are represented by nested value blocks:
- Oscar Wilde
* description::
- Irish poet and playwright
* books::
- The Picture of Dorian Gray
* year:: 1891
- The Importance of Being Earnest
* year:: 1895
Closed values stay inline with the property key, including many-value properties:
- Entry
* mood:: Joy, Sad
Non-default scalar values and node values also stay inline:
- Lewis Carroll
* books:: [[Alice in Wonderland]]
* rating:: 5
Property value blocks can have nested blocks:
- Book list
* notes::
- Alice
- Draft
References
Page and node references use Logseq page reference syntax:
- Read [[Project Plan]]
* owner:: [[Alice]]
Node property values are exported as [[Node title]]. Mirror export does not
use ((uuid)) for node property values.
Tags
Tags are exported on block lines when they are normal user tags:
- Call customer #sales
- Review #[[Quarterly plan]]
Task Status
Task status is encoded on the block line:
- TODO Write draft
- DONE Publish note
Task status is not exported as a separate * Status:: property list item.