![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
An Mkdocs plugin to generate a PDF file for each MkDocs page using pyppeteer
(chrome headless)
and add a download button.
Install the package with pip:
pip install mkdocs-page-pdf
Enable the plugin in your mkdocs.yml:
plugins:
# - ...
- page-to-pdf # should be last
To set different options use the following syntax.
plugins:
# - ...
- page-to-pdf :
# Options here
disable
(bool): Disable pdf rendering useful to quickly disable it without removing the plugin config. Defaults to False
.disableOnServe
(bool): Disable pdf rendering when using mkdocs serve
. Defaults to False
.The following options are directly induced from pyppeteer options :
scale
(float): Scale of the webpage rendering, defaults to 1.0
.displayHeaderFooter
(bool): Display header and footer.
Defaults to False
.headerTemplate
(str): HTML template for the print header. Should
be valid HTML markup with following classes.
date
: formatted print datetitle
: document titleurl
: document locationpageNumber
: current page numbertotalPages
: total pages in the documentfooterTemplate
(str): HTML template for the print footer. Should be valid HTML markup with the same classes as headerTemplate
.printBackground
(bool): Print background graphics. Defaults toFalse
.landscape
(bool): Paper orientation. Defaults to False
.pageRanges
(string): Paper ranges to print, e.g., '1-5,8,11-13'. Defaults to empty string, which means all pages.format
(str): Paper format. Defaults to A4
.margin
(dict): Paper margins.
top
(str): Top margin, accepts values labeled with units, defaults to 20px
.right
(str): Right margin, accepts values labeled with units, defaults to 20px
.bottom
(str): Bottom margin, accepts values labeled with units, defaults to 20px
.left
(str): Left margin, accepts values labeled with units, defaults to 20px
.pageLoadOptions
(dict): Page load options (see this).
timeout
(int): Maximum time in milliseconds, defaults to 30000
.waitUntil
(str): When to consider navigation succeeded, defaults to load
.exclude
(list) : List of glob pattern to excludeDepending on what image you are using you may encounter some issue running pyppeteer
: Browser closed unexpectedly
This is due to some missing shared librairies used by Chrome Headless.
Related issue : https://github.com/pyppeteer/pyppeteer/issues/194
See this article
and this guide
Ready-to-use docker image : https://github.com/brospars/docker-mkdocs
You can use disable
or disableOnServe
options to disable the pdf rendering (entirely or on serve) but you can also
use the mkdocs serve --dirtyreload
flag to only rebuild modified files on the fly.
Due to a chrome bug a blank page can appear at the end of the PDF you can remove it by addin the following to you extra.css :
body {
contain: strict;
}
This plugin was inspired by mkdocs-with-pdf
and mkdocs-pdf-export-plugin
but without using weasyprint
and instead pyppeteer
(chrome headless) to have a render
closer to what you have in your chrome browser.
FAQs
Generate a PDF file for each MkDocs page
We found that mkdocs-page-pdf demonstrated a healthy version release cadence and project activity because the last version was released less than 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.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.