Problem: tags are not parsed in the backend
All checks were successful
continuous-integration/drone/push Build is passing

Solution: replace tag with markdown links
This commit is contained in:
Peter Stuifzand 2022-01-17 21:43:17 +01:00
parent 8fa7d4170f
commit 569bef3226
2 changed files with 10 additions and 6 deletions

View File

@ -24,7 +24,7 @@ Plugin.prototype.init = function (md) {
export function tagParser(id, state, silent) {
let input = state.src.slice(state.pos);
const match = /^#[^ ]+/.exec(input)
const match = /^#\S+/.exec(input)
if (!match) {
return false
}

14
main.go
View File

@ -922,11 +922,7 @@ func (h *indexHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
func renderLinks(pageText string, edit bool) string {
hrefRE, err := regexp.Compile(`#?\[\[\s*([^\]]+)\s*\]\]`)
if err != nil {
log.Fatal(err)
}
hrefRE := regexp.MustCompile(`#?\[\[\s*([^\]]+)\s*\]\]`)
pageText = hrefRE.ReplaceAllStringFunc(pageText, func(s string) string {
tag := false
if s[0] == '#' {
@ -955,6 +951,14 @@ func renderLinks(pageText string, edit bool) string {
return fmt.Sprintf("[%s](/%s%s)", s, editPart, cleanNameURL(s))
})
tagRE := regexp.MustCompile(`#(\S+)`)
pageText = tagRE.ReplaceAllStringFunc(pageText, func(s string) string {
s = strings.TrimPrefix(s, "#")
s = strings.TrimSpace(s)
return fmt.Sprintf(`<a href="/%s" class="tag">%s</a>`, url.PathEscape(cleanNameURL(s)), s)
})
return pageText
}