自定义组件
初始化的一个 docusaurus 项目就已经有预留好的的组件,例如博客布局,标签页归档页等等。但是这些组件的样式可能不满你的审美,或者是想增加在这些主题组件中增加点东西。那么就需要用到 Swizzle
主题组件
在 docusaurus 中的主题组件存放在 @docusaurus/theme-classic/theme 下,如果想要覆盖某个组件的话可以在 src/theme 目录下创建与之对应文件路径结构相同的文件。
像下面这样
website
├── node_modules
│ └── @docusaurus/theme-classic
│ └── theme
│ └── Navbar.js
└── src
└── theme
└── Navbar.js
每当导入 @theme/Navbar 时,website/src/theme/Navbar.js 都会被优先载入。
关于分层架构可看客户端架构 | Docusaurus
swizzle 组件
要输出所有 @docusaurus/theme-classic 组件的总览,可以运行:
npm run swizzle @docusaurus/theme-classic -- --list
这里以归档页举例,官方的归档页面组件是 theme/BlogArchivePage