{"_id":"@cogita/plugin-blog-list","_rev":"6-ab30d79b6f157ac9ea9e8f51b8c2ee13","name":"@cogita/plugin-blog-list","dist-tags":{"latest":"0.3.5"},"versions":{"0.2.0":{"name":"@cogita/plugin-blog-list","version":"0.2.0","keywords":["cogita","plugin","blog-list","archive","pagination","rspress"],"author":{"name":"wu9o","email":"https://github.com/wu9o"},"license":"MIT","_id":"@cogita/plugin-blog-list@0.2.0","maintainers":[{"name":"wu9o","email":"wu9ors@gmail.com"}],"homepage":"https://github.com/wu9o/cogita/tree/main/plugins/blog-list#readme","bugs":{"url":"https://github.com/wu9o/cogita/issues"},"dist":{"shasum":"4612d58122ac04146296a790f0c25007b4c0a243","tarball":"https://registry.npmjs.org/@cogita/plugin-blog-list/-/plugin-blog-list-0.2.0.tgz","fileCount":12,"integrity":"sha512-yzjtYHq9UMsHnEY7txprKr16QE4qH7yZto+t9lDnr4YL6XsW9JHvTi+m7MmTZ3ig0/m8QQkn8j7ayT3P4u18Bg==","signatures":[{"sig":"MEQCICBfRtFjNHVy+6xYl7vC5qMrc654w4gcgsZsIX0LwWa6AiABoIjkU8PZRDDU2EG+HMzp1IE/FaCIdatCpK/FKnm9EQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16790},"main":"./dist/index.js","type":"module","_from":"file:cogita-plugin-blog-list-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"rslib build -w","test":"pnpm build && node --test tests/*.test.mjs","build":"rslib build","clean":"rm -rf dist"},"_npmUser":{"name":"wu9o","email":"wu9ors@gmail.com"},"_resolved":"/tmp/42673070088855d5f636e42c3a954ed9/cogita-plugin-blog-list-0.2.0.tgz","_integrity":"sha512-yzjtYHq9UMsHnEY7txprKr16QE4qH7yZto+t9lDnr4YL6XsW9JHvTi+m7MmTZ3ig0/m8QQkn8j7ayT3P4u18Bg==","repository":{"url":"git+https://github.com/wu9o/cogita.git","type":"git","directory":"plugins/blog-list"},"_npmVersion":"10.8.2","description":"文章列表、分页与归档插件，为 Cogita 提供可复用的静态列表页面。","directories":{},"_nodeVersion":"18.20.8","dependencies":{"glob":"^11.0.3","@rspress/core":"^1.45.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.4","@rslib/core":"0.11.2","@types/glob":"^9.0.0","@cogita/shared":"0.2.0","rsbuild-plugin-publint":"^0.3.3"},"peerDependencies":{"@cogita/plugin-posts-frontmatter":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-blog-list_0.2.0_1787300290822_0.7338000778325231","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@cogita/plugin-blog-list","version":"0.2.1","keywords":["cogita","plugin","blog-list","archive","pagination","rspress"],"author":{"name":"wu9o","email":"https://github.com/wu9o"},"license":"MIT","_id":"@cogita/plugin-blog-list@0.2.1","maintainers":[{"name":"wu9o","email":"wu9ors@gmail.com"}],"homepage":"https://github.com/wu9o/cogita/tree/main/plugins/blog-list#readme","bugs":{"url":"https://github.com/wu9o/cogita/issues"},"dist":{"shasum":"cc8211a4a362c5160da731079a9982b7996d623d","tarball":"https://registry.npmjs.org/@cogita/plugin-blog-list/-/plugin-blog-list-0.2.1.tgz","fileCount":12,"integrity":"sha512-L0uimKHsKtooDgyhW0g8NIYUi4xKQWBqvWo2SiaQCEKSd9yVkwT0ZIWZQy85hxO+wJQ1bgokms8iIQ3j3xQQLA==","signatures":[{"sig":"MEQCIFc/8tjeHChK8M4G4bfW35r87Na2AwJAB5P/aQIpGgw4AiBod/fyV6WDhz6yUR4CMcDxI5VpuLB/anTDHI3pwiKIIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17056},"main":"./dist/index.js","type":"module","_from":"file:cogita-plugin-blog-list-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"rslib build -w","test":"pnpm build && node --test tests/*.test.mjs","build":"rslib build","clean":"rm -rf dist"},"_npmUser":{"name":"wu9o","email":"wu9ors@gmail.com"},"_resolved":"/tmp/fe9d55e6bd5f8520987c33aaf6e47a53/cogita-plugin-blog-list-0.2.1.tgz","_integrity":"sha512-L0uimKHsKtooDgyhW0g8NIYUi4xKQWBqvWo2SiaQCEKSd9yVkwT0ZIWZQy85hxO+wJQ1bgokms8iIQ3j3xQQLA==","repository":{"url":"git+https://github.com/wu9o/cogita.git","type":"git","directory":"plugins/blog-list"},"_npmVersion":"10.8.2","description":"文章列表、分页与归档插件，为 Cogita 提供可复用的静态列表页面。","directories":{},"_nodeVersion":"18.20.8","dependencies":{"glob":"^11.0.3","@rspress/core":"^1.45.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.4","@rslib/core":"0.11.2","@types/glob":"^9.0.0","@cogita/shared":"0.8.0","rsbuild-plugin-publint":"^0.3.3"},"peerDependencies":{"@cogita/plugin-posts-frontmatter":"0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/plugin-blog-list_0.2.1_1787553756516_0.40456170701729977","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cogita/plugin-blog-list","version":"0.3.0","keywords":["cogita","plugin","blog-list","archive","pagination","rspress"],"author":{"name":"wu9o","email":"https://github.com/wu9o"},"license":"MIT","_id":"@cogita/plugin-blog-list@0.3.0","maintainers":[{"name":"wu9o","email":"wu9ors@gmail.com"}],"homepage":"https://github.com/wu9o/cogita/tree/main/plugins/blog-list#readme","bugs":{"url":"https://github.com/wu9o/cogita/issues"},"dist":{"shasum":"99914f76fbb8dcfeb6e6a6ed46e66fcdc0e01891","tarball":"https://registry.npmjs.org/@cogita/plugin-blog-list/-/plugin-blog-list-0.3.0.tgz","fileCount":12,"integrity":"sha512-YLjX3QSAL7AIPRLa5hZcqPCyjRepOJgaaQp/cBx33Df3cgwBNBWic8LKVAR8A00frAh3e5DnVk0kxB8aej5VrA==","signatures":[{"sig":"MEUCIGRs4d2/Ti3ITAWuAUrAtQ4NZXkrVgt8ZfZfMSz7DEQOAiEAuVnUeZ/sdggoZ43pKXWMSkDbED4LBwHCDpfjjRmda18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21886},"main":"./dist/index.js","type":"module","_from":"file:cogita-plugin-blog-list-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"rslib build -w","test":"pnpm build && node --test tests/*.test.mjs","build":"rslib build","clean":"rm -rf dist"},"_npmUser":{"name":"wu9o","email":"wu9ors@gmail.com"},"_resolved":"/tmp/e3ab4550a42259f686d848381e08e390/cogita-plugin-blog-list-0.3.0.tgz","_integrity":"sha512-YLjX3QSAL7AIPRLa5hZcqPCyjRepOJgaaQp/cBx33Df3cgwBNBWic8LKVAR8A00frAh3e5DnVk0kxB8aej5VrA==","repository":{"url":"git+https://github.com/wu9o/cogita.git","type":"git","directory":"plugins/blog-list"},"_npmVersion":"10.8.2","description":"文章列表、分页与归档插件，为 Cogita 提供可复用的静态列表页面。","directories":{},"_nodeVersion":"18.20.8","dependencies":{"glob":"^11.0.3","@rspress/core":"^1.45.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.4","@rslib/core":"0.11.2","@types/glob":"^9.0.0","@cogita/shared":"0.9.0","rsbuild-plugin-publint":"^0.3.3"},"peerDependencies":{"@cogita/plugin-posts-frontmatter":"0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/plugin-blog-list_0.3.0_1787566701504_0.6507797939702418","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@cogita/plugin-blog-list","version":"0.3.1","keywords":["cogita","plugin","blog-list","archive","pagination","rspress"],"author":{"name":"wu9o","email":"https://github.com/wu9o"},"license":"MIT","_id":"@cogita/plugin-blog-list@0.3.1","maintainers":[{"name":"wu9o","email":"wu9ors@gmail.com"}],"homepage":"https://github.com/wu9o/cogita/tree/main/plugins/blog-list#readme","bugs":{"url":"https://github.com/wu9o/cogita/issues"},"dist":{"shasum":"2f7edcae3f938f2a7846364c24008bd42692592f","tarball":"https://registry.npmjs.org/@cogita/plugin-blog-list/-/plugin-blog-list-0.3.1.tgz","fileCount":12,"integrity":"sha512-yWpsuZOXuqB1jVCvt84UUISCpBGrBqzDBhlHDU26HOUKHeYru/m0C97ax6E4oaeaOTZAEMBy2snU7xE6cD7dJw==","signatures":[{"sig":"MEYCIQDZLoxqvP62RXXkONmffrFU5zmLVV+1mA723DY+kzZtYgIhAPddCeexWk9lsZSBxWjIUrkJJsNRyIpWuBQm7FwI9vUn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22423},"main":"./dist/index.js","type":"module","_from":"file:cogita-plugin-blog-list-0.3.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"rslib build -w","test":"pnpm build && node --test tests/*.test.mjs","build":"rslib build","clean":"rm -rf dist"},"_npmUser":{"name":"wu9o","email":"wu9ors@gmail.com"},"_resolved":"/tmp/e7f7999ac902298a0e77b4ac2d2b1fec/cogita-plugin-blog-list-0.3.1.tgz","_integrity":"sha512-yWpsuZOXuqB1jVCvt84UUISCpBGrBqzDBhlHDU26HOUKHeYru/m0C97ax6E4oaeaOTZAEMBy2snU7xE6cD7dJw==","repository":{"url":"git+https://github.com/wu9o/cogita.git","type":"git","directory":"plugins/blog-list"},"_npmVersion":"10.8.2","description":"文章列表、分页与归档插件，为 Cogita 提供可复用的静态列表页面。","directories":{},"_nodeVersion":"18.20.8","dependencies":{"glob":"^11.0.3","@rspress/core":"^1.45.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.4","@rslib/core":"0.11.2","@types/glob":"^9.0.0","@cogita/shared":"0.10.0","rsbuild-plugin-publint":"^0.3.3"},"peerDependencies":{"@cogita/plugin-posts-frontmatter":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/plugin-blog-list_0.3.1_1787639084511_0.2694323549742821","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@cogita/plugin-blog-list","version":"0.3.2","keywords":["cogita","plugin","blog-list","archive","pagination","rspress"],"author":{"name":"wu9o","email":"https://github.com/wu9o"},"license":"MIT","_id":"@cogita/plugin-blog-list@0.3.2","maintainers":[{"name":"wu9o","email":"wu9ors@gmail.com"}],"homepage":"https://github.com/wu9o/cogita/tree/main/plugins/blog-list#readme","bugs":{"url":"https://github.com/wu9o/cogita/issues"},"dist":{"shasum":"362b9b828d6b5bdf7130ead8bcf9d934a8c2da59","tarball":"https://registry.npmjs.org/@cogita/plugin-blog-list/-/plugin-blog-list-0.3.2.tgz","fileCount":12,"integrity":"sha512-hwixNq5BdsICrwCEwD/4nTxV16Kz96m8/LJq9Xg8hg24YtYf++BXJQrbEAaviVeHPOM2qZ/9ApWk4dXaR+VoMg==","signatures":[{"sig":"MEUCIHDyTdFsh7aklgjVmshaztWdtf1PV7I8H4duIRm5OLITAiEAyDaGqTDRK+wLVGhEYvSAwCyDypf71BFsnFd9o34MHFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21614},"main":"./dist/index.js","type":"module","_from":"file:cogita-plugin-blog-list-0.3.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"rslib build -w","test":"pnpm build && node --test tests/*.test.mjs","build":"rslib build","clean":"rm -rf dist"},"_npmUser":{"name":"wu9o","email":"wu9ors@gmail.com"},"_resolved":"/tmp/87797b9e4226c6866c87599d5e3a9327/cogita-plugin-blog-list-0.3.2.tgz","_integrity":"sha512-hwixNq5BdsICrwCEwD/4nTxV16Kz96m8/LJq9Xg8hg24YtYf++BXJQrbEAaviVeHPOM2qZ/9ApWk4dXaR+VoMg==","repository":{"url":"git+https://github.com/wu9o/cogita.git","type":"git","directory":"plugins/blog-list"},"_npmVersion":"10.8.2","description":"文章列表、分页与归档插件，为 Cogita 提供可复用的静态列表页面。","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@rspress/core":"^1.45.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.4","@rslib/core":"0.11.2","@cogita/shared":"0.11.0","rsbuild-plugin-publint":"^0.3.3"},"_npmOperationalInternal":{"tmp":"tmp/plugin-blog-list_0.3.2_1787724965369_0.2930058951472736","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@cogita/plugin-blog-list","version":"0.3.5","description":"文章列表、分页与归档插件，为 Cogita 提供可复用的静态列表页面。","keywords":["cogita","plugin","blog-list","archive","pagination","rspress"],"author":{"name":"wu9o","email":"https://github.com/wu9o"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/wu9o/cogita.git","directory":"plugins/blog-list"},"bugs":{"url":"https://github.com/wu9o/cogita/issues"},"homepage":"https://github.com/wu9o/cogita/tree/main/plugins/blog-list#readme","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"devDependencies":{"@rslib/core":"0.11.2","rsbuild-plugin-publint":"^0.3.3","typescript":"^5.0.4"},"dependencies":{"@rspress/core":"^1.45.1","@cogita/shared":"0.13.0"},"scripts":{"build":"rslib build","dev":"rslib build -w","clean":"rm -rf dist","test":"pnpm build && node --test tests/*.test.mjs"},"_id":"@cogita/plugin-blog-list@0.3.5","_integrity":"sha512-gBNtMYZ+KsFMf9AC1Q29JF2S9zpiiKSVacDsjA9zxQtC3iGKdZBa4hDTlmUibWI22D67i2LV4A1DyZyREoDxHg==","_resolved":"/tmp/9c04e643c169e7a76b27fa25b702c8d5/cogita-plugin-blog-list-0.3.5.tgz","_from":"file:cogita-plugin-blog-list-0.3.5.tgz","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-gBNtMYZ+KsFMf9AC1Q29JF2S9zpiiKSVacDsjA9zxQtC3iGKdZBa4hDTlmUibWI22D67i2LV4A1DyZyREoDxHg==","shasum":"64368c74cada635d4219562394256c9a16a3d141","tarball":"https://registry.npmjs.org/@cogita/plugin-blog-list/-/plugin-blog-list-0.3.5.tgz","fileCount":12,"unpackedSize":21828,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDWFikQrQSFLwsTED6rj5X+zELltcR3oMNk0G+D75SajgIhAI06DlZibbFAaQSVHYaO8vR918ZmCgajZR8Sy8FmGQQf"}]},"_npmUser":{"name":"wu9o","email":"wu9ors@gmail.com"},"directories":{},"maintainers":[{"name":"wu9o","email":"wu9ors@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-blog-list_0.3.5_1788404983439_0.08098554276322956"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-21T08:18:10.628Z","modified":"2026-09-03T03:09:43.736Z","0.2.0":"2026-08-21T08:18:10.979Z","0.2.1":"2026-08-24T06:42:36.672Z","0.3.0":"2026-08-24T10:18:21.638Z","0.3.1":"2026-08-25T06:24:44.664Z","0.3.2":"2026-08-26T06:16:05.497Z","0.3.5":"2026-09-03T03:09:43.579Z"},"bugs":{"url":"https://github.com/wu9o/cogita/issues"},"author":{"name":"wu9o","email":"https://github.com/wu9o"},"license":"MIT","homepage":"https://github.com/wu9o/cogita/tree/main/plugins/blog-list#readme","keywords":["cogita","plugin","blog-list","archive","pagination","rspress"],"repository":{"type":"git","url":"git+https://github.com/wu9o/cogita.git","directory":"plugins/blog-list"},"description":"文章列表、分页与归档插件，为 Cogita 提供可复用的静态列表页面。","maintainers":[{"name":"wu9o","email":"wu9ors@gmail.com"}],"readme":"# @cogita/plugin-blog-list\n\nCogita 的文章列表、静态分页和时间归档插件。\n\n## 能力\n\n- 构建期生成 `/archive` 文章列表页；\n- 支持按创建时间、更新时间或标题排序；\n- 支持静态分页；\n- 支持标签和层级分类筛选页及筛选分页；\n- 支持按年或按月生成归档页面；\n- 通过 `virtual-blog-list-data` 向主题提供列表数据；\n- 兼容 `site.base` 子路径部署和现有文章封面元数据。\n\n## 配置\n\n```ts\nexport default defineConfig({\n  blogList: {\n    enabled: true,\n    routePrefix: 'archive',\n    pageSize: 10,\n    sortBy: 'createDate',\n    order: 'desc',\n    generateArchives: true,\n    archivePrefix: 'archives',\n    archiveGranularity: 'year',\n  },\n});\n```\n\n主题需要声明 `pageLayouts.blogList`，并可选声明 `pageLayouts.archive`。主题插件会自动加载 `pluginBlogList`。\n\n## 验证\n\n```bash\npnpm --filter @cogita/plugin-blog-list test\n```\n\n测试覆盖配置规范化、稳定排序、分页边界、标签/分类筛选、年度归档、月度归档和非法日期统计。\n\n## 虚拟模块\n\n插件提供 `virtual-blog-list-data`，包含 `allBlogListPages`、`allBlogListFilters`、`allArchives` 和对应的查询函数。筛选列表使用以下静态路由：\n\n- `/archive`、`/archive/page/2`：全部文章列表；\n- `/archive/tag/:slug`、`/archive/tag/:slug/page/2`：标签列表；\n- `/archive/category/:slug`、`/archive/category/:slug/page/2`：分类列表。\n\n主题可以使用这些数据实现自定义列表布局，而不需要重新扫描文章目录。\n\n## 架构边界\n\n插件负责文章数据的排序、分页、归档和页面路由；主题负责 React 布局和交互；SEO 元数据继续由 `@cogita/plugin-seo` 负责。\n","readmeFilename":"README.md"}