annotate vendor/github.com/alecthomas/chroma/v2/lexers/markdown.go @ 66:787b5ee0289d draft

Use vendored modules Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Sun, 23 Jul 2023 13:18:53 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 package lexers
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 import (
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4 . "github.com/alecthomas/chroma/v2" // nolint
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5 )
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7 // Markdown lexer.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8 var Markdown = Register(DelegatingLexer(HTML, MustNewLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 Name: "markdown",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11 Aliases: []string{"md", "mkd"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 Filenames: []string{"*.md", "*.mkd", "*.markdown"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 MimeTypes: []string{"text/x-markdown"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 markdownRules,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 )))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 func markdownRules() Rules {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 return Rules{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20 "root": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 {`^(#[^#].+\n)`, ByGroups(GenericHeading), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 {`^(#{2,6}.+\n)`, ByGroups(GenericSubheading), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 {`^(\s*)([*-] )(\[[ xX]\])( .+\n)`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 {`^(\s*)([*-])(\s)(.+\n)`, ByGroups(Text, Keyword, Text, UsingSelf("inline")), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 {`^(\s*)([0-9]+\.)( .+\n)`, ByGroups(Text, Keyword, UsingSelf("inline")), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 {`^(\s*>\s)(.+\n)`, ByGroups(Keyword, GenericEmph), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 {"^(```\\n)([\\w\\W]*?)(^```$)", ByGroups(String, Text, String), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28 {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 "^(```)(\\w+)(\\n)([\\w\\W]*?)(^```$)",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30 UsingByGroup(2, 4, String, String, String, Text, String),
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 nil,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 Include("inline"),
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 "inline": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 {`\\.`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37 {`(\s)(\*|_)((?:(?!\2).)*)(\2)((?=\W|\n))`, ByGroups(Text, GenericEmph, GenericEmph, GenericEmph, Text), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 {`(\s)((\*\*|__).*?)\3((?=\W|\n))`, ByGroups(Text, GenericStrong, GenericStrong, Text), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39 {`(\s)(~~[^~]+~~)((?=\W|\n))`, ByGroups(Text, GenericDeleted, Text), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40 {"`[^`]+`", LiteralStringBacktick, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41 {`[@#][\w/:]+`, NameEntity, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 {`(!?\[)([^]]+)(\])(\()([^)]+)(\))`, ByGroups(Text, NameTag, Text, Text, NameAttribute, Text), nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43 {`[^\\\s]+`, Other, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
44 {`.|\n`, Other, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
45 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
46 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
47 }