Python文档处理程序
项目描述
Rinohtype是一种类似LaTeX的文档处理程序。它根据文档模板和样式表将结构化文档渲染为PDF。Rinohtype的一个重要目标是比LaTeX更具用户友好性。这包括提供清晰的错误消息,并使调整文档样式变得非常容易。请参阅文档了解如何自定义文档样式。
Rinohtype 目前处于测试阶段,因此不建议用于生产环境,但您可以使用它来探索 rinohtype 的功能和问题。如果您在使用过程中遇到任何问题,请创建一个工单。然而,rinohtype 已经非常强大。以下是其主要功能列表:
强大的页面布局系统,支持列、运行页眉/页脚、可浮动元素和脚注
支持图像和(大型)表格
自动生成目录和索引
自动编号和交叉引用章节标题、图像和表格
使用内置文档模板之一或创建自己的模板
受 CSS 启发的直观样式表系统
模块化设计,允许使用多个前端(如 reStructuredText、Markdown、DocBook 等)
处理 OpenType、TrueType 和 Type1 字体,支持高级排版功能,如字距调整、连字符和小型大写字母
嵌入 PDF、PNG 和 JPEG 图像,保留透明度和色彩配置文件
易于部署;纯 Python,依赖项少
基于 Unicode;适用于非拉丁语语言
Rinohtype 的主要输入格式是 reStructuredText。使用 rinoh 命令行工具渲染 reStructuredText 文档,并使用内置的 Sphinx 生成器,无需安装大型 LaTeX,即可生成 PDF 输出。请参阅 rinohtype 文档 以查看输出示例。
请注意,某些较旧的 PDF 阅读器在显示由 rinohtype 生成的 PDF 时可能存在问题(问题 2)
37.0 之前的 Firefox 内置 PDF 查看器(pdf.js)
基于 0.41 之前的 poppler 的应用程序,例如 Evince
需求
rinohtype 支持 Python 3.4 及以上版本。解析 reStructuredText 和 CommonMark 文档时,rinohtype 分别依赖于 docutils 和 recommonmark。安装 rinohtype 时,pip 会处理这些需求。如果您想包含 PDF、PNG 或 JPEG 以外的图像,您还需要安装 Pillow。
入门
安装非常简单
pip install rinohtype
reStructuredText 渲染器
开始使用 rinohtype 的最简单方法是用 rinoh 命令行工具渲染一个 reStructuredText 文档(例如此存储库中的 CHANGES.rst)
rinoh CHANGES.rst
当 rinoh 完成时,您将在输入文件旁边找到 CHANGES.pdf。
默认情况下,rinoh 使用文章模板渲染输入文档。运行 rinoh --help 可以查看如何告诉 rinoh 使用哪个文档模板和样式表。
Sphinx 生成器
Rinohtype 可以用作 LaTeX 生成器的替代品(需要设置 latex_documents 配置变量)。您只需将 'rinoh.frontend.sphinx' 添加到 conf.py 中的 extensions 列表。这样,在构建文档时,您可以选择 rinoh 生成器。
sphinx-build -b rinoh . _build/rinoh
贡献
请参阅 CONTRIBUTING.rst。
许可证
Rinohtype 的所有源代码都许可在 Affero GPL 3.0 许可下,除非源文件中有其他说明(例如 hyphenator.py)。
AGPLv3要求在rinohtype基础上构建的软件也必须在相同许可下作为开源软件发布。对于构建封闭源代码应用程序,您可以获取商业许可。rinohtype的作者也愿意为涉及rinohtype的咨询项目提供服务。
发布历史
发布 0.3.3 (2019-09-10)
修复
修复了一个在构建Python文档时出现的奇怪错误,使其能够正常工作。
更名为 rinohtype-reloaded。
发布 0.3.2.dev
新特性
自动生成图表和表格列表
段落现在提供默认的制表位(与字体大小成比例)以进行缩进
现在可以在样式表中指定选择器优先级(+ -)
Sphinx前端:rinoh构建器可以通过入口点被发现(不再需要将“rinoh.frontend.sphinx”添加到扩展列表中)
rinoh:如果找不到一个或多个引用的图像,则设置返回代码为1(问题 #104)
rinoh:引入了–install-resources选项,用于控制从PyPI自动安装资源
德语区域设置(由Michael Kaiser贡献)
波兰语区域设置(由Mariusz Jamro贡献)
变更
Python 3.3不再受支持,因为它已达到生命周期的结束
通过嵌入png.py移除对purepng的依赖
默认将图像宽度限制为可用宽度
XML前端:特殊情况混合内容节点
修复
对于在新的页面上继续的流式元素,也考虑了边框宽度(问题 #127)
Sphinx:处理source_suffix是列表的情况(Nick Barrett的PR #110)
与Sphinx 1.6.1+不兼容(latex_paper_size)
docutils:在警告中定义脚注时崩溃(问题 #95)
docutils:遇到原始文本角色时崩溃(问题 #99)
docutils:“装饰”节点(页眉/页脚)尚未支持(问题 #112)
当表格单元格只包含图像时崩溃
设置了gamma(gAMA块)的PNG图像颜色不正确(问题 #102)
Sphinx:不支持通配符扩展名的图像路径(问题 #119)
发布 0.3.1 (2016-12-19)
新特性
rinoh现在也作为独立应用程序提供,适用于Windows(安装程序)和macOS(应用程序);它们包括嵌入的CPython安装
索引项现在可以是StyledText(除了str)
现在可以使用字段显示“文档作者”元数据条目
Sphinx前端:支持“desc_signature_line”节点(Sphinx 1.5中新加入)
rinoh –docs:在默认浏览器中打开在线文档
变更
更紧密地模仿Sphinx LaTeX构建器的标题页(问题 #60)
由于它们特定于文档模板,PageTemplate.chapter_title_flowables不再有默认设置
修复
处理StyledText元数据(如文档标题)
Sphinx前端:支持“autosummary_toc”节点
DummyFlowable现在会粘附在其后的流式元素上(保持与下一个元素一起),这样(1)它不会破坏前面标题的行为,并且(2)索引目标不会与后面的流式元素分开
LabeledFlowable中的错误破坏了保持与下一个元素一起的行为
在keep_with_next=True的GroupedFlowables中的最后一个流式元素的下降大小丢失了
GroupedFlowables不应该标记页面为非空;这导致在第一个章节之前出现空页,如果它前面有组DummyFlowables
发布 0.3.0 (2016-11-23)
新特性
支持对标准文档字符串(en, fr, it, nl)进行本地化(问题 #53)
可以在文档模板配置中覆盖本地化字符串
在无法找到字形时使用备用字体类型(问题 #55)(Sphinx样式表中的“fallback”样式设置备用字体类型)
模板配置(INI)文件:指定要包含的文档部分,配置文档部分和页面模板,自定义本地化字符串,等等
直接在样式表文件中指定更复杂的选择器
(图表和表格)标题支持分层编号(见CaptionStyle)
使前端与当前工作目录无关
reStructuredText:支持表格 :widths: 选项(即将到来的docutils 0.13)
Sphinx前端:提供Sphinx内联标记角色的样式
rinoh(命令行渲染器)
支持模板配置文件
支持已安装前端支持的文件格式(查看–list-formats)
接受配置前端的选项(查看–list-options)
列出已安装的字体选项(在命令行或PDF文件中)
在渲染进度指示器中显示当前页码
书籍模板:支持设置封面页
前端:当文档树节点未映射时,抛出更具描述性的异常
验证传递给属性的默认值
初步支持将样式表写入INI文件,列出非指定属性的默认值(#23)
变更
rinoh:现在输出PDF放在当前目录中,而不是输入文件所在的目录
Sphinx构建器配置:将rinoh_document_template和rinoh_template_configuration选项替换为rinoh_template
如果没有为样式提供基,则样式属性查找将转到查找基样式表中同名的样式(#66)
DEFAULT_STYLE可以用作基样式,以防止在基样式表中查找同名的样式属性
将FieldList重命名为DefinitionList,并使用它替换旧DefinitionList的使用(docutils和Sphinx前端)(#54)
新的DefinitionList(FieldList)可以通过设置max_label_width为None、0或0值维度来像旧DefinitionList一样进行样式化
默认情况下,图像现在是非浮动的(浮动放置需要更多工作)
如果没有索引条目,则隐藏索引章节(#51)
样式表:如果未指定,则使用默认匹配器
Sphinx样式表:从Sphinx LaTeX构建器复制警告样式
Sphinx样式表:将警告标题与正文保持在一起
Sphinx样式表:像LaTeX输出一样着色链接引用(#62)
Sphinx样式表:为文字强文本禁用连字符/连字符
不再有DocumentSection;现在文档由部分(包含页面)组成
模板配置
通过名称引用文档部分模板,以便可以替换它们
可以在模板配置中更改文档部分的列表
文档部分采用‘end_at_page’选项(左、右或任何)
通过文档部分所属的名称查找(左/右)页面模板
当找不到右或左模板时,回退到<doc_part>_page
每个模板配置都需要一个名称
DocumentTree:使source_file参数可选
当文档部分层次结构缺少级别时,不要中止(#67)
默认使用PDF后端(无需指定)
将单位与Dimension实例一起存储(更好的打印效果)
将float模块重命名为image
修复
改进与Windows的兼容性:Windows路径名称和文件编码
如果将StyledText传递给HeadingStyle.number_separator,则崩溃
GroupedLabeledFlowables标签宽度可能过于宽泛
修复并改进自动表格列大小调整
现在可以使用“参考”格式(“图1.2”)引用图像
HorizontallyAlignedFlowable:使其更健壮
使文档元素可通过次级ID进行引用
reStructuredText:仅显示定义术语的第一个分类器
Sphinx前端:支持“居中”指令
Sphinx前端:对“hlist”指令提供基本支持
Sphinx前端:处理不带解释的:abbr:
Sphinx前端:支持嵌套内联节点(guilabel & samp角色)
PDF后端:修复从解析的PDF文件写入Type 1字体
PDF阅读器:处理多页PDF(#71)
PDF阅读器:修复XRef流的解析
PDF阅读器:修复解析文件的写入
版本0.2.1(2016-08-18)
新特性
可选地限制大图像的宽度并利用此功能模拟Sphinx LaTeX构建器行为(#46)
reStructuredText/Sphinx:支持带有超链接的图像(#49)
将PDF中的页码样式记录为页标签(#41)
不支持Python版本:在可能的情况下防止安装(sdist)或在导入时退出(wheel)
支持Python 3.6
错误修复
使StyleSheet对象可序列化,以便Sphinx构建器的rinoh_stylesheet选项实际上可以使用
修复#47:Literal_Block.lexer_getter()中的ClassNotFound异常
修复#45:不合适的图像仍然放置在页面上
不要警告关于解析到相同样式的重复样式匹配
版本0.2.0(2016-08-10)
样式
生成样式日志(显示匹配的样式)以帮助样式表开发
保持_with_next样式属性:防止将两个可流式处理的元素拆分到不同页面上
样式表可以从INI格式的文件中加载
检查传递给样式的属性类型
使用Pygments进行源代码高亮显示
目录条目可以更自由地进行样式设置
允许隐藏目录条目的章节编号
允许自定义章节标题
选择器现在也可以根据文档部分/章节进行选择
对选择器和匹配器进行了各种小的调整
与样式表相关的各种修复
模板
可配置的标准文档模板:文章和书籍
创建自定义文档模板的正确基础设施
支持左右页模板
使文章模板更具可配置性
页面现在有背景、内容和页眉/页脚层
支持生成索引
使某些字符串可配置(例如,用于本地化)
前端
Sphinx:如果未设置相应的rinohtype变量,则解释LaTeX配置变量
Sphinx:大致匹配LaTeX输出(文档模板和样式表)
添加了基于recommonmark的CommonMark前端
添加了基本的ePUB和DocBook前端
XML前端:修复空格处理
前端现在返回生成器,产生可流式处理的元素(更灵活)
命令行渲染器(rinoh)
允许指定模板和样式表
自动从PyPI安装样式表中使用的字体
字体
字体通过入口点发现/加载
对OpenType字体提供更全面的支持
修复对14种基本Type 1字体的支持
图像
更灵活的图像大小:绝对宽度/高度和缩放
允许指定行内图像的基线
JPEG读取器的几个修复
杂项
重新组织Container类层次结构
修复脚注处理中的错误
放弃对Python 3.2的支持(支持3.3、3.4和3.5)
版本0.1.3(2015-08-04)
从由0.1.2中的错误修复引起的缓慢渲染速度中恢复(感谢样式表中优化的元素匹配)
与样式表相关的其他改进和错误修复
版本0.1.2(2015-07-31)
大大改进了Sphinx支持(我们现在可以渲染Sphinx文档了)
对reStructuredText(docutils)元素的更全面支持
与脚注位置相关的各种修复
在新章节开始时提供分页选项
修复文档章节和部分的处理
改进章节/图/表的引用
原生支持PNG和JPEG图像(删除了PIL/Pillow需求,但增加了PurePNG 0.1.1需求)
Sphinx构建器使用的新'sphinx'样式表(~Sphinx LaTeX样式)
恢复了Python 3.2兼容性
版本0.1.1(2015-04-12)
第一个预览版本
项目详情
下载文件
下载适用于您平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分发
构建分发
rinohtype-reloaded-0.3.3.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7bee7d01cc4b05fcd15b885856fbca926c8fe96244ad2c05e0d07343745ee0f2 |
|
MD5 | e9cb1e635cde72d0777b6f6162541db2 |
|
BLAKE2b-256 | 93ad6423606cc164d90383f60c9286af387fae09b8a8cc2d97527046fa61b136 |
rinohtype_reloaded-0.3.3-py3-none-any.whl 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 37e8f73708170a9345c170a924c0d5e29446c25187b5964c4113fda6b4719037 |
|
MD5 | a0cfcf784ad87e97db82087fd56ed3ad |
|
BLAKE2b-256 | 33635e1f0cd24eac36b82cf5a2f3c2bc0caf64f29a09bc067ee81597056a6b44 |