只需三步,即可将 README.md 转换为 PDF
通过上传 Markdown 文件或粘贴其内容、让 SolConverter 使用托管布局进行渲染并下载文档,即可将 README 转换为 PDF。
- 上传 README。 从您的设备中选择
README.md或另一个.md文件。 - 创建 PDF。 SolConverter 应用其托管的 PDF 布局并自动开始转换。
- 预览并下载。 开始转换,检查 PDF,然后下载完成的文件。
在共享最终 PDF 之前,请检查徽章、图像和版本库相对的链接。版本库的 README 可能会依赖在 GitHub 或原始版本库之外表现不同的资源和 URL。
什么是 README.md 文件?
README.md 文件是一个 Markdown 文档,用于解释项目、版本库、包、应用程序、数据集或工作流。
README 文件通常包括:
- 项目标题和摘要;
- 安装说明;
- 使用示例;
- 命令行代码片段;
- 配置示例;
- 功能列表;
- 任务列表;
- 表格;
- 屏幕截图;
- 徽章;
- 贡献指南;
- 许可证或支持信息;
- 指向文档和发布版本的链接。
.md 扩展名意味着该文件是用 Markdown 编写的。将其转换为 PDF 会创建一个固定格式的文档,同时保留 Markdown 源文本作为可编辑版本。
为什么将 README 转换为 PDF?
当 README 需要脱离其原始版本库,或需要作为基于页面的文档进行审阅时,PDF 非常有用。
常见原因包括:
- 与客户或利益相关者共享项目文档;
- 向电子邮件或工单附加技术概述;
- 提交文档以供审阅或批准;
- 创建版本库在特定时间点的离线快照;
- 打印安装说明或操作手册;
- 归档发布文档;
- 将 README 分发给不使用 GitHub 的读者;
- 在固定布局中审阅长代码、公式、图表和表格。
原始 README 应保持为可维护的源文件。在 README 更改后重新生成 PDF。
PDF 中支持的 README 格式
SolConverter 支持 README 文件中常用的 Markdown 元素。
其中包括:
- ATX 和 Setext 标题;
- 粗体、斜体和删除线文本;
- 有序和无序列表;
- 嵌套列表;
- GFM 任务列表;
- 块引用;
- Markdown 链接和自动链接;
- 行内代码;
- 使用反引号或波浪号的围栏代码块;
- 代码围栏语言标签;
- 带对齐方式的 GFM 表格;
- 安全原始 HTML 表格;
details和summary部分;kbd、sub、sup、figure和figcaption;- 标题锚点;
- 源文件开头的 YAML 前导数据(YAML front matter)。
包含美元符号或类似 LaTeX 分隔符的代码围栏仍将保持为代码,而不会被解析为数学公式。
保留 README 代码示例
README 文件通常包含安装命令、配置文件、API 示例、环境变量和源代码片段。
当识别出围栏代码块的语言时,SolConverter 使用 Highlight.js 应用语法高亮。未识别的语言将安全地保留原始源文本。
代码块使用专用的等宽字体和打印样式,使其与周围的说明文字隔开。即使在自右向左的 README 中,代码也仍保持自左向右。
在技术 README 中渲染公式
技术 README 可能包含公式、矩阵、科学记数法、概率表达式或化学式。
SolConverter 支持将常见的 Markdown 数学分隔符、AMS 公式环境、Presentation MathML、基础 Content MathML 以及用 \ce{...} 编写的化学式渲染为 MathJax SVG 输出。
支持的数学公式包括:
$...$和\(...\)行内表达式;$$...$$和\[...\]独立行表达式;- 公式和对齐环境;
- 分数、根式、求和、积分、极限和矩阵;
- 文档范围的宏;
- 需要换行的长加法表达式。
数学公式被渲染为 SVG 以在 PDF 中保持清晰。无效的数学公式可以在局部退回到源文本,而不会自动停止渲染 README 的其余部分。
渲染 Mermaid 和 ZenUML 图表
README 文件经常使用图表来解释架构、时序、状态、工作流或组件关系。
支持的 Mermaid 围栏块在本地被渲染为 SVG。ZenUML 通过捆绑的 Mermaid 集成得到支持。图表被限制在可用的页面宽度内,并进行独立处理。
如果某个图表无效,转换器会插入包含源文本的后备内容,并继续渲染其余部分。
当前不支持 PlantUML、Graphviz、D2、WaveDrom、BPMN、Nomnoml 和完整 TikZ,不应在此页面上进行宣传。
What happens to README images and badges?
转换器支持公开的 HTTP 和 HTTPS 图像,以及 PNG、GIF、JPEG、WebP 和 SVG 格式的有效 base64 数据图像。
图像会被缩放以适应页面并保持其宽高比。插图、说明文字、替代文本(alt)、标题、安全尺寸和对齐方式可以被保留。
然而,许多版本库的 README 使用相对路径,例如:
./images/screenshot.png
docs/architecture.svg
../assets/demo.gif
当前的上传工作流不会打包版本库文件夹或自动解析这些相对资源。在创建 PDF 之前,请将它们转换为公开图像 URL 或支持的 base64 数据图像。
徽章通常使用公开图像 URL,当图像主机可公开访问时可能会进行渲染。如果徽章或图像无法加载,SolConverter 会插入本地占位符并继续转换。
检查版本库相对的链接
README 内部的 Markdown 链接可以是绝对链接、版本库相对链接或页面片段(锚点)链接。
绝对 HTTP 和 HTTPS 链接在版本库外部仍然有意义。在 README 成为独立的 PDF 后,诸如 ./docs/setup.md 或 ../CONTRIBUTING.md 的相对链接可能不会指向有用的目的地。
在共享 PDF 之前:
- 用公开绝对 URL 替换重要的相对链接;
- 写出关键指令,而不是仅依赖链接的文件;
- 在渲染后验证标题链接;
- 检查在没有版本库导航的情况下文档是否仍然说得通;
- 当 PDF 旨在用作归档时,包含版本或发布信息。
将 GitHub README 转换为 PDF
GitHub README 仍然是一个 Markdown 文件,但 GitHub 可能会添加上传文件本身所不包含的版本库上下文。
PDF 可以保留支持的 GFM 结构,例如表格、任务列表、围栏代码、自动链接和标题。它还可以渲染支持的 MathJax 表达式和 Mermaid 图表。
转换器不会复制每个 GitHub 界面元素。版本库选项卡、议题数量、发布小部件、分支选择器、动态生成的卡片以及其他 GitHub 页面装饰(chrome)不是 Markdown 源文件的一部分。
为了获得最干净的独立 PDF,请确保 README 自身文档中包含项目标识、版本上下文和重要链接。
用于软件文档的 README 转 PDF
当读者需要以下内容时,README PDF 可以作为简明技术交接文档:
- 项目概述;
- 安装和设置步骤;
- 示例命令;
- 配置要求;
- 架构图;
- API 示例;
- 操作说明;
- 故障排除说明;
- 贡献或支持细节。
对于大型文档集,请将 README 视为入口文档,而不是强行将每个指南都放入一个文件中。由非常长的 README 生成的 PDF 仍然有用,但独立的文档可能更易于维护和导航。
用于发布归档的 README 转 PDF
版本库会随着时间而变化。将 README 转换为 PDF 会创建一个与发布、交付、审阅或里程碑相关联的、可读性强的快照。
在归档之前:
- 添加项目或包版本;
- 包含相关日期或发布标识符;
- 验证命令和配置示例;
- 替换临时链接;
- 审阅图像、图表和公式;
- 生成并检查最终 PDF;
- 将 PDF 存储在发布记录旁。
生成的 PDF 是一个快照,而不是版本控制下 README 的替代品。
安全渲染 README 内容
README 文件可能包含原始 HTML、远程图像 URL 和格式错误的块。
SolConverter 净化渲染的 HTML,移除脚本和事件处理程序,拒绝不安全的 URL,限制表格跨度,应用限制性的内容安全策略(CSP),并阻止超出图像策略范围的浏览器请求。
本地文件、localhost 目的地、私有 IP 字面量、javascript: URL 和不支持的资源协议方案将被阻止。在可能的情况下,无效的图像、公式和图表会在局部进行处理,以便其余的 README 可以继续渲染。
README 文件的 PDF 设置
SolConverter 为 README 文件应用一致的文档布局。
当前的网页表单使用:
- A4 页面大小;
- 纵向;
- 管理页边距以实现易读的输出;
当前页 / 总页数页码;- 基于 README 文件名的输出标题;
- 打印背景。
纵向布局专为一般阅读而设计。在下载之前,请始终预览宽表格和代码。
README 转 PDF 还是主 Markdown 转 PDF 转换器?
当源文件是项目 README,且您需要关于代码围栏、GFM 结构、徽章、版本库相对的图像以及版本库链接的指导时,请使用此专门针对 README 的页面。
对于报告、数学文档、技术笔记、建议书、多语言文档和通用 .md 文件,请使用主 Markdown 转 PDF 转换器。
这两个页面都使用相同的核心转换功能,但它们针对不同的用户任务并提供不同的准备指导。
常见问题解答
我可以将 README.md 转换为 PDF 吗?
可以。上传 README.md 文件,选择可用的 PDF 设置,开始转换,预览结果,然后下载生成的 PDF。
它支持 GitHub 风格的 Markdown 吗?
渲染器支持 GFM 结构常用在 README 文件中,包括任务列表、围栏代码、自动链接、删除线和表格。
代码块会保持其格式吗?
会。当识别出语言标签时,围栏代码块将使用等宽样式并获得语法高亮。
README 可以包含 MathJax 公式吗?
可以。转换器支持常见的行内和独立行数学分隔符、多个公式环境、MathML、化学式和文档范围的宏。
它能渲染来自 README 的 Mermaid 图表吗?
能。支持的 Mermaid 围栏块在本地被渲染为 SVG。ZenUML 也得到支持。
GitHub 徽章会出现在 PDF 中吗?
当徽章使用公开可访问且受支持的图像 URL 时,它们可以进行渲染。如果徽章的主机被阻止、不可用或超出图像策略的范围,徽章可能会被替换为占位符。
版本库相对的图像能正常工作吗?
不能自动工作。上传的内容不包括版本库的资源文件夹。在转换前,请将重要的相对图像更改为公开 URL 或受支持的 base64 数据图像。
指向其他版本库文件的链接能正常工作吗?
相对版本库链接在独立的 PDF 中可能没有用处。请用公开绝对 URL 替换重要的链接,或者直接在 README 中包含必要的信息。
PDF 看起来与 GitHub 的 README 页面完全一样吗?
不一样。转换器会渲染 Markdown 文档,而不是复制整个 GitHub 界面。支持的 Markdown 结构会针对 PDF 输出进行样式设计,但不包括版本库装饰(chrome)和动态 GitHub 组件。
我可以使用自定义 CSS 吗?
目前不支持用户提供的任意 CSS。转换器使用托管的文档和打印样式。
它会创建 PDF 目录吗?
目前不支持自动生成目录和 PDF 书签。手动编写的目录部分仍可正常显示为 Markdown 内容。
如果图表、公式或图像损坏会发生什么?
转换器可以隔离受支持的错误类型,插入本地后备,并继续渲染损坏块之后的有效内容。
上传的 README 是永久存储的吗?
未处理的上传文件会在 15 分钟后过期。在转换成功且输出经过验证后,源文件将被删除;完成的 PDF 将在两个小时后过期。失败的输入文件将在原来的 15 分钟上传窗口内过期。
有 README 文件大小限制吗?
转换器没有施加固定的文件大小限制。非常大的 README 文件可能需要更长的时间来上传、处理、预览和下载,这取决于浏览器、设备和网络。
将您的 README.md 文件转换为 PDF
上传 README,检查渲染后的文档,然后下载更易于在版本库外部共享的 PDF。
将 README 转换为 PDF