从基于 rst 的指南文档构建 PDF 文档

从基于 rst 的指南文档构建 PDF 文档

https://blueprints.launchpad.net/openstack-manuals/+spec/build-pdf-from-rst-guides

为当前的 openstack-manuals 文档生成 PDF 文档,并为每个 HTML 文档提供 PDF 下载链接,对于希望离线查看文档的用户来说很有帮助。

问题描述

DocBook XML 文件已成功迁移并转换为 RST 源代码。OpenStack RST 源代码文档使用 Sphinx 构建 HTML 文档并在 docs.openstack.org 上发布。openstackdocstheme 负责已发布 HTML 文档的主题和扩展。

在基于 RST 的文档中期望的功能之一是拥有书籍的 PDF 版本。当前的 HTML 文档当然很有帮助,但拥有 PDF 版本可以为 OpenStack 文档读者提供更多额外的优势。例如,用户可以下载 PDF 文件并离线阅读。要打印 HTML 文档,用户需要执行更多手动步骤,例如从一页移动到另一页,并且打印布局与用户通过监视器看到的内容不同。此外,用户更容易将个人笔记以 PDF 文件的形式与其他读者共享。使用 PDF 文件的另一个优势是 PDF 文件有页码。这对于带有可打印 OpenStack 文档的离线培训环境很有用,通过指示页码。

提议的变更

添加使用当前 Sphinx 构建基础设施,使用 openstack-manuals 仓库中的基于 RST 的文件构建 PDF 的支持。

使用基于 RST 的文件生成 PDF 文件包括工作流中的两个步骤。首先,Sphinx 从基于 RST 的文件生成 LaTeX 文件 (.tex)。其次,pdflatex 从生成的 LaTeX 文件生成 PDF 文件。

在 Sphinx 和 LaTeX 的组合支持 PDF 文件生成之后,将 PDF 构建应用于 openstack-manuals 仓库中的所有 HTML 文档,使用 LaTeX PDF 生成。并添加构建作业与 HTML 构建协同工作,在每次文档构建时在 docs.openstack.org 上发布 PDF 文件,最后在 HTML 文档的登陆页面中插入 PDF 下载链接。

请注意,主要更改将发生在 openstack-doc-tools 中用于脚本,openstackdocstheme 中用于 PDF 可能的附加主题,以及每个文档仓库(例如 openstack-manuals)中,以在 Sphinx 配置中添加 PDF 构建支持。

备选方案

  • 单独构建 PDF(不使用当前的 Sphinx 构建脚本)是一种替代方案。但是,这种结果会降低文档仓库中构建脚本的可管理性。
  • 记录用户如何本地构建 PDF 但不发布 PDF。
  • 将指南保留为当前的 HTML 构建基础设施。

实现

负责人

  • ianychoi
  • nexusz99
  • jangpro2
  • raymon-ha
  • seungkyua
  • sungjin

工作项

  • 识别库的需求
  • 检查库的兼容性
  • Sphinx 配置中的更改
  • 一个基本的 PDF 主题(精美的主题设计不是主要目标)
    • 建议的最低要求
      • 标题页
      • 准确的页码
      • 目录条目和从目录到 H1、H2 的链接
      • 行内图像保留在页面打印范围内
      • 表格适当地适应页面打印范围
      • 打印目标是标准尺寸(例如,8.5x11 或 A4)
      • 对于那些为了节省墨水/碳粉而打印的人,任何代码输出都使用灰色或浅色背景
      • 开源字体选择
      • 文件名不包含空格或特殊字符
  • 将 PDF 构建作业与当前的 tox HTML 构建环境集成
  • 将 PDF 构建功能应用于 openstack-manuals 仓库中的所有 HTML 文档

项目范围

  • 此规范主要侧重于应用于 openstack-manuals 仓库中的文档。security-doc 和 api-site 也是构建 PDF 的良好目标,但它们不在本规范的范围内。

  • 从翻译文档构建 PDF 的支持不在范围内。

  • 对于一个基本的 PDF 主题,以下要求不在范围内。

    • 带有页码的索引
    • 标题页上的 OpenStack 徽标显示(选择适用于每个交付品的适当徽标会很繁琐)
    • 可选:水印以指示草稿或文档适用的版本

依赖项

  • 可能取决于 pdf 构建程序(例如,LaTeX)

测试

  • 将作为构建的一部分对工具进行测试。
  • 对 PDF 文件进行 Beta 阅读和反馈将有助于检查布局问题,例如图像分辨率较低和表格显示问题。
Creative Commons Attribution 3.0 License

除非另有说明,本文档根据 知识共享署名 3.0 许可协议 授权。请参阅所有 OpenStack 法律文件

docs-specs