maestroerror / html-strings-affixer
在HTML中查找文本,并将其替换为带有前缀和后缀的字符串
README
CLI工具,用于在HTML中查找文本并将其替换为带有前缀和后缀的字符串。最初开发用于替换blade文件中的本地化字符串
<p>Some nice string</p>
-> <p>{{ __('Some nice string') }}</p>
但也可以用于包含HTML的任何文件(".jsx", ".vue", ".twig")并达到相同的目的。当然,前缀和后缀是可定制的
JavaScript版本已在此处提供 这里 (hsa-js)
快速入门
查看Medium上关于该工具的简要文章。
导航
安装
Composer
现在它已在composer中可用,您可以通过它来要求
composer require maestroerror/html-strings-affixer --dev
.
安装后,可通过以下方式访问
- Linux:
./vendor/bin/hsa
- Windows:
./vendor/bin/hsawin
- MacOS:
./vendor/bin/hsamac
- MacOS arm64 (m1):
./vendor/bin/hsamacm1
Linux/Unix
步骤1:下载
使用 wget https://github.com/MaestroError/html-strings-affixer/releases/latest/download/hsa
下载二进制文件 文件
步骤2:设置可执行权限
在下载文件的目录中运行 chmod a+x ./hsa
(如果需要权限,请使用sudo)
步骤3:执行
您可以将它移动到您需要使用的目录,并使用 ./hsa [命令] [-args]
执行,或者通过命令行使其可用。
步骤4:命令行(可选)
找到您的bin目录(例如 /usr/bin
、/usr/sbin
或 ~/bin
),或者使用 cd ~/ && mkdir bin
创建它,并通过符号链接(ln -s $~/path/to/directory/hsa ~/bin/hsa
)或将其移动/复制到 bin 目录。之后,您可以使用 "hsa" 命令在命令行中运行应用程序。尝试: hsa check
Windows
下载二进制文件 文件 或 压缩文件。在所需的目录中获取 "hsa.exe" 文件,并使用 ".\hsa.exe" 运行。
MacOS
下载 存档,解压它,在所需的目录中获取 "hsamac" 或 "hsamacm1" 文件,给它可执行权限,并使用 ./hsamac
或 ./hsamacm1
运行。
从源码
如果您已安装 golang,您可以克隆此存储库,并运行 go install
或 go build
以生成二进制文件
功能
- 查找您的HTML可见字符串,并将其替换为附加的字符串
- 前缀和后缀可自定义
- 默认设置为 "{{ __('" 和 "') }}"
- 如果字符串包含警告字符之一,它不会替换,而是打印出位置
- 因此,它不会用变量如 "Price: {{$price}}" 替换字符串,如果警告字符中有 '{',它将给出确切的位置(文件:行)以手动使其可翻译
- 如果字符串包含忽略字符之一,它将忽略该字符串
- 例如,如果你的字符串是数学表达式,如 4 _ 20 = 80,并且你有 "_" 在忽略字符中,它将忽略它
- 这些字符默认设置为
- 忽略:"#", "_", ">", "^", "*", "="
- 警告:"%", "{", "(", "}", ")", "$", "'"
- 忽略字符和警告字符可以从 JSON 配置文件中自定义("ignore" 和 "warnings")
配置文件
您需要在运行 html-strings-affixer 的目录中创建 "affixer.json" 文件。您可以在本存储库的 bin 文件夹中找到一个示例(bin/affixer-example.json)。
或者,您可以在工作目录中运行不带配置文件的应用程序,它将提供从示例创建一个的机会
JSON对象和描述
// Scanning
*(string) "folder" - just folder to scan
*(array) "file_types" - Parses file only with given extensions
(array) "ignore_names" - ignores files and folders with given names
// Parse
(array) "ignore" - ignores strings which contains given character (Group of characters not allowed, only single characters)
(array) "warnings" - Warns about strings which contains given characters (not replaces)
(array) "methods" - Uses only given parse methods. Available: text, placeholder, alt, title, hashtag
// Replace
*(string) "prefix" - Prefix to set
*(string) "suffix" - Suffix to set
(bool) "force" - If true, git status check is ignored
// Report
(bool) "detailed" - if true, detailed report will be displayed
(bool) "warn_as_Table" - if true, warnings will be displayed as table
(bool) "report" - if true, warnings will be saved as JSON file
// Log
(string) "log_folder" - folder to store logs
命令
可用命令
- replace - 主要命令,用于替换字符串
- check - 检查文件夹并生成报告,包含文件和找到的字符串数量
- clear-log - 如果您使用 log_folder 配置,将生成日志。此命令清除所有日志文件(没有参数)
您可以将某些配置作为参数传递,使用 hsa [command] --help
读取有关命令的更多信息。
替换 命令选项
- -allowed="(string)" - 允许的文件类型,以逗号分隔(必需,出于安全原因)
- -detailed - 如果传递,将打印详细报告
- -file="(string)" - 使用此参数只运行一个文件
- -folder="(string)" - 要扫描的文件夹(必需)
- -force - 如果传递,忽略 git 状态检查
- -only="(string)" - 解析时使用的方法,以逗号分隔。可用:text,placeholder,alt,title,hashtag
- -prefix="(string)" - 字符串的新前缀(必需)
- -suffix="(string)" - 字符串的新后缀(必需)
- -report - 如果为真,将警告保存为 JSON 文件
检查 命令选项
- -allowed="(string)" - 允许的文件类型,以逗号分隔(必需)
- -file="(string)" - 使用此参数只运行一个文件
- -folder="(string)" - 要扫描的文件夹(必需)
- -only="(string)" - 解析时使用的方法,以逗号分隔。可用:text,placeholder,alt,title,hashtag
- -report - 如果为真,将警告保存为 JSON 文件
使用方法
建议使用带 配置文件 的工具,您可以在其中指定所有所需信息并使用工具提供的所有功能。如果您已经配置了文件,可以轻松运行
~$ ./vendor/bin/hsa check
# AND/OR
~$ ./vendor/bin/hsa replace
在本使用说明中,我们将介绍一些 CLI 用例,但您可以 同时 使用配置文件,因为来自命令行的选项具有 更高优先级。它们在特定运行时覆盖所有传递的选项,但 JSON 文件提供的所有 其他配置 保持不变。
只需附加它!
例如,您可以:轻松地将模板文件夹中带有 @lang 指令的所有 HTML 字符串附加起来。要做到这一点,请运行
./vendor/bin/hsa replace -folder="resources/views" -allowed=".blade.php" -prefix="@lang('" -suffix="')"
换句话说
hsa replace -folder="[Path/To/Your/Folder]" -allowed="[Allowed, File, Extensions]" -prefix="[StringToPrepend]" -suffix="[StringToAppend]"
注意:请注意,"@" 字符不是默认忽略或警告字符的一部分,您需要通过配置文件指定它
强制替换
如果您使用 git 并且有未提交的更改,建议首先提交或暂存它们,然后运行替换命令,这样 hsa 将在每次运行时询问您。如果您已经测试了此工具并且知道自己在做什么,您可以使用 -force 参数来跳过该提示。
./vendor/bin/hsa replace -folder="views" -force
注意:目前,HSA 没有UNDO命令,因此运行替换时请小心
处理单个文件
有时您可能只需要对单个文件执行一些命令,以减少内存使用、获取更小的打印信息或避免不希望的变化。为此,您可以使用选项 -file
./vendor/bin/hsa replace -file="resources/view/contact.blade.php"
警告太多
对于大型项目,有时会有太多的警告,无法通过终端进行检查。在这种情况下,-report 选项可能会有所帮助,它会生成包含所有警告的 JSON 文件
./vendor/bin/hsa check -report
注意:-report 选项对 replace
和 check
命令都可用。此外,它可以通过 JSON 文件设置为 report: true
。
可执行文件
针对不同的平台有几个可执行文件,选择您的一个并使用它。它们的工作方式完全相同,您只是在命令中更改可执行文件名。
- Linux:
./vendor/bin/hsa
- Windows:
./vendor/bin/hsawin
- MacOS:
./vendor/bin/hsamac
- MacOS arm64 (m1):
./vendor/bin/hsamacm1
注意:我计划创建一个适用于任何平台的单个命令,但目前它就是这样 😄
支持
支持我们的工作?🌟 您可以通过小额捐赠帮助我们保持代码流动。您的每一分支持都对维护和改进我们的开源贡献大有裨益。点击下面的按钮进行捐赠。感谢您的慷慨!
或使用二维码
待办事项
- 使检查命令打印文件和找到的字符串计数 +
- 创建清晰的日志命令并打印日志大小作为消息 +
- 在说明文件中编写文档 +
- 发布 #1 - 0.0.1 +
- 在 packagist 上注册 (Composer require) +
- 在 ubuntu 上测试 Linux 二进制文件 +
- 在文档中添加 composer 安装说明 +
- 在文档中添加 Linux 安装说明 +
- 制作 Windows exe/msi 安装程序?
- 标准化 Json 配置 +
- 更新示例配置文件,包括所有需要的配置 +
- 添加警告字符并将它们与忽略字符分开 +
- 考虑类似情况
Veelgestelde vragen over {{$serviceName}}
+- 在 "text" 组中添加 OT-OT(打开标签) 和 CT-CT(关闭标签) 提取 +
- 添加 CT-OT +
- 在替换命令中,将警告字符字符串作为警告(不替换)打印出来,并显示文件和行 +
- 在检查命令中添加警告计数 +
- 更新文档 +
- 为 bin 文件夹生成文件 +
- 下一版本发布(不要忘记在 release: hsa, hsa.exe, hsawin.zip 和 hsaInstaller.msi 中添加) +
- 使用错误处理代替一些默认配置,当未指定时(从 CLI 或配置文件) +
- 文件夹 | 文件(不使用默认文件夹,在运行命令之前检查它) +
- 允许 +
- 前缀(用于替换命令) +
- 后缀(用于替换命令) +
- 修复使用 HSA 脱离 git 仓库的错误 +
- 在报告器中添加成功消息功能 +
- 在报告器中制作警告表 +
- 从配置中控制警告作为表,并在文档中添加它 +
- 测试最新更改 +
- 下一版本发布 +
更新于 21/09/2023
- 在检查命令中添加 --report 选项以生成详细报告(JSON)(问题) +
- 在默认忽略字符中添加
@
和{{--
(问题) + - 更新正则表达式以正确解析 laravel 注释(问题) +
- 修复
index out of range [-1]
问题 + - 发布 +
- 将 TrimSpaces 作为配置从 JSON 中控制 +
- 处理错误以在其他文件上继续替换,并在输出(报告)中添加错误位置 +
- 测试最新更改 +
- 下一版本发布 +
即将到来
- 为应用程序编写基准测试 +
- 通过npm发布应用(文章)
- 安装和配置goreleaser
- 使用Cobra包重构应用
- 使用日志文件在folder_to_scan目录中撤销log_folder中的最后更改(用于试运行)
- 添加命令:"watch"(用于实时更新)和"undo"(撤销最后更改)
- 为任何平台创建单个可执行文件/命令(桥接器)