Tutorials 14 min read

How to Embed One Note Inside Another and Keep One Source of Truth

MMNMNOTE
transclusionmarkdownsingle-source-of-truthnote-takingembedsplain-textportability

To embed one note inside another, add an exclamation mark in front of a wiki-link: ![[Note name]]. The note's content now displays inline, and it stays current when you edit the original. Write the block once, reuse it everywhere, and keep a single source of truth.

This solves a quiet, ordinary problem. You keep the same disclaimer, the same project status, the same definition in a dozen notes — and one day you change the disclaimer in one place and forget the other eleven. Copy-paste has no memory. Transclusion does. The idea is older than every note app you have ever opened: Ted Nelson coined the term transclusion in his 1980 book Literary Machines 1. The mechanic is documented across tools, and the payoff — "a resource is stored once and distributed for reuse in multiple documents" 2 — is the same one engineers call single source of truth.

What is transclusion in Markdown?

Transclusion is "the inclusion of part or all of an electronic document into one or more other documents by reference via hypertext" 3. In plain terms: instead of copying text into a second note, you reference the first, and the tool displays its content inside the second. The reference stays live. Change the source, every reference changes.

The word predates Markdown — and predates the web's note apps. Ted Nelson coined it in Literary Machines (1980) 1, describing documents that quote each other by reference rather than by duplication. The modern version is humbler but useful daily: one canonical block of text, displayed in many places, edited in exactly one.

How do I embed one note inside another?

To embed a whole note, add an exclamation mark in front of an internal link. The official documentation states it plainly: "To embed a file in your vault, add an exclamation mark (!) in front of an [[Internal links|Internal link]]" 4. So a normal link to a note becomes an embed by adding a single character.

The syntax is the wiki-link you already use, plus !:

[[Project Atlas]]      ← a link: the reader clicks through
![[Project Atlas]]     ← an embed: the note's content appears inline

That one exclamation mark is the whole move. The reading pane now renders the content of Project Atlas in place. The purpose, in the documentation's own words, is "to reuse content across multiple places" 5. You are not pasting a copy — you are pointing at the original.

How do I embed a specific heading or paragraph?

Target a heading with # and a single block with #^. The same ![[ ]] family narrows from a whole note down to one section or one line. A heading embed looks like ![[Note#Heading]]; a block embed uses a generated block ID, as in the documented example ![[Internal links#^b15695]] 6.

This is where transclusion earns its keep. You rarely want a whole note inline — you want the one paragraph that is the canonical definition, or the one status line everyone references. Three levels — each narrower than the last:

![[Project Atlas]]                 ← the entire note
![[Project Atlas#Current status]]  ← just the "Current status" heading section
![[Project Atlas#^k3f9a2]]         ← one specific block, by its ^block-ID

The block ID (^k3f9a2 above) is a short marker the tool attaches to a paragraph so other notes can point at exactly that line. Pick the smallest unit that says what you mean — a status line wants a block; a multi-paragraph policy wants a heading.

The single source of truth, in practice

Here is the whole payoff in one rule: edit the original once, and every embed reflects it. The documentation describes the behavior precisely — embedded files "display their content inline in a note and stay up to date when the source file changes" 7. You stop maintaining twelve copies and maintain one canonical block.

That is the engineering idea of single source of truth, applied to notes. Transclusion "facilitates modular design (using the 'single source of truth' model, whether in data, code, or content): a resource is stored once and distributed for reuse in multiple documents" 2.

Demand for it is real and specific. Note-takers file feature requests for richer embeds — for example, the forum thread titled "When transcluding a section, include the source page's title in the transclusion display" 8. People do not ask to improve a feature they do not lean on.

A worked example: write the disclaimer once

Suppose every client proposal needs the same confidentiality note. Write it once, in its own note, and embed it everywhere. Below is the canonical block and the proposals that reference it. Edit the disclaimer note, and all three proposals update at once — no find-and-replace, no stale eleventh copy.

# disclaimers.md  ← the single source of truth

## Confidentiality
This proposal is confidential and intended only for the named recipient.
Do not redistribute without written permission. ^conf-2026
# proposal-acme.md

## Scope
...the work...

![[disclaimers#^conf-2026]]   ← the confidentiality block, embedded
# proposal-globex.md

## Pricing
...the numbers...

![[disclaimers#^conf-2026]]   ← the same block, the same source

When legal updates the wording, you change disclaimers.md once — and Acme and Globex both show the new text the next time you open them. The discipline is simple: anything that appears in more than one note and must stay identical becomes its own small note, referenced by an embed, never pasted.

This is not a single-app trick

Transclusion is a documented concept across tools, not one app's gimmick. Wiki-style ![[ ]] is one implementation. The AsciiDoc standard has another: its include directive "imports content from a separate file or URL into the content of the current document" 9, and at build time "the include directive syntax is replaced by the contents of the include file" 10.

That last detail is the tell. In AsciiDoc, the include is resolved when the document is processed — the reference becomes the actual content only at render time. The same is true of note-app embeds: the inline display is computed when you view the note, not stored as merged text.

Worth stating plainly — standard CommonMark and GitHub-flavored Markdown have no native transclusion directive. Both ![[ ]] and include:: are tool extensions, not part of the Markdown spec. The concept is universal; the syntax is local.

Common mistakes

These are the three traps that turn a clean single-source-of-truth setup into a mess. Each one comes from forgetting a single fact: the embed is a live, app-resolved view, while the plain file underneath is the durable thing you actually own and carry with you. Plan around that fact and none of them bites.

What survives when you leave the tool

Be precise about ownership, because this is the part most tutorials skip. When you export or migrate, your source notes survive as readable Markdown — every disclaimer, definition, and status note opens anywhere. What does not survive as a live feature is the ![[ ]] render: those lines become literal text until a compatible tool re-renders them.

This is the honest version of "you own your files." The same divide shows up with image attachments, which travel as separate binary files rather than as text — its own portability story, told in Markdown is portable, until you add an image. Steph Ango, CEO of Obsidian, put the principle this way: "In the fullness of time, the files you create are more important than the tools you use to create them. Apps are ephemeral, but your files have a chance to last" 13. He calls it file over app — "a philosophy: if you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read" 14.

Transclusion lives inside the app; the file lives with you. Keep your canonical blocks as plain Markdown on your own device and the worst case is mechanical, not catastrophic — you re-render the embeds in the next tool, and you never lose the words.

How this works in MNMNOTE

The same shape applies in MNMNOTE: your notes are plain Markdown stored locally on your own device, so a canonical block is a file you hold — not a row in someone's database. Reuse by reference keeps one source of truth while the underlying text stays open and portable. Edit the original, and the places that point to it follow.

Frequently asked questions

The short version of everything above, by question. The whole technique reduces to one syntax (![[ ]]), one behavior (the embed stays current with its source), and one honest limit (the render is app-resolved while your files are plain Markdown you keep). The answers below cover the queries people actually type.

How do I embed one note inside another and keep a single source of truth? Add an exclamation mark before a wiki-link: ![[Note name]]. The note's content appears inline and "stays up to date when the source file changes" 7. Edit the original once and every embed reflects it — that is the single source of truth in practice.

What is transclusion in Markdown? Transclusion is "the inclusion of part or all of an electronic document into one or more other documents by reference via hypertext" 3. Ted Nelson coined the term in Literary Machines (1980) 1. Plain CommonMark has no native transclusion; ![[ ]] is a tool extension.

How do I embed a specific paragraph or heading from another note? Target a heading with # and a single block with #^. A heading embed is ![[Note#Heading]]; a block embed uses a generated block ID, like the documented ![[Internal links#^b15695]] 6. Pick the smallest unit that carries the meaning you want.

Do Markdown embeds work when I export my notes? Not as live embeds. Transclusion is dynamic and app-resolved — "no static converter resolves it" 11, and outside the tool the lines are "just inert code blocks" 12. Your source notes survive as plain Markdown; the live render does not travel with them.

What is the difference between a link and an embed? A link ([[Note]]) sends the reader to another note; an embed (![[Note]]) shows that note's content in place. The only syntactic difference is the leading exclamation mark. An embed reuses content; a link points to it.

Is single source of truth just a marketing phrase? No. It is the documented design model behind transclusion: "a resource is stored once and distributed for reuse in multiple documents" 2. The tool behavior matches the claim — embedded files "stay up to date when the source file changes" 7.

Write the block once. Reference it everywhere. Own the file underneath, so the words outlast the view that displays them — and you can keep that habit in any plain-Markdown editor, including mnmnote.com.

Footnotes

  1. "Transclusion." Wikipedia. https://en.wikipedia.org/wiki/Transclusion — accessed 2026-06-25. 2 3

  2. "Transclusion." Wikipedia. https://en.wikipedia.org/wiki/Transclusion — accessed 2026-06-25. 2 3

  3. "Transclusion." Wikipedia. https://en.wikipedia.org/wiki/Transclusion — accessed 2026-06-25. 2

  4. "Embed files." Obsidian Help. https://help.obsidian.md/embeds — accessed 2026-06-25.

  5. "Embed files." Obsidian Help. https://help.obsidian.md/embeds — accessed 2026-06-25.

  6. "Embed files." Obsidian Help. https://help.obsidian.md/embeds — accessed 2026-06-25. 2

  7. "Embed files." Obsidian Help. https://help.obsidian.md/embeds — accessed 2026-06-25. 2 3

  8. "When transcluding a section, include the source page's title in the transclusion display." Obsidian Forum, 2025-02-25. https://forum.obsidian.md/t/when-transcluding-a-section-include-the-source-pages-title-in-the-transclusion-display/97295 — accessed 2026-06-25.

  9. "AsciiDoc include directive." Asciidoctor Docs. https://docs.asciidoctor.org/asciidoc/latest/directives/include/ — accessed 2026-06-25.

  10. "AsciiDoc include directive." Asciidoctor Docs. https://docs.asciidoctor.org/asciidoc/latest/directives/include/ — accessed 2026-06-25.

  11. Voit, Karl. "Potential Markdown Data Loss When You Will Move Away from Obsidian." 2026-04-08. https://karl-voit.at/2026/04/08/obsidian-md-portability/ — accessed 2026-06-25. 2

  12. Voit, Karl. "Potential Markdown Data Loss When You Will Move Away from Obsidian." 2026-04-08. https://karl-voit.at/2026/04/08/obsidian-md-portability/ — accessed 2026-06-25. 2

  13. Ango, Steph. "File over app." 2023-07-01. https://stephango.com/file-over-app — accessed 2026-06-25.

  14. Ango, Steph. "File over app." 2023-07-01. https://stephango.com/file-over-app — accessed 2026-06-25.