mirror of
https://github.com/cheat/cheat.git
synced 2026-03-07 11:13:33 +01:00
- Bump Go from 1.19 to 1.26 and update all dependencies - Rewrite CI workflow with matrix strategy (Linux, macOS, Windows) - Update GitHub Actions to current versions (checkout@v4, setup-go@v5) - Update CodeQL actions from v1 to v3 - Fix cross-platform bug in mock/path.go (path.Join -> filepath.Join) - Clean up dependabot config (weekly schedule, remove stale ignore) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
package lexers
|
|
|
|
import (
|
|
. "github.com/alecthomas/chroma/v2" // nolint
|
|
)
|
|
|
|
// Gemtext lexer.
|
|
var Gemtext = Register(MustNewLexer(
|
|
&Config{
|
|
Name: "Gemtext",
|
|
Aliases: []string{"gemtext", "gmi", "gmni", "gemini"},
|
|
Filenames: []string{"*.gmi", "*.gmni", "*.gemini"},
|
|
MimeTypes: []string{"text/gemini"},
|
|
},
|
|
gemtextRules,
|
|
))
|
|
|
|
func gemtextRules() Rules {
|
|
return Rules{
|
|
"root": {
|
|
{`^(#[^#].+\r?\n)`, ByGroups(GenericHeading), nil},
|
|
{`^(#{2,3}.+\r?\n)`, ByGroups(GenericSubheading), nil},
|
|
{`^(\* )(.+\r?\n)`, ByGroups(Keyword, Text), nil},
|
|
{`^(>)(.+\r?\n)`, ByGroups(Keyword, GenericEmph), nil},
|
|
{"^(```\\r?\\n)([\\w\\W]*?)(^```)(.+\\r?\\n)?", ByGroups(String, Text, String, Comment), nil},
|
|
{
|
|
"^(```)(\\w+)(\\r?\\n)([\\w\\W]*?)(^```)(.+\\r?\\n)?",
|
|
UsingByGroup(2, 4, String, String, String, Text, String, Comment),
|
|
nil,
|
|
},
|
|
{"^(```)(.+\\r?\\n)([\\w\\W]*?)(^```)(.+\\r?\\n)?", ByGroups(String, String, Text, String, Comment), nil},
|
|
{`^(=>)(\s*)([^\s]+)(\s*)$`, ByGroups(Keyword, Text, NameAttribute, Text), nil},
|
|
{`^(=>)(\s*)([^\s]+)(\s+)(.+)$`, ByGroups(Keyword, Text, NameAttribute, Text, NameTag), nil},
|
|
{`(.|(?:\r?\n))`, ByGroups(Text), nil},
|
|
},
|
|
}
|
|
}
|