# Blog Content Bridge The public Obsidian vault is the writing source of truth. The Astro sites are deployable targets that receive copied Markdown and assets. ## Folder Map | Vault folder | Astro content folder | Public domain | | ---------------------- | ------------------------------------------- | ------------------------------------ | | `blogs/01-research` | `sites/research/src/content/research` | `https://research.neeldhara.blog` | | `blogs/02-vibes` | `sites/vibes/src/content/vibes` | `https://vibes.neeldhara.blog` | | `blogs/03-puzzles` | `sites/puzzles/src/content/puzzles` | `https://puzzles.neeldhara.blog` | | `blogs/04-reflections` | `sites/reflections/src/content/reflections` | `https://reflections.neeldhara.blog` | | `blogs/05-poetry` | `sites/poetry/src/content/poetry` | `https://pieces.neeldhara.blog` | | `blogs/06-reviews` | `sites/reviews/src/content/reviews` | `https://reviews.neeldhara.blog` | | `blogs/07-art` | `sites/art/src/content/art` | `https://art.neeldhara.blog` | | `blogs/micro` | `../micro/src/content/blog` | `https://micro.neeldhara.blog` | The installed Obsidian plugin lives at: ```text /Users/neeldhara/obsidian/public/.obsidian/plugins/microblog-sync ``` The versioned copy lives in this repo at: ```text obsidian-plugin/microblog-sync ``` The plugin id remains `microblog-sync`, but Obsidian shows it as **Blog Family Sync**. ## Post Layout Use one folder per post: ```text blogs/01-research/example-post/index.md blogs/01-research/example-post/diagram.png ``` The folder path becomes the public URL: ```text blogs/01-research/example-post/index.md https://research.neeldhara.blog/example-post/ ``` Nested folders are supported: ```text blogs/04-reflections/exportober/2021/index.md https://reflections.neeldhara.blog/exportober/2021/ ``` ## Frontmatter Every public post needs the fields required by the Astro content schema: ```yaml --- title: "Post title" description: "One or two sentence summary for cards and RSS." pubDate: "2024-05-10" authorName: "Neeldhara" --- ``` Optional fields currently understood by the sites include `updatedDate`, `image`, and `authorImage`. Prefer colocated images in the body over remote stock images. Use `main-feature: true` on at most one post per blog to pin a fixed featured post on the `neeldhara.blog` homepage. The homepage still shows the two newest non-featured posts for that blog, sorted by `pubDate`. The Quarto import also preserved `sourceCategories` and `sourcePath`. Astro strips unknown schema fields, but they are useful in Obsidian for provenance. ## Markdown Conventions Standard Markdown headings, lists, links, tables, code fences, footnotes, and raw HTML are preserved. Use colocated relative assets: ```markdown ![Caption](image.png) ``` Quarto image attributes such as `{width=70%}` were removed during import. Going forward, use normal Markdown and let Astro CSS handle presentation. ### Callouts Write callouts as portable blockquotes. The type controls the visual styling, but it does not create a visible heading by itself. This is the canonical form for a titleless note: ```markdown > **Note** > > Text of the callout. ``` Supported labels are `Note`, `Tip`, `Warning`, `Caution`, and `Aside`: ```markdown > **Warning** > > This point needs attention. ``` Obsidian-style bracket labels also work. A plain bracket label is still titleless: ```markdown > [!tip] > This is a tip. ``` To show a heading, put it explicitly inside the bracket after `:` or `|`: ```markdown > [!tip: Useful observation] > > Text of the callout. > [!warning|Check this assumption] > > This point needs attention. ``` The text after `:` or `|` is treated as the only callout heading. Do not write `> [!tip] Useful observation` for a heading; that form is interpreted as a titleless tip whose body begins with β€œUseful observation”. This keeps the Markdown unambiguous across Astro, Pandoc, and LaTeX. For quick writing, a few leading emoji markers are recognized and stripped: ```markdown > πŸ“ This becomes a note. > πŸ’‘ This becomes a tip. > ⚑ This also becomes a tip. > ⚠️ This becomes a warning. ``` In Astro these render as `