Skip to main content

Posts

These commands apply to the current local project (directory with .micropage/). Posts are authored as local Markdown files in the project's posts/ folder (scaffolded by micropage projects create).

Post files

Each post is a file at posts/<name>.md: YAML front-matter followed by a Markdown body.

---
title: Hello, world
slug: hello
description: A short summary for the archive, meta description, and og tags.
visibility: listed
hero: ./hello.jpg
list: newsletter
subject: Hello, world!
preview: The first post on this site.
---

Body content goes here as standard Markdown.

![alt text](./photo.png)
FieldDescription
titleRequired.
slugOptional. Defaults to the filename minus a leading YYYY-MM-DD- date prefix. Unique per project.
descriptionWeb summary — shown in the /content archive, meta description, and og tags.
visibilitylisted (default, appears in the site's /content index) or unlisted (has a page but isn't listed).
heroOptional. A companion image file named like the post (e.g. hello.jpg next to hello.md), an asset filename, or an absolute URL.
listA newsletter form name — the send target. Required to email the post on publish.
subjectEmail subject. Defaults to the title.
previewEmail preheader / inbox preview text.

Local image references in the body (![alt](./photo.png)) are auto-uploaded and rewritten to hosted URLs on push.

push

Save local posts as drafts. Upserts each posts/*.md file as a post row (content only) — does not publish or send email.

micropage posts push

Reports saved (draft) for posts not yet published, and saved (live) for posts already published (edits to a live post go live immediately). Remote posts with no matching local file are reported as drift but are never deleted.

publish

Put a post live on the web, and email it if it has a list:.

# Publish one post
micropage posts publish hello

# Publish all local posts
micropage posts publish

If the post's front-matter sets list:, publishing sends the newsletter email to that list. Re-running publish on an already-published post re-sends the email.

unpublish

Take a post off the web.

micropage posts unpublish hello

Removes the post's /content/<slug> page. The post itself is not deleted — it remains as a draft.

pull

Write remote posts down to local posts/*.md files.

micropage posts pull

The database is the source of truth for posts; run this before editing to avoid clobbering remote changes.

list

List the project's posts.

micropage posts list

Shows slug, title, visibility, emailed, status (Draft/Published), and created date.

rm

Delete a post entirely (remote).

micropage posts rm hello

Typical workflow

# Write a new post
nano posts/hello.md

# Save as a draft
micropage posts push

# Go live and email the list (if `list:` is set)
micropage posts publish hello

# Later: edit the file, push the update (goes live immediately)
nano posts/hello.md
micropage posts push

# Re-send the newsletter for the update
micropage posts publish hello

# Take the post down (keeps it as a draft)
micropage posts unpublish hello