使用 hexo-cli
创建了一个本地的 Hexo 博客实例后,Hexo 会自动生成一个目录结构:
1 | . |
如上所示,在这个目录结构里,博客文章源文件,主要放在 source
目录里,而生成的二进制文件,主要放在了 public
目录里。让我们看一下 public
目录的结构。
1 | public |
不难理解,这个 public
目录,就是一个网站的根目录,可以理解为一个 VirtualHost
的 DocumentRoot
。这里目录里的每个人文件的路径,其实就是最终网址后面的 path。
我们可以看到,文章的路径是按照 /年/月/日/文章名/
这样的方式组织的,为什么是这样的呢?打开主配置文件 _config.yml
,可以看到如下的配置项:
1 | permalink: :year/:month/:day/:title/ |
上面是文章永久链接的配置项,指定了生成的页面的 path
,你也可以在文章的 FrontMatter
区段指定此篇文章的配置,如果没有指定,就会按照主配置文件的规则。通过这样的配置,我们可以使最后生成的网站的文章目录井井有条。比起最后生成的网页来说,源文件是更重要的数据,因为如果我们更换整个博客的 Theme,那么所有的文章需要重新生成,这时候更重要的是源文件。现在来看看源文件的目录布局。
1 | ➜ blog git:(main) ✗ tree source |
相比之下,源文件的目录的布局就比较简单,所有的已经发布的文章,都混在一个单一目录 _posts
中,现在文章数量少,看着还行,不那么凌乱,一旦文章数量变多,比如,超过 400 篇,则会变得相当难以管理。那么我们到底能不能也像 public
文件夹那样,将源文件也管理得井井有条呢?
当然可以!
Hexo 并不会在意 _posts
目录里的布局,它会递归地扫描所有的源码文件,然后按照 permalink
配置的模式去生成最后的页面,所以,最后的页面是什么网址,和你的源文件怎么组织,是没有关联的。这就使得你可以自由地安排自己的目录布局。