archival 0.18.3

The simplest CMS in existence
Documentation
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://archival.dev/schemas/archival.schema.json",
  "title": "Archival manifest",
  "description": "Site-level configuration for an archival site, read from archival.toml at the site root.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "upload_prefix": {
      "description": "this string is appended to all upload paths, used for differentiating sites using the same uploads_url",
      "type": "string"
    },
    "uploads_url": {
      "description": "the host url of the CDN used for uploads",
      "type": "string"
    },
    "archival_version": {
      "description": "an optional version string to indicate the minimum version of archival this site is compatible with",
      "type": "string"
    },
    "prebuild": {
      "description": "a list of shell commands to run before building this site",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "site_url": {
      "description": "a url that will be available to this site's liquid files as site_url, which can also be used by the archival editor",
      "type": "string"
    },
    "site_name": {
      "description": "a name for this site, used by the archival editor and other machine readers of this manifest",
      "type": "string"
    },
    "object_file": {
      "description": "the file that archival uses to read the objects schema for this site",
      "type": "string",
      "default": "archival_objects.toml"
    },
    "pages": {
      "description": "the folder that archival looks for page liquid files in",
      "type": "string",
      "default": "pages"
    },
    "objects": {
      "description": "the folder that archival looks for object toml files in",
      "type": "string",
      "default": "objects"
    },
    "schemas_dir": {
      "description": "the folder that the archival schemas command generates schemas into",
      "type": "string",
      "default": "schemas"
    },
    "build_dir": {
      "description": "the folder that archival builds your site into",
      "type": "string",
      "default": "dist"
    },
    "static_dir": {
      "description": "the static dir that is copied directly to your build dir",
      "type": "string",
      "default": "public"
    },
    "layout_dir": {
      "description": "the folder that archival reads layouts from",
      "type": "string",
      "default": "layout"
    },
    "metadata": {
      "description": "arbitrary string metadata about this site, used by the archival editor and other machine readers of this manifest",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "editor_types": {
      "description": "a dictionary of custom-defined editor types, keyed by the type name used in archival_objects.toml",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/editorType"
      }
    }
  },
  "definitions": {
    "editorType": {
      "type": "object",
      "additionalProperties": false,
      "required": ["type"],
      "properties": {
        "type": {
          "description": "the type that this custom type is backed with. May be a built-in archival type, or the name of another editor type defined in this manifest.",
          "anyOf": [
            {
              "$ref": "#/definitions/archivalFieldType"
            },
            {
              "type": "string"
            }
          ]
        },
        "editor_url": {
          "description": "a URL to load a custom editor from. If unspecified, will use the underlying type's editor",
          "type": "string"
        },
        "validate": {
          "description": "a list of validations to run on fields of this type",
          "type": "array",
          "items": {
            "anyOf": [
              {
                "description": "a regular expression to run on this field's string representation",
                "type": "string"
              },
              {
                "description": "a regular expression to run on a path inside a nested field (meta, upload, video, audio or image)",
                "type": "object",
                "additionalProperties": false,
                "required": ["path", "validate"],
                "properties": {
                  "path": {
                    "description": "a path inside a nested field to validate",
                    "type": "string"
                  },
                  "validate": {
                    "description": "a regular expression to run on this field at the specified path",
                    "type": "string"
                  }
                }
              }
            ]
          }
        }
      }
    },
    "archivalFieldType": {
      "type": "string",
      "enum": [
        "string",
        "number",
        "boolean",
        "date",
        "markdown",
        "image",
        "video",
        "audio",
        "upload",
        "meta",
        "secret"
      ]
    }
  }
}