使用技巧整理
这里积累 Docusaurus 使用过程中的小技巧点, 可以增加阅读体验
内容展示
1. 显示摘要
博客列表默认显示全部内容, 为了方便阅读, 使用 <!-- truncate -->
后, 列表页可以仅显示摘要内容, 方便预览
....摘要
// highlight-next-line
<!-- truncate -->
....正文
2. 博客设置草稿
未撰写好的博客,在打包的时候不希望显示在博客列表中,可设置该篇博客为草稿状态,默认未设置 draft
为发布状态
---
title: 发布时展示否
...
// highlight-next-line
draft: true
---
3. 文章详情页添加自定义模块
想要在每篇文章下方增加其他组件, 需要修改底层逻辑, (建议有 react
基础, 可以更好理解)
-
/src/components/
下新实现全局组件helloWorld
-
利用 Swizzle 来完成组件安装, 安装目录为
/src/theme/
下pnpm run swizzle @docusaurus/theme-classic helloWorld --wrap
-
引入组件
import React from 'react';
import BlogPostItem from '@theme-original/BlogPostItem';
import { useBlogPost } from '@docusaurus/theme-common/internal';
import WeChatFollowCard from '@site/src/components/helloWorld';
import useIsBrowser from '@docusaurus/useIsBrowser';
export default function BlogPostItemWrapper(props) {
const { metadata, isBlogPostPage } = useBlogPost()
const isBrowser = useIsBrowser();
const { frontMatter } = metadata
const { enable_comment: enableComment } = frontMatter
return (
<>
<BlogPostItem {...props} />
{
(enableComment && isBlogPostPage) && <helloWorld />
}
</>
);
}
文档
1. 文档定义为内部引用
我们知道所有 docs
下面的 .md
或 .mdx
后缀的文件都将作为文档里面的页面显示出来,如果某个文档只是被其它的文档所引用,我们只需将该文档的命名前面加上 _
的前缀, 就好比我们命名私有变量一样
祥见文章MDX 和 React |Docusaurus 文档
2. 侧边栏折叠
docusaurus.config.ts
themeConfig: {
docs: {
sidebar: {
hideable: true, // 允许隐藏整个侧边栏
autoCollapseCategories: true, // 展开一个类别时自动折叠其他类别
},
},
} satisfies Preset.ThemeConfig,