Voor een forum wil ik een simpel markuptaaltje gebruiken met tags als {b} en {i}
Met reguliere expressies kan dat makkelijk tuurlijk, maar ik wil wel eens een simpel parsertje schrijven voor de markup van de messages.
Het is natuurlijk het makkelijkst om de tekst eerst in een array te stoppen met twee soorten elementen:
- tags, en andere tekst waar iets mee moet gebeuren zoals ascii-smileys die grafisch gemaakt moeten worden;
- de eigenlijke tekst;
Dat is gebeurd. Nu wil ik de array inlezen en html genereren.
Voor wat betreft de tags met een openende en sluitende versie (zoals {i}{/i}) dacht ik: ik zet de tags gewoon op een stack, en onderwijl genereer ik html waarbij ik alleen af en toe naar de stack hoef te kijken om te zien of ik alweer een openende en een sluitende tag hoef te schrijven.
Maar ik zit met een probleem in bijvoorbeeld onderstaande string:
dit is een {b} tekst dit {b} is een {/b} tekst
Ik wil dat hij dit resultaat genereert in html:
dit is een <b> tekst dit {b} is een </b> tekst
Maar hoe weet ik bij de tweede {b} al op het moment dat ik html genereer dat hij geen bijbehorende sluitende tag heeft? Niet dus..
Ik heb het idee alsof ik met een probleem bezig ben wat door heel veel mensen al lang op een heel handige manier is opgelost. Weet iemand misschien wat (grofweg) de handigste manier is om dit aan te pakken?
Of heeft iemand een link?
Alvast bedankt.
Met reguliere expressies kan dat makkelijk tuurlijk, maar ik wil wel eens een simpel parsertje schrijven voor de markup van de messages.
Het is natuurlijk het makkelijkst om de tekst eerst in een array te stoppen met twee soorten elementen:
- tags, en andere tekst waar iets mee moet gebeuren zoals ascii-smileys die grafisch gemaakt moeten worden;
- de eigenlijke tekst;
Dat is gebeurd. Nu wil ik de array inlezen en html genereren.
Voor wat betreft de tags met een openende en sluitende versie (zoals {i}{/i}) dacht ik: ik zet de tags gewoon op een stack, en onderwijl genereer ik html waarbij ik alleen af en toe naar de stack hoef te kijken om te zien of ik alweer een openende en een sluitende tag hoef te schrijven.
Maar ik zit met een probleem in bijvoorbeeld onderstaande string:
dit is een {b} tekst dit {b} is een {/b} tekst
Ik wil dat hij dit resultaat genereert in html:
dit is een <b> tekst dit {b} is een </b> tekst
Maar hoe weet ik bij de tweede {b} al op het moment dat ik html genereer dat hij geen bijbehorende sluitende tag heeft? Niet dus..
Ik heb het idee alsof ik met een probleem bezig ben wat door heel veel mensen al lang op een heel handige manier is opgelost. Weet iemand misschien wat (grofweg) de handigste manier is om dit aan te pakken?
Of heeft iemand een link?
Alvast bedankt.