Children

Children of a note are defined based on the lowercase Note Name.

For example, a1.a2 is a child of a1.

Note & children

A note can have multiple children, and children can have the same name (in multi-vault scenarios).

In this example we have the following notes:

  • a1 (vault1)
  • a1.a2 (vault1)
  • a1.a2.a3 (vault1)
  • a1 (vault2)
  • a1.a2 (vault2)
  • a1.a2.a3 (vault2)

The 2 children of a1 are: a1.a2 (vault1) and a1.a2 (vault2)

img

A note can be childless.

In this example we have the following notes:

  • a1 (vault1)
  • a1.a2 (vault1)
  • a1.a2.a3 (vault1)
  • a1 (vault2)
  • a1.a2 (vault2)
  • a1.a2.a3 (vault2)

Notes a1.a2.a3 (vault1) and a1.a2.a3 (vault2) are childless.

img

Children vs Descendants

Children are direct children of a note, while descendents include all levels below the note in the hierarchy.

Thorg hierarchy

Thorg hierarchy

Thorg uses a dot-delimited hierarchy system to organize notes into logical, navigable structures, creating parent-child relationships that enable powerful organization and cross-referencing capabilities.

Core Hierarchy Concepts

Dot Notation

Thorg hierarchies use periods (.) as delimiters to establish parent-child relationships:

workspace/.thorg
workspace/vault-1/grandparent.parent.child.md
workspace/vault-1/grandparent.parent.md
workspace/vault-1/grandparent.md

Each additional dot represents a deeper level in the hierarchy:

  • grandparent - Root level
  • grandparent.parent - Second level
  • grandparent.parent.child - Third level
Subfolders in vaults in the future

We aim to support sub-folders within Vault for hierarchies in the future to increase compatibility with other markdown-based tooling. However, sub-folders in vaults are NOT the priority for initial releases.

File Structure and Note Names

ComponentDescriptionExample
File PathPhysical location on disk/../workspace/vault-1/grandparent.parent.child.md
Note NameHierarchical identifier (File path without vault path, without file extensions)grandparent.parent.child
Parent NoteOne level up in hierarchygrandparent.parent
Root NoteTop-level ancestorgrandparent

Cross-Vault Hierarchy Support

Thorg's hierarchy system extends across multiple vaults, allowing you to maintain consistent organization while separating content by access level or purpose.

Example: Public and Private Vaults

Public Vault Structure:

topics.programming.javascript.md
topics.programming.python.md

Private Vault Addition:

topics.programming.personal-notes.md
topics.programming.javascript.private-examples.md

The hierarchy remains intact across vaults, with all notes sharing the same ancestor (topics.programming).

Reference any note in the hierarchy using wiki links:

  • [[grandparent.parent.child]] - Link to specific note
  • [[grandparent.parent]] - Link to parent note

Hierarchy Benefits

graph TD A[Root Note] --> B[Parent Notes]; B --> C[Child Notes]; C --> D[Grandchild Notes]; B --> E[Cross-Vault Children]; style A fill:#f96,stroke:#333,stroke-width:3px; style E fill:#6f9,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5;

Best Practices for Thorg Hierarchies

  1. Meaningful Names: Use descriptive, concise terms that indicate content relationships (use title in frontmatter for more verbose note names)

    • projects.web-app.frontend.components
    • stuff.thing1.more.items
  2. Logical Grouping: Place related content under common ancestors

    documentation.api.endpoints.users
    documentation.api.endpoints.auth
    documentation.api.endpoints.products
    
  3. Sibling Organization: Notes under one parent should be conceptually related

    tools.editors.vscode
    tools.editors.neovim
    tools.editors.sublime
    


Backlinks