Ok habe ich mir gedacht. Es wird ja wohl nicht so schwer sein folgenden Code zu parsen und die Templates entsprechend zu ersetzen:
1 2 3 4 5 6 7 8 9 10 11 |
Dies ist ein Test bla bla bla {{for group in Groups}} Die Bezeichnung der Gruppe ist: {{group.Title}} {{for subGroup in a.SubGroups}} Die Bezeichnung der Untergruppe ist: {{subGroup.Title}} und auch hier kann ich auf die Gruppe zugreifen: {{group.Title}} {{/for}} {{/for}} Und das Ende vom Lied ist das Ende vom Lied |
vue.js oder mustache verwendet eine ähnliche Syntax.
Ich könnte an dieser Stelle mustache für C# verwenden und er würde mir das Template ersetzen, allerdings benötige ich nicht nur das Ergebnis als String sondern ich möchte bei jedenm Iterationsaufruf eingreifen können.
Bisher habe ich mir folgende Tools angeschaut:
- Mustache (Stubble): GitHub – StubbleOrg/Stubble: Trimmed down {{mustache}} templates in .NET
- Antlr4: antlr4/index.md at master · antlr/antlr4 · GitHub
- RegEx (Möchte ich aus performance Gründen nicht nutzen)
- Sprache: GitHub – sprache/Sprache: A tiny, friendly, C# parser construction library
- Superpower (Erweiterung von Sprache mit besserer Fehlerausgabe) GitHub – datalust/superpower: A C# parser construction toolkit with high-quality error reporting
- Handlebars: GitHub – Handlebars-Net/Handlebars.Net: A real .NET Handlebars engine
Leider ist Sprache sehr schlecht dokumentiert und es fehlen Beispiele wie man das umsetzen könnte. Dennoch würde ich es gerne bevorzugen.
Login