1package markup
2
3import (
4 "regexp"
5)
6
7type Format string
8
9const (
10 FormatMarkdown Format = "markdown"
11 FormatText Format = "text"
12)
13
14var FileTypes map[Format][]string = map[Format][]string{
15 FormatMarkdown: {".md", ".markdown", ".mdown", ".mkdn", ".mkd"},
16}
17
18var FileTypePatterns = map[Format]*regexp.Regexp{
19 FormatMarkdown: regexp.MustCompile(`(?i)\.(md|markdown|mdown|mkdn|mkd)$`),
20}
21
22var ReadmePattern = regexp.MustCompile(`(?i)^readme(\.(md|markdown|txt))?$`)
23
24func IsReadmeFile(filename string) bool {
25 return ReadmePattern.MatchString(filename)
26}
27
28func GetFormat(filename string) Format {
29 for format, pattern := range FileTypePatterns {
30 if pattern.MatchString(filename) {
31 return format
32 }
33 }
34 // default format
35 return FormatText
36}