Blog
The Blog module is your date-sorted feed — articles, updates, announcements, whatever you want to share.
Anatomy of a Blog Post
- Title
The filename of the note. You'll be asked for it when creating a post via the plugin commands. - Description
A short summary set in thedescriptionfield of the frontmatter. It doesn't appear in the post body itself, but it shows up everywhere else: in the list of posts on your site, in search engine results, and in social media previews when someone shares your link. A good description makes your publication look polished and helps readers decide whether to click through — don't skip it! - Cover
An optional image is displayed at the top of the post, in post listings, and used as an OG image. Can be a vault image or an external URL. Although we highly recommend using internal images. UseDraft42: Set cover imagecommand to set it, with optional credit text and link for attribution. - Body
Everything below the frontmatter. See the Content section for formatting, images, code blocks, and other supported elements.
Post Lifecycle
Every post has a status in its frontmatter that controls where it lives and whether it's public:
- Idea — early stage, not publishable
- Draft — work in progress, can be previewed on your site but not visible to readers
- Published — live on your site
- Archived — removed from public view
To move a post between stages, just change the status field. The plugin automatically moves the file to the matching folder.
Only Published and Archived statuses affect your site. Idea and Draft are just organizational labels for your writing process — treat them as suggestions. You can start everything as a Draft and ignore Ideas entirely if that suits your workflow. If there's demand, we're open to making pre-published statuses configurable so you can define your own.
Folder Structure
With the "Manage site folders" automation enabled, the plugin organizes posts by status:
My Website/
└── Blog/
├── Ideas/
│ └── Post Title/
├── Drafts/
│ └── Post Title/
├── Published/
│ └── 2025-12-19 - Post Title/
└── Archive/
└── 2025-06-01 - Post Title/Posts with a posted on date get a date prefix in their folder name so they sort nicely. The Blog folder name matches the module name in your site settings.
Each post lives in its own folder — the markdown file and all its assets are kept together:
Post Title/
├── Post Title.md
└── images/
├── cover-hero.a1b2c3d4.jpg
├── post-diagram.e5f6g7h8.png
└── ...Creating a Post
Open the command palette (Ctrl/Cmd + P) and run one of:
Draft42: Create new blog post idea— creates a post withIdeastatusDraft42: Create new blog post draft— creates a post withDraftstatus
The plugin asks for a title and description, then creates a note with pre-filled frontmatter.
Adding Images
- Cover image — run
Draft42: Set cover imageto pick a vault image or paste an external URL. You can optionally add credit text and a link for attribution. The cover appears at the top of the post, in post listings, and is used as an OG image. - Inline images — embed images directly in your post body. See Images for details.
- Galleries — display a collection of images in a grid layout. See Galleries for details.
All images are stored in the post's images/ subfolder — the plugin handles this automatically when you add assets via the provided commands. If you've added images manually or they ended up outside the images/ folder, run Draft42: Normalize images command to reorganize them into the correct location with consistent filenames.
Frontmatter
Here are the frontmatter fields the plugin manages:
| Field | Description |
|---|---|
status | Post lifecycle stage: Idea, Draft, Published, or Archived |
description | Short excerpt shown in post listings and SEO meta tags |
posted on | Publication date (YYYY-MM-DD). Auto-assigned on first publish if not set. |
cover | Cover image filename or external URL |
cover credit text | Attribution text for the cover image |
cover credit link | Attribution link for the cover image |
slug | Custom URL slug. Auto-generated from the title if not set. |
tags | List of tags |
If you created a note manually or its frontmatter looks out of order, run Draft42: Normalize frontmatter. It sorts all properties into a consistent order and adds any missing fields.
The plugin also stores internal metadata in fields prefixed with [d42]. These are hidden by default — you'll only see them if you enable "Expose internal metadata" in the plugin's debugging settings. Don't edit them manually — changing these values can corrupt the plugin's sync state and cause publishing issues.
Publishing
When you're ready, run Draft42: Preview and publish command. The plugin saves a draft version of your post and opens it in your browser on your site's preview domain so you can check it out before making it public.
If you use other third-party Obsidian plugins, the Obsidian team recommends using your primary browser for sensitive tasks and websites that require login instead of the web viewer for security reasons.
During publishing, the plugin adds block ID markers (like ^a1b2c3) to every block in your post. We know they can be a bit noisy, but they power useful features: readers and other posts can link directly to a specific paragraph or heading, they enable automatic table of contents generation, and the server can diff changes between versions to show exactly what was updated. You can adjust their opacity or disable them entirely in the plugin settings — though we recommend keeping them on.
After publishing, when you return to the note, the plugin syncs the post's status and publication date back from your site. If you published a Draft, the status field updates to Published and a posted on date is filled in if it wasn't already set — which also triggers the folder automation, moving your post from Drafts/ to Published/.