上次文章中提到,把文章.md和图片组织到同一个目录中,这是当时自己想出来的。后来了解到这其实是hugo比较推荐的文章组织方式,可以把每一篇文章的资源集中在一起。hugo中也专门为此定义了一个名称叫:叶子包(Leaf Bundle),用来组织博客文章,组织形式为每篇文章独立目录 + index.md,并且这也是Hugo的最佳实践之一。即使文章没有图片资源,使用叶子包结构也不会产生负面影响,反而为未来可能的资源扩展预留了灵活性。
目录结构:
content/
└─ posts/
└─ my-article/ # 文章目录
├─ index.md # 必须使用这个文件名
├─ cover.jpg
└─ 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/ ) |
(说人话就是一个用来组织每篇文章的资源,一个用来组织所有文章分类和分支、标签页等)
之后本站将使用叶子包组织文章页面。