Ovellum v0.12.0
English

Edited

Drafts#

A draft is a page you're still working on: visible while you write and preview locally, but never published to production. Mark a page (or a whole folder) as a draft, and Ovellum shows it in ovellum dev with a clear ribbon and a sidebar badge — then drops it from ovellum build.

Mark a draft#

A single page — frontmatter draft: true:

---
title: New feature guide
draft: true
---

# New feature guide

Still writing this…

A whole folder_meta.json "draft": true (cascades to everything inside, so you can draft an entire new section at once):

{
  "title": "Upcoming",
  "draft": true
}

That's it — co-located with your content, toggled with one line, and tracked in git. (No separate _drafts/ folder to move files in and out of.)

What happens#

ovellum dev / watchovellum build (production)
Draft pagesShown — with a ribbon + sidebar badgeExcluded
Sitemap / RSSExcludedExcluded
Build outputPrints "Excluded N draft page(s)…"

It's automatic by command — no flag to remember. Overrides when you need them:

  • ovellum build --drafts — include drafts in a build (e.g. to preview a production build with them).
  • ovellum dev --no-drafts — hide drafts locally to see exactly what production will publish.

A draft page in dev shows a band across the top — "Draft — visible locally only, never published" — and every draft gets a Draft badge in the sidebar, so there's no mistaking work-in-progress for live content.

Drafts are unpublished, not secret#

A draft lives in your source, so anyone with access to the repository sees it — that's the point: it's backed up, reviewable in a pull request, and visible to your team. The draft system controls what gets published, not who can read the source. If a page must be truly private, don't commit it (add it to .gitignore) — but then you lose the backup and sharing.

draft vs ignoreFiles#

Two different tools:

  • draft — the page is content: parsed, rendered, and previewable in dev; just held back from production until you publish it.
  • site.ignoreFiles — full exclusion. The file is never parsed or rendered, in any environment. Use it for content Ovellum shouldn't touch at all.

Reach for draft when you're writing something you intend to ship; reach for ignoreFiles when you want Ovellum to leave a file alone entirely.

Edit this page