fdiff是一种用于评估字体文件之间Opentype表数据中粒度差异的Python命令行比较工具。该工具提供了MACOS,Windows和GNU/Linux系统的本地和远程字体差异的跨平台支持,并提供了Python v3.7+解释器。
寻找Opentype表差的高级概述,而不是低级更改?只需查看Van Rossum的fbdiff工具即可。
--include或--exclude选项过滤Opentype表-l或--lines选项中差异中显示的上下文行的数量--head选项的DIFF输出的第一行--tail选项显示DIFF输出的最后N行--external选项使用外部差异工具执行差异运行fdiff --help以查看所有可用选项。
fdiff需要一个Python 3.7+解释器。
建议在Python3虚拟环境中安装。
使用以下任何安装方法:
$ pip3 install fdiff
$ git clone https://github.com/source-foundry/fdiff.git
$ cd fdiff
$ pip3 install -r requirements.txt .
以下方法安装了项目和相关的可选开发人员依赖性,因此无需重新安装而可以使用源更改。
$ git clone https://github.com/source-foundry/fdiff.git
$ cd fdiff
$ pip3 install --ignore-installed -r requirements.txt -e ".[dev]"
$ fdiff [OPTIONS] [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
fdiff支持获取可公开访问的远程字体文件的请求。用URL替换文件路径参数:
$ fdiff [OPTIONS] [PRE-FONT FILE URL] [POST-FONT FILE URL]
fdiff可与本地和远程字体文件的任何组合一起使用。例如,要将本地Post Font文件与远程字体文件进行比较,以评估以前已将其推向远程的字体文件评估本地更改,请使用以下语法:
$ fdiff [OPTIONS] [PRE-FONT FILE URL] [POST-FONT FILE FILE PATH]
提示:远程GIT存储库托管服务(例如GitHub)支持URL不同GIT分支上的文件访问。使用这些存储库分支URL比较存储库中的git分支的字体。
要在差异中仅包含指定的表,请使用与逗号分隔的表名称列表的--include选项:
$ fdiff --include head,post [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
要在差异中排除指定的表,请使用与逗号分隔的表名称: --exclude选项:
$ fdiff --exclude glyf,OS/2 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
在逗号分隔的表名称值之间不包括空格!
要更改具有差异的上下文上下文的线路数,请使用带有整数值的-l或--lines选项,用于所需的线数。以下命令将上下文信息减少到上面和下方的一行,差异为差异:
$ fdiff -l 1 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
使用--head选项,然后使用一个整数,用于输出开始时的线数。例如,以下命令显示差异的前20行:
$ fdiff --head 20 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
使用--tail选项,然后使用一个整数,用于输出末端的线数。例如,以下命令显示diff的最后20行:
$ fdiff --tail 20 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
请注意:此功能尚未在所有受支持的平台上进行测试。请报告您在项目问题跟踪器上遇到的任何问题。
默认情况下,FDIFF用Python源执行差异。如果您遇到了这种方法的性能问题,则可以使用平台上可用的DIFF可执行文件。 FDIFF将转储TTX文件,并运行您在命令行上提供的命令,传递前字体和后字体TTX转储文件路径作为命令的第一个和第二个位置参数。
例如,您可以在gnu/linux上运行diff -u命令,也可以按照这样的macOS运行:
$ fdiff --external="diff -u" [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
FDIFF支持内置的颜色格式和Opentype表滤波,与外部DIFF工具一起使用。使用外部DIFF工具不支持上下文线,头部和尾部选项。
ANSI逃生代码彩色差异是在终端环境中默认执行的。
要查看终端中没有ANSI逃生代码的diff,请在您的命令中包含--nocolor选项:
$ fdiff --nocolor [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
使用fdiff -h查看所有可用选项。
请报告有关项目问题跟踪器的问题。
贡献受到热烈欢迎。开发依赖环境可以在上面的开发人员安装文档中以可编辑模式安装。
请使用标准的GitHub拉请求方法提出源更改。
Python源文件用flake8凸起。有关详细信息,请参见Makefile test-lint目标。
该项目与pytest工具链上的GitHub Action Service进行了连续的集成测试。测试模块位于存储库的tests目录中。
可以使用从存储库的根执行以下命令来执行Python解释器版本的本地测试:
$ tox -e [PYTHON INTERPRETER VERSION]
请参阅tox文档以获取更多详细信息。
使用coverage工具执行单位测试覆盖范围。有关详细信息,请参见Makefile test-coverage目标。
fdiff是由Fontant fonttools免费软件库构建的,并使用Fonttools库中定义的TTX Opentype表数据序列化格式执行二进制字体文件的文本差异。
版权所有2019 Source Foundry作者和贡献者
根据Apache许可证(版本2.0(“许可”)获得许可;除了符合许可外,您不得使用此文件。您可以在
http://www.apache.org/licenses/license-2.0
除非适用法律要求或以书面形式同意,否则根据许可证分配的软件是按照“原样”分发的,没有任何明示或暗示的任何形式的保证或条件。请参阅许可证,以获取执行许可条款和限制的特定语言。