抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

Hugo/Doks 静态网站图片插入问题

周末弄下了下 Hugo,把 Doks 整理了下,还是挺好用的,也比较简单,但中途遇到一个问题,就是图片资源管理问题。

我的需求是这样的:

  1. 不使用云存储,因为可以自己写脚本整理图片,比较方便。
  2. 支持本地直接使用 typora 进行编辑,typora 不知道的话建议了解下,Mac/Windows双端免费的简约的 markdown 文档编辑器。
  3. 支持 Hugo 静态部署,即可以正常展示,这是一句废话,本来就是需要的。

那么问题在哪呢?主要在于本地图片路径的问题。一般本地编辑时粘贴保存的图片,都放在当前目录的一个用文件名命名的文件夹中,类似这样的:

DOC
├─ 计算机网络.assets
│    ├─ IMG_2021082210205847.png
│    ├─ IMG_2021082210205849.png
│    └─ IMG_2021082210205850.png
└─ 计算机网络.md

所以如果 md 文件中的图片路径为:

./计算机网络.assets/IMG_2021082210205847.png 

那么根据 hugo 的路径规则就会被识别为:

DOC/计算机网络/计算机网络.assets/IMG_2021082210205847.png

解释一下,第一层 DOC 是指代最外层目录,第二次 计算机网络 是指代 计算机网络.md,再然后是 计算机网络.assets,发现了吗,多套了一层,实际上真实目录是:

 DOC/计算机网络.assets/IMG_2021082210205847.png 

我找了很久,有人使用链接的方式,有人使用图床,后来我在 Doks 的 sample 代码中发现了 _index.mdindex.md,这使我感到好奇,似乎可以解决。官方链接:https://gohugo.io/content-management/organization/

简单说就是一种利用 index.md 进行文件管理,直接上两个路径图:

  • 将图片与 md 文件放在同一个目录
计算机网络
├─ IMG_2021082210205847.png
├─ IMG_2021082210205849.png
├─ IMG_2021082210205850.png
└─ index.md

适用少量图片时。

  • 将图片放在一个单独的文件夹
计算机网络
├─ index.md
└─ 计算机网络.assets
       ├─ IMG_2021082210205847.png
       ├─ IMG_2021082210205849.png
       └─ IMG_2021082210205850.png

这种方案就很好了,方便管理多图情况。

有没有发现共同点,规则就是将 md 文件上一层文件夹名改为 md 文件名,同时将 md 文件名改为:index.md,md 中直接使用相对路径即可。

以上;

参考:

Hugo Content Organization

Hugo 的文件管理方案


本站由以下主机服务商提供服务支持:

4条评论

  • test

    可以试试obsidian,所见即所得现在做的typora差不多,有库管理,所以贴图片可以用绝对路径

    • Mosaic-C

      是一个新思路,不过从 typora 收费后就没怎么用过了,毕竟编辑 md 的方式可以简单到直接用文本打开,显示等就交给 hugo 去渲染了。

  • try-agaaain

    感觉会增加更多文件,有点麻烦,文件夹变得不简洁了

    • Mosaic-C

      一切按自己喜好选择即可,没有固定答案

发表评论