
Languages.pudu
Pudu35 lines1.4 KB
1/** @Docgen.Markdown.Languages — language identities, aliases, extensions, and display names */2module PuduLangDocgen.Markdown.Languages34import Std.Option as Option5import PuduLangDocgen.Markdown.Languages.Extensions as Extensions6import PuduLangDocgen.Markdown.Languages.Files as Files7import PuduLangDocgen.Markdown.Languages.Names as Names8import PuduLangDocgen.Markdown.Languages.Titles as Titles910111213export fn identify(written: Str) -> Str {14 let lowered = written.trim().toLower()15 Option.unwrapOr(Names.lookup(lowered), lowered)16}17181920export fn ofPath(path: Str) -> Str {21 let parts = path.split("/")22 let name = parts[parts.length() - 1]23 match Files.lookup(name) {24 case Some(found) => found25 case None => {26 let pieces = name.split(".")27 if pieces.length() < 2 { "" } else { Option.unwrapOr(Extensions.lookup(pieces[pieces.length() - 1].toLower()), "") }28 }29 }30}31323334export fn title(identity: Str) -> Str { Option.unwrapOr(Titles.lookup(identity), identity) }35