From d07d6ceec18d16f81bc8849ee1a94233607bd1fd Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Tue, 5 Apr 2022 12:47:28 -0700
Subject: [PATCH] feat: wikilink img support

---
 content/notes/CJK + Latex Support (测试).md |  8 +++-
 layouts/partials/textprocessing.html        | 46 ++++++++++++---------
 2 files changed, 34 insertions(+), 20 deletions(-)

diff --git a/content/notes/CJK + Latex Support (测试).md b/content/notes/CJK + Latex Support (测试).md
index 4b89f75..14eb77d 100644
--- a/content/notes/CJK + Latex Support (测试).md	
+++ b/content/notes/CJK + Latex Support (测试).md	
@@ -37,4 +37,10 @@ a & b & c
 $$
 
 ## RTL
-More information on configuring RTL languages like Arabic in the [config](notes/config.md) page
+More information on configuring RTL languages like Arabic in the [config](notes/config.md) page.
+
+`![[Image.png|modifier+modifier|#]]`
+
+[[notes/troubleshooting]]
+
+`[[Image.png|modifier+modifier|#]]`
\ No newline at end of file
diff --git a/layouts/partials/textprocessing.html b/layouts/partials/textprocessing.html
index 008d163..dfa0b6e 100644
--- a/layouts/partials/textprocessing.html
+++ b/layouts/partials/textprocessing.html
@@ -1,9 +1,6 @@
 {{ $content := .Content }}
 {{ $page := .Page }}
 
-{{/* Replace right arrow */}}
-{{ $content = replace $content "-&gt;" "→" }}
-
 {{/* Escape slashes for Latex to fix line breaks */}}
 {{$latex := findRE "\\$\\$([^\\$]+)\\$\\$" $content}}
 {{range $latex}}
@@ -12,24 +9,35 @@
 {{end}}
 
 {{/* Wikilinks */}}
-{{$wikilinks := $content | findRE "\\[\\[[^\\[\\]\\|]*(?:\\|[^\\[\\]]*)?\\]\\]" }}
+{{$wikilinks := $content | findRE "!?\\[\\[\\S[^\\[\\]\\|]*(?:\\|[^\\[\\]]*)?\\S\\]\\]" }}
 {{range $wikilinks}}
-  {{$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 }}
+  {{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}}
 {{ $content | safeHTML }}