【已解决】使用digital garden发布功能中文章内标题无法使用双链功能,会导致部署错误

使用digital garden发布功能中文章内标题无法使用双链功能,会导致部署错误
但是整体的笔记库中采用了多处标题双链(因为有些内容想在大纲中展示),有什么不改变笔记形式让其在digital garden的网页上部署成功吗

  1. 适合发布的办法是可以改为:
[想链接的笔记](该指向的发布网址)

但是会造成obsidian客户端中链接相关的插件和活动都受影响

  1. 适合obsidian客户端使用的折中办法是改为:
[想链接的笔记](该笔记的绝对路径)

这样设置后在obsidian客户端的使用正常,发布网页也可以正常链接,但是关系图无法显示

没弄懂是指啥意思? 是页内小标题 headings, 还是笔记的文件名, 还是文档属性里的 title 等标题?

根据 Digital Garden - Features 这插件似乎在 [[wikilink]] 的写法上做了很多优化和兼容, 那么当一部分标题 (如果楼主是这个意思) 内含 [[wikilink]] 确实不好办

谢谢回复~
我的意思确实是在标题中含有[[wikilink]]无法使用这个插件,现在暂时只能用其他markdown的双链模式来替代了,但在网页上无法在关系图上链接两个笔记。

还是没理解, 是说笔记内容如下这样吗? 这种的确实不好办, 个人理解大部分发布工具都不会考虑这种写法

笔记正文段落1

### 对 [[某篇文章]] 的总结

笔记正文段落2

### 见 [[另一篇文章]] 的描述

笔记正文段落3

是这样的,是平时做笔记的习惯,一开始没想着发布就定下来哩 :smiling_face_with_tear:

我这边是类似这效果, 网页感觉还可以啊, 关系图也能认


Vault 里笔记正文是

---
dg-publish: true
---

笔记正文段落1

### 对 [[某篇文章]] 的总结

笔记正文段落2

### 见 [[另一篇文章]] 的描述

笔记正文段落3

### 测试普通 headings

笔记正文段落4

对这个笔记, GitHub 里生成的 md 是

---
{"dg-publish":true,"permalink":"/dgfolder/测试笔记/","dgPassFrontmatter":true}
---

笔记正文段落1

### 对 [[dgfolder/某篇文章\|某篇文章]] 的总结

笔记正文段落2

### 见 [[dgfolder/另一篇文章\|另一篇文章]] 的描述

笔记正文段落3

### 测试普通 headings

笔记正文段落4

对这个笔记, Vercel 里生成的页面是

<p>笔记正文段落1</p>
<h3 id="dgfolder" tabindex="-1">对 <a class="internal-link" target="" data-note-icon="" href="/dgfolder/某篇文章/">某篇文章</a> 的总结</h3>
<p>笔记正文段落2</p>
<h3 id="dgfolder-1" tabindex="-1">见 <a class="internal-link" target="" data-note-icon="" href="/dgfolder/另一篇文章/">另一篇文章</a> 的描述</h3>
<p>笔记正文段落3</p>
<h3 id="headings" tabindex="-1">测试普通 headings</h3>
<p>笔记正文段落4</p>

如果情况复杂比如带相对路径层级的笔记关系, 或用了跟 html 页面兼容性不好的字符, 花样更多的 wikilink, 那生成出问题也有可能, 得具体分析

PS. 我的 DG 插件设置里没勾那个 “Slugify Note URL” 选项

!这样 :open_mouth:
谢谢回复 :heart_eyes:
但是我试了一下,这样还是发布不出去,可能是因为我的笔记层级复杂有关吗? :sob:(“Slugify Note URL”也关闭了):

这个是我的笔记

### 民法上的[[权利]]

github界面:

## 民法上的[[学习笔记/知识点/权利|权利]]

vercel界面就会出现error提醒

[11ty] 2. Transform `htmlMinifier` encountered an error when transforming ./src/site/notes/学习笔记/民法总论/民总袋熊.md. (via EleventyTransformError)
[11ty] 3. Parse Error: <h3 id="民法上的<a class="internal-link" target="" data-note-icon="" href="/学习笔记/知识点/权利/">权利" tabindex="-1">民法上的<a class="internal-link" target="" data-note-icon="" href="/学习笔记/知识点/权利/">权利</a></h3>

这个是我用其他markdown形式的效果:
笔记:

### 民法上的[义务](/学习笔记/知识点/义务)与[责任](/学习笔记/知识点/责任)

github界面:

### 民法上的义务与责任

vercel生成的界面,会有转出箭头,点击也是在新页面打开:
87959bcedacc35f16af7b48c2b0873c

vercel的残缺关系图谱(民总袋熊和义务、责任都不显示链接):
fe93dd9d6b795fe1206074df41571a4

我构造出了跟你一样的错误,

[11ty] 3. Parse Error: <h3 id="位于子目录的 <a class="internal-link" target="" data-note-icon="" href="/库内的/子目录/子目录内文章/">子目录内文章 且整个路径无英文" tabindex="-1">位于子目录的 <a class="internal-link" target="" data-note-icon="" href="/库内的/子目录/子目录内文章/">子目录内文章</a> 且整个路径无英文</h3>

我现在觉得原因是

Github 上的 md 到 vercel 的 Eleventy build 这一步,

它一定要给各级别小标题 <h3> 生成 id, (在 “Slugify Note URL” 关闭时) 其生成机制是

  • 如果这个小标题里有英文, 那只过滤出英文数字当作 id
  • 如果本页多个 id 重名就尾缀流水号
  • 如果没英文数字, 就取整个标题 (这时一般是中文字符) 并做 url encode
    • 就坏在这一步了, 当小标题含 [[wikilink]] 时, 一长串带着各种格式字符的东西, 直接给当成合法的 id 字符串了, 被拼接到了 <h3 id="xxxxx" tabindex="-1"> ... 里, 报错

考虑在路径里加入至少一个单词的英文试试?

具体点就是确保 Github 里的经过初步转换的 md, 其小标题:

  • 要么含至少一处英文数字 (此时可带特殊符号)
  • 要么是中文字符串 (此时不能含特殊符号)

举例, 如果让 github 里生成了下列格式, 可行

### 对 [[subfolder/某篇文章\|某篇文章]] 的总结

### 对 [[子目录的/某篇文章\|某篇文章]] 的总结 summary

但 github 里如果生成了下列格式, 不行

### 对 [[子目录的/某篇文章\|某篇文章]] 的总结

天!可以了!
在路径中文件夹加上了字符就发布成功了
感谢帮助 :heart_eyes:

1 个赞