@dualmark/cli

中文文档
0.11.0发布于 2026/08/24Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 5206

(原始内容存档于2017-10-21). Conformation test runder for the AEO spec. dualmark verify <url> 任何网站的评分都与AEO规格相对.

中文使用文档
文档目录8 节
  1. 安装
  2. 使用量
  3. 旗帜
  4. JSON 输出计划( AEO spec v1.0)
  5. 退出代码
  6. 程序用途
  7. 检查什么
  8. 许可证

@ dualmark/ cli (英语)

dualmark verify <url> - AEO规格的合格测试跑手.

安装

bun add -d @dualmark/cli
# or run directly:
bunx @dualmark/cli verify https://example.com/blog/hello

使用量

dualmark verify https://example.com/blog/hello
dualmark verify https://example.com/blog/hello.md --skip-negotiation
dualmark verify https://example.com --json
dualmark verify https://example.com --timeout 5000

旗帜

旗帜效果
--jsonEmit 机器可读 JSON (AEO Spec v1.0) , 而不是人可读文本; 无法与 --quiet 或者说 --color
--quiet禁止成功文本输出( 失败仍为打印报告)
--color启用文本输出的颜色模式( 保留; 目前不开放)
--no-color禁用文本输出的颜色模式( 保留; 目前没有)
--skip-negotiation跳过接受标题 / 链接标题 / 406 检查 。 仅用于在 .md 不进行运行时间内容谈判的 URL( 如仅静态部署)
--timeout <ms>按请求超时( 默认为 1 000)

JSON 输出计划( AEO spec v1.0)

何时 --json 设置, CLI 打印此对象:

{
  "url": "https://example.com/blog/hello",
  "markdownUrl": "https://example.com/blog/hello.md",
  "score": 95,
  "max": 100,
  "level": "advanced",
  "skippedNegotiation": false,
  "durationMs": 123,
  "checks": [
    {
      "id": "md.fetch",
      "points": 20,
      "max": 20,
      "passed": true,
      "message": "OK"
    }
  ]
}

注释:

  • level 这是其中之一 none, (中文(简体) ), basic, (中文(简体) ), standard, (中文(简体) ), advanced。 。 。 .
  • skippedNegotiation 显示是否 --skip-negotiation 当时使用了.
  • checks[].points 实值 0 当检查失败时,否则等于 checks[].max。 。 。 .
  • checks 保留符合要求的跑者发出的犬科检查评价令.

退出代码

  • 0 通过(最高分的80%)
  • 1 失败( 低于阈值或任何必要的检查失败)
  • 2 — CLI 使用错误

关于 GitHub 动作、 GitLab CI 和 Docker 示例,请参见 CI 指南中的使用。 。 。 .

程序用途

import { verifyUrl } from "@dualmark/cli";
const report = await verifyUrl("https://example.com/blog/hello");
console.log(report.score, "/", report.maxScore);

检查什么

  • md.fetch ——可被标记的双子 URL( 2xx)
  • md.contentType —— 说 text/markdown; charset=utf-8
  • md.tokensHeader —— 说 X-Markdown-Tokens 是正整数
  • md.noindex —— 说 X-Robots-Tag 包含 noindex
  • md.vary —— 说 Vary 包含 Accept
  • md.body ——身体不空虚
  • md.aeoVersion —— 说 X-AEO-Version 广告(建议)
  • md.nosniff —— 说 X-Content-Type-Options: nosniff (建议)

当允许谈判时( 默认) :

  • html.reachable — HTML URL 为 2xx
  • html.linkAlternate – HTML 响应通过 mark-down two 发布广告 Link rel="alternate"
  • html.vary — HTML 响应 Vary: Accept (建议)
  • negotiation.botUa ——GPTBot UA收到减分
  • negotiation.acceptHeader —— 说 Accept: text/markdown 接受减记
  • negotiation.notAcceptable —— 接受排除 html+ markdown 返回 406 (建议)

许可证

Apache 2.0 (英语)

版本与发布记录

@dualmark/cli 共发布 10 个版本,首次发布于 2026/05/06;过去 12 个月发布了 10 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.11.0latest2026/08/242 个月前
0.10.02026/06/184 个月前
0.8.02026/05/305 个月前
0.7.02026/05/215 个月前
0.5.22026/05/126 个月前
0.5.02026/05/076 个月前

关于 @dualmark/cli 的常见问题

@dualmark/cli 是什么?

(原始内容存档于2017-10-21). Conformation test runder for the AEO spec. dualmark verify <url> 任何网站的评分都与AEO规格相对.

如何安装 @dualmark/cli?

在项目目录运行 npm install @dualmark/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 dualmark,可以用 npx dualmark 直接运行。

@dualmark/cli 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dualmark/cli 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@dualmark/cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dualmark/cli 可以商用吗?

@dualmark/cli 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dualmark/cli 的下载量有多少?

根据 npm 官方下载统计,@dualmark/cli 在 2026/10/13 – 2026/11/11 这 30 天内被下载 5,206 次,日均约 174 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dualmark/cli 还在维护吗?

最新版本 0.11.0 发布于 2026/08/24(2 个月前);至今共发布 10 个版本,其中过去 12 个月发布了 10 个;首次发布于 2026/05/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。