Skip to content

bojl/docusaurus-pdf

 
 

Repository files navigation

npm version code style: prettier Github Action: Test

Introduction

This is a PDF generator from docusaurus document.

*Note

  • This plugin is not intended to be used during build process. But you can run it as a post build script. See the instructions below.

Demo

This is generated PDF of official docusaurus website: https://drive.google.com/file/d/19P3qSwLLUHYigrxH3QXIMXmRpTFi4pKB/view

Usage

Use with already hosted docusaurus instance (locally or somewhere in the net)

npx docusaurus-pdf <initialDocsUrl> [filename]

For example

npx docusaurus-pdf http://localhost:3000/myBaseUrl/docs/doc1 hoge.pdf

*NOTE!

  • initialDocsUrl is required. You can spin up your dev-webserver of docusaurus with yarn start or use an already hosted page.
  • filename is optional (default is docusaurus.pdf).

Use with the build artifact of docusaurus build

npx docusaurus-pdf from-build [options] <dirPath> <firstDocPagePath> [baseUrl]

For example

npx docusaurus-pdf from-build build/ docs/doc1 /myBaseUrl/

You can also try to automatically load the firstDocPagePath and baseUrl from docusaurus.config.js:

npx docusaurus-pdf from-build-config

Parameters

  • Mandatory: dirPath which points to the build directory created with docusaurus build.
  • Mandatory: firstDocPagePath is the URL path segment (without baseUrl) of your first docs page you whish to have included in the PDF.
  • Optional: If you have a baseUrl configured in your docusaurus.config.js then pass this value as baseUrl.
  • Note: There is a optional parameter to set a custom filename. You can see further details using npx docusaurus-pdf from-build --help.

Table of Contents

A table of contents will be generated wherever you place a <toc> tag. The items in the table of contents will be indented according to their header size. The header will have class toc-header, the ul element will have class toc-list, and the individual li elements will have class toc-item.

Docker usage

All dependencies needed to create a PDF from your docusaurus site are bundled in our Dockerfile.

Create PDF from build artifact

Run docusaurus-pdf with prebuild image

docker run --rm -it -v /someDir/my-docusaurus:/workspace maxys/docusaurus-pdf:latest from-build --no-sandbox -o /workspace/build/docs.pdf /workspace/build docs/doc1 myBaseUrl

Build Docker image locally

You can create the image locally without pulling maxys/docusaurus-pdf:latest from the Docker Hub with:

docker build -t "docusaurus-pdf" .

Link of PDF

  1. Move generated pdf file to static/img folder.
  2. <a> tag with target="_blank"
<a href={useBaseUrl('img/docusaurus.pdf')} target="_blank">
  Download PDF
</a>

NOTE!

  1. If this plugin cannot find next page link, PDF generation will stop.

note

  1. Dark theme PDF cannot be generated correctly now.

About

Generate PDF for docusaurus

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 52.8%
  • JavaScript 38.1%
  • CSS 5.4%
  • Dockerfile 3.7%