用于处理文本文件的pre-commit修复器和linters
项目描述
texthooks
处理文本文件的pre-commit
钩子集合。
特别针对可能对仓库不利的Unicode字符的处理钩子。
与pre-commit一起使用
要使用pre-commit,请将此存储库和所需的钩子包含在.pre-commit-config.yaml
- repo: https://github.com/sirosen/texthooks
rev: 0.6.7
hooks:
- id: alphabetize-codeowners
- id: fix-smartquotes
- id: fix-ligatures
独立使用
每个钩子都可以作为CLI脚本使用。只需
pip install texthooks
然后调用,例如。
fix-smartquotes FILENAME
钩子摘要
钩子 | 描述 |
---|---|
alphabetize-codeowners |
按字母顺序排列CODEOWNERS文件中的名称。 |
fix-smartquotes |
将花括号引号替换为ASCII引号。 |
fix-spaces |
将特殊空格标记规范化为ASCII空格。 |
fix-ligatures |
将样式连字符转换为ASCII文本。 |
forbid-bidi-controls |
检查双向文本。 |
macro-expand |
一种简单的方式来编写文本格式化宏。 |
支持的钩子
alphabetize-codeowners
通过字母顺序排列始终按相同顺序列出人员和团队以规范化CODEOWNERS
文件。
默认钩子针对CODEOWNERS
,.github/CODEOWNERS
和docs/CODEOWNERS
。
按所有者排序,而不是按行排序
alphabetize-codeowners
按路径对所有者的列表进行字母排序。它不会对文件中的行进行字母排序或以其他方式进行排序。
忽略注释和空行
钩子应保留所有注释行或空行不变。
规范化空白字符
在修改的行上,钩子将规范化行以具有没有前导空白,并且使用单个空格字符分隔所有者名称。
fix-smartquotes
这个修复了从某些应用程序复制粘贴时将双引号替换为花括号的问题。它不会转换尖括号、盲文引号或角引号。这些字符通常不是复制粘贴错误的产物,因此它们是允许的。
低引号在语言的使用和意义上有所不同,有些语言使用“向外”面对的引号(与英语相反)。在大多数情况下,这些和异国情调字符(双重引号)被忽略。
在包含这些标记的文件中,它们将被替换,并且运行将被标记为失败。
覆盖引号字符
有两种选项可用于指定确切要替换哪些字符。为了方便使用,它们被指定为十六进制编码的Unicode代码点。
假设你想避免替换“重单引号引号装饰”(275C
)和“重单转引号引号装饰”(275B
)字符。你可以这样覆盖单引号代码点
- repo: https://github.com/sirosen/texthooks
rev: 0.6.7
hooks:
- id: fix-smartquotes
# replace default single quote chars with this set:
# apostrophe, fullwidth apostrophe, left single quote, single high
# reversed-9 quote, right single quote
args: ["--single-quote-codepoints", "0027,FF07,2018,201B,2019"]
fix-spaces
将各种Unicode空格字符替换为" "
。
这会将不间断空格和类似字符规范化,以确保你的文件在所有环境中以相同的方式渲染。它不会修改换行符、回车符或其他不属于空格分隔符类别的空白字符。
覆盖空格字符
有一个选项可用于指定确切要替换哪些字符。为了方便使用,它们被指定为十六进制编码的Unicode代码点。
假设你想仅替换细空格(代码点 2009
)。你可以这样覆盖空格代码点
- repo: https://github.com/sirosen/texthooks
rev: 0.6.7
hooks:
- id: fix-spaces
args: ["--separator-codepoints", "2009"]
fix-ligatures
自动查找并替换连字符字符与其ASCII等效字符。
这会将可能由LaTeX等程序创建的连字符替换为其严格等价的ASCII等效字符。例如,fi
和ff
可能被连字符化。
此钩子将这些字符转换回ASCII,以便像grep
这样的工具按预期运行。
forbid-bidi-controls
这是一个禁止使用Unicode双向文本控制字符的检查器。
这些是方向格式化字符,可以用来构造具有意外或不清晰语义的文本。例如,在允许在语句中使用双向文本的编程语言中,"X" = ייִדיש
可以写成从右到左反转,表示变量ייִדיש
被赋予了值"X"
。
macro-expand
替换文本中的简单“宏”字符串。如果没有提供宏参数,则此修复器为无操作。将--macro
添加到参数中执行替换。
例如,使用以下示例配置将issue:NNN
转换为Markdown中的问题链接
- repo: https://github.com/sirosen/texthooks
rev: 0.6.7
hooks:
- id: macro-expand
args:
- "--macro"
- "issue:"
- '[texthooks#$VALUE](https://github.com/sirosen/texthooks/issues/$VALUE)'
CHANGELOG
未发布
0.6.7
- 当通过
--dialect=gitlab
传递时,支持GitLab的section标题在alphabetize-codeowners
中。 - 对代码所有者名称进行Casefold以进行更好的Unicode排序。感谢@adam-moss的PR!
0.6.6
- 在
alphabetize-codeowners
中处理空行时的错误修复
0.6.5
alphabetize-codeowners
现在不区分大小写,并更好地规范化空白。感谢@kurtmckee的PR!
0.6.4
- 为
alphabetize-codeowners
添加对Gitea和GitLab CODEOWNERS文件的支持。感谢@adam-moss的PR!
0.6.3
- 缩短
pre-commit.com
要求的钩子名称长度
0.6.2
- 对
alphabetize-codeowners
的轻微空白错误修复
0.6.1
- 修复
alphabetize-codeowners
去除结尾换行的错误
0.6.0
- 添加
alphabetize-codeowners
修复器(从sirosen/alphabetize-codeowners移植而来)
0.5.0
- 修复在Windows上运行修复器时可能由于错误的编码而导致数据写入错误的错误
- 添加
-v/--verbose
和-q/--quiet
标志以调整输出详细程度
0.4.0
- 添加
fix-spaces
修复器
0.3.1
- 对docstrings进行轻微修复
0.3.0
- 添加宏展开修复器
0.2.2
- 修复所有钩子CLI参数处理中的错误
0.2.1
- 修复
forbid-bidi-controls
入口点的错误
0.2.0
- 添加
forbid-bidi-controls
钩子 - 调整文件编码的处理。在大多数情况下,默认情况下将使用UTF-8编码读取文件。
0.1.0
- 初始版本,包含
fix-ligatures
和fix-smartquotes
钩子
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码发行版
构建发行版
texthooks-0.6.7.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ac76d722501ea9cecf131112a81129c02213b1e6d008bd53e59d9e6a3dd48667 |
|
MD5 | 43f53dd7b83f20aa7d589a2f58f27d65 |
|
BLAKE2b-256 | f24d4a353362a2d183fb875ddd536c524695e29e97018ad85e6988e1630b450d |
texthooks-0.6.7-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 12073601970e0549592581b3a290f0e5ad4aeb3c35911ddad811bf029ab4ffc5 |
|
MD5 | 36ae967f9b748f1a2652c4c63305c5b9 |
|
BLAKE2b-256 | 50a3af53b093234f93b1270f0bdd43d778d9ecb991f61cb70f582bb23590fbbc |