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
49 lines
2.4 KiB
Markdown
49 lines
2.4 KiB
Markdown
# 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 `type` field says what it is. The types, their fields and their
|
|
folders are defined once, in `packages/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.
|