Google 开放 HTML5 解析库 Gumbo 的源代码

  • Abel Avram
  • 马德奎

2013 年 8 月 19 日

话题:开源GoogleHTML5语言 & 开发

Google 已经开放了Gumbo的源代码,这是一个用 C 编写的 HTML 解析库。该库符合HTML 解析算法标准,它通过了所有的html5lib-0.95测试,并且已经在 Google 索引的 25 亿个网页上进行过测试。

根据该项目的说明页,Google 发布 Gumbo 的目的是为开发人员提供一个轻量级的 HTML 解析库,它没有外部依赖,而且大多数语言都可调用它。该库可以包含在 Web 页面验证器、静态分析器、模板语言和重构工具等应用中。

Google 认为,Gumbo“对于不够标准的输入,它健壮而有弹性”,但是,由于 ABI 将来可能发生变化,所以不推荐维护指向 Gumbo 的一些内部数据结构的指针。不过,该 API 被认为相当稳定。Gumbo 1.0 会在不久的将来发布,在此之前,项目团队将一直等待开发人员的意见。

下面是一些将来会增加的功能:

  • 支持最近的 HTML5 规范变更,以支持模板标签
  • 支持片段解析
  • 全功能的错误报告
  • 在其它语言中的绑定

在 HTML5 解析算法标准化之前,每个浏览器自主选择如何标记输入页面和如何渲染页面。虽然 HTML 4 对于有效标记有详细说明,但是却没有指出在输入无效时浏览器应该做什么,所以世界上 95% 的 Web 页面都不能通过W3C 参考验证器的验证。使用像 Gumbo 这样的工具验证 HTML 页面,可以保证页面在所有主要的浏览器中得到恰当地解析和渲染。

查看英文原文:Google Open Sources Gumbo, An HTML5 Parsing Library


感谢马国耀对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

开源GoogleHTML5语言 & 开发