Overview
Docs β Publishing Guide
- Updated
- March 21st 2026
A read-only documentation site for sharing Meridia product specs and strategy docs with partners and collaborators. Docs are authored in Obsidian, filtered and transformed at build time, and published deliberately.
- Site: Cloudflare Pages (TBD URL)
- Access: Cloudflare Access β email-based one-time PIN, no account required
- Codebase:
~/Code/meridia/docs
How to Publish a Doc
Add publish: true to the frontmatter of any doc you want live:
---
type: feature
status: scoping
priority:
- p0
publish: true
---
Docs without publish: true are excluded. They never touch the docs site.
Publishing Workflow
# 1. Edit docs in Obsidian, add publish: true to what you want live
# 2. From the docs project:
cd ~/Code/meridia/docs
npm run preprocess # reads vault, transforms, generates pages
npm run dev # preview at localhost:3000
# 3. When it looks good:
git add .
git commit -m "publish: accommodations update"
git push # Cloudflare auto-deploys
What Gets Transformed
The preprocess script handles Obsidian-specific syntax so your partner sees clean docs:
| Obsidian Syntax | What Happens |
|---|---|
{% locked-link label="π" title="Published Doc" tooltip="This document hasn't been published yet." /%} | Becomes a working internal link |
{% locked-link label="π" title="Unpublished Doc" tooltip="This document hasn't been published yet." /%} | Renders as a greyed lock icon with tooltip |
{% locked-link label="π" title="display text" tooltip="This document hasn't been published yet." /%} | Pipe syntax preserved β display text shown |
{% highlight %}highlighted text{% /highlight %} | Renders as yellow highlight |
text | Color syntax stripped, text preserved |
| Stripped entirely |
| `` | Stripped entirely |
Sidebar Navigation
The left sidebar is auto-generated from your vault folder structure. The mapping is controlled by _publish.config.json:
| Vault Folder | Sidebar Label |
|---|---|
Features/ | Product |
Competition/ | Competition |
Ideas/ | Ideas |
Specs/ | Specs |
Wiki/ | Wiki |
| Root-level files | Overview |
Excluded folders (never published): Archived/, Docs/, Fly Tyers/
Frontmatter Card
Feature docs with structured frontmatter (status, phase, priority, owner, complexity, estimate) render a metadata card at the top of the page. Fields that are missing are simply hidden.
Locked Links
Wikilinks pointing to unpublished docs show as a greyed-out lock icon with the tooltip "This document hasn't been published yet." This lets your partner see the shape of connected docs without exposing unpublished content.
Configuration
All publish settings live in _publish.config.json in this folder. You can change:
folder_labelsβ sidebar section namesroot_labelβ label for root-level files (currently "Overview")strip_frontmatter_keysβ frontmatter fields hidden from the published metadata cardexclude_foldersβ folders that are never published regardless of flagsexclude_filesβ specific files to always excludelocked_link_label/locked_link_tooltipβ how unpublished links appear
Access Control
Managed via Cloudflare Access (free tier, up to 50 users):
- Cloudflare dashboard > Zero Trust > Access > Applications
- Add/remove email addresses as needed
- Visitors enter their email, get a one-time PIN β no account required
Tips
- The first
# headingin your doc becomes the page title β make sure it's there - The right sidebar TOC is generated from h1/h2/h3 headings β collapsible sections
- Search is built in (Cmd+K) and indexes all published docs automatically
- The site is a static export β all content is baked in at build time, no server