A5c Ai Docusaurus | Skills Pool
A5c Ai Docusaurus Deep integration with Docusaurus for documentation site development. Configure projects, manage sidebars, versioning, i18n, develop plugins, and optimize builds for React-based documentation.
farm-fe 5,575 stars Mar 30, 2026 Occupation Categories Technical Docs Docusaurus Skill
Deep integration with Docusaurus for documentation site development.
Capabilities
Generate Docusaurus project configuration
Create and manage sidebar structures (sidebars.js)
Configure versioning and i18n
Develop custom Docusaurus plugins
MDX component creation and integration
Build optimization and debugging
Algolia DocSearch configuration
Theme customization
Usage
Invoke this skill when you need to:
Set up a new Docusaurus documentation site
Configure sidebars and navigation
Implement versioned documentation
Add internationalization (i18n)
Create custom plugins or themes
Quick Install
A5c Ai Docusaurus npx skills add farm-fe/farm
stars 5,575
Updated Mar 30, 2026
Occupation action string Yes init, configure, sidebar, version, i18n, plugin projectPath string Yes Path to Docusaurus project config object No Configuration options version string No Version tag for versioning locale string No Locale code for i18n
{
"action": "configure",
"projectPath": "./docs-site",
"config": {
"title": "My Documentation",
"tagline": "Developer documentation for My Product",
"url": "https://docs.example.com",
"organizationName": "my-org",
"projectName": "my-project"
}
}
Project Configuration
docusaurus.config.js // @ts-check
const { themes } = require('prism-react-renderer');
/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'My Documentation',
tagline: 'Developer documentation for My Product',
favicon: 'img/favicon.ico',
url: 'https://docs.example.com',
baseUrl: '/',
organizationName: 'my-org',
projectName: 'my-project',
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
i18n: {
defaultLocale: 'en',
locales: ['en', 'es', 'ja'],
},
presets: [
[
'classic',
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: './sidebars.js',
editUrl: 'https://github.com/my-org/my-project/edit/main/',
showLastUpdateTime: true,
showLastUpdateAuthor: true,
versions: {
current: {
label: 'Next',
path: 'next',
},
},
},
blog: {
showReadingTime: true,
editUrl: 'https://github.com/my-org/my-project/edit/main/',
},
theme: {
customCss: './src/css/custom.css',
},
}),
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
image: 'img/social-card.jpg',
navbar: {
title: 'My Project',
logo: {
alt: 'My Project Logo',
src: 'img/logo.svg',
},
items: [
{
type: 'docSidebar',
sidebarId: 'tutorialSidebar',
position: 'left',
label: 'Docs',
},
{
type: 'docsVersionDropdown',
position: 'right',
},
{
type: 'localeDropdown',
position: 'right',
},
{
href: 'https://github.com/my-org/my-project',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Docs',
items: [
{ label: 'Getting Started', to: '/docs/intro' },
{ label: 'API Reference', to: '/docs/api' },
],
},
{
title: 'Community',
items: [
{ label: 'Discord', href: 'https://discord.gg/example' },
{ label: 'Twitter', href: 'https://twitter.com/example' },
],
},
],
copyright: `Copyright ${new Date().getFullYear()} My Project.`,
},
prism: {
theme: themes.github,
darkTheme: themes.dracula,
additionalLanguages: ['bash', 'json', 'yaml'],
},
algolia: {
appId: 'YOUR_APP_ID',
apiKey: 'YOUR_SEARCH_API_KEY',
indexName: 'my-project',
contextualSearch: true,
},
}),
};
module.exports = config;
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
tutorialSidebar: [
'intro',
{
type: 'category',
label: 'Getting Started',
collapsed: false,
items: [
'getting-started/installation',
'getting-started/quick-start',
'getting-started/configuration',
],
},
{
type: 'category',
label: 'Guides',
items: [
'guides/authentication',
'guides/api-usage',
{
type: 'category',
label: 'Advanced',
items: [
'guides/advanced/caching',
'guides/advanced/performance',
],
},
],
},
{
type: 'category',
label: 'API Reference',
link: {
type: 'generated-index',
title: 'API Reference',
description: 'Complete API documentation',
},
items: [
'api/client',
'api/authentication',
'api/resources',
],
},
{
type: 'link',
label: 'GitHub',
href: 'https://github.com/my-org/my-project',
},
],
};
module.exports = sidebars;
Custom Components
Tabs Component // src/components/CodeTabs.jsx
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
export function CodeTabs({ children, labels = ['JavaScript', 'Python', 'cURL'] }) {
return (
<Tabs groupId="code-examples">
{labels.map((label, index) => (
<TabItem key={label} value={label.toLowerCase()} label={label}>
<CodeBlock language={label.toLowerCase()}>
{children[index]}
</CodeBlock>
</TabItem>
))}
</Tabs>
);
}
API Endpoint Component // src/components/ApiEndpoint.jsx
import React from 'react';
import styles from './ApiEndpoint.module.css';
export function ApiEndpoint({ method, path, description }) {
const methodColors = {
GET: '#61affe',
POST: '#49cc90',
PUT: '#fca130',
DELETE: '#f93e3e',
PATCH: '#50e3c2',
};
return (
<div className={styles.endpoint}>
<span
className={styles.method}
style={{ backgroundColor: methodColors[method] }}
>
{method}
</span>
<code className={styles.path}>{path}</code>
<p className={styles.description}>{description}</p>
</div>
);
}
Versioning
Creating a Version # Create version snapshot
npm run docusaurus docs:version 1.0.0
# Project structure after versioning
docs/
├── intro.md # Current (next) version
├── getting-started/
versioned_docs/
├── version-1.0.0/
│ ├── intro.md
│ └── getting-started/
versioned_sidebars/
├── version-1.0.0-sidebars.json
versions.json
versions.json [
"2.0.0",
"1.1.0",
"1.0.0"
]
Internationalization (i18n)
Translation Structure i18n/
├── en/
│ └── docusaurus-plugin-content-docs/
│ └── current/
│ └── intro.md
├── es/
│ └── docusaurus-plugin-content-docs/
│ └── current/
│ └── intro.md
└── ja/
└── docusaurus-plugin-content-docs/
└── current/
└── intro.md
Write Translations Command # Generate translation files
npm run write-translations -- --locale es
# Start dev server for locale
npm run start -- --locale es
Custom Plugin
Plugin Template // plugins/my-plugin/index.js
module.exports = function myPlugin(context, options) {
return {
name: 'my-plugin',
async loadContent() {
// Load custom content
return { /* content */ };
},
async contentLoaded({ content, actions }) {
const { addRoute, createData } = actions;
// Create custom routes
addRoute({
path: '/my-custom-page',
component: '@site/src/pages/MyPage.jsx',
exact: true,
});
},
configureWebpack(config, isServer, utils) {
// Modify webpack config
return {
resolve: {
alias: {
'@custom': path.resolve(__dirname, 'src'),
},
},
};
},
};
};
Algolia DocSearch
algolia.config.json {
"index_name": "my-project",
"start_urls": [
"https://docs.example.com/"
],
"sitemap_urls": [
"https://docs.example.com/sitemap.xml"
],
"selectors": {
"lvl0": ".menu__link--active",
"lvl1": "article h1",
"lvl2": "article h2",
"lvl3": "article h3",
"lvl4": "article h4",
"content": "article p, article li"
}
}
Workflow
Initialize project - Create new Docusaurus site
Configure - Set up docusaurus.config.js
Structure content - Organize docs and sidebars
Add components - Create custom MDX components
Configure search - Set up Algolia DocSearch
Add versioning - Create version snapshots
Deploy - Build and deploy to hosting
Dependencies {
"dependencies": {
"@docusaurus/core": "^3.0.0",
"@docusaurus/preset-classic": "^3.0.0",
"@mdx-js/react": "^3.0.0",
"prism-react-renderer": "^2.0.0",
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
}
CLI Commands # Create new project
npx create-docusaurus@latest my-docs classic
# Start development server
npm run start
# Build for production
npm run build
# Create version
npm run docusaurus docs:version 1.0.0
# Generate translations
npm run write-translations -- --locale es
# Deploy to GitHub Pages
npm run deploy
Best Practices Applied
Use MDX for interactive components
Implement versioning for stable releases
Configure search for discoverability
Add edit links for community contributions
Use admonitions for callouts
Optimize images with ideal-image
Enable last updated timestamps
References
Target Processes
docs-as-code-pipeline.js
docs-versioning.js
interactive-tutorials.js
knowledge-base-setup.js
02
Capabilities