A comprehensive collection of Docusaurus plugins built with TypeScript in a modern monorepo structure.
| Package | Version | Description |
|---|---|---|
@signalwire/docusaurus-plugin-llms-txt |
Generate Markdown versions of Docusaurus pages and an llms.txt index file | |
@signalwire/docusaurus-theme-llms-txt |
Theme components for llms.txt plugin with copy-to-clipboard functionality |
npm install @signalwire/docusaurus-plugin-llms-txt @signalwire/docusaurus-theme-llms-txt
# or
yarn add @signalwire/docusaurus-plugin-llms-txt @signalwire/docusaurus-theme-llms-txtAdd to your docusaurus.config.ts:
import type { Config } from '@docusaurus/types';
const config: Config = {
plugins: [
[
'@signalwire/docusaurus-plugin-llms-txt',
{
// Plugin options
},
],
],
themes: ['@signalwire/docusaurus-theme-llms-txt'],
};
export default config;- Node.js β₯ 20.0.0
- pnpm 10.x (
corepack enable pnpmpicks up the pinned version)
# Clone the repository
git clone https://github.com/signalwire/docusaurus-plugins.git
cd docusaurus-plugins
# Install dependencies and build all packages
pnpm run bootstrap# Start development with watch mode
pnpm dev
# Run tests
pnpm test
# Lint code
pnpm lint
# Type check
pnpm type-check
# Format code
pnpm format- Create a new directory in
packages/ - Add a
package.jsonwith standard scripts - pnpm will automatically detect and include it in all workspace operations
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build all packages and website |
pnpm build:packages |
Build all packages only |
pnpm run bootstrap |
Install and build the workspace |
pnpm test |
Run tests in all packages |
pnpm lint |
Lint all packages |
pnpm format |
Format all code |
pnpm clean |
Clean build artifacts |
This monorepo uses Changesets for version management and publishing.
# Create a changeset
pnpm changeset
# Version packages and update changelogs
pnpm changeset:version
# Publish to npm
pnpm changeset:publishFor detailed publishing instructions, see PUBLISHING.md.
docusaurus-plugins/
βββ packages/ # Published packages
β βββ docusaurus-plugin-llms-txt/
β βββ docusaurus-theme-llms-txt/
βββ website/ # Demo/documentation site
βββ .changeset/ # Versioning and release (changesets)
βββ pnpm-workspace.yaml # Workspace packages and shared pnpm settings
βββ package.json # Root scripts and development dependencies
- Package Management: pnpm workspaces (linking and task running)
- Build System: TypeScript with project references
- Version Management: Changesets
- Code Quality: ESLint + Prettier
- Testing: Jest
- Documentation: Docusaurus
- β Independent Versioning: Each package can be versioned separately
- β Automated Publishing: Changesets handle versioning and publishing
- β Type Safety: Full TypeScript support with strict configuration
- β Code Quality: Automated linting, formatting, and testing
- β Auto-Discovery: New packages automatically included in all operations
- β Modern ES Modules: Built for modern JavaScript environments
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Run
pnpm prereleaseto verify everything works - Create a changeset with
pnpm changeset - Submit a pull request
- Follow the existing code style (enforced by Prettier/ESLint)
- Add tests for new functionality
- Update documentation for API changes
- Use semantic commit messages
- Create changesets for all user-facing changes
MIT Β© SignalWire
Generate Markdown versions of Docusaurus HTML pages and create an llms.txt index file for LLM
consumption.
Key Features:
- π HTML to Markdown conversion
- π llms.txt index generation
- ποΈ Hierarchical organization
- β‘ Smart caching
- π― Content filtering
Theme package providing UI components for the llms.txt plugin, including a copy-to-clipboard button for page content.
Key Features:
- π Copy page content as Markdown
- π€ Format for ChatGPT and Claude
- π― Smart detection of page title
- π± Responsive mobile/desktop layouts
- π§ Fully swizzlable components
Architecture:
- Uses DOM-based detection to identify page titles (H1 in
<header>tags) - Global data fetching with shared cache for performance
- Integrates seamlessly with Docusaurus theme system