Take: Homepage-Framework: Tags parsen?

Beitrag lesen

Moin,

ich baue (schon seit einiger Zeit, mehrere Anfänge/Ansätze habe ich wieder verworfen) an einer Art Framework um mir das erstellen von Webseiten zu erleichtern. Möglicherweise wirds später sogar ein kleines CMS, aber soweit bin ich noch lange nicht.
Zu meinem Problem:
Die Art und Weise wie das Framework funktionieren soll ist, dass ich in meinem HTML-Code bestimmte Tags einbauen kann (z.B. <framework:link page="testseite">Linktext</framework:link> für einen Link zur Seite "testseite". Geparst würde dann daraus <a href="?page=testseite">Linktext</a>.
Ich parse das, in dem ich den HTML-Code mit folgendem Regex aufteile:
(</?framework:\w+\s*(?:\w+\s*=\s*"[^"]*"\s*)*/?>)

Bzw. in PHP:

  
preg_split('#(\</?framework:\w+\s*(?:\w+\s*\=\s*"[^"]*"\s*)*/?>)#', $html, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);  

Die einzelnen Elemente kann ich dann nacheinander Abarbeiten. Ich loope über die Elemente und merke mir jeden öffnenden Tag. Kommt jetzt Text, wende ich die dem Tag zugeordnete Funktion (bzw. die Funktionen, die allen geöffneten Tags zugeordnet sind) auf diesen an. Kommt ein schließender Tag, kommt dieser wieder runter vom Stack der aktuell geöffneten Tags. Funktioniert erstmal auch ganz gut, jedenfalls bei so simplen Sachen wie Text verkleinern (z.B. <framework:lowercase>GROSSBUCHSTABEN</framework:lowercase> wird zu grossbuchstaben). Probleme treten allerdings bei komplexeren Sachen auf, wie z.B. Schleifen.
Meinetwegen habe ich einen Tag, der den enthaltenen Code n-mal hintereinander ausführt. Innerhalb dieses Codes kann natürlich der aktuelle Schleifendurchlauf ausgegeben werden, usw. Dabei fliege ich mit meinem Ansatz auf die Nase.

Ich hoffe mal mein Roman war verständlich :D

Denke ich komplett verquer, geht das alles viel einfacher? Oder ist der Ansatz mit den Tags kompletter Schwachsinn? Was sind eure Anregungen?

Danke schonmal!

Gruß,
Take