Faépítés

Faépítés

A faépítés a második elemzési szakasz: felhasználja a tokenizáló adatfolyamát és felépíti a DOM-ot a szabvány algoritmusának megfelelően — beleértve a híres hibakezelő viselkedéseket. parse_html() egy hívással becsomagolja az egész csővezetéket; TreeBuilder láthatóvá teszi a mechanizmust.


Egyhívásos elemzés

parse_html() a jelölőszövegből egy befejezett fára megy; parse_fragment() a fragmentum algoritmust alkalmazza egy környezeti elemre. Mindkettő ugyanazt a TreeBuilder belső mechanizmust vezérli a TreeBuilder.run() segítségével.

Beszúrási módok és nyitott elemek

InsertionMode modellezi az algoritmus módgépét, a StackOfOpenElements és a TemplateInsertionModeStack pedig pontosan a specifikációban leírtak szerint követik a konstrukció állapotát.

Hibakezelés

A rosszul egymásba ágyazott formázóelemek a run_adoption_agency_algorithm() — a szabvány átvételi ügynökségi algoritmusa — segítségével oldódnak meg, és a ActiveFormattingList nyomon követi az aktív formázóelemeket. A get_foster_parent_location() megvalósítja a foster parentinget a rossz helyen lévő táblázat tartalomra.

Quirks és külföldi tartalom

determine_quirks_mode() a dokumentumokat a doctype-juk alapján osztályozza. Az SVG és a MathML tartalom a adjust_svg_attributes(), adjust_mathml_attributes() és adjust_foreign_attributes() útvonalán halad, a is_html_integration_point() és is_mathml_text_integration_point() által észlelt integrációs pontokkal.


Tippek és bevált gyakorlatok

  • Használd a parse_html()-t, hacsak nem kifejezetten szükséged van a konstrukció-állapot introspekcióra.
  • Használd a parse_fragment()-t a megfelelő kontextuselemmel — a fragmentum-elemzési szabályok ettől függenek.
  • Rossz jelölőnyelv esetén a meglepő fa struktúrák hibakeresésekor az adoption agency és a foster-parenting viselkedés általában a magyarázat, nem pedig egy hiba.

Gyakori problémák

ProblémaOkJavítás
A táblázat tartalma a táblázaton kívülre kerültA helytelenül elhelyezett tartalom gondozásának elősegítéseJavítsa a forrás jelölés beágyazását
Formázó címkék duplikálódnak a kimenetbenÖrökbefogadási ügynökség újjáépítéseVárható szabványos viselkedés a hibás beágyazás esetén
A dokumentum quirks módban jelenik megHiányzó vagy elavult doctypeEllenőrizze a(z) determine_quirks_mode() a bemenetben

FAQ

Miért hoz létre a hibás jelölőnyelv egy érvényes fát?

A szabvány algoritmusa meghatározza a helyreállítást minden hibás esetben — TreeBuilder ezeket az útvonalakat valósítja meg ahelyett, hogy hibát dobna.

Mi az adoption agency algoritmus?

A szabvány eljárása a rosszul egymásba ágyazott formázóelemek javítására; run_adoption_agency_algorithm() néven érhető el.

A builder kezeli az SVG-t és a MathML?

Igen — a külföldi tartalom attribútumai a dedikált adjust_*_attributes() függvényeken keresztül állíthatók be, a szabványok integrációs pontjának detektálásával.


API Reference Összegzés

Osztály/MódszerLeírás
parse_htmlJelölőnyelv egy hívással fa struktúrába
parse_fragmentFragment algoritmus elemzése
TreeBuilder.runFuttassa a fa felépítését
InsertionModeAlgoritmus módú gép
run_adoption_agency_algorithmHibás beágyazás javítása
determine_quirks_modeDoctype-alapú quirks osztályozás

Lásd még:

 Magyar