淦!怎么这个锤头 quartz
仅仅支持 obsidian
中的双链图片调整宽高啊!!蚌埠住了……
参考了一下发现它对于双链链接的图片的处理是在 ofs.ts
(ObsidianFlavoredMarkdown) 中。因为咱们默认应用的就是 obsidian 风格的插件嘛。
这是它匹配双链语法的部分:
有样学样写一个匹配正常 markdown 外链的,因为我仅仅是想要将 alias 解析为长宽,所以就匹配 ![name|width](url)
和 ![alt|widthxheight](url)
啦~:
这里得参考一下官方的这个图:
也就是说, markdown
文件优先在 TransFormers 处理。这部分大致有四种类型的:
textTransform
:- text → text
- 将文件解析为Markdown AST 之前 执行文本到文本的转换
markdownPlugins
:- markdown → markdonw
- 定义了一个remark插件列表(
remark
是一个以结构化方式将 Markdown 转换为 Markdown 的工具)
htmlPlugins
:- html → html
- 定义了rehype 插件列表(与
remark
工作原理类似,rehype
是一个以结构化方式将 HTML 转换为 HTML 的工具)
externalResources
:可能需要在客户端加载才能正常工作的任何外部资源
这里有个问题啊,貌似 markdown 原生语法是没办法直接在文本中识别、应用图片的宽高的,所以没办法在 textTransform
类型的部分处理。
碎碎念
虽然有点了解插件,但这个执行顺序给我看懵逼了哈哈哈哈~
太久没有在前端应用上debug了,这一点小玩意儿花了我好几个小时!!
太菜了!没能和GPT老哥聊明白~
考虑到咱们的 obsidian 本身就支持类似于 [alt|widthxheight](url)
这种做法去限制图片大小,就直接在 ofs.ts
中加了对这部分的处理。
看各种形状的快乐小狗!
`![dog.jpg|100](https://***.dog.jpg)` `![dog.jpg|80](https://***.dog.jpg)` `![dog.jpg|60](https://***.dog.jpg)` `![dog.jpg|120](https://***.dog.jpg)` `![dog.jpg|100x120](https://***.dog.jpg)` `![dog.jpg|20x100](https://***.dog.jpg)`