From 3636c052eb054d93a8a3ddfb9fdd873d5fe83a5d Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Wed, 31 May 2023 21:41:44 +0000
Subject: [PATCH] link processing

---
 quartz/plugins/transformers/links.ts |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/quartz/plugins/transformers/links.ts b/quartz/plugins/transformers/links.ts
index 07a76b2..04b26c6 100644
--- a/quartz/plugins/transformers/links.ts
+++ b/quartz/plugins/transformers/links.ts
@@ -29,16 +29,16 @@
 
   markdownPlugins(): PluggableList {
     return [[remarkWikiLink, {
-      pathFormat: this.opts.markdownLinkResolution === "absolute" ? 'obsidian-absolute' : 'raw'
+      pathFormat: this.opts.markdownLinkResolution === "absolute" ? 'obsidian-absolute' : 'raw',
     }]]
   }
 
   htmlPlugins(): PluggableList {
     return [() => {
       return (tree, file) => {
-        const curSlug = file.data.slug! 
+        const curSlug = file.data.slug!
         const transformLink = (target: string) => {
-          const targetSlug = slugify(decodeURI(target))
+          const targetSlug = slugify(decodeURI(target).trim())
           if (this.opts.markdownLinkResolution === 'relative' && !path.isAbsolute(targetSlug)) {
             return './' + relative(curSlug, targetSlug)
           } else {
@@ -46,8 +46,8 @@
           }
         }
 
-        // rewrite all links
         visit(tree, 'element', (node, _index, _parent) => {
+          // rewrite all links
           if (
             node.tagName === 'a' &&
             node.properties &&
@@ -60,14 +60,13 @@
               node.properties.href = transformLink(node.properties.href)
             }
 
+            // rewrite link internals if prettylinks is on
             if (this.opts.prettyLinks && node.children.length === 1 && node.children[0].type === 'text') {
               node.children[0].value = path.basename(node.children[0].value)
             }
           }
-        })
 
-        // transform all images
-        visit(tree, 'element', (node, _index, _parent) => {
+          // transform all images
           if (
             node.tagName === 'img' &&
             node.properties &&
@@ -75,7 +74,7 @@
           ) {
             if (!isAbsoluteUrl(node.properties.src)) {
               const ext = path.extname(node.properties.src)
-              node.properties.src = transformLink("/assets/" + node.properties.src) + ext
+              node.properties.src = transformLink(path.join("assets", node.properties.src)) + ext
             }
           }
         })

--
Gitblit v1.10.0