对站点的页面生成逻辑做了较大改动。
之前使用的是 File System Route API,编写的逻辑是读取所有 md 文件,并根据文件中的 frontmatter 来判断页面生成的位置。这种方式不支持子页面,而且没有过滤器,会生成不需要的页面。
现在使用的是 createPages API。
用这个更灵活的 API 重写了页面生成和路由。现在可以通过文件路径生成文章和文章列表的页面了,就像文件管理器一样;同时也免去了在 frontmatter 中写入页面分类和链接的繁琐操作。
参考官方文档:Creating Pages from Data Programmatically
原理很简单,但学习和尝试花了不少精力... 从有了想法到完全实现断断续续用了将近4天的时间。