Вопрос

Я хочу создать редактор и хранить форматированный текст в базе данных. Я хочу просто образец редактора выполнять такие функции, как редактор Stackoverflow:

_sfdfdgdfgfg_ : Для подчеркнутого текста

/sfdfdgdfgfg/ : Для Bolded Text

Я буду использовать функцию, чтобы заменить первую _ по <b> и на второй </b> (Ответ. /).

Итак, мой вопрос в том, как я могу сделать, чтобы обнаружить конец и последний _ а также / Если они вложены ??

Например :

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

Я буду использовать этот редактор в приложении Java.

Это было полезно?

Решение

Так что вы хотите, чтобы Java -версия отметка.

Вот что находит Google:

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

Другие советы

Это не сделает вас счастливым, но вы, вероятно, должны потратить время на то, чтобы научиться писать анализаторов (книга дракона хороша для этого). Дело в задачах анализатора состоит в том, что они легко, если вы знаете, как это сделать, и почти невозможно, если вы этого не сделаете. Я бы написал токенизатор, который может распознавать токены, как <start_underline, "_"> а также <end_underline, "_"> Для индикаторов формата, которые вы хотите использовать в своем редакторе, и один для всего остального. Результаты могут выглядеть так:

Текст: Hello _world_, /how are you?/

Жетоны: <text, "Hello ">,<start_underline, "_">,<text, "world">,<end_underline, "_">,<text, ", ">,<start_bold, "/">,<text, "how are you?">,<end_bold, "/">,

Начало и конец можно отслеживать довольно легко с логическими переменными, потому что не имеет смысла гнездовать их. Вот почему я уже сделал бы это отслеживание в токенизаторе.

После этого я напишу класс синтаксического анализатора, который берет эти токены и соответственно настраивает выход на текстовую модель.

Вы видите, что это на самом деле просто применение принципа divide and conquer. Анкет Задача How do I do everything I want with my text? разделен на 3 части:

  1. Согласно полезной структуре, о чем эта строка? (Ответ от токенизатора)
  2. Как мне справиться с конкретной текстовой частью x для всех возможных x? (Ответ от анализатора)
  3. Как мне представлять интерпретацию парсеров этой строки? (Ответ от JTextPane или Alike)

Как токенизатор, так и анализатор не должны быть дополнительными классами. Поскольку контекст не сложный, они могут быть просто методами в классе расширения типа Textarea, который вы предпочитаете.

Я думаю, что дать более подробный совет не полезен, следующим лучшим шагом будет реализация, которую вам, вероятно, лучше захотите сделать самостоятельно. Не стесняйтесь спрашивать, не можете ли вы найти хорошее решение одной конкретной части.

Вы можете увидеть источник страницы Stackoverflow.com и попытаться интегрировать ... Я думаю, это должно работать ...

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

Это пример, показывающий, как использовать Markdownj:

Во -первых, убедитесь, что Markdownj является как библиотека классов, вызванную в вашем приложении Java.

Во -вторых, используйте этот код, чтобы вызвать Markdownj:

MarkdownProcessor m = new MarkdownProcessor(); 

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

System.out.print("<html>"+html+"</html>");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top