Skip to content

Support "embedding" of subitems at any level #10

@mindsocket

Description

@mindsocket

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions