To express an OST we currently support:
- a set of pages (nodes), each with a type and parent relationship (frontmatter)
- an "OST on a page" with conventions for defining a structure based on markdown content (headings, bullets, inline properties)
In theory these worlds could merge and the concepts for the latter could be supported in the former. That is, a goal page could include headings/lists for sub-goals and/or opportunities inline, just like in an OST structure. This allows for detailed pages where warranted, while not requiring it when there isn't as much detail. A really clear example of this would be to include the mission on a vision page instead of it being separate
Rough idea of how this could work:
- Extract the in-page extraction
- Support that in the readSpace code path - for each node, also look in the markdown for headings/bullets to add to the node list
- The
parent property needs a reliable convention for referring to the title extracted from the content of a parent page.
Example:
new_vision.md (vision title is "new_vision" based on the filename)
type: vision
---
Blah blah vision stuff
## [type:: mission] Our mission in 2026
Blah blah mission stuff.
Note that mission title is "Our mission in 2026" based on the inline property and title content
make_moneys.md (goal title is "make_moneys")
type: goal
parent: [[new_vision#[type mission] Our mission in 2026]]
---
Blah blah goal stuff
This goal's parent wikilink is a (hopefully valid) reference to the heading in the vision page, recognised as a mission node.
Alternatively, or in addition, we could explore supporting anchor markup.
In vision doc: ## [type:: mission] Our mission in 2026 ^mission
In goal doc: parent: [[new_vision#^mission]]
Type is still needed in this case for parsing. That is, unless we decide that a unique named anchor matching the named OSTNode types is allowed as an alternative expression. This would be not just for linking, but parsing OST-on-a-page-like (aka embedded) content too. This wouldn't work for multiples, like multiple embedded goals on a page, unless we extend the convention to allowing numbered anchors (eg ^goal1) or something. This feels like it's well worth trying. While inline [type:: blah] is ok, I don't love it. We can keep that, but also allow this new approach.
To express an OST we currently support:
In theory these worlds could merge and the concepts for the latter could be supported in the former. That is, a goal page could include headings/lists for sub-goals and/or opportunities inline, just like in an OST structure. This allows for detailed pages where warranted, while not requiring it when there isn't as much detail. A really clear example of this would be to include the mission on a vision page instead of it being separate
Rough idea of how this could work:
parentproperty needs a reliable convention for referring to the title extracted from the content of a parent page.Example:
new_vision.md (vision title is "new_vision" based on the filename)
Note that mission title is "Our mission in 2026" based on the inline property and title content
make_moneys.md (goal title is "make_moneys")
This goal's parent wikilink is a (hopefully valid) reference to the heading in the vision page, recognised as a mission node.
Alternatively, or in addition, we could explore supporting anchor markup.
In vision doc:
## [type:: mission] Our mission in 2026 ^missionIn goal doc:
parent: [[new_vision#^mission]]Type is still needed in this case for parsing. That is, unless we decide that a unique named anchor matching the named OSTNode types is allowed as an alternative expression. This would be not just for linking, but parsing OST-on-a-page-like (aka embedded) content too. This wouldn't work for multiples, like multiple embedded goals on a page, unless we extend the convention to allowing numbered anchors (eg
^goal1) or something. This feels like it's well worth trying. While inline[type:: blah]is ok, I don't love it. We can keep that, but also allow this new approach.