$ 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数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
AI办公助手,复杂任务高效处理
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号