--- title: Conventions type: note status: draft draft: true --- # Frontmatter | Field | Values | Notes | | --- | --- | --- | | `type` | `archive` \| `canvas` \| `note` | Required | | `source` | `twitter` \| `discord` \| `youtube` \| `odysee` \| `article` \| `original` \| `other` | Archive + media notes | | `source_url` | URL | This note's post, not always the thread root | | `author` | string | Display name | | `handle` | string | Username without `@` | | `post_id` | string | Twitter status id (spine root or branch root) | | `date` | `YYYY-MM-DD` | Original publication date | | `archived` | `YYYY-MM-DD` | When you captured it | | `status` | `draft` \| `review` \| `published` | Human workflow | | `draft` | `true` \| `false` | Quartz omit-from-site flag | | `tags` | list | Ingest: `archive`, `twitter`, handle. Topics by hand | | `description` | string | Search / OG preview | | `aliases` | list | Extra names | | `in_reply_to` | string | Foreign parent of a spine, if any | | `parent_post_id` | string | Branch notes only: post this branch replies to | `draft: true` hides the page from the built site. A public GitHub repo still contains the file. Private material goes in `private/` (gitignored). # Folders | Path | Published | Role | | --- | --- | --- | | `archive/` | yes | Primary sources | | `archive/threads///` | yes | One Twitter thread. `index.md` is the author's chain | | `canvases/` | yes | `.canvas` maps | | `notes/` | yes | Authored writing | | `templates/` | no | Templater / core templates | | `meta/` | no | Vault rules, local attachments | | `assets/` | no, gitignored | Working media | | `secrets/` | no, gitignored | Cookies and image-host credentials | | `scripts/` | no | Tracked tooling. Quartz-ignored | | `private/` | no, gitignored | Never publish, never push | | `site/` | no, gitignored | Local Quartz clone (own remotes) | | `publish/` | no | Tracked Quartz overlay | A thread folder holds `index.md` (spine) and one markdown file per off-spine reply tree. Reading guide: `notes/How threads are organized.md`. # Images Use the original host URL (`pbs.twimg.com`, `video.twimg.com`). A local copy stays under `assets/` with the same relative path as the archive. `tw.py backup` may copy that tree to the configured store. `tw.py fallback` uploads one file after the origin is gone. `media.json` keeps every URL. Do not commit local binaries for published notes. ```md ![](https://pbs.twimg.com/media/EXAMPLE?format=png&name=orig) ``` # Video YouTube / tweet (Quartz OFM): ```md ![](https://www.youtube.com/watch?v=VIDEO_ID) ![](https://youtu.be/VIDEO_ID) ![](https://x.com/user/status/ID) ``` Odysee (raw iframe; survives the static build): ```html ``` Get the embed URL from Odysee share → embed. Do not use the watch URL as the iframe `src`.