feat: wikilinks implementation
This commit is contained in:
		
							parent
							
								
									4fd983277e
								
							
						
					
					
						commit
						c117e38899
					
				| @ -11,6 +11,7 @@ function initPopover(baseURL) { | ||||
|     fetchData.then(({ content }) => { | ||||
|       const links = [...document.getElementsByClassName("internal-link")] | ||||
|       links.forEach(li => { | ||||
|         console.log(li.dataset) | ||||
|         const linkDest = content[li.dataset.src.replace(basePath, "")] | ||||
|         if (linkDest) { | ||||
|           const popoverElement = `<div class="popover">
 | ||||
|  | ||||
| @ -38,4 +38,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 | ||||
| 
 | ||||
| [[notes/troubleshooting]] | ||||
| 
 | ||||
| [[notes/editing#Folder Structure|edit]] | ||||
| 
 | ||||
| [[asdfasdf|todo]] | ||||
| @ -28,7 +28,7 @@ | ||||
|           {{ .TableOfContents }} | ||||
|       </aside> | ||||
|       {{end}} | ||||
|       {{.Content | safeHTML}} | ||||
|       {{partial "textprocessing.html" . }} | ||||
|     </article> | ||||
|     {{partial "footer.html" .}} | ||||
|     {{partial "popover.html" .}} | ||||
|  | ||||
| @ -19,7 +19,7 @@ | ||||
|             {{ .TableOfContents }} | ||||
|         </aside> | ||||
|         {{end}} | ||||
|         {{.Content | safeHTML}} | ||||
|         {{partial "textprocessing.html" . }} | ||||
|     </article> | ||||
|     {{partial "footer.html" .}} | ||||
|     {{partial "popover.html" .}} | ||||
|  | ||||
							
								
								
									
										31
									
								
								layouts/partials/textprocessing.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								layouts/partials/textprocessing.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| {{ $content := .Content }} | ||||
| {{ $page := .Page }} | ||||
| 
 | ||||
| {{/* Replace right arrow */}} | ||||
| {{ $content = replace $content "->" "→" }} | ||||
| 
 | ||||
| {{/* Escape slashes for Latex to fix line breaks */}} | ||||
| {{ $content = replaceRE "\\\\ *\n" "\\\\" $content }} | ||||
| 
 | ||||
| {{/* Wikilinks */}} | ||||
| {{$wikilinks := $content | findRE "\\[\\[[^\\[\\]\\|]*(?:\\|[^\\[\\]]*)?\\]\\]" }} | ||||
| {{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 }} | ||||
|   {{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}} | ||||
| {{ $content | safeHTML }} | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user