Pregunta

Quiero crear un editor y almacenar texto formateado en la base de datos. Quiero solo un editor de muestras hacer funciones como StackoverFlow Editor:

_sfdfdgdfgfg_ : para texto subrayado

/sfdfdgdfgfg/ : para texto en negrita

Usaré una función para reemplazar la primera _ por <b> y para el segundo </b> (Respec. Para /).

Entonces mi pregunta es cómo puedo hacer para detectar el final y el último _ y / si están anidados ??

Por ejemplo :

 /dsdfdfffddf _ dsdsdssd_/ ffdfddsgds /dfdfehgiuyhbf/  ....

Usaré este editor en la aplicación Java.

¿Fue útil?

Solución

Entonces, lo que quieres es una versión de Java de reducción.

Esto es lo que encuentra Google:

http://code.google.com/p/markdownj/

Otros consejos

No te hará feliz, pero probablemente deberías tomarte el tiempo para aprender a escribir analizadores (Dragon Book es bueno para eso). Lo que pasa con las tareas de analizador es que son fáciles si sabes cómo hacerlo y casi imposible si no lo haces. Escribiría un tokenizador que pueda reconocer tokens como <start_underline, "_"> y <end_underline, "_"> Para los indicadores de formato que desea usar en su editor y uno para todo lo demás. Los resultados podrían verse así:

Texto: Hello _world_, /how are you?/

Tokens: <text, "Hello ">,<start_underline, "_">,<text, "world">,<end_underline, "_">,<text, ", ">,<start_bold, "/">,<text, "how are you?">,<end_bold, "/">,

El inicio y el final se pueden rastrear bastante fácilmente con variables booleanas, porque no tiene sentido anidarlas. Es por eso que ya haría ese seguimiento en el tokenizer.

Después de eso, escribiría una clase de analizador que tome estas fichas y configure la salida en un TextARea en consecuencia.

Ya ves, que esto es en realidad solo una aplicación del principio divide and conquer. La tarea de How do I do everything I want with my text? se divide en 3 partes:

  1. Según una estructura útil, ¿de qué se trata esta cadena? (Respuesta de Tokenizer)
  2. ¿Cómo manejo la parte de texto específica? x para todos posibles x? (Respuesta del analizador)
  3. ¿Cómo represento la interpretación de los analizadores de esta cadena? (Respuesta de JTextPane o por igual)

Tanto Tokenizer como Parser no necesitan ser clases adicionales. Debido a que el contexto no es complicado, pueden ser solo métodos en una clase de extensión del tipo TextARea que prefiere.

Creo que dar consejos más detallados no es útil, el siguiente mejor paso sería una implementación que probablemente mejor haga usted mismo. Sin embargo, no dude en preguntar si no puede encontrar una buena solución a una parte específica.

Puede ver la fuente de la página Stackoverflow.com e intentar integrarse ... supongo que debería funcionar ...

http://blog.stackoverflow.com/2008/12/reverse-ingineering-the-wmd-editor/

Este es un ejemplo de muestra cómo usar markdownj:

Primero, asegúrese de que Markdownj sea como una biblioteca de clase invocada en su aplicación Java.

En segundo lugar, use este código para invocar Markdownj:

MarkdownProcessor m = new MarkdownProcessor(); 

String html = m.markdown("this is *a sample text*");

System.out.print("<html>"+html+"</html>");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top