Hugo的Page Bundle

缘起

页面及图片的组织模式,是从Hugo 0.32起开始有的一个功能。在此之前,每篇文章就是一个 .md 文件,这样的缺点是如果这篇文章需要引用到图片或其它附件,图片和其它附件的文件都需要保存在 static 文件夹下。 有了page bundle之后,可以在 content 文件夹下为每篇文章建立一个文件夹,所有的文件都可以放在这个文件夹下。

Leaf Bundle

文章的名字是文件夹,这里的my-post对应的是filename,不是title。文章的内容在这个文件夹下的index.md里。文章的照片可以存在这个文件夹、甚至于更下一层的文件夹。

├── posts
│   ├── my-post
│   │   ├── image1.jpg
│   │   ├── image2.png
│   │   └── index.md

Branch Bundle


content/
├── _index.md
├── branch-bundle-2
│   ├── branch-content1.md
│   ├── branch-content2.md
│   ├── image1.jpg
│   ├── image2.png
│   └── _index.md
└── branch-bundle-3
    ├── _index.md
    └── a-leaf-bundle
        └── index.md

这里的 content branch-bundle-2branch-bundle-3 都是branch bundle

branch bundle和普通的section很相似,2个区别

  1. _index.md
  2. branch bundle下可以放非 .md 的文件。

Headless

一个页面可以是 headless 即表示这个页面是不会生成html文件的,但是可以通过 site.GetPage 得到页面内容

使用ox-hugo

在ox-hugo的0.8版之后,就支持了page bundle。暂似乎只有leaf bundle会用到。在导出时加入

:EXPORT_FILE_NAME: index
:EXPORT_HUGO_SLUG: hugo-bundles
:EXPORT_HUGO_BUNDLE: 2018/2018-05-24_hugo-bundles #要建的文件夹名

这样就会将这篇文章建立一个文件夹,=:EXPORT_HUGO_SLUG:= 的作用应该就是将文件夹名和链接名可以区分。

参考

https://scripter.co/hugo-leaf-and-branch-bundles/ https://www.kengrimes.com/ox-hugo-tutorial/

海上一民工

Related