summaryrefslogtreecommitdiff
path: root/vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
commitc6cc0108ca7738023b45e0eeac0fa2390532dd93 (patch)
tree36890e6cd3091bbab8efbe686cc56f467f645bfd /vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go
parent0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff)
downloadjbmafp-master.tar.gz
Added vendor lock on depsHEADmaster
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go')
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go b/vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go
new file mode 100644
index 0000000..1fb9f5b
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go
@@ -0,0 +1,47 @@
+package lexers
+
+import (
+ . "github.com/alecthomas/chroma/v2" // nolint
+)
+
+// Markdown lexer.
+var Markdown = Register(DelegatingLexer(HTML, MustNewLexer(
+ &Config{
+ Name: "markdown",
+ Aliases: []string{"md", "mkd"},
+ Filenames: []string{"*.md", "*.mkd", "*.markdown"},
+ MimeTypes: []string{"text/x-markdown"},
+ },
+ markdownRules,
+)))
+
+func markdownRules() Rules {
+ return Rules{
+ "root": {
+ {`^(#[^#].+\n)`, ByGroups(GenericHeading), nil},
+ {`^(#{2,6}.+\n)`, ByGroups(GenericSubheading), nil},
+ {`^(\s*)([*-] )(\[[ xX]\])( .+\n)`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
+ {`^(\s*)([*-])(\s)(.+\n)`, ByGroups(Text, Keyword, Text, UsingSelf("inline")), nil},
+ {`^(\s*)([0-9]+\.)( .+\n)`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
+ {`^(\s*>\s)(.+\n)`, ByGroups(Keyword, GenericEmph), nil},
+ {"^(```\\n)([\\w\\W]*?)(^```$)", ByGroups(String, Text, String), nil},
+ {
+ "^(```)(\\w+)(\\n)([\\w\\W]*?)(^```$)",
+ UsingByGroup(2, 4, String, String, String, Text, String),
+ nil,
+ },
+ Include("inline"),
+ },
+ "inline": {
+ {`\\.`, Text, nil},
+ {`(\s)(\*|_)((?:(?!\2).)*)(\2)((?=\W|\n))`, ByGroups(Text, GenericEmph, GenericEmph, GenericEmph, Text), nil},
+ {`(\s)((\*\*|__).*?)\3((?=\W|\n))`, ByGroups(Text, GenericStrong, GenericStrong, Text), nil},
+ {`(\s)(~~[^~]+~~)((?=\W|\n))`, ByGroups(Text, GenericDeleted, Text), nil},
+ {"`[^`]+`", LiteralStringBacktick, nil},
+ {`[@#][\w/:]+`, NameEntity, nil},
+ {`(!?\[)([^]]+)(\])(\()([^)]+)(\))`, ByGroups(Text, NameTag, Text, Text, NameAttribute, Text), nil},
+ {`[^\\\s]+`, Other, nil},
+ {`.|\n`, Other, nil},
+ },
+ }
+}