Entity Pages

Per-entity detail pages at /knowledge/[entityId] — notes, neighbors, backlinks, and source links.

Entity Pages

Every node on the knowledge map has a corresponding detail page at /knowledge/[entityId]. It's the stable URL you can share, bookmark, or link to from blog posts.

What's on the page

SectionSource
Title + source URLEntity metadata (falls back to the arXiv URL when sourceUrl is empty)
NotesObsidian-flavored Markdown from the backend knowledge proxy — YAML frontmatter is stripped before render
Neighbors8 k-NN entities ranked by embedding similarity, linked to their own pages
BacklinksEntities whose notes mention this one via wikilinks
Copy markdownButton that copies the rendered Markdown for pasting into Obsidian, Notion, etc.

URL shape

Entity IDs are URL-safe slugs. Common patterns:

PrefixMeaningExample
repo-GitHub repository/knowledge/repo-benzsevern-goldencheck
paper-arXiv / research paper/knowledge/paper-2024-bpid-benchmark
dataset-Kaggle / UCI dataset/knowledge/dataset-nc-voter-registration
concept-Topical cluster (c-TF-IDF)/knowledge/concept-fellegi-sunter

Deep-linking from the map

Every entity page links back to the map with the ?focus query param:

/knowledge?focus=repo-benzsevern-goldencheck

The map pans + selects the dot on mount. Useful for "show me where this sits in the graph" links from blog posts.

Rendering pipeline

Notes come from the backend as raw Obsidian Markdown. Before rendering:

  1. YAML frontmatter stripped — the --- title: ... --- block is removed to avoid showing metadata twice
  2. Wikilinks converted[[repos/X/note|X]]/knowledge/repo-X per the wikilinks doc
  3. Code blocks highlighted — via rehypeHighlight

Markdown components are currently duplicated between /knowledge/[entityId] and /audit/[id]. If we grow a third surface, they should get extracted to a shared <MarkdownNote> component.

  • Map — the 2D view these pages link back into
  • Wikilinks — how notes cross-reference each other