KHTML是由KDE項目開發的一種HTML網頁排版引擎,最初作為Konqueror瀏覽器的排版引擎,但自2016年起開發活動停止,并于2023年正式停用。KHTML基于KParts框架,以C++編寫,在其輝煌時期對網頁標準的支持較好。KHTML的分支引擎被世界上最廣泛使用的瀏覽器所采用,包括WebKit(Safari)和Blink(谷歌 Chrome、Chromium、Microsoft Edge、Opera、Vivaldi和Brave)。
軟件簡介
該引擎以C++編程語言編寫,并使用LGPL授權,支持大多數網頁瀏覽標準。由于微軟的Internet Explorer的占有率相當高,不少以FrontPage制作的網頁均包含只有IE才能讀取的非標準語法,為了使KHTML引擎兼容更多頁面,同時也支持部分IE專屬語法。
以下軟件均使用到了KHTML:
發展歷史
KHTML的前身是一個名為khtmlw的早期引擎,由Torben Weis和Martin Jones開發,支持HTML 3.2、HTTP 1.0和HTML框架,但不支持W3C DOM、層疊樣式表或ECMAScript。KHTML本身誕生于1998年11月4日,作為khtmlw庫的一個分支,經過重構并增加了Unicode支持。1999年,Lars Knoll開始研究實現W3C DOM規范,并在同年8月16日宣布了對KHTML庫的徹底重寫,這使得KHTML在1999年10月初次添加了對JavaScript的支持。隨后,KHTML在2000年3月完成了CSS支持的添加,并成為了繼Internet Explorer之后第二個正確支持希伯來語、阿拉伯語和從右到左書寫的語言的瀏覽器。KHTML已計劃在KDE Frameworks 6中移除,活躍開發于2016年結束,只進行必要的維護以與Frameworks 5的更新一起工作。該引擎于2023年正式停止使用。
功能和特色
軟件特點
KHTML擁有速度快捷的優點,但是對語法的內容要求則比Mozilla Application Suite產品所使用的Gecko引擎更加嚴格。麥金塔于2002年采納了KHTML,作為開發Safari瀏覽器之用,并發布所修改的最新及歷史版本源代碼。后來發表了開放源代碼的WebCore及WebKit引擎,它們均是KHTML的衍生產品,在開發網站列出引擎改變內容,并會傳回至KDE計劃。由于兩個衍生產品各走不同路線,使兩者源代碼差異較大,結果難以與KDE交換更新。其中一個原因,是蘋果公司在對外公開源代碼之前,以一年時間編修他們的KHTML。另外,蘋果傳送更新至KDE計劃的方式,多是一口氣把大量改動一起傳送,KDE在整理資料也出現一定的困難,及后蘋果表示會以CVS格式來傳送。再者,蘋果所作出的改動包括Mac OS X系統的特有功能,如Objective-C、KWQ等,在Linux及KHTML是沒有的。但KDE方面仍透過這些改動,為KHTML加入新功能并且加快其排版速度。
兼容的標準
KHTML引擎支持下列標準:
標準合規性
KHTML引擎在其發展過程中,對Web標準的支持不斷增強。除了已經支持的HTML 4.01、CSS 1和CSS 2.1,KHTML還增加了對HTML 5、CSS 3選擇器(自KDE 3.5.6起完全支持)、CSS 3其他功能(如多種背景、框大小和文本陰影)、DOM 1、2和部分3、ECMA-262/JavaScript 1.5以及部分可縮放矢量圖形(SVG)的支持。
社會影響
Apple在2002年采用KHTML和KJS作為Safari瀏覽器的基礎,并公布了其對KHTML引擎所分支的源代碼,命名為WebKit。2013年,谷歌開始開發WebKit的一個分支,命名為Blink。這些分支引擎的發展,使得KHTML的技術和理念得以在當今廣泛使用的瀏覽器中繼續發揮作用。
參考資料 >