上次文章中提到,把文章.md和图片组织到同一个目录中,这是当时自己想出来的。后来了解到这其实是hugo比较推荐的文章组织方式,可以把每一篇文章的资源集中在一起。hugo中也专门为此定义了一个名称叫:叶子包(Leaf Bundle),用来组织博客文章,组织形式为每篇文章独立目录 + index.md,并且这也是Hugo的最佳实践之一。即使文章没有图片资源,使用叶子包结构也不会产生负面影响,反而为未来可能的资源扩展预留了灵活性。
目录结构:

content/
└─ posts/
   └─ my-article/   # 文章目录
      ├─ index.md    # 必须使用这个文件名
      ├─ cover.jpg
      └─ diagram.png

完美支持相对路径,图片引用直接使用![图片](diagram.png)即可,此种方式deepseek帮助分析了各个方面的优劣点,最后总结是:利远大于弊

了解叶子包(Leaf Bundle)后,有必要再深入认识一下。 Hugo内容管理中的核心概念是页面包(Page Bundles),是资源集合的统称,其中包含两种具体类型。

  • Leaf Bundle(叶子包):用于管理 单个页面及其专属资源(如图片、PDF),需包含 index.md 文件
  • Branch Bundle(分支包):用于组织 一组页面或 section 的资源(如博客分类页),需包含 _index.md 文件

对比:

特性 Leaf Bundle(叶子包) Branch Bundle(分支包)
用途 单页内容及资源集合 多页面或 section 的资源集合
入口文件 index.md _index.md
资源类型 允许页面文件(如其他 .md 仅允许非页面文件(如图片)
嵌套限制 不可嵌套其他 Bundle 可嵌套 Leaf 或 Branch Bundle
输出形式 生成独立页面(如 /post/abc/ 生成列表页(如 /blog/

(说人话就是一个用来组织每篇文章的资源,一个用来组织所有文章分类和分支、标签页等)

之后本站将使用叶子包组织文章页面。