JAAMD

Frontmatter

Frontmatter is optional. Markdown without it works as-is: the filename sets the order and the URL, and the first # Heading sets the title. Each field below overrides something the file tree or the body already supplies.

---
title: Images & Videos
label: Media
translationKey: media
description: Add accessible images and embedded videos.
keywords: [markdown, media]
order: 5
draft: false
author: Ada Lovelace
ogImage: /og/media.png
lastUpdated: 2026-09-12
---

# Images and videos
Field Type Effect
title string Page title, everywhere the page is named
label string Shorter name, in navigation only
translationKey string Pairs this page with its translations
description string Description metadata and llms.txt
order number Replaces the number from the filename prefix
draft boolean Kept in development, left out of the build
keywords string[] Keyword metadata, and weight in search
author string Author metadata
ogImage string | false Social image for this page
lastUpdated date Modification date in metadata

Fields JAAD does not know are ignored, so frontmatter your own tooling reads can sit alongside these. A wrong type is a build error.

Naming

title names the page in metadata, breadcrumbs, search and the table of contents. The filename still determines the URL, whatever the title says.

label is for pages whose title is too long for a sidebar entry. It changes the sidebar, the mobile selectors and the previous/next links, and nothing else:

---
title: Frequently Asked Questions
label: FAQ
---

Without title, JAAD uses the first # Heading, then the filename.

translationKey pairs a page with its translations when their slugs differ. See Languages.

Ordering and drafts

order replaces the number a filename prefix supplies, so a page can move without being renamed. Inside a chapter it moves the page within that chapter; the chapter keeps the order of its own directory prefix.

---
order: 0
---

A page ordered ahead of every other becomes the opening page at routeBase.

draft pages are served in development and left out of production builds: they disappear from routes, navigation, search, the sitemap and llms.txt. The file tree is still validated as a whole, so a draft that would collide with another page is reported while it is being written.

Metadata

description is used for the description metadata, Open Graph, structured data and llms.txt. Without it, JAAD uses an excerpt from the page, followed by the site description.

keywords become <meta name="keywords"> and the keywords of the page’s structured data, and they rank a page in search below its chapter and above its body. They are metadata, not a visible list: JAAD renders nothing for them, though a frame of your own can, through page.data.

author becomes <meta name="author"> and the structured-data author.

ogImage overrides the site’s social image for one page. It takes a public path or an absolute URL, and false removes the image from that page. Local paths need site to resolve, as elsewhere.

lastUpdated takes a date. It becomes article:modified_time and dateModified in structured data, and is shown under the page, formatted for its language.