Programming heeft al lange tijd mooie highlighters voor o.a. de meest obscure en ranzige programmeertalen, dus ik vond dat wij niet langer achter konden blijven. Bij deze presenteer ik U daarom ook de HTML en JavaScript syntax highlighters! \o/
Features HTML syntaxhighlighter
Naast syntax highlighting doet de HTML highlighter ook basic syntax checking en heeft het zelfs lint-like features. Highlighting wordt gedaan op basis van de gedefinieerde elementen in HTML4 Transitional en bijbehorende attributen.
Syntax checking is gebaseerd op de algemene syntaxregels regels voor HTML en de daarvoor gespecificeerde SGML-features waaronder shorthand markup. Dat laatste is nogal controversieel aangezien bijna geen enkele browser er support voor biedt
Er is daarom ook gekozen voor een afwijkende kleur om bepaalde constructies die gebruik maken van de SHORTTAG feature zichtbaar te maken:
Het is en blijft echter in 1e instantie een highlighter en is geenszins een validator! Keep that in mind
verder nog wat voorbeelden:
Waarom op basis van HTML4 Transitional?
Omdat dat op dit moment de meest gebruikte opmaaktaal is op het web
Het verschil met Strict is ook niet zo groot; wat in Strict niet is toegestaan is in Transitional in bijna alle gevallen ook deprecated en zal dus ook zo worden gehighlight. Uitzonderingen zijn o.a. het name-attribuut voor bv form-elementen en het target-attribuut voor anchors, en het iframe-element. Daar valt m.i. wel overheen te komen; de meeste authors die Strict hanteren weten de weg naar de specificatie en de validator wel te vinden
What about XHTML?
Aangezien 99% van de pagina's met een XHTML DTD als HTML worden verstuurd en dus ook zo worden behandeld door browsers (it's not in the doctype, it's in the mime-type) doet deze highlighter precies wat het moet doen
XHTML vergt net als dat het een andere parser voor browsers vereist eigenlijk ook een andere highlighter; de syntax-rules wijken immers af en er wordt anders met bepaalde zaken omgegaan (denk bijvoorbeeld aan HTML-style comments in style- en scriptblokken, case-sensitivity, geen minimizations etcetera). De vraag is of er behoefte aan is, persoonlijk zie ik XHTML als een lost-case op webdevelopment gebied...
En (X)HTML5?
Is nog in ontwikkeling, is geen echte standaard (maar een voorstel vanuit een werkgroep van browservendors - WHATWG) en kent nog maar weinig echte implementaties. Itt XHTML2 is het in mijn ogen wel een interessante ontwikkeling, en gezien het feit dat het backwards-compatible zal zijn met HTML acht ik het niet onmogelijk dat daar in de toekomst ook in de highlighter rekening mee gehouden zal worden
En valt er nog wat nuttigs te melden over de javascript highlighter?
Mwa, behalve dat dat wel enkel en puur een highlighter is, aangeroepen kan worden zowel met [code=js] als [code=javascript] en hij verdacht veel lijkt op de java-highlighter eigenlijk niet zoveel.
Hij biedt o.a. wel support voor de RegExp literal en een aantal special properties zoals window, document en navigator.
En als ik nou geen lijpe kleurtjes wil?
Dan gebruik je gewoon de [code]-tag zonder language-toevoeging
Mag ik het stukmaken? / Ik zie een bug!
Ja dat mag / Ja dat kan
Post hier je ranzigheid en ik zal kijken of ik het kan fixen
Speciale dank aan moto-moi voor het compileren met de laatste versie flex en g++
Features HTML syntaxhighlighter
Naast syntax highlighting doet de HTML highlighter ook basic syntax checking en heeft het zelfs lint-like features. Highlighting wordt gedaan op basis van de gedefinieerde elementen in HTML4 Transitional en bijbehorende attributen.
Syntax checking is gebaseerd op de algemene syntaxregels regels voor HTML en de daarvoor gespecificeerde SGML-features waaronder shorthand markup. Dat laatste is nogal controversieel aangezien bijna geen enkele browser er support voor biedt
HTML:
enkel het 2e voorbeeld was technisch gezien lastig afwijkend te highlighten...1
2
3
4
5
6
7
8
9
10
11
| NET tags: <p/dit is valid HTML/ closed start tag: <p<strong>dit is valid HTML</strong> empty start tag: <> empty end tag: </> |
Het is en blijft echter in 1e instantie een highlighter en is geenszins een validator! Keep that in mind
verder nog wat voorbeelden:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <embed> onbestaand element </embed> <h1 foo='bar'> onbestaand attribuut </h1> <img src="foo.gif"> end-tag niet toegestaan: </img> <br /> NET tag (zie ook boven); strict genomen is de > content, maar wordt door de meeste browsers genegeerd <p align=left> deprecated attribuut </p> <font face="verdana"> deprecated element </font> <body bgcolor=#000000> non-name karakter in attribuut buiten quotes </body> <a href="foo.html?id=1&bar=2"> unencoded ampersand in attribuutwaarde (eigenlijk: niet bestaande entity 'bar') </a> <input type="text" disabled> boolean attribuut <input type="text" disabled="disabled"> zo mag het ook <input type="foo"> Ongeldige attribuut-waarde <body onload="javascript:init()"> javascript: pseudo-protocol in event-handlers <input value="<?php echo $foo; ?>"> serverside pre-processing als attribute-value en natuurlijk &foo: niet bestaande entities in content |
Waarom op basis van HTML4 Transitional?
Omdat dat op dit moment de meest gebruikte opmaaktaal is op het web
Het verschil met Strict is ook niet zo groot; wat in Strict niet is toegestaan is in Transitional in bijna alle gevallen ook deprecated en zal dus ook zo worden gehighlight. Uitzonderingen zijn o.a. het name-attribuut voor bv form-elementen en het target-attribuut voor anchors, en het iframe-element. Daar valt m.i. wel overheen te komen; de meeste authors die Strict hanteren weten de weg naar de specificatie en de validator wel te vinden
What about XHTML?
Aangezien 99% van de pagina's met een XHTML DTD als HTML worden verstuurd en dus ook zo worden behandeld door browsers (it's not in the doctype, it's in the mime-type) doet deze highlighter precies wat het moet doen
XHTML vergt net als dat het een andere parser voor browsers vereist eigenlijk ook een andere highlighter; de syntax-rules wijken immers af en er wordt anders met bepaalde zaken omgegaan (denk bijvoorbeeld aan HTML-style comments in style- en scriptblokken, case-sensitivity, geen minimizations etcetera). De vraag is of er behoefte aan is, persoonlijk zie ik XHTML als een lost-case op webdevelopment gebied...
En (X)HTML5?
Is nog in ontwikkeling, is geen echte standaard (maar een voorstel vanuit een werkgroep van browservendors - WHATWG) en kent nog maar weinig echte implementaties. Itt XHTML2 is het in mijn ogen wel een interessante ontwikkeling, en gezien het feit dat het backwards-compatible zal zijn met HTML acht ik het niet onmogelijk dat daar in de toekomst ook in de highlighter rekening mee gehouden zal worden
En valt er nog wat nuttigs te melden over de javascript highlighter?
Mwa, behalve dat dat wel enkel en puur een highlighter is, aangeroepen kan worden zowel met [code=js] als [code=javascript] en hij verdacht veel lijkt op de java-highlighter eigenlijk niet zoveel.
Hij biedt o.a. wel support voor de RegExp literal en een aantal special properties zoals window, document en navigator.
En als ik nou geen lijpe kleurtjes wil?
Dan gebruik je gewoon de [code]-tag zonder language-toevoeging
Mag ik het stukmaken? / Ik zie een bug!
Ja dat mag / Ja dat kan
Post hier je ranzigheid en ik zal kijken of ik het kan fixen
Speciale dank aan moto-moi voor het compileren met de laatste versie flex en g++
Intentionally left blank
