@dualmark/core

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

Framework-agnostic primitives for AEO infrastructure: content negotiation, AI-bot detection, markdown response, token estimation, composition helpers.

原始使用文档
文档目录5 节
  1. Install
  2. What's in it
  3. Quick example
  4. License
  5. Spec

@dualmark/core

Framework-agnostic primitives for AEO (Answer Engine Optimization) infrastructure.

Zero runtime dependencies. ESM + CJS. Strict TypeScript.

Install

bun add @dualmark/core

What's in it

  • Content negotiation (parseAcceptHeader, negotiateFormat) — RFC 7231 §5.3.2 compliant
  • AI bot detection (detectAIBot, AI_BOTS) — registry of 24 known crawlers with vendor + purpose metadata
  • Markdown response (markdownResponse, injectMarkdownAlternateLink) — builds Response objects with all AEO headers
  • Path utilities (toMarkdownPath, toMarkdownUrl) — convert HTML paths/URLs to their markdown twins
  • Token estimation (estimateTokens) — default is whitespace-split
  • Text utilities (normalizeUnicode, cleanBody, slugToTitle, fmtDate, joinLines) — for writing markdown converters
  • Composition helpers (listingToMarkdown, renderRelatedLinks, renderFAQSection)
  • llms.txt rendering (renderLlmsTxt)

Quick example

import { negotiateFormat, markdownResponse, detectAIBot } from "@dualmark/core";

export default {
  async fetch(request) {
    const accept = request.headers.get("accept") ?? "";
    const ua = request.headers.get("user-agent") ?? "";
    const bot = detectAIBot(ua);
    const fmt = negotiateFormat(accept);

    if (fmt === null) return new Response("Not Acceptable", { status: 406 });

    if (bot.isBot || fmt === "markdown") {
      return markdownResponse("# Hello\n\nThis is the markdown twin.");
    }

    return new Response("<html><body>Hello</body></html>", {
      headers: { "Content-Type": "text/html" },
    });
  },
};

License

Apache 2.0 — see LICENSE.

Spec

This package implements the AEO Specification v1.0.

版本与发布记录

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

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

关于 @dualmark/core 的常见问题

@dualmark/core 是什么?

Framework-agnostic primitives for AEO infrastructure: content negotiation, AI-bot detection, markdown response, token estimation, composition helpers.

如何安装 @dualmark/core?

在项目目录运行 npm install @dualmark/core,或使用 pnpm add / yarn add / bun add。

@dualmark/core 支持 TypeScript 吗?

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

@dualmark/core 支持 ESM 还是 CommonJS?

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

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

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

@dualmark/core 可以商用吗?

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

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

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

@dualmark/core 还在维护吗?

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