Problem: tags are not parsed server side

Solution: add parsing of tags to server side
master
Peter Stuifzand 2 years ago
parent 71d957ae9b
commit f79a01ae9b

@ -132,7 +132,8 @@ func ParseLinks(blockId string, content string) ([]ParsedLink, error) {
} }
func ParseTags(content string) ([]string, error) { func ParseTags(content string) ([]string, error) {
hrefRE := regexp.MustCompile(`(#\[\[\s*([^\]]+)\s*\]\])`) linkRE := regexp.MustCompile(`(#\[\[\s*([^\]]+)\s*\]\])`)
tagRE := regexp.MustCompile(`#([^ ]+)`)
scanner := bufio.NewScanner(strings.NewReader(content)) scanner := bufio.NewScanner(strings.NewReader(content))
scanner.Split(bufio.ScanLines) scanner.Split(bufio.ScanLines)
@ -141,13 +142,16 @@ func ParseTags(content string) ([]string, error) {
for scanner.Scan() { for scanner.Scan() {
line := scanner.Text() line := scanner.Text()
links := hrefRE.FindAllStringSubmatch(line, -1) links := linkRE.FindAllStringSubmatch(line, -1)
for _, matches := range links { for _, matches := range links {
link := matches[0] linkText := matches[0]
link = strings.TrimPrefix(link, "#[[") linkText = strings.TrimPrefix(linkText, "#[[")
link = strings.TrimSuffix(link, "]]") linkText = strings.TrimSuffix(linkText, "]]")
link = strings.TrimSpace(link) linkText = strings.TrimSpace(linkText)
result = append(result, link) result = append(result, linkText)
}
for _, matches := range tagRE.FindAllStringSubmatch(line, -1) {
result = append(result, matches[1])
} }
} }

Loading…
Cancel
Save