KHTML
| 開發者 | KDE |
|---|---|
| 原始碼庫 | |
| 程式語言 | C++ |
| 作業系統 | 跨平台 |
| 類型 | 排版引擎 |
| 許可協定 | GNU較寬鬆公共授權條款 |
KHTML是一款已停止開發的瀏覽器引擎,由KDE專案所開發[1]。它起源於1990年代後期,最初作為Konqueror瀏覽器的引擎,但其活躍開發於2016年停止[2]。KHTML在2023年正式宣布棄用[1]。KHTML建構於KParts框架之上並以C++編寫,在全盛時期對網頁標準有着相當不錯的支援。從KHTML分支出來的引擎被現今大多數主流瀏覽器所採用,包括WebKit(Safari)以及Blink(Google Chrome、Microsoft Edge、Opera、Vivaldi與Brave)。
歷史
[編輯]起源
[編輯]KHTML的前身是由Torben Weis與Martin Jones開發的「khtmlw」(或稱為KDE HTML Widget)引擎[3][4],該引擎實作了對HTML3.2、HTTP1.0及HTML框架的支援,但並不支援DOM、CSS或JavaScript。
KHTML本身誕生於1998年11月4日[3],它是從khtmlw函式庫分叉而來,進行了一些輕量化的重構,並增加了Unicode支援以及為了遷移至Qt 2所做的變更。Waldo Bastian[5]是當時建立早期版本KHTML的開發者之一[3]。
重寫與改進
[編輯]KHTML真正的開發工作實際上始於1999年5月至10月間,當時專案意識到面臨的選擇是「要不投入大量資源推動KHTML進展,要不就使用Gecko」[3],並將加入JavaScript支援列為最高優先事項。因此在1999年5月,Lars Knoll[6]開始進行以實作DOM規範為目標的研究,最後於1999年8月16日宣布[7]他已經提交了[8]相當於完全重寫KHTML函式庫的程式碼——將KHTML改為使用標準DOM作為其內部檔案表示結構。這進而讓1999年10月開始能加入初步的JavaScript支援[3],隨後不久便由Harri Porten整合了KJS。
在1999年的最後幾個月與2000年的最初幾個月中,Knoll與Antti Koivisto及Dirk Mueller[3][9][10]進一步合作以加入CSS支援,並優化且穩定KHTML的架構[3],大部分工作於2000年3月完成。這些改進使KHTML成為繼Internet Explorer之後,第二個正確支援希伯來語、阿拉伯語及由右至左書寫語言的瀏覽器[3]——且早於Gecko提供相關支援。
KDE 2.0是第一個包含KHTML的KDE版本(於2000年10月23日發布)[11](作為新版Konqueror檔案與網頁瀏覽器的渲染引擎,該軟件取代了單體式的KDE檔案管理器)。
其他模組
[編輯]KSVG最初由Nikolas Zimmermann與Rob Buis於2001年開發,然而到2003年,決定將當時的KSVG實作分叉為兩個新專案:KDOM/KSVG2(旨在SVG1.0渲染狀態下改進KHTML的DOM渲染狀況)以及Kcanvas(旨在將khtml/ksvg2內的任何渲染抽象化到單一共用函式庫中,並提供多種後端,例如Cairo/Qt等)[12]。
停止維護
[編輯]KHTML預定於KDE Frameworks 6中移除[2]。主動開發已於2016年結束,僅保留配合Frameworks 5更新所需的必要維護。該引擎於2023年正式停止支援[1]。
標準相容性
[編輯]KHTML引擎支援下列標準:
參考資料
[編輯]- ^ 1.0 1.1 1.2 KHTML repository. GitHub. [5 May 2023].
Removed for KF6, the 'kf5' branch contains the last maintained state.
- ^ 2.0 2.1 Port Konqueror away from KHTML. phabricator.kde.org. [2023-05-05].
- ^ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 Lars Knoll and George Staikos: From KDE to WebKit. YouTube. 26 August 2011 [1 September 2019].
- ^ KDE/kde1-kdelibs/khtmlw. GitHub. [2020-01-23] (英語).
- ^ Waldo Bastian. Behindkde.org. [1 September 2019]. (原始內容存檔於11 April 2023).
- ^ Lars Knoll. Behindkde.org. [1 September 2019]. (原始內容存檔於1 September 2019).
- ^ 'changes in KHTML' - MARC. Marc.info. [1 September 2019].
- ^ 'khtml_to_dom: kdelibs/khtml' - MARC. Marc.info. [1 September 2019].
- ^ WebKit Team – WebKit. Trac.webkit.org. [1 September 2019].
- ^ Dirk Mueller. Behindkde.org. [1 September 2019]. (原始內容存檔於1 September 2019).
- ^ Lars Knoll and George Staikos: From KDE to WebKit. YouTube. 26 August 2011 [1 September 2019].
- ^ Archived copy. [2008-11-17]. (原始內容存檔於2016-03-03).
- ^ The WebKit Open Source Project. Webkit.org. 7 November 2015 [1 September 2019].
- ^ KDE 3.5.6 Changelog. K Desktop Environment.
外部連結
[編輯]- Konqueror the Web Browser (頁面存檔備份,存於互聯網檔案館) - Konqueror手冊中的KHTML功能列表
- KHTML - KDE's HTML library (頁面存檔備份,存於互聯網檔案館) - 來自developer.kde.org的定義
- The WebKit Open Source Project