{
	"$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": "compact"
	},
	// @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"]
	}
}
