Skip to content

Block References

Block references allow you to link to and embed specific paragraphs, lists, or other content blocks within notes.

Add a block ID to any paragraph or list item:

This is an important paragraph. ^important-point
- List item one
- List item two ^key-item
- List item three

Block IDs:

  • Start with ^
  • Appear at the end of the line
  • Use lowercase letters, numbers, and hyphens
  • Must be unique within the note
As mentioned in [[#^important-point]], we need to focus.
See [[Other Note#^important-point]] for details.
See [[Other Note#^important-point|the key insight]] for details.

Embed a specific block using the ! prefix:

![[Other Note#^important-point]]

This transcludes just that block, not the entire note.

Choose descriptive, stable IDs:

The main thesis of this paper is... ^thesis
Key finding: productivity increased 40% ^finding-productivity
Decision: We will use React for the frontend ^decision-frontend
  • Auto-generated IDs that might conflict
  • IDs that describe position (^paragraph-3)
  • Overly long IDs
Heading ReferenceBlock Reference
[[Note#Heading]][[Note#^block-id]]
Links to sectionLinks to specific block
Uses heading textUses explicit ID
May break if heading changesStable if ID preserved

Search for notes with block IDs:

{
"query": "\\^[a-z][a-z0-9-]*$"
}

Block IDs are parsed during markdown processing:

Location: crates/crucible-core/src/parser/types/blocks.rs

The parser:

  1. Identifies blocks (paragraphs, lists, etc.)
  2. Extracts trailing ^id patterns
  3. Stores block ID → content mapping
  4. Enables block-level linking and embedding

Crucible can generate block IDs automatically for content hashing:

---
auto_block_ids: true
---

Generated IDs use content hashes and are stable as long as content doesn’t change.

In [[Research Paper#^methodology]], the authors describe...
Given that:
1. [[Premise One#^main-point]]
2. [[Premise Two#^conclusion]]
Therefore...
# Key Quotes
![[Book Notes#^quote-1]]
![[Book Notes#^quote-2]]

When heading text might change, use block IDs for stability:

This relates to [[API Design#^rate-limiting-decision]]
  • :h wikilinks - Full wikilink syntax
  • :h frontmatter - Note metadata
  • Wikilinks - Linking syntax reference