| | |
| | | {{ $content := .Content }} |
| | | {{ $raw := .RawContent }} |
| | | {{ $page := .Page }} |
| | | |
| | | {{/* Escape slashes for Latex to fix line breaks */}} |
| | |
| | | {{end}} |
| | | |
| | | {{/* Wikilinks */}} |
| | | {{$wikilinks := $content | findRE "!?\\[\\[\\S[^\\[\\]\\|]*(?:\\|[^\\[\\]]*)?\\S\\]\\]" }} |
| | | {{$wikilinks := $raw | findRE "!?\\[\\[\\S[^\\[\\]\\|]*(?:\\|[^\\[\\]]*)?\\S\\]\\]" }} |
| | | {{$codefences := $raw | findRE "\\x60[^\\x60\\n]+\\x60"}} |
| | | {{$codeblocks := $raw | findRE "\\x60{3}[^\\x60]+\\x60{3}"}} |
| | | {{$code := union $codefences $codeblocks}} |
| | | {{range $wikilinks}} |
| | | {{if (hasPrefix . "!")}} |
| | | {{$inner := . | strings.TrimPrefix "![[" | strings.TrimSuffix "]]" }} |
| | | {{$split := split $inner "|"}} |
| | | {{$path := index $split 0}} |
| | | {{$reference := split $path "#"}} |
| | | {{$title := index $reference 0}} |
| | | {{$display := default $title (index $split 1)}} |
| | | {{$img := printf "<img src=\"%s\" title=\"%s\">" $path $display}} |
| | | {{$content = replace $content . $img}} |
| | | {{else}} |
| | | {{$inner := . | strings.TrimPrefix "[[" | strings.TrimSuffix "]]" }} |
| | | {{$split := split $inner "|"}} |
| | | {{$path := index $split 0}} |
| | | {{$reference := split $path "#"}} |
| | | {{$title := index $reference 0}} |
| | | {{$block := default "" (index $reference 1)}} |
| | | {{$block = strings.TrimRight "/" (cond (eq $block "") $block (printf "#%s" $block))}} |
| | | {{$href := strings.TrimRight "/" ($page.GetPage $title).RelPermalink}} |
| | | {{$display := default $title (index $split 1)}} |
| | | {{if not $href}} |
| | | {{$link := printf "<a class=\"internal-link broken\">%s</a>" $display}} |
| | | {{$content = replace $content . $link}} |
| | | {{$cur := .}} |
| | | {{$incode := false}} |
| | | {{range $code}} |
| | | {{if (in . $cur)}} |
| | | {{$incode = true}} |
| | | {{end}} |
| | | {{end}} |
| | | {{if not $incode}} |
| | | {{if (hasPrefix . "!")}} |
| | | {{$inner := . | strings.TrimPrefix "![[" | strings.TrimSuffix "]]" }} |
| | | {{$split := split $inner "|"}} |
| | | {{$path := index $split 0}} |
| | | {{$reference := split $path "#"}} |
| | | {{$title := index $reference 0}} |
| | | {{$display := default $title (index $split 1)}} |
| | | {{$img := printf "<img src=\"%s\" title=\"%s\">" $path $display}} |
| | | {{$content = replace $content . $img}} |
| | | {{else}} |
| | | {{$fullhref := printf "%s%s" $href $block }} |
| | | {{$link := printf "<a href=\"%s\" rel=\"noopener\" class=\"internal-link\" data-src=\"%s\">%s</a>" $fullhref $href $display}} |
| | | {{$content = replace $content . $link}} |
| | | {{$inner := . | strings.TrimPrefix "[[" | strings.TrimSuffix "]]" }} |
| | | {{$split := split $inner "|"}} |
| | | {{$path := index $split 0}} |
| | | {{$reference := split $path "#"}} |
| | | {{$title := index $reference 0}} |
| | | {{$block := default "" (index $reference 1)}} |
| | | {{$block = strings.TrimRight "/" (cond (eq $block "") $block (printf "#%s" $block))}} |
| | | {{$href := strings.TrimRight "/" ($page.GetPage $title).RelPermalink}} |
| | | {{$display := default $title (index $split 1)}} |
| | | {{if not $href}} |
| | | {{$link := printf "<a class=\"internal-link broken\">%s</a>" $display}} |
| | | {{$content = replace $content . $link}} |
| | | {{else}} |
| | | {{$fullhref := printf "%s%s" $href $block }} |
| | | {{$link := printf "<a href=\"%s\" rel=\"noopener\" class=\"internal-link\" data-src=\"%s\">%s</a>" $fullhref $href $display}} |
| | | {{$content = replace $content . $link}} |
| | | {{end}} |
| | | {{end}} |
| | | {{end}} |
| | | {{end}} |