Gumbo是一個 HTML5 解析演算法實現,只用 C99 標準庫編碼實現,沒有其他外部依賴。其設計目標是為其他工具和庫的開發提供支援,這些工具和庫包括 linters(JS檢查器)、驗證器、模板語言以及重構和分析工具。
Gumbo 的目標和特性:
- 完全符合 HTML5 規範
- 對錯誤輸入有健壯性和彈性
- 簡單的API,易於其他語言封裝
- 支援對原始檔定位
- 相對輕量級,無外部依賴
- 通過所有 html5lib-0.95 測試
- 在超過25億的谷歌索引頁面上測試過
非目標:
- 執行速度。因為Gumbo是純C編寫,所以速度上有優勢。雖然如此,但這並不是在擬定用途下的重要考量,也不是主要設計因素。
- 支援 UTF-8 以外的編碼。在大多數情況下,處理客戶端程式碼之前,可以用另外的庫將輸入流轉換為UTF-8的文字。
- 支援 C89 標準。目前大多數主要的編譯器都支援C99,主要的特例( Microsoft Visual Studio)應該能夠在C++模式下編譯,需要細微調整。 (歡迎報告錯誤)。
未來可能加入的一些特性:
- 支援近期HTML5規範變動從而支援模板標籤
- 支援分段分析
- 全功能錯誤報告機制
- 與其他語言繫結
如何安裝Gumbo 及其用例,請檢視 Gumbo的 Github 主頁:https://github.com/google/gumbo-parser
打賞支援我翻譯更多好文章,謝謝!
打賞譯者
打賞支援我翻譯更多好文章,謝謝!
任選一種支付方式