Jekyll page schema
Built-in id: jekyll:page:4.4
Published at https://hawkeyexl.github.io/manni/schemas/jekyll/4.4.json. A
$schema that names this URL resolves to the bundled copy, with no network
call.
jekyll:page:4.4 checks the front matter Jekyll 4.4 reads from a .md or
.markdown page. It requires nothing. In Jekyll it is the presence of the
--- block, not its contents, that marks a file for processing. It is one of
the platform schemas, which say what
a generator accepts rather than what your team agreed.
| Property | Value |
|---|---|
| Id | jekyll:page:4.4 |
| Title | Jekyll front matter v4.4 |
| Files it fits | .md, .markdown |
| Dialect | Draft 2020-12 |
| Required fields | None |
| Additional properties | Allowed (additionalProperties: true) |
| Reference kind | builtin |
| On by default | No |
| Upstream reference | Front matter |
| JSON | jekyll/4.4.json |
Use it
Section titled “Use it”Jekyll keeps pages at the repo root, so an override names the directory the schema covers:
meta: overrides: - files: "_posts/**" schemas: - jekyll:page:4.4For a one-off run, pass the id directly:
manni meta validate _posts/ -s jekyll:page:4.4Fields
Section titled “Fields”Deliberately the smallest built-in, because Jekyll’s own contract is small: three global variables and four more for posts.
| Field | Type | Notes |
|---|---|---|
layout | string | null | null or none suppresses the layout, so null is allowed. |
permalink | string | Overrides the built URL. |
published | boolean | false keeps the document out of the site. |
date | string | Overrides the date parsed from the file name. |
category, categories, tags | string | string array | A YAML list or a space-separated string. |
The check worth having is published. published: "false" is a string, every
string is truthy, and the post you meant to hold back goes live.
Additional properties
Section titled “Additional properties”Allowed. A key Jekyll does not define passes unchecked.
Example page
Section titled “Example page”A post carrying every variable Jekyll defines. This is
test/fixtures/platform/jekyll-valid.md, and it passes.
---layout: postpermalink: /guides/deploy/published: truedate: 2026-06-25 09:30:00 +0200categories: [guides, deploy]tags: ci---A common mistake
Section titled “A common mistake”A quoted published flag is a string, and Jekyll publishes the post anyway:
---layout: postpublished: "false"---✗ test/fixtures/platform/jekyll-bad-published.md /published must be boolean (line 3) [jekyll:page:4.4]
1 file checked, 0 passed, 1 failed, 1 errorDrop the quotes, so the value is the boolean false.