Question

Je suis en train de construire un site web qui exige de très de base de balisage des capacités.Je ne peux pas utiliser un 3ème partie plugins, j'ai donc juste besoin d'un moyen simple de convertir le balisage HTML.Je pourrais avoir un total de 3 balises que je vais le permettent.

Quelle est la meilleure façon de convertir ==Heading== pour <h2>Heading</h2>, ou --bold-- pour <b>bold</b>?Cela peut être fait simplement avec la Regex, ou est-ce que qqn est une fonction simple?

J'écris ceci en C#, mais des exemples dans d'autres langues serait probablement travailler.

Suivi:C'est une petite partie de mon site web que j'ai aimé la simplicité de l'utilisation d'une simple Regex remplacer.J'ai fait ce travail en C# avec le code suivant:

string html = Regex.Replace("==This will be inside h2==", "==([^=]*)==", "< h2>$1< /h2>")

.NET utilise $1 la notation au lieu de la \1 notation, qui est utilisée dans d'autres langues.

Était-ce utile?

La solution

Ce n'est pas vraiment un problème simple, parce que si vous allez pour afficher des choses à l'utilisateur, vous devez également nettoyer l'entrée pour vous assurer de ne pas créer de cross site scripting vulnérabilités.

Cela dit, vous pourriez probablement faire quelque chose d'assez simple que vous le décrire plus facilement avec une expression régulière de remplacement.

Par exemple

replace the pattern ==([^=]*)== with <h2>\1</h2>

Autres conseils

Il y a aussi un module perl et un projet php pour ce faire.Le code source pour l'une ou l'autre pourrait être utile dans le développement de votre propre solution.

J'ai utiliser Markdown (même léger, langage de balisage utilisé sur ce site).Pour C# il y a un très bon morceau de code source disponible ici.Il prend entièrement en charge le format Markdown, bien que cela ne semble pas être maintenue.Mais pour le moment, ça fonctionne vraiment bien et c'est gratuit open source.

La meilleure partie est tout le travail est fait pour vous si vous incluez cette source de votre projet.Il est très petit;fondamentalement, un seul appel de méthode pour transformer un morceau de texte en HTML.

Cela dépend vraiment de la syntaxe Wiki, vous êtes en utilisant, comme il y a plusieurs différents.Évidemment, le logiciel wiki dispose de cette fonctionnalité, quelque part;si vous ne pouvez pas trouver un logiciel qui fait cela pour vous, vous pouvez commencer à la recherche pour le code correspondant dans votre logiciel wiki.

Peut-être cette est ce que vous avez besoin.

Cette page est une compilation de liens, des descriptions et des rapports sur l'état des différentes alternatives de MediaWiki analyseurs — qui est, de programmes et de projets, autres que MediaWiki lui-même, qui sont en mesure ou destiné à traduire son niveau de balisage de texte syntaxe en quelque chose d'autre.

Probablement excessif pour votre 3 balises, mais si il explose en un véritable langage de balisage, et les regexp sont en train de regarder effrayant, alors vous pourriez envisager de antlr

Comme Joseph avait dit Markdown est la meilleure solution pour résoudre le texte html de problème.

MarkdownSharp est léger, facile à utiliser et bien testé comme c'est le stackoverflow mise en œuvre!

new Markdown().Transform("**markdown text**");

http://blog.stackoverflow.com/2009/12/introducing-markdownsharp/

Plus sur la syntaxe Markdown - http://en.wikipedia.org/wiki/Markdown

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top