docusaurus-docs-to-pdf
v0.0.5
Published
A command-line tool to convert Docusaurus documentation sites to a single PDF file.
Readme
Docusaurus To PDF Converter
Introduction
This is a Node.js and Puppeteer-based command-line tool designed to capture and merge Docusaurus website documentation content into a single PDF file. It aims to automate documentation archiving, offline reading, or generating printable versions.
PDF example
You can find a sample PDF generated by this tool at doccusaurus.pdf in the repository. This provides a quick preview of the output.
Features
- Full Site PDF Export: Exports all documentation pages from a Docusaurus site into a single, cohesive PDF file.
- Concurrent Processing: Leverages Puppeteer's concurrency capabilities to speed up the page content fetching process.
- Custom Cover Page: Supports adding a custom PDF cover page using either a URL or a local file path.
- Automatic Table of Contents (TOC) Generation: Automatically generates a professional, clickable PDF table of contents with dot leaders based on the Docusaurus sidebar structure.
- Navigable Internal Links: Rewrites all internal links within the documentation so they remain clickable and navigable in a PDF reader.
- Custom CSS Injection: Supports injecting custom CSS styles directly into the generated PDF for fine-tuned layout control.
- Link Rewriting: Allows rewriting site domains/URLs within hyperlinks to ensure cross-references work correctly across environments.
- Configurable Margins: Supports adjusting PDF page margins via command-line arguments.
Installation
npm install -g docusaurus-docs-to-pdf
# or
yarn global add docusaurus-docs-to-pdfUsage
Run the script from the command line and pass the appropriate arguments.
Command-Line Arguments
docusaurus-docs-to-pdf -h
# or
npx docusaurus-docs-to-pdf -hExamples
Generate PDF with custom margins and concurrency
docusaurus-docs-to-pdf --docs-url http://localhost:3000/docs --pdf-path local-docs.pdf --pdf-margin-mm 20 --page-concurrency 10Advanced: Inject custom CSS and rewrite links
docusaurus-docs-to-pdf --docs-url http://localhost:3000/docs \
--pdf-path docs.pdf \
--css "h1 { color: #2e8555; }" \
--site-rewrite "http://localhost:3000=https://docs.example.com"