{
  "$schema": "https://github.com/DavidAnson/markdownlint/blob/main/schema/markdownlint-config-schema.json",
  "$id": "https://raw.githubusercontent.com/davidsneighbour/kollitsch.dev/refs/heads/main/src/config/.markdownlint.jsonc",
  "default": true,
  "customRules": [
    "@github/markdownlint-github",
    "markdownlint-rule-relative-links",
    "markdownlint-rule-search-replace",
    "markdownlint-rule-extended-ascii",
    "markdownlint-rule-title-case-style",
    "markdownlint-rule-list-duplicates"
  ],
  // Rules
  // unlisted rules are using default settings (usually "true")
  // @see https://github.com/DavidAnson/markdownlint/#rules--aliases
  "MD001": {
    "severity": "error",
    "front_matter_title": "^\\s*title\\s*[:=]"
  },
  "MD003": {
    "style": "atx"
  },
  "MD004": {
    "style": "asterisk"
  },
  "MD005": true,
  "MD007": {
    "indent": 2
  },
  // NO limitation on line length
  "MD013": false,
  // ignored rule for closed atx headings
  "MD020": false,
  // ignored rule for closed atx headings
  "MD021": false,
  // disallow multiple headings with the same content within the same level structure
  "MD024": {
    "siblings_only": true,
    "allow_different_nesting": true
  },
  // no inline HTML elements, except for the allowed ones. in tables only the explicit allowed ones
  "MD033": {
    "allowed_elements": [
      "lite-youtube",
      "color-grid",
      "date-diff",
      "kbd"
    ],
    "table_allowed_elements": [
      "kbd"
    ]
  },
  // use consistent rule markers (`---`)
  "MD035": {
    "style": "---"
  },
  // unused header structure rule
  "MD043": false,
  // unused spelling enforcement
  "MD044": false,
  // fenced code blocks style
  "MD046": {
    "style": "fenced"
  },
  // code blocks must use backticks instead of tildes
  "MD048": {
    "style": "backtick"
  },
  // emphasis must use asterisks `*` instead of underscores `_`
  "MD049": {
    "style": "asterisk"
  },
  // strong style must use double asterisks `**` instead of double underscores `__`
  "MD050": {
    "style": "asterisk"
  },
  // links must not be auto links, all other link formats are allowed
  "MD054": {
    "autolink": false
  },
  // table pipes must be used before and after each table row
  "MD055": {
    "style": "leading_and_trailing"
  },
  // generic linktexts are prohibited
  "MD059": {
    "prohibited_texts": [
      "click here",
      "here",
      "link",
      "more"
    ]
  },
  // table style must be compact (single spaces around cell content)
  "MD060": {
    "style": "aligned"
  },
  // @see https://www.npmjs.com/package/@github/markdownlint-github
  // images should not contain default alternate texts
  "GH001": true,
  // links should not contain generic text ('click here', 'read more', etc.)
  "GH002": {
    "additional_banned_texts": [
      "Something",
      "Click here"
    ]
  },
  // no empty alt texts for images
  "GH003": true,
  // @see https://www.npmjs.com/package/markdownlint-rule-relative-links
  "relative-links": {
    "root_path": "../.."
  },
  // @see https://www.npmjs.com/package/markdownlint-rule-search-replace
  "search-replace": {
    "rules": [
      {
        "name": "ellipsis",
        "message": "Do not use three dots '...' for ellipsis.",
        "information": "https://example.com/rules/ellipsis",
        "search": "...",
        "replace": "…",
        "searchScope": "text"
      },
      {
        "name": "curly-double-quotes",
        "message": "Do not use curly double quotes.",
        "searchPattern": "/“|”/g",
        "replace": "\""
      }
    ]
  },
  // @see https://www.npmjs.com/package/markdownlint-rule-extended-ascii
  "extended-ascii": {
    "ascii-only": true
  },
  // @see https://www.npmjs.com/package/markdownlint-rule-title-case-style
  "title-case-style": {
    // letter case style to apply
    //
    // "sentence" or "title" (default: sentence)
    "case": "sentence",
    // words to ignore when applying letter case.
    //
    // string[] (default: [])
    "ignore": [
      "JavaScript"
    ],
  },
}