mirror of
https://github.com/ralsina/tartrazine.git
synced 2025-06-19 06:33:06 -03:00
Add support for Roff man pages filenames
This commit is contained in:
21
common.go
21
common.go
@ -22,6 +22,7 @@ var DefaultStrategies = []Strategy{
|
||||
GetLanguagesByFilename,
|
||||
GetLanguagesByShebang,
|
||||
GetLanguagesByExtension,
|
||||
GetLanguagesByManpage,
|
||||
GetLanguagesByContent,
|
||||
GetLanguagesByClassifier,
|
||||
}
|
||||
@ -383,6 +384,26 @@ func GetLanguagesByExtension(filename string, _ []byte, _ []string) []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
var (
|
||||
manpageExtension = regex.MustCompile(`\.(?:[1-9](?:[a-z_]+[a-z_0-9]*)?|0p|n|man|mdoc)(?:\.in)?$`)
|
||||
)
|
||||
|
||||
// GetLanguagesByManpage returns a slice of possible manpage languages for the given filename.
|
||||
// It complies with the signature to be a Strategy type.
|
||||
func GetLanguagesByManpage(filename string, _ []byte, _ []string) []string {
|
||||
filename = strings.ToLower(filename)
|
||||
|
||||
// Check if matches Roff man page filenames
|
||||
if manpageExtension.Match([]byte(filename)) {
|
||||
return []string{
|
||||
"Roff Manpage",
|
||||
"Roff",
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func getDotIndexes(filename string) []int {
|
||||
dots := make([]int, 0, 2)
|
||||
for i, letter := range filename {
|
||||
|
Reference in New Issue
Block a user