2008-09-05 24 views
11

Estoy construyendo un sitio web que requiere capacidades de marcado muy básicas. No puedo usar complementos de terceros, así 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 forma más fácil de convertir el marcado de Wiki a HTML?

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

Escribo esto en C#, pero probablemente funcionen ejemplos de otros idiomas.

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

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

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

+0

http://blog.codinghorror.com/parsing-html-the-cthulhu-way/ – QuentinUK

Respuesta

4

No es realmente un problema simple, porque si va a mostrar las cosas al usuario, tendrá que desinfectar la entrada para asegurarse de no crear ninguna vulnerabilidad cross site scripting.

Dicho esto, probablemente puedas hacer algo muy simple como lo describes más fácilmente con un reemplazo de expresión regular.

Por ejemplo

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

uso de rebajas (el mismo lenguaje de marcado ligero usado en este sitio). Para C# hay un muy buen código fuente disponible here. Es totalmente compatible con Markdown, aunque no parece mantenerse. Pero por el momento funciona muy bien y es de código abierto gratuito.

La mejor parte es que todo el trabajo está hecho para usted si incluye esta fuente con su proyecto. Es muy pequeño; básicamente una llamada a un solo método para transformar un trozo de texto en HTML.

+0

una pitón equivalente también existe: http://www.freewisdom.org/projects/python-markdown/ – SingleNegationElimination

+0

2010 -12-03: el proyecto markdown donet se ha movido a http://code.google.com/p/markdownsharp/ – k3b

1

Esto realmente depende de la sintaxis de Wiki que esté utilizando, 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, podría comenzar a buscar el código relevante en su software wiki.

0

algo excesivo para sus 3 etiquetas, pero si lo hace saltar en un lenguaje de marcado de pleno derecho, y los de expresiones regulares están empezando a dar miedo, entonces es posible que desee considerar antlr

6

También hay un perl module y a php project para hacer esto. El código fuente de cualquiera de ellos podría ser útil para desarrollar su propia solución.

0

Tal this es lo que necesita.

Esta página es una recopilación de enlaces, descripciones e informes de estado de los diversos programas de análisis de MediaWiki alternativa - es decir, programas y proyectos, que no sea en sí MediaWiki, que son capaces o con la intención de traducir la sintaxis de marcado de texto de MediaWiki en algo más.

Cuestiones relacionadas