Skip to content

export obsidian: node notes are bare (frontmatter + Connections only) — wire each note to its source content #1968

Description

@MBasithC

Context

Docs-only corpus: 167 markdown pages (the official Claude Code docs, ~650K words) → 1,490 nodes / 1,916 edges / 149 communities, exported with the Obsidian exporter. graphifyy 0.9.16 on Windows.

Problem

Every exported node note contains only:

  • frontmatter (source_file, type, community, tags)
  • the H1 title
  • ## Connections (wikilinked edges)
  • a tag line

There is no substance from the source in the note itself. The graph structure is excellent, but browsing the vault every note reads as a bare stub — a human (or an agent hopping between notes) has to leave the vault to learn anything about the node. source_file exists in frontmatter but is a dead string, not a link to anything inside the vault.

Workaround we run on top of every export

A post-processing pass that:

  1. Copies each source doc into the vault under sources/ as _src_<flattened-path>.md (collision-safe flattened names, boilerplate stripped, frontmatter added).
  2. Inserts a callout after each node note's H1:
> [!info] Source doc
> [[_src_en_best-practices|en/best-practices.md]] - [read on docs site](https://code.claude.com/docs/en/best-practices)

Result: 1,490/1,490 notes wired, 0 unresolved links — and the vault becomes genuinely usable standalone. But the exporter rewrites the notes on every re-export, so the pass has to be re-run each time.

Feature request

An opt-in flag on the Obsidian export, e.g. --with-sources, that:

  • copies source files into the vault (sources/, collision-safe names) and turns each note's source_file frontmatter into a real wikilink/callout to that source note;
  • for code corpora, the analog would be embedding the node's defining snippet (or linking a per-file source note).

Even just "make source_file a resolvable link" would remove most of the pain. Happy to share the full post-processing script if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions