Luna SSG is driven by metadata (Frontmatter). By changing a few lines at the top of your Markdown file, you can completely change how and where your content appears.
This guide covers the core logic of the engine as of v1.6.
In Luna SSG, these two fields serve different purposes:
section (Structural)The section field determines which block on the Homepage your post will appear in.
id in the sections list within your _config.yml.section: blog or section: tech.category (Semantic)The category field is used for grouping posts on the Archive page.
section: blog./archive.html.You can choose between two built-in layouts:
template: post (Default):
template: page:
Luna SSG supports "Daring Fireball" style link posts. If you add a link field, the post title on the homepage and archive will point directly to that URL.
title: "Check this cool site"
link: "https://example.com"
A small arrow (→) is automatically added to the title to indicate an external destination.
By default, the engine creates a URL based on your title (e.g., Hello World -> hello-world.html). However, you can override this:
slug: my-custom-url to set a specific filename.published: false to hide the post from all lists (useful for drafts), though the HTML file will still be generated if you want to preview it via a direct link.Here is a complete example of a well-configured post:
---
title: "My New Project"
date: 2026-02-10
section: blog
category: Projects
location: "Ozersk, Russia"
slug: cool-project-2026
published: true
template: post
---
Happy blogging with Luna SSG!