Java: какой язык разметки использовать для пользовательских комментариев

#java #parsing #jakarta-ee #markdown #markup

#java #синтаксический анализ #джакарта-ee #markdown #разметка

Вопрос:

Какой язык разметки вы используете для пользовательских комментариев и другого пользовательского контента при создании веб-приложений для Java EE? Т.е. если бы вы кодировали SO на Java, что бы вы использовали для анализа вопросов.

Я уже нашел несколько языков разметки (Markdown, Textile, BBCode, Creole …), и некоторые из них, похоже, имеют реализацию на Java, но я не нашел общепринятого основного (для Java). Большинство связанных проектов, похоже, не очень активны. Например, на форумах MarkdownJ я прочитал «Я согласен с вами по поводу создания новой реализации, не основанной на регулярных выражениях, и, как таковой, есть новый билет […]», и пользователи сообщают о странных исключениях.

Я не могу поверить, что нет стандартного решения. Существует ли какой-либо язык разметки, который вы обычно используете для проектов Java? Может ли кто-нибудь назвать большой веб-сайт, использующий Java и (желательно с открытым исходным кодом) компилятор для языка разметки, такого как Markdown? Является ли использование простого старого HTML с некоторой проверкой способом по умолчанию?

Комментарии:

1. Разнообразие — это хорошо. Вы бы не хотели, чтобы ваши пользователи зависали на одном (вполне возможно, неподходящем или дрянном) языке разметки только из-за языка, который вы выбрали для использования на сервере.

Ответ №1:

Я играл с Mylyn WikiText, как и с другими, но это специфический формат. ИМО, это не имеет большого значения, особенно потому, что для JVM доступен конвертер практически для любого синтаксиса, даже если вы в конечном итоге переключаете языки.

Отфильтрованный HTML-это хорошо, но писать на нем довольно сложно.

Честно говоря, я бы просто выбрал один или подправил его — в итоге я использовал комбинацию в основном markdown, но с встраиваемыми макросами, такими как XWiki / Confluence и т.д., Первоначально извлеченными из синтаксического анализа XWiki, но модифицированными. В моей голове я все еще работаю над этим; на самом деле… не так много.

Комментарии:

1. Хорошо, спасибо. Я думал об использовании JNI для подключения библиотеки Markdown C (например github.com/bxt/sundownJni ), но я думаю, что это будет созданный в WYSIWYG, а затем отфильтрованный HTML, я мог бы использовать OWASP.

2. @amoebe Зачем использовать библиотеку C Markdown, когда есть MarkdownJ ? Возможно, дополнительные усилия того не стоят.

3. Дополнительные усилия? Материал на C должен быть быстрее и хорошо протестирован. (Хотя я бы не доверял частям JNI. ) MarkdownJ, однако, является портом оригинальной дерьмовой реализации на основе регулярных выражений и не имеет документов API.

4. Да, дополнительные усилия: «части JNI». Взаимодействие с двоичным файлом. Сколько документов по API вам нужно? Все было довольно просто, когда я написал тип результата Struts 2 с его помощью. IMO Markdown в любом случае оказывается недостаточно мощным; частично в этом суть, но именно поэтому большинство людей обращаются в другое место.