{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "jekyll:page:4.4",
  "title": "Jekyll front matter v4.4",
  "description": "The predefined front matter variables Jekyll itself defines, as of 4.4. The list is deliberately short because Jekyll's is: three global variables and four more for posts. Everything else you see in a Jekyll site — `nav_order`, `parent`, `has_children`, `redirect_from` — comes from a theme or a plugin, not from Jekyll, so it is tolerated rather than described here. Nothing is required: an empty `---` block is valid, and it is the block's *presence*, not its contents, that marks a file for processing. The check that earns its keep is `published`, which must be a boolean — `published: \"false\"` is a non-empty string, every string is truthy, and the post publishes anyway. See https://jekyllrb.com/docs/front-matter/",
  "type": "object",
  "additionalProperties": true,
  "$defs": {
    "termList": {
      "description": "One term, or several. Jekyll accepts a YAML list or a space-separated string.",
      "if": { "type": "array" },
      "then": { "items": { "type": "string" } },
      "else": { "type": "string" }
    }
  },
  "properties": {
    "layout": {
      "type": ["string", "null"],
      "description": "The layout file to wrap this document in, without its extension. `null` or `none` suppresses the layout entirely, which is why the null type is allowed."
    },
    "permalink": {
      "type": "string",
      "description": "Overrides the built URL for this document."
    },
    "published": {
      "type": "boolean",
      "description": "`false` keeps the document out of the generated site. Must be a real boolean: a quoted `\"false\"` is truthy and publishes."
    },
    "date": {
      "type": "string",
      "minLength": 1,
      "description": "Overrides the date taken from the post's file name, and so its ordering and permalink. A string — Jekyll accepts a date with an optional time and offset, so no single format applies."
    },
    "category": {
      "$ref": "#/$defs/termList",
      "description": "The post's category. The singular and plural keys both work and are additive, which is how a post ends up filed twice."
    },
    "categories": {
      "$ref": "#/$defs/termList",
      "description": "One or more categories the post belongs to."
    },
    "tags": {
      "$ref": "#/$defs/termList",
      "description": "One or more tags on the post."
    }
  }
}
