Ce que je suis:Comment implémenter un tel moteur de template?
Je suis une représentation textuelle que mon programme convertit en un format beaucoup plus lisible, especcially pour les forums, les sites Web et ainsi de suite.
Pourquoi ai-je besoin d'un tel moteur templage
Comme il y a beaucoup de différents forums et blogs, la syntaxe de chacun peut être différent. Au lieu de coder en dur la syntaxe différente, je voudrais générer une classe pour chacune de ces syntaxes (préférablement extensible avec des fichiers xml faciles à modifier) pour formater ma sortie avec la syntaxe désirée.
Ce que je n'imaginais
Par exemple, je besoin de quelque chose comme
class xyz {
private string start_bold = "[B]";
private string end_bold = "[/B]";
public string bold(string s) {
return start_bold + s + end_bold;
}
}
Comment puis-je faire la façon la plus élégante? N'hésitez pas à modifier cette question car je ne suis pas entièrement certain que ce soit un moteur de template dont j'ai besoin. Juste ne pas avoir un meilleur mot pour ça maintenant.
Merci pour toute aide.
Quelques informations supplémentaires: Andrew's réponse était un soupçon, mais je ne comprends pas comment je pourrais plusieurs styles différents avec cette méthode. À l'heure actuelle, je le fais à la dure:
string s = String.Format("Output of [B]{0}[b] with number [i]{1}[/i]",
Data.Type,
Data.Number);
Pour cet exemple, je veux que la sortie soit conçu pour un forum. À l'avenir, je voudrais le faire comme ceci:
Layout l = new Layout("html");
string s = String.Format("Output of {0} with number {1},
l.bold(Data.Type),
l.italic(Data.Number);
//desired output if style "html" is chosen: "Output of <b>Name</b> with number <i>5</i>" //desired output if style "phpbb" is chosen: "Output of [b]Name[/b] with number [i]5[/i]"
Je ne sais pas comment cela peut se faire de la manière la plus élégante. À propos du code XML: seules les conventions de style doivent être dérivées d'un document xml, c'est-à-dire l'ajout de styles personnalisés sans utiliser de code.
pouvez-vous nous donner un exemple de données entrantes, et la sortie qui en résulte? Juste quelques lignes? Je ne te vois toujours pas de problème, désolé. . . Voudrais vraiment aider – andrewWinn
cherchez-vous à trouver une position dans une chaîne et le rendre en gras? par exemple? Y a-t-il une sorte de consistance dans les données? qu'entendez-vous par "représentation textuelle"? Je pense que je commence à saisir vos problèmes. . désolé d'être si dense, c'est vendredi et 2 heures pour aller au week-end;) – andrewWinn
C'est simplement quelques chaînes que je voudrais mettre en forme facilement avec plusieurs syntaxe différente. Selon le style que je choisis, je veux retourner une chaîne avec des balises "[b]" au lieu de "" ou "'' '". –
Sven