$ npm install alex --global
使用 yarn:
$ yarn global add alex
或者你可以按照这个步骤教程进行操作: 在你的项目中设置 alex
<!--alex disable wacko stupid-->.alexignore
markdown(value, config)
mdx(value, config)
html(value, config)
text(value, config)
alex 检查以下内容:
注意:alex 假 定你的意图是善意的:你并不是有意冒犯他人!
查看 retext-equality
和 retext-profanities
了解所有规则。
alex 会忽略字面意义上的词语,所以 "他"
、他 — ……
,以及类似用法不会被警告。
sindresorhus/SublimeLinter-contrib-alex
dustinspecker/gulp-alex
keoghpe/alex-slack
yohanmishkin/ember-cli-alex
swinton/linter-alex
brown-ccv/alex-recommends
reviewdog/action-alex
w0rp/ale
skn0tt/alex-browser-extension
stefanjudis/alex-js-contentful-ui-extension
nickradford/figma-plugin-alex
tlahmann/vscode-alex
CLI 在给定目录时会搜索带有 markdown 或文本扩展名的文件(因此 $ alex .
会找到 readme.md
和 path/to/file.txt
)。要防止文件被发现,请创建一个 .alexignore
文件。
.alexignore
CLI 有时会搜索文件。要防止文件被发现,请在当前工作目录(即运行 alex
的位置)上方的某个目录中添加一个名为 .alexignore
的文件。这些文件的格式类似于 .eslintignore
(而后者又类似于 .gitignore
文件)。
例如,当在 ~/path/to/place
中工作时,忽略文件可以位于 to
、place
或 ~
中。
本项目自身的忽略文件看起来像这样:
# `node_modules` 默认被忽略。 example.md
有时alex会出错:
这句话会弹出一条消息。
结果如下:
readme.md 1:15-1:18 警告 `pop` 可能有歧义,请改用 `parent` dad-mom retext-equality ⚠ 1 个警告
可以使用 Markdown 中的 HTML 注释来忽略它们:
<!--alex ignore dad-mom--> 这句话将**不会**弹出消息。
结果如下:
readme.md: 未发现问题
ignore
会关闭注释后面内容的消息(在这个例子中是该段落)。
也可以使用 disable
在注释后关闭消息,然后使用 enable
重新开启这些消息:
<!--alex disable dad-mom--> 这句话将**不会**弹出消息。 这句话也**不会**弹出消息。 再来一句话,同样**不会**弹出消息。 <!--alex enable dad-mom--> 这句话会弹出消息。
结果如下:
readme.md 9:15-9:18 警告 `pop` 可能有歧义,请改用 `parent` dad-mom retext-equality ⚠ 1 个警告
可以一次控制多个消息:
<!--alex disable he-her his-hers dad-mom-->
…通过省略所有规则标识符,可以控制所有消息:
<!--alex ignore-->
您可以通过 .alexrc
配置文件控制 alex:
{ "allow": ["boogeyman-boogeywoman"] }
…如果文件名为 .alexrc.yml
或 .alexrc.yaml
,您可以使用 YAML:
allow: - dad-mom
…如果文件名为 .alexrc.js
,您还可以使用 JavaScript:
// 但像这样随机设置是个坏主意! exports.profanitySureness = Math.floor(Math.random() * 3)
…最后,还可以在 package.json
中使用 alex
字段:
{ … "alex": { "noBinary": true }, … }
allow
字段应为规则数组或 undefined
(默认为 undefined
)。提供时,将跳过并不报告指定的规则。
deny
字段应为规则数组或 undefined
(默认为 undefined
)。提供时,仅报告指定的规则。
不能同时使用 allow
和 deny
。
noBinary
字段应为布尔值(默认为 false
)。
开启(true
)时,像 he and she
和 garbageman or garbagewoman
这样的配对将被视为错误。
关闭(false
,默认)时,这样的配对是可以的。
profanitySureness
字段是一个数字(默认为 0
)。
我们使用 cuss
,它有一个词典,对单词或短语作为亵渎语的可能性(而非其"糟糕"程度)进行 0 到 2 的评级:
评级 | 作为亵渎语使用 | 在干净文本中使用 | 示例 |
---|---|---|---|
2 | 可能 | 不太可能 | asshat |
1 | 可能 | 可能 | addict |
0 | 不太可能 | 可能 | beaver |
profanitySureness 字段是您想要检查的最低评级(包含该评级)。 | |||
如果您将其设置为 1 (可能),那么它会对级别 1 和 2 (可能)的亵渎语发出警告,但不会对级别 0 (不太可能)的发出警告。 |
![][截图]
假设example.md
内容如下:
妖怪将所有更改写入**主服务器**。因此,从服务器是主服务器的只读副本。不过别担心,他是个残疾人。
现在,在example.md
上运行alex:
$ alex example.md
输出结果:
example.md 1:5-1:14 警告 `boogeyman`可能有冒犯性,请使用`boogeymonster`代替 boogeyman-boogeywoman retext-equality 1:42-1:48 警告 `master` / `slaves`可能有冒犯性,请使用`primary` / `replica`代替 master-slave retext-equality 1:69-1:75 警告 不要使用`slaves`,这是亵渎性词语 slaves retext-profanities 2:52-2:54 警告 `he`可能有冒犯性,请使用`they`、`it`代替 he-she retext-equality 2:61-2:68 警告 `cripple`可能有冒犯性,请使用`person with a limp`代替 gimp retext-equality ⚠ 5 个警告
使用$ alex --help
获取更多信息。
当没有给alex输入文件时,它会在当前目录、
doc
和docs
中搜索文件。 如果给定--mdx
参数,它会搜索mdx
扩展名的文件。 如果给定--html
参数,它会搜索htm
和html
扩展名的文件。 否则,它会搜索txt
、text
、md
、mkd
、mkdn
、mkdown
、ron
和markdown
扩展名的文件。
本包是仅支持 ESM的:
需要 Node 14+ 版本才能使用,且必须通过 import
而不是 require
来引入。
npm:
$ npm install alex --save
本包导出了标识符 markdown
、mdx
、html
和 text
。
默认导出为 markdown
。
markdown(value, config)
检查 Markdown(忽略语法)。
value
(VFile
或 string
) — Markdown 文档config
(Object
,可选) — 参见[配置][]部分你可能对其 messages
属性感兴趣,如下例所示,因为它包含了可能的违规信息。
import alex from 'alex' alex('We've confirmed his identity.').messages
输出:
[ { message: '`his` 在指代人时可能不够敏感,请使用 `their`、`theirs`、`them` 替代', name: '1:17-1:20', reason: '`his` 在指代人时可能不够敏感,请使用 `their`、`theirs`、`them` 替代', line: 1, column: 17, location: { start: [Object], end: [Object] }, source: 'retext-equality', ruleId: 'her-him', fatal: false, actual: 'his', expected: [ 'their', 'theirs', 'them' ] } ]
mdx(value, config)
检查 MDX(忽略语法)。
注意:alex 使用的是目前处于 beta 阶段的 MDX@2 语法。
value
(VFile
或 string
) — MDX 文档config
(Object
,可选) — 参见[配置][]部分import {mdx} from 'alex' mdx('<Component>He walked to class.</Component>').messages
输出:
[ { reason: '`He` 可能不够敏感,请使用 `They`、`It` 替代', line: 1, column: 12, location: { start: [Object], end: [Object] }, source: 'retext-equality', ruleId: 'he-she', fatal: false, actual: 'He', expected: [ 'They', 'It' ] } ]
html(value, config)
检查 HTML(忽略语法)。
value
(VFile
或 string
) — HTML 文档config
(Object
,可选) — 参见[配置][]部分import {html} from 'alex' html('<p class="black">He walked to class.</p>').messages
输出:
[ { message: '`He` 可能不够敏感,请使用 `They`、`It` 替代', name: '1:18-1:20', reason: '`He` 可能不够敏感,请使用 `They`、`It` 替代', line: 1, column: 18, location: { start: [Object], end: [Object] }, source: 'retext-equality', ruleId: 'he-she', fatal: false, actual: 'He', expected: [ 'They', 'It' ] } ]
text(value, config)
检查纯文本(包括语法检查)。
value
(VFile
或 string
) — 文本文档config
(Object
,可选) — 参见[配置][]部分import {markdown, text} from 'alex' markdown('The `boogeyman`.').messages // => [] text('The `boogeyman`.').messages
输出:
[ { message: '`boogeyman` 可能不够敏感,请使用 `boogeymonster` 替代', name: '1:6-1:15', reason: '`boogeyman` 可能不够敏感,请使用 `boogeymonster` 替代', line: 1, column: 6, location: Position { start: [Object], end: [Object] }, source: 'retext-equality', ruleId: 'boogeyman-boogeywoman', fatal: false, actual: 'boogeyman', expected: [ 'boogeymonster' ] } ]
建议的工作流程是将 alex 添加到 package.json
中,并在 Travis 中与您的测试一起运行。
一个使用 npm scripts 的 package.json
文件,并额外使用 AVA 进行单元测试,可能如下所示:
{ "scripts": { "test-api": "ava", "test-doc": "alex", "test": "npm run test-api && npm run test-doc" }, "devDependencies": { "alex": "^1.0.0", "ava": "^0.1.0" } }
如果您使用 Travis 进行持续集成,在 .travis.yml
中设置类似以下内容:
script: - npm test + - alex --diff
请确保仍然安装 alex!
如果使用 --diff
标志,并且检测到 Travis,则会忽略此次推送中未更改的行。
使用这个工作流程,即使 PR 有警告,您也可以合并它。然后,如果有人编辑了一个完全不同的文件,他们不会被已存在的警告所困扰,只会关注他们添加的内容!
这不是一个问题。 是的,alex 并不是很聪明。 人类在这方面做得更好。 但人也会犯错,而 alex 就是来帮忙的。
请查看 contributing.md
了解如何让 alex 检查"X"。
这是一个不分性别的好名字,在 npm 上还未被使用,我很喜欢! :smile:
没有任何自动化工具可以取代学习包容性沟通和倾听他人的亲身经历。
alex
工具的错误可以成为学习更多知识的契机。
以下资源可作为起点,帮助你在 alex
工具之外深化自身理解和编辑 技能:
alex
发现,但它并不具有包容性。优秀的人工编辑可以迎接挑战,找到更好的表达方式。请参阅 get-alex/.github
仓库中的 contributing.md
文件,了解如何开始贡献。
如需获取帮助,请查看 support.md
文件。
本项目遵循行为准则。
通过与此仓库、组织或社区进行互动,即表示您同意遵守其条款。
感谢 @iheanyi 提出这个问题,以及 @sindresorhus 激发我(@wooorm)采取行动。
当 alex 推出时,它在 Twitter 和 Product Hunt 上获得了一些关注。随后,出现了大量媒体报道和新闻报导。
alex 的初步工作始于2015年。
该项目由 @wooorm 创作。
自那以后,许多人为此做出了贡献!
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满 足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效 制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号