Now vibe coding, so learning hammer FE ?
《node-html-to-text:HTML转纯文本转换器》
标签:#NodeJS #工具库 #HTML解析 #文本转换 #数据提取 #内容处理
总结:
node-html-to-text 是一款成熟的 Node.js 库,用于将 HTML 文档解析并转换为格式优美的纯文本。它通过类 CSS 的 selectors 机制实现高度灵活的格式化控制,支持表格、链接、列表等复杂结构,并提供
文章要点:
- **核心能力**:支持行内/块级标签、表格(含跨行跨列)、链接、自动换行、Unicode 等,能把复杂 HTML 干净地转成可读文本
- **两种使用模式**:`convert()
- **Selectors 驱动配置**:采用类似 CSS 的 selectors 数组来匹配元素并指定格式化方式,支持标签、类名、ID、属性等组合选择,特异性高的规则优先生效
- **丰富的自定义扩展**:可通过
- **版本演进清晰**:v8 引入 selectors 体系,v9 支持 ESM/CJS 双模式并移除大量废弃选项,v10 要求 Node.js 20.19.0+,API 趋于稳定现代
文章URL:https://github.com/html-to-text/node-html-to-text
标签:#NodeJS #工具库 #HTML解析 #文本转换 #数据提取 #内容处理
总结:
node-html-to-text 是一款成熟的 Node.js 库,用于将 HTML 文档解析并转换为格式优美的纯文本。它通过类 CSS 的 selectors 机制实现高度灵活的格式化控制,支持表格、链接、列表等复杂结构,并提供
compile 预编译模式以优化批量处理性能。文章要点:
- **核心能力**:支持行内/块级标签、表格(含跨行跨列)、链接、自动换行、Unicode 等,能把复杂 HTML 干净地转成可读文本
- **两种使用模式**:`convert()
适合单次转换;`compile() 预编译配置后批量处理,性能更优,推荐处理大量文档时使用- **Selectors 驱动配置**:采用类似 CSS 的 selectors 数组来匹配元素并指定格式化方式,支持标签、类名、ID、属性等组合选择,特异性高的规则优先生效
- **丰富的自定义扩展**:可通过
formatters 注册自定义格式化函数,还能传入 metadata 让 formatter 访问额外上下文信息,满足特殊业务需求- **版本演进清晰**:v8 引入 selectors 体系,v9 支持 ESM/CJS 双模式并移除大量废弃选项,v10 要求 Node.js 20.19.0+,API 趋于稳定现代
文章URL:https://github.com/html-to-text/node-html-to-text
《利用浏览器Canvas进行数据压缩》
标签:#前端 #JavaScript #CanvasAPI #数据压缩 #PNG编码 #浏览器兼容性 #SPA
总结:本文介绍了一种利用浏览器Canvas API将任意数据压缩为PNG图像格式的技术方案。通过将字节数据编码为像素颜色值并生成PNG图像,可以间接调用浏览器内置的压缩算法,实现无需外部依赖的数据压缩。该方法特别适用于需要在旧版浏览器中压缩数据、或需要将SPA状态序列化到URL中的场景,提供了Compression Streams API不可用时的替代方案。
文章要点:
- 背景需求:在静态网站和SPA中,有时需要将状态数据序列化到URL hash中,因此需要前端数据压缩方案;虽然2023年5月后Compression Streams API已普及,但旧版浏览器仍需替代方案
- 核心原理:浏览器内置了优化的压缩库用于HTTP请求和图片处理,通过将数据编码为PNG像素数据,可间接利用浏览器的无损压缩能力
- 技术实现:将Uint8Array数据按RGB通道编码到Canvas像素中(首字节存储最后一像素的有效字节数),Alpha通道固定为255以确保跨浏览器一致性,最终通过toDataURL("image/png")获取base64编码的压缩数据
- 解压流程:异步加载生成的PNG图片,读取像素数据后过滤Alpha通道,根据首字节指示的有效长度提取原始字节数据
- 方案特点:即使考虑PNG格式开销,压缩后的数据通常仍小于原始数据;完全基于浏览器原生API,无需外部库依赖
- 应用场景:旧浏览器兼容性支持、URL状态序列化、纯前端数据压缩需求
文章URL:https://jstrieb.github.io/posts/canvas-compress/
标签:#前端 #JavaScript #CanvasAPI #数据压缩 #PNG编码 #浏览器兼容性 #SPA
总结:本文介绍了一种利用浏览器Canvas API将任意数据压缩为PNG图像格式的技术方案。通过将字节数据编码为像素颜色值并生成PNG图像,可以间接调用浏览器内置的压缩算法,实现无需外部依赖的数据压缩。该方法特别适用于需要在旧版浏览器中压缩数据、或需要将SPA状态序列化到URL中的场景,提供了Compression Streams API不可用时的替代方案。
文章要点:
- 背景需求:在静态网站和SPA中,有时需要将状态数据序列化到URL hash中,因此需要前端数据压缩方案;虽然2023年5月后Compression Streams API已普及,但旧版浏览器仍需替代方案
- 核心原理:浏览器内置了优化的压缩库用于HTTP请求和图片处理,通过将数据编码为PNG像素数据,可间接利用浏览器的无损压缩能力
- 技术实现:将Uint8Array数据按RGB通道编码到Canvas像素中(首字节存储最后一像素的有效字节数),Alpha通道固定为255以确保跨浏览器一致性,最终通过toDataURL("image/png")获取base64编码的压缩数据
- 解压流程:异步加载生成的PNG图片,读取像素数据后过滤Alpha通道,根据首字节指示的有效长度提取原始字节数据
- 方案特点:即使考虑PNG格式开销,压缩后的数据通常仍小于原始数据;完全基于浏览器原生API,无需外部库依赖
- 应用场景:旧浏览器兼容性支持、URL状态序列化、纯前端数据压缩需求
文章URL:https://jstrieb.github.io/posts/canvas-compress/