本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
从Docusaurus/Fumadocs等文档站点提取渲染数据并生成PDF文件的工具
!Docusaurus文档的Prince PDF效果
您可以在GitHub Actions的制品部分下载查看结果。
本项目使用方法1(见下文)生成PDF。您的本地机器必须安装Prince。
首先安装Prince。
运行以下命令生成PDF:
# 从`docs`范围内的特定站点生成PDF npx docusaurus-prince-pdf -u [***] # 将生成范围更改为`/docs/cli/` npx docusaurus-prince-pdf -u [***] # 自定义工作(输出)目录 npx docusaurus-prince-pdf -u [***] --dest ./pdf-output # 自定义输出文件名 npx docusaurus-prince-pdf -u [***] --output docs.pdf
要从本地Docusaurus实例生成PDF,您需要先在本地构建站点:
# 构建站点 (npm|bun|yarn|pnpm) build # 在本地提供构建好的站点 (npm|bun|yarn|pnpm) serve # 从本地Docusaurus实例生成PDF npx docusaurus-prince-pdf -u http://localhost:4000/docs # 将端口更改为您的服务端口
您可以使用Docker镜像运行此程序:
docker run --rm -it --init \ -v $(pwd)/pdf:/app/pdf \ openbayes/docusaurus-prince-pdf \ -u [***]
如果需要支持中文和日文等亚洲语言,您可以将自定义字体目录挂载到Docker镜像:
docker run --rm -it --init \ -v $(pwd)/pdf:/app/pdf \ -v $(pwd)/fonts:/root/.fonts \ openbayes/docusaurus-prince-pdf \ -u [***]
您也可以在GitHub Actions中运行此程序:
jobs: build: # 前置条件... - name: 安装Prince run: | curl [***] -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: 构建PDF run: npx docusaurus-prince-pdf -u [***] - name: 上传结果 uses: actions/upload-artifact@v3 with: name: result # 可以使用--output选项指定输出文件名 path: pdf/docusaurus.io-docs.pdf if-no-files-found: error # ...其他步骤
您也可以使用预构建的Prince Docker镜像运行prince:
jobs: build: # 前置条件... - name: 构建PDF run: docker run --rm -it -v $(pwd)/pdf:/app/pdf openbayes/docusaurus-prince-pdf -u [***] # ...其他步骤
您需要先安装Bun。这也可以让您在本地机器上运行最新代码。
bun run index.ts -u http://localhost:4000/docs
--url (-u): 基础URL,应为Docusaurus实例的baseUrl(例如[***]--selector (-s): 用于查找下一页链接的CSS选择器--dest (-d): 工作目录。默认为./pdf--file (-f): 更改默认列表输出文件名--output (-o): 更改PDF输出文件名--include-index: 将传递的URL包含在生成的PDF中--prepend: 前置附加页面,用逗号分隔--append: 追加附加页面,用逗号分隔--prince-args: Prince的附加选项。例如--prince-args="--page-size='210mm 297mm'"或--prince-args "\\-\\-page\\-size='210mm 297mm'"--prince-docker: 使用外部Prince Docker镜像生成PDF。更多信息请参见[***]--list-only: 仅获取列表而不生成PDF--pdf-only: 仅生成PDF而不获取列表。确保列表已存在--cookie: 指定带有域部分的cookie,例如--cookie="token=123456; domain=example.com;"与mr-pdf类似,此包在生成的Docusaurus站点上查找下一页分页链接。将它们收集到列表中,然后将列表传递给Prince以生成PDF。
如果您使用自定义Docusaurus主题,可以指定CSS选择器:
npx docusaurus-prince-pdf -u [***] --selector 'nav.custom-pagination-item--next > a'
它应该适用于任何具有一致分页链接的静态站点/文档生成器。
对于Fumadocs,您可以使用相同的方法通过自定义选择器生成PDF:
npx docusaurus-prince-pdf -u [***] --selector '#nd-page > article > div.grid.grid-cols-2.gap-4.pb-6 a:last-child'
Tailwind样式的选择器不够优雅,但可以工作。
我对从Docusaurus生成PDF的两种方法进行了比较。
优点:
缺点:
mask-image)srcset)不足:
优点:
mask-image)缺点:
respectPrefersColorScheme时,生成的PDF会有深色背景。但在CI/CD环境中不是问题不足:
#开头的链接)处理不当使用方法:
npx mr-pdf --initialDocURLs="[***]" --paginationSelector=".pagination-nav__item--next > a" --contentSelector="article"
MIT
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429