We liepen steeds vaker aan tegen beperking van de SML-engine, die tags als [b], [i], [sub], [quote] en [spoiler] omzet naar iets zichtbaars. Sommige problemen waren een klein beetje vervelend, bijvoorbeeld dat alle posts vanaf een bepaald punt
naar links verschoven, wat gebeurde wanneer iemand een spoiler-tag direct na een url plaatste. Andere problemen waren een heel groot beetje vervelend, zo hadden sommige gebruikers een manier gevonden om alle posts vanaf een bepaald punt onzichtbaar te maken. Vaak moest er een modje met verstand van zaken aan te pas komen die met een spatie of enter op het punt waar het fout ging alles weer goed liet lopen, dus wenselijk was dit allerminst.
De oude SML-engine was gebaseerd op
reguliere expressies. Zoiets begint klein en is dan nog overzichtelijk. Maar bij elke verandering moest rekening gehouden worden met onvoorzienbare situaties, waardoor fouten zoals bovengenoemde veel tijd kostten om te repareren. Zoals Jamie Zawinski eens zei:
quote:
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
De nieuwe SML-engine werkt met een
stack, wat erop neerkomt dat hij je post van links naar rechts doorloopt, en onthoudt welke tags er allemaal openstaan. Daardoor is hij ongevoeliger voor fouten, en zijn aanpassingen eenvoudiger te realiseren. Naast een uiteindelijk betere omzetting van je SML-codes, zijn er per direct ook wat nieuwe mogelijkheden.
De eerste is de mogelijkheid om te linken naar URLs waar een [ of ] in voorkomt door gebruik te maken van ":
[url="http://www.google.nl/search?q=[]"]hopsakee[/url]
geeft
hopsakeeTen tweede is er nu de nosml-tag waarmee je SML-code weer kunt geven. Hiermee kon ik het vorige voorbeeld geven:
[nosml][url="http://www.google.nl/search?q=[]"]hopsakee[/url][/nosml]
Ten slotte is er nu een XML-highlighter. Gebruik [code=xml] of [xml]-tags om tot zo'n resultaat te komen:
1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0" encoding="utf-8"?> <playlist name="mylist" xml:lang="en"> <song> <title>Little Fluffy Clouds</title> <artist>the Orb</artist> </song> <song> <title>Goodbye mother Earth</title> <artist>Underworld</artist> </song> </playlist> |
Voorlopig draait de SML-engine alleen op het forum, maar uiteindelijk zal hij ook berichten op de andere subsites verwerken. Het is waarschijnlijk dat er nog fouten inzitten, dus
meld die vooral.