use crate::syntax::{HighlightKind, Language};
pub static MARKDOWN: Language = Language {
name: "markdown",
extensions: &["md", "markdown", "mdown", "mkd"],
filenames: &["readme", "changelog"],
keywords: &[],
types: &[],
constants: &[],
line_comment: None,
block_comment: Some(("```", "```")),
nested_block_comments: false,
macro_suffix: false,
capitalised_types: false,
extra_rules: &[
(r"^#{1,6}\s.*", HighlightKind::Heading),
(r"^(?:={3,}|-{3,}|\*{3,})\s*$", HighlightKind::Heading),
(r"^>\s?.*", HighlightKind::Comment),
(r"`[^`]+`", HighlightKind::String),
(r"\*\*[^*]+\*\*|__[^_]+__", HighlightKind::Emphasis),
(r"\*[^*\s][^*]*\*|_[^_\s][^_]*_", HighlightKind::Emphasis),
(r"!?\[[^\]]*\]\([^)]*\)", HighlightKind::Link),
(r"<?https?://[^\s>)]+>?", HighlightKind::Link),
(r"^\s*(?:[-*+]|\d+[.)])\s", HighlightKind::Punctuation),
(r"^\s*(?:[-*+])\s\[[ xX]\]", HighlightKind::Constant),
],
prose: true,
};