📦 plugin-content-blog
Provides the Blog feature and is the default blog plugin for Docusaurus.
some features production only
The feed feature works by extracting the build output, and is only active in production.
Installation
- npm
- Yarn
- pnpm
npm install --save @docusaurus/plugin-content-blog
yarn add @docusaurus/plugin-content-blog
pnpm add @docusaurus/plugin-content-blog
提示
If you use the preset @docusaurus/preset-classic
, you don't need to install this plugin as a dependency.
You can configure this plugin through the preset options.
Configuration
接受的字段:
参 数 | 类型 | 默认值 | 描述 |
---|---|---|---|
path | string | 'blog' | 博客内容目录的文件系统路径,相对于站点目录。 |
editUrl | string | EditUrlFn | undefined | 编辑文档的基础 URL。 The final URL is computed by editUrl + relativePostPath . 使用函数可以允许你更精细地控制每一个文件。 完全忽略这个变量就会禁用编辑链接。 |
editLocalizedFiles | boolean | false | 编辑 URL 会指向本地化的文件,而不是原始的未翻译文件。 Ignored when editUrl is a function. |
blogTitle | string | 'Blog' | 用于增进 SEO 的博客页面标题。 |
blogDescription | string | 'Blog' | 用于增进 SEO 的博客页面元描述。 |
blogSidebarCount | number | 'ALL' | 5 | 在博客侧边栏中展示的博文项目数量。 'ALL' to show all blog posts; 0 to disable. |
blogSidebarTitle | string | 'Recent posts' | 博客侧边栏的标题。 |
routeBasePath | string | 'blog' | 站点博客部分的 URL 前缀。 DO NOT include a trailing slash. Use / to put the blog at root path. |
tagsBasePath | string | 'tags' | 博客标签部分的 URL 前缀。 Will be appended to routeBasePath . DO NOT include a trailing slash. |
archiveBasePath | string | null | 'archive' | 博客归档部分的 URL 前缀。 Will be appended to routeBasePath . DO NOT include a trailing slash. Use null to disable generation of archive. |
include | string[] | ['**/*.{md,mdx}'] | 相对于内容路径的 glob 模式列表,匹配到的 Markdown 文件会被构建。 |
exclude | string[] | See example configuration | Glob 模式列表,匹配到的 Markdown 文件会被排除。 Serves as refinement based on the include option. |
postsPerPage | number | 'ALL' | 10 | 每个博文列表页面显示的博文数量。 Use 'ALL' to display all posts on one listing page. |
blogListComponent | string | '@theme/BlogListPage' | 博客列表页的根组件。 |
blogPostComponent | string | '@theme/BlogPostPage' | 每个博文页面的根组件。 |
blogTagsListComponent | string | '@theme/BlogTagsListPage' | 标签列表页的根组件。 |
blogTagsPostsComponent | string | '@theme/BlogTagsPostsPage' | 「包含某标签的所有博文」页面的根组件。 |
blogArchiveComponent | string | '@theme/BlogArchivePage' | 博客归档页的根组件。 |
remarkPlugins | any[] | [] | 传递给 MDX 的 Remark 插件。 |
rehypePlugins | any[] | [] | 传递给 MDX 的 Rehype 插件。 |
beforeDefaultRemarkPlugins | any[] | [] | 在 Docusaurus 默认 Remark 插件之前传递给 MDX 的自定义 Remark 插件。 |
beforeDefaultRehypePlugins | any[] | [] | 在 Docusaurus 默认 Rehype 插件之前传递给 MDX 的自定义 Rehype 插件。 |
truncateMarker | RegExp | /<!--\s*truncate\s*-->/ | \{\/\*\s*truncate\s*\*\/\}/ |
showReadingTime | boolean | true | 在博文上显示估计阅读时间。 |
readingTime | ReadingTimeFn | 默认阅读时间 | 用于自定义显示的阅读时间数字的回调。 |
authorsMapPath | string | 'authors.yml' | 作者记录表的文件路径,相对于博客内容目录。 |
feedOptions | See below | {type: ['rss', 'atom']} | 博客订阅源。 |
feedOptions.type | FeedType | FeedType[] | 'all' | null | Required | 要生成的订阅源类型。 Use null to disable generation. |
feedOptions.createFeedItems | CreateFeedItemsFn | undefined | undefined | An optional function which can be used to transform and / or filter the items in the feed. |
feedOptions.limit | number | null | false | 20 | Limits the feed to the specified number of posts, false or null for all entries. Defaults to 20 . |
feedOptions.title | string | siteConfig.title | 订阅源的标题。 |
feedOptions.description | string | `${siteConfig.title} Blog` | 订阅源的描述。 |
feedOptions.copyright | string | undefined | 版权信息。 |
feedOptions.language | string (See documentation for possible values) | undefined | 订阅源的语言元数据。 |
sortPosts | 'descending' | 'ascending' | 'descending' | 决定博文排序的方向。 |
Types
EditUrlFn
type EditUrlFunction = (params: {
blogDirPath: string;
blogPath: string;
permalink: string;
locale: string;
}) => string | undefined;
ReadingTimeFn
type ReadingTimeOptions = {
wordsPerMinute: number;
wordBound: (char: string) => boolean;
};
type ReadingTimeCalculator = (params: {
content: string;
frontMatter?: BlogPostFrontMatter & Record<string, unknown>;
options?: ReadingTimeOptions;
}) => number;
type ReadingTimeFn = (params: {
content: string;
frontMatter: BlogPostFrontMatter & Record<string, unknown>;
defaultReadingTime: ReadingTimeCalculator;
}) => number | undefined;