
KHTML – zarchiwizowany w 2023 roku[1] silnik wyświetlania (renderowania) stron internetowych rozwijany przez społeczność programistów KDE[2][3]. Udostępniony na licencji wolnego i otwartego oprogramowania[4].
Wykorzystanie#edit
Silnik KHTML stworzony został dla przeglądarki Konqueror, ale był wykorzystywany także w przeglądarkach systemów takich jak AtheOS/Syllable (ABrowse), MorphOS (Sputnik) czy Symbian (MiniMap).
WebKit, silnik używany między innymi przez Apple w przeglądarce Safari, jest bezpośrednim forkiem KHTML[5][6], podobnie jak Blink[7]. Powszechną opinią jest jakoby KHTML był podwaliną powszechnie używanych przeglądarek, takich jak Google Chrome czy Microsoft Edge[3][8][9].
Architektura#edit
Silnik KHTML został napisany w języku C++ i był rozpowszechniany na warunkach licencji GNU LGPL. Obsługiwał HTML 4, HTML 5, XHTML, CSS 1, 2 i 3, DOM i JavaScript, oraz wtyczki Netscape/Mozilli (Flash, Java itp.)[10]. Do silnika KHTML wprowadzono także kilka niestandardowych elementów zwiększających zgodność z Internet Explorerem.
Zgodnie z zapisem dokumentacji technicznej[11], KHTML był zbudowany jako biblioteka, której podstawowym obiektem był KHTMLPart, odpowiedzialny za przetwarzanie dokumentu i współpracujący z widokiem KHTMLView. Dokumenty HTML były przetwarzane przez tokenizer i parser, które tworzyły drzewo zgodne z modelem DOM, natomiast dokumenty XML wykorzystywały mechanizmy parsowania XML biblioteki Qt. Na podstawie drzewa DOM oraz arkuszy stylów CSS, KHTML tworzył odrębne drzewo renderowania, zawierające obiekty odpowiedzialne za rozmieszczenie i wyświetlanie poszczególnych elementów. Drzewo renderowania mogło różnić się od DOM, m.in. ze względu na tworzenie anonimowych elementów wynikających z zasad formatowania CSS. Za dobór reguł CSS odpowiadał CSSStyleSelector, natomiast mechanizm layoutu obliczał rozmieszczenie elementów w dostępnej przestrzeni, po czym KHTMLView rysował wynik na ekranie. KHTML obsługiwał również ładowanie zewnętrznych zasobów, takich jak obrazy i arkusze stylów, za pomocą mechanizmu Loader pełniącego także funkcję pamięci podręcznej. Proces przetwarzania mógł odbywać się przyrostowo, dzięki czemu tokenizer, budowanie DOM i tworzenie drzewa renderowania częściowo zachodziły równolegle, umożliwiając rozpoczęcie wyświetlania dokumentu przed zakończeniem przetwarzania.
Istnieją głosy w społeczności programistów, jakoby powodem zawieszenia rozwijania KHTML była zbyt duża złożoność projektu[12][13].
Zobacz też#edit
Linki zewnętrzne#edit
- Projekt KHTML-Win32 (ang.)
Przypisy#edit
- ^ KDE/khtml, KDE GitHub Mirror, 27 sierpnia 2026 [dostęp 2026-09-08].
- ^ README.md
- ^ a b KDE at 30 [online], kde.org [dostęp 2026-09-08] (ang.).
- ^ COPYING.GPL3
- ^ WebKit - Glossary | MDN [online], MDN Web Docs, 28 października 2025 [dostęp 2026-09-08] (ang.).
- ^ WebKit2 4.1 (2.52.6) - WebKit2 4.1 [online], lazka.github.io [dostęp 2026-09-08].
- ^ Blink: A rendering engine for the Chromium project- Google Developers Blog [online], developers.googleblog.com [dostęp 2026-09-08] (ang.).
- ^ This Month in Ladybird – August 2026 | Hacker News [online], news.ycombinator.com [dostęp 2026-09-08] [zarchiwizowane z adresu 2026-09-08] (ang.).
- ^ Sanjay Prasad, Celebrating Innovation: KHTML, The Engine Behind Giants [online], 16 listopada 2025 [dostęp 2026-09-08] (ang.).
- ^ Development/Architecture/KDE3/KHTML - KDE TechBase [online], techbase.kde.org [dostęp 2026-09-08] [zarchiwizowane z adresu 2025-10-16] (ang.).
- ^ docs/DESIGN.html
- ^ Reddit [online], www.reddit.com [dostęp 2026-09-08].
- ^ KHTML [online], Browser Wars Wiki [dostęp 2026-09-08] (ang.).
This article is mirrored from “KHTML” on Polski Wikipedia, revision 80671598, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.
Synced with Wikipedia revision 80671598 · just now