@ciolabs/htmlparser2-source

中文文档
0.0.3发布于 2025/10/30Apache-2.0 WITH Commons-ClauseTypeScriptESM + CJS近 30 天下载 3.1万

在 htmlparser2 周围打包器,将源范围信息添加到 AST

中文使用文档
文档目录12 节
  1. 安装
  2. 使用量
  3. API 密码
  4. 解析文档( 数据, 选项 )
  5. 选项
  6. autofix
  7. 类型
  8. 来源元素
  9. 源文件
  10. 工具函数
  11. 节点toString( 节点)
  12. 类型警卫

@ciolabs/htmlparser2 来源

一个包裹周围 htmlparser2 软件 将源区域信息添加到 AST 中.

安装

npm install @ciolabs/htmlparser2-source

使用量

import { parseDocument } from '@ciolabs/htmlparser2-source';

const html = '<div>hello</div>';

const document = parseDocument(html);

API 密码

解析文档( 数据, 选项 )

解析 HTML并返回每个元素附有源区域信息的文档.

参数

回返

回返a SourceDocument 具有强化元素,包括源范围信息.

选项

autofix

这将在缺失的近距离标记中添加到 AST 中. 注意,由于它们不存在源头,它们会有−1的指数位置.

import { parseDocument, nodeToString } from '@ciolabs/htmlparser2-source';

const html = '<div>hello';

const document = parseDocument(html, { autofix: true });

console.log(nodeToString(document)); //=> <div>hello</div>

类型

来源元素

包含源区域信息的增强的 HTML 元素 :

type SourceElement = {
  source: {
    openTag: {
      startIndex: number;
      endIndex: number;
      data: string;
      name: string;
      isSelfClosing: boolean;
    };
    closeTag: {
      startIndex: number;
      endIndex: number;
      data: string;
      name: string;
    } | null;
    attributes: Array<{
      name: {
        startIndex: number;
        endIndex: number;
        data: string;
      };
      value: {
        startIndex: number;
        endIndex: number;
        data: string;
      } | null;
      quote: '"' | "'" | null | undefined;
      source: {
        startIndex: number;
        endIndex: number;
        data: string;
      };
    }>;
  };
  children: SourceChildNode[];
};

源文件

带有位置公用设施的强化文件:

type SourceDocument = {
  children: SourceChildNode[];
  offsetToPosition(offset: number): { line: number; character: number };
};

工具函数

节点toString( 节点)

将解析的节点转换回其 HTML 字符串表示式.

import { parseDocument, nodeToString } from '@ciolabs/htmlparser2-source';

const html = '<div class="test">content</div>';
const document = parseDocument(html);

console.log(nodeToString(document)); // '<div class="test">content</div>'

类型警卫

软件包导出几种类型的守护功能:

  • isTag(node) - 检查节点是否是源元素
  • isText(node) - 检查节点是否是一个文本节点
  • isComment(node) - 检查节点是否是一个评论节点
  • isDocument(node) - 检查节点是否是源文件
  • isCDATA(node) - 检查节点是否是CDATA区段
  • isDirective(node) - 检查节点是否是一个处理指令
  • isDoctype(node) - 检查节点是否为 doctype 声明

版本与发布记录

@ciolabs/htmlparser2-source 共发布 4 个版本,首次发布于 2025/09/19;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.3latest2025/10/301 年前
0.0.22025/10/011.1 年前
0.0.12025/09/191.1 年前
0.0.02025/09/191.1 年前

关于 @ciolabs/htmlparser2-source 的常见问题

@ciolabs/htmlparser2-source 是什么?

在 htmlparser2 周围打包器,将源范围信息添加到 AST

如何安装 @ciolabs/htmlparser2-source?

在项目目录运行 npm install @ciolabs/htmlparser2-source,或使用 pnpm add / yarn add / bun add。

@ciolabs/htmlparser2-source 支持 TypeScript 吗?

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

@ciolabs/htmlparser2-source 支持 ESM 还是 CommonJS?

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

@ciolabs/htmlparser2-source 可以商用吗?

@ciolabs/htmlparser2-source 使用 Apache-2.0 WITH Commons-Clause 许可。声明的许可为 Apache-2.0 WITH Commons-Clause,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@ciolabs/htmlparser2-source 的下载量有多少?

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

@ciolabs/htmlparser2-source 还在维护吗?

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