Язык разметки Wiki с отличной поддержкой таблиц - PullRequest
7 голосов
/ 09 марта 2012

Я разрабатываю вики с Python / Django, частично для образовательных целей.До сих пор мне не хватает правильного языка разметки.Я попробовал довольно посмотреть, в том числе Creole и Markdown, которые работали хорошо, за исключением поддержки таблицы.Обычные языки разметки вики, кажется, поддерживают только элементарные таблицы, то есть одну строку на ячейку или нет сложных разметок внутри ячеек.Но пользователи моей вики хотят иметь возможность создавать таблицы с большим форматным текстом и списками внутри ячеек.У меня есть проблемы с поиском языка разметки, который действительно может это сделать.

Я смотрел на язык разметки MediaWiki, который, кажется, поддерживает все, но я думаю, что использование этого было бы излишним.Остальная разметка может быть довольно простой, с акцентом на удобочитаемость разметки (иногда я нахожу разметку MediaWiki несколько уродливой).Кроме того, должен быть модуль Python для перевода разметки в HTML, который я могу использовать в веб-приложении.Я все еще ищу один для разметки MediaWiki.

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

Кто-нибудь знает о языке разметки с расширенной поддержкой таблиц и реализации на Python, который я мог бы использовать?

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 09 марта 2012

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

1 голос
/ 11 марта 2012

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

Ключ является расширением для уже существующего языка разметки. Мне понравился Markdown, несмотря на отсутствие поддержки стола. Используя Python-Markdown, здесь - это все, что вам нужно знать для написания собственного расширения. Это не так сложно. Я взломал что-то вместе за полчаса, и это действительно работает до сих пор. Я хотел бы показать код здесь, но я пока не очень им горжусь;) По сути, вы анализируете блок разметки и вставляете элементы таблицы в DOM, как вам нравится.

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

...