mirror of
https://github.com/Patiun/com.gregkilmer.www.git
synced 2026-11-07 19:58:24 +00:00
a2f723ca2d
Phase 1 of the functional design plan. - Move the old site into legacy/, unchanged, for reference. It still builds from there until cutover. - Add packages/schema: the one definition of all 20 note types, with field titles and descriptions, note and vault checks, and JSON Schema export so later editing tools and the MCP server share it. - Add vault-kit: Obsidian templates generated from the schema, and the Site guide for 24.01_PersonalWebsite. - Add tools/migrate: turns the legacy JSON, collections, store data and page text into 545 Site folder notes and 84 images, and checks the result with the schema. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
2.4 KiB
2.4 KiB
Content model
Everything the site shows is a Markdown note with YAML frontmatter in the
vault at 20-29_Makerspace/24_Homelab_Infrastructure/24.01_PersonalWebsite/Site/.
24.02_PatiunWebsite is reserved for the Patiun site later.
Rules every note follows
- A note's
typefield says what it is. The types, their fields and their folders are defined once, inpackages/schema/src/types.ts. - A note is live only when
publish: true. Missing means false. - Links between notes are Obsidian wikilinks,
[[Note name]], in frontmatter or in the body. A link resolves by file name, so file names are unique across the whole Site folder. - Images live in
Site/_attachments/and are linked the same way,[[galaxy-dice.jpg]], or are full https URLs. - Folders starting with
_hold templates and attachments, never notes. Files starting with_are single settings notes:_site.md,Now/_kinds.md,Store/_settings.md. - Slugs come from the title unless a note sets
slug. They are unique within a type.
Note types
| Type | Folder | Notes |
|---|---|---|
post |
Posts/ |
Blog posts. postType: case study also appears on the Work page. |
library-item |
Library/<Medium>/ |
Books, light novels, webnovels, manga, manhwa, video games, anime, TV, movies. |
board-game |
Shelf/ |
The Shelf. Players and play time sync from BoardGameGeek by bggId. |
craft, station, tool, make |
Workshop/… |
The Workshop. |
tabletop-system, campaign, card-game, deck |
Tabletop/… |
Tabletop. Magic decks sync from Archidekt. |
experience, skills, education |
Resume/… |
The resume page and its PDF. |
status, status-kinds |
Now/ |
The status log behind Now, the Landing strip and Now chips. |
product-line, store-settings |
Store/… |
The Store. |
site-settings |
_site.md |
Name, tagline, location and social links. |
page |
Pages/ |
The written introduction for a page. |
Each field's title and description live in the schema too, so the
JSON Schema export (npm run schema:json) can drive a form or explain a field
to an agent.
Designed for editing tools
The content service will be the only writer apart from Obsidian. It will
expose one write API, built on the schema's checkNote, writeNote and
checkVault. The MCP server for agents is one client of that API; the admin
page is another; any editing tool built later is a third. None of them define
fields or rules of their own.