Каков самый простой способ конвертировать разметку Wiki в HTML?

Я создаю веб-сайт, который требует очень основных возможностей разметки. Я не могу использовать сторонние плагины, поэтому мне просто нужен простой способ конвертировать разметку в HTML. У меня может быть в общей сложности 3 тега, которые я позволю.

каков наилучший способ преобразования ==Heading== to <h2>Heading</h2> или --bold-- to <b>bold</b>? Можно ли это сделать просто с помощью Regex, или у кого-то есть простая функция?

Я пишу это в C#, но примеры из других языков, вероятно, работа.

последующие: Это такая небольшая часть моего сайта, что мне понравилась простота использования простого Regex replace. Я сделал эту работу на C# со следующим кодом:

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

.Net использует 1$ обозначения вместо 1 нотация, используемая на других языках.

7 ответов


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

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

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

также модуль perl и php project для этого. Исходный код для любого из них может быть полезен при разработке собственного решения.


Я использую Markdown (тот же легкий язык разметки, который используется на этом сайте). Для C# доступен очень хороший бит исходного кода здесь. Он полностью поддерживает Markdown, хотя он, похоже, не поддерживается. Но на данный момент он работает очень хорошо, и это бесплатный открытый исходный код.

лучшая часть-вся работа сделана для вас, если вы включаете этот источник в свой проект. Это очень мало; в основном один вызов метода для преобразования фрагмента текста в ФОРМАТ HTML.


Это действительно зависит от синтаксиса Wiki, который вы используете, поскольку есть несколько разных. Очевидно, что программное обеспечение wiki имеет эту функциональность где-то; если вы не можете найти программный пакет, который делает это для вас, вы можете начать искать соответствующий код в своем программном обеспечении wiki.


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


Как сказал Джозеф Markdown является лучшим решением для решения проблемы текста в html.

MarkdownSharp легкий, простой в использовании и хорошо протестирован, поскольку это реализация stackoverflow!

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

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

подробнее о синтаксисе Markdown -http://en.wikipedia.org/wiki/Markdown


может быть этой это то, что вам нужно.

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