Astor 基于 remark 来解析 markdown,所以可我们可以使用自定义插件的方式,来添加阅读时间。
前置工作
步骤 1,安装依赖
步骤 2,在 utils 文件夹下新建自定义插件 remark-reading-time.mjs
步骤 3,在astro.config.mjs
引用插件
步骤 4,修改博文的结构 src/content/_schemas.ts
步骤 5,创建一个工具方法 getPostsWithRT.ts,获取阅读时间
步骤 7,添加 ReadTime 组件
博文中添加阅读时间
步骤 1,修改 /src/pages/posts/[slug].astro
步骤 2,修改 src/layouts/PostDetails.astro,引入 Readtime 组件和使用 readingTime 字段
就可以看到阅读时长了
博文外添加阅读时长(可选)
步骤 1,修改 utils/getSortedPosts.ts,让默认文章包含阅读时长
步骤 2,修改使用了 getSortedPosts 这个方法的页面,让其通过 await 调用
使用了这个方法的页面如下:
- src/pages/index.astro
- src/pages/posts/index.astro
- src/pages/rss.xml.ts
- src/pages/posts/[slug].astro
步骤 3,在其他页面使用,比如修改 Card.tsx 组件
看一下效果