diff --git a/src/main.go b/src/main.go index d35de8c..08ffd86 100644 --- a/src/main.go +++ b/src/main.go @@ -13,8 +13,9 @@ import ( "github.com/nickng/bibtex" ) -// Matches e.g.: @inproceedings{Doe2024a, -var re = regexp.MustCompile(`@[a-z]*\{([A-Za-z\-]*[0-9]{4}[a-z]),`) +// Matches e.g.: @inproceedings{Müller2024a, +// \p{L}\p{M} matches any letter, including accented characters. +var re = regexp.MustCompile(`@[a-z]*\{([\"\p{L}\p{M}\-]*[0-9]{4}[a-z]),`) // Map a cite name (e.g., Doe2024a) to its line number in the .bib file. All // cite names are unique. diff --git a/src/vendor/github.com/nickng/bibtex/token.go b/src/vendor/github.com/nickng/bibtex/token.go index 17c451e..f26e32a 100644 --- a/src/vendor/github.com/nickng/bibtex/token.go +++ b/src/vendor/github.com/nickng/bibtex/token.go @@ -29,8 +29,18 @@ func isWhitespace(ch rune) bool { return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' } +func isAccent(ch rune) bool { + accents := "äöüßéêçñÁÉÍÓÚáéíóúàèìòùâêîôûãõñÄÖÜ" + for _, accent := range accents { + if ch == accent { + return true + } + } + return false +} + func isAlpha(ch rune) bool { - return ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') + return ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z') || isAccent(ch) } func isDigit(ch rune) bool {