{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "additionalProperties": false,
  "id": "https://json.schemastore.org/remarkrc.json",
  "properties": {
    "plugins": {
      "description": "The plugins field, related to plugins in options, has either an array of plugin names (or paths) or plugin–options tuples, or an object mapping plugins to their options.\nPlugin options can be false, which specifies that a plugin should not be used. In all other cases, they are treated as an object, and merged by the cascade. Thus, it's possible to specify part of the options from one configuration file, and overwrite or extend it from another file.",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "additionalItems": true,
                "items": [
                  {
                    "type": "string"
                  }
                ]
              }
            ]
          }
        },
        {
          "type": "object"
        }
      ]
    },
    "settings": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "bullet": {
          "description": "Marker to use to for bullets of items in unordered lists.",
          "enum": ["*", "+", "-"],
          "default": "*"
        },
        "closeAtx": {
          "description": "Whether to add the same number of number signs (#) at the end of an ATX heading as the opening sequence.",
          "type": "boolean",
          "default": false
        },
        "emphasis": {
          "description": "Marker to use to serialize emphasis.",
          "enum": ["*", "_"],
          "default": "*"
        },
        "fence": {
          "description": "Marker to use to serialize fenced code.",
          "enum": ["`", "~"],
          "default": "`"
        },
        "fences": {
          "description": "Whether to use fenced code always. The default is to fenced code if there is a language defined, if the code is empty, or if it starts or ends in empty lines",
          "type": "boolean",
          "default": false
        },
        "incrementListMarker": {
          "description": "Whether to increment the value of bullets of items in ordered lists.",
          "type": "boolean",
          "default": true
        },
        "listItemIndent": {
          "description": "Whether to indent the content of list items with the size of the bullet plus one space (when 'one') or a tab stop ('tab'), or depending on the item and its parent list ('mixed', uses 'one' if the item and list are tight and 'tab' otherwise)",
          "enum": ["one", "tab", "mixed"],
          "default": "tab"
        },
        "quote": {
          "description": "Marker to use to serialize titles.",
          "enum": ["\"", "'"],
          "default": "\""
        },
        "resourceLink": {
          "description": "Whether to use resource links ([text](url)) always. The default is to use autolinks (<https://example.com>) when possible.",
          "type": "boolean",
          "default": false
        },
        "rule": {
          "description": "Marker to use for thematic breaks.",
          "enum": ["*", "-", "_"],
          "default": "*"
        },
        "ruleRepetition": {
          "description": "Number of markers to use for thematic breaks.",
          "type": "integer",
          "minimum": 3,
          "default": 3
        },
        "ruleSpaces": {
          "description": "Whether to add spaces between markers in thematic breaks.",
          "type": "boolean",
          "default": false
        },
        "setext": {
          "description": "Whether to use setext headings when possible. Setext headings are not possible for headings with a rank more than 2 or when they're empty.",
          "type": "boolean",
          "default": false
        },
        "strong": {
          "description": "Marker to use to serialize strong.",
          "enum": ["*", "_"],
          "default": "_"
        },
        "tightDefinitions": {
          "description": "Whether to join definitions w/o a blank line.",
          "type": "boolean",
          "default": false
        }
      }
    }
  },
  "title": "JSON schema for .remarkrc",
  "type": "object"
}
