Pregunta

Estoy creando un sitio web que requiere capacidades de marcado muy básicas.No puedo usar ningún complemento de terceros, por lo que solo necesito una forma sencilla de convertir el marcado a HTML.Es posible que tenga un total de 3 etiquetas que permitiré.

¿Cuál es la mejor manera de convertir? ==Heading== a <h2>Heading</h2>, o --bold-- a <b>bold</b>?¿Se puede hacer esto simplemente con Regex o alguien tiene una función simple?

Estoy escribiendo esto en C#, pero probablemente funcionarían ejemplos de otros lenguajes.

Hacer un seguimiento:Esta es una parte tan pequeña de mi sitio web que me gustó la simplicidad de usar un simple reemplazo de Regex.Hice que esto funcionara en C# con el siguiente código:

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

Usos de .NET $1 notación en lugar de la \1 notación que se utiliza en otros idiomas.

¿Fue útil?

Solución

En realidad, no es un problema simple, porque si vas a mostrar cosas al usuario, también necesitarás desinfectar la entrada para asegurarte de no crear ninguna. secuencias de comandos entre sitios vulnerabilidades.

Dicho esto, probablemente podrías hacer algo bastante simple como lo describe más fácilmente con un reemplazo de expresión regular.

Por ejemplo

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

Otros consejos

También hay una módulo perl y un proyecto php para hacer esto.El código fuente de cualquiera de ellos podría resultar útil para desarrollar su propia solución.

Utilizo Markdown (el mismo lenguaje de marcado ligero que se utiliza en este sitio).Para C# hay una muy buena cantidad de código fuente disponible aquí.Es totalmente compatible con Markdown, aunque no parece recibir mantenimiento.Pero por el momento funciona muy bien y es de código abierto y gratuito.

La mejor parte es que todo el trabajo estará hecho por usted si incluye esta fuente en su proyecto.Es muy pequeño;Básicamente, una llamada a un único método para transformar un fragmento de texto en HTML.

Esto realmente depende de la sintaxis Wiki que estés usando, ya que hay varias diferentes.Obviamente el software wiki tiene esta funcionalidad en alguna parte;Si no puede encontrar un paquete de software que haga esto por usted, puede comenzar a buscar el código relevante en su software wiki.

Tal vez este es lo que necesitas.

Esta página es una recopilación de enlaces, descripciones e informes de estado de los diversos analizadores alternativos de MediaWiki, es decir, programas y proyectos, distintos del propio MediaWiki, que pueden o pretenden traducir la sintaxis de marcado de texto de MediaWiki a otra cosa.

Probablemente sea excesivo para sus 3 etiquetas, pero si se convierte en un lenguaje de marcado completo y las expresiones regulares comienzan a dar miedo, entonces es posible que desee considerarlo. asta

Como dijo Joseph, Markdown es la mejor solución para resolver el problema de texto a html.

MarkdownSharp es liviano, fácil de usar y está bien probado, ya que es la implementación de stackoverflow.

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

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

Más sobre la sintaxis de Markdown: http://en.wikipedia.org/wiki/Markdown

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top