collections.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /**
  2. * @see https://theme-plume.vuejs.press/guide/collection/ 查看文档了解配置详情。
  3. *
  4. * Collections 配置文件,它在 `.vuepress/plume.config.ts` 中被导入。
  5. *
  6. * 请注意,你应该先在这里配置好 Collections,然后再启动 vuepress,主题会在启动 vuepress 时,
  7. * 读取这里配置的 Collections,然后在与 Collection 相关的 Markdown 文件中,自动生成 permalink。
  8. *
  9. * collection 的 type 为 `post` 时,表示为 文档列表类型(即没有侧边导航栏,有文档列表页)
  10. * 可用于实现如 博客、专栏 等以文章列表聚合形式的文档集合 (内容相对碎片化的)
  11. *
  12. * collection 的 type 为 `doc` 时,表示为文档类型(即有侧边导航栏)
  13. * 可用于实现如 笔记、知识库、文档等以侧边导航栏形式的文档集合 (内容强关联、成体系的)
  14. * 如果发现 侧边栏没有显示,那么请检查你的配置是否正确,以及 Markdown 文件中的 permalink
  15. * 是否是以对应的 Collection 配置的 link 的前缀开头。 是否展示侧边栏是根据 页面链接 的前缀 与 `collection.link`
  16. * 的前缀是否匹配来决定。
  17. */
  18. /**
  19. * 在受支持的 IDE 中会智能提示配置项。
  20. *
  21. * - `defineCollections` 是用于定义 collection 集合的帮助函数
  22. * - `defineCollection` 是用于定义单个 collection 配置的帮助函数
  23. *
  24. * 通过 `defineCollection` 定义的 collection 配置,应该填入 `defineCollections` 中
  25. */
  26. import { defineCollection, defineCollections } from 'vuepress-theme-plume'
  27. const blog = defineCollection({
  28. // post 类型,这里用于实现 博客功能
  29. type: 'post',
  30. // 文档集合所在目录,相对于 `docs`
  31. dir: 'blog',
  32. // 文档标题,它将用于在页面的面包屑导航中显示
  33. title: 'Blog',
  34. // 文章列表页的链接,如果 `linkPrefix` 未定义,它也将作为 相关的文章的 permalink 的前缀
  35. link: '/blog/',
  36. // linkPrefix: '/article/', // 相关文章的链接前缀
  37. // postList: true, // 是否启用文章列表页
  38. // tags: true, // 是否启用标签页
  39. // archives: true, // 是否启用归档页
  40. // categories: true, // 是否启用分类页
  41. // postCover: 'right', // 文章封面位置
  42. // pagination: 15, // 每页显示文章数量
  43. })
  44. const demoDoc = defineCollection({
  45. // doc 类型,该类型带有侧边栏
  46. type: 'doc',
  47. // 文档集合所在目录,相对于 `docs`
  48. dir: 'docs',
  49. // `dir` 所指向的目录中的所有 markdown 文件,其 permalink 需要以 `linkPrefix` 配置作为前缀
  50. // 如果 前缀不一致,则无法生成侧边栏。
  51. // 所以请确保 markdown 文件的 permalink 都以 `linkPrefix` 开头
  52. linkPrefix: '/docs',
  53. // 文档标题,它将用于在页面的面包屑导航中显示
  54. title: '文档',
  55. // 手动配置侧边栏结构
  56. sidebar: ['systemBackground', 'systemModel'],
  57. // 根据文件结构自动生成侧边栏
  58. // sidebar: 'auto',
  59. })
  60. /**
  61. * 导出所有的 collections
  62. * (blog 为博客示例,如果不需要博客功能,请删除)
  63. * (demoDoc 为参考示例,如果不需要它,请删除)
  64. */
  65. export default defineCollections([
  66. blog,
  67. demoDoc,
  68. ])