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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论