
Product
Announcing Socket Fix 2.0
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
docusaurus-prince-pdf
Advanced tools
Extract rendered data from Docusaurus and generate PDF, the hard way
Extract rendered data from Docusaurus and generate PDF, the hard way
You can download it in GitHub Actions artifacts section to see the result.
This project is using the method 1 (see below) for generating PDF. You must have Prince installed on your local machine.
Install Prince first.
Run the following commands to generate PDF:
# Genrate PDF from specific site under `docs` scope
npx docusaurus-prince-pdf -u https://docusaurus.io/docs
# Change generating scope to `/docs/cli/`
npx docusaurus-prince-pdf -u https://docusaurus.io/docs/cli
# Custom working (output) directory
npx docusaurus-prince-pdf -u https://openbayes.com/docs --dest ./pdf-output
# Custom output file name
npx docusaurus-prince-pdf -u https://openbayes.com/docs --output docs.pdf
To generate PDF from a local Docusaurus instance. You need to first build the site locally:
# Build the site
(npm|yarn|pnpm) build
# Serve built site locally
(npm|yarn|pnpm) serve
# Generate PDF from local Docusaurus instance
npx docusaurus-prince-pdf -u http://localhost:4000/docs # Change port to your serving port
See help screen for all options:
npx docusaurus-prince-pdf -h
You can run this program with Docker image:
docker run --rm -it --init \
-v $(pwd)/pdf:/app/pdf \
openbayes/docusaurus-prince-pdf \
-u https://docusaurus.io/docs/
If you need Asiatic languages support like Chinese and Japanese. You can mount your custom fonts directory to Docker image:
docker run --rm -it --init \
-v $(pwd)/pdf:/app/pdf \
-v $(pwd)/fonts:/root/.fonts \
openbayes/docusaurus-prince-pdf \
-u https://docusaurus.io/docs/
You can also run this program inside GitHub Actions:
jobs:
build:
# prerequisites...
- name: Install Prince
run: |
curl https://www.princexml.com/download/prince-14.2-linux-generic-x86_64.tar.gz -O
tar zxf prince-14.2-linux-generic-x86_64.tar.gz
cd prince-14.2-linux-generic-x86_64
yes "" | sudo ./install.sh
- name: Build PDF
run: npx docusaurus-prince-pdf -u https://docusaurus.io/docs/
- name: Upload results
uses: actions/upload-artifact@v3
with:
name: result
# The output filename can be specified with --output option
path: pdf/docusaurus.io-docs.pdf
if-no-files-found: error
# ...other steps
You can also run prince
with prebuilt Prince Docker image:
jobs:
build:
# prerequisites...
- name: Build PDF
run: docker run --rm -it -v $(pwd)/pdf:/app/pdf openbayes/docusaurus-prince-pdf -u https://docusaurus.io/docs/
# ...other steps
Like mr-pdf, this package looks for the next pagination links on generated Docusaurus site. Collect them in a list and then pass the list to Prince to generate the PDF.
You can specify the CSS selector if you're using custom Docusaurus theme:
npx docusaurus-prince-pdf -u https://openbayes.com/ --selector 'nav.custom-pagination-item--next > a'
I made a comparison list for the two methods of generating PDF from Docusaurus.
The good:
The bad:
mask-image
)srcset
)The ugly:
The good:
mask-image
)The bad:
respectPrefersColorScheme
enabled in your Docusaurus instance. But it's not an issue in Ci/CD environmentsThe ugly:
#
) not well handledUsage:
npx mr-pdf --initialDocURLs="https://openbayes.com/docs/" --paginationSelector=".pagination-nav__item--next > a" --contentSelector="article"
MIT
FAQs
Extract rendered data from Docusaurus and generate PDF, the hard way
The npm package docusaurus-prince-pdf receives a total of 621 weekly downloads. As such, docusaurus-prince-pdf popularity was classified as not popular.
We found that docusaurus-prince-pdf demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.