Какой язык разметки хранить в БД?

Связано: Как сохранить облегченное форматирование (Textile, Markdown) в базе данных ?

Я хочу сохранить форматирование комментариев на каком-то языке разметки в нашей БД. Однако мы хотим разрешить использование нескольких языков форматирования (уценка, текстиль, реструктурированный текст). Похоже, мы должны сохранить расширенный набор их функций, чтобы мы могли конвертировать между ними.

  • Это сработает?
  • Есть такой суперсет?
  • Есть ли библиотеки для переключения между ними?
  • Есть ли более структурированный формат, в котором мы должны хранить комментарии в БД?

(Python / Google App Engine, если это необходимо)


person Paul Biggar    schedule 27.12.2009    source источник


Ответы (1)


Вы думали о чем-то более простом: хранить комментарии в их исходной форме вместе с дополнительным столбцом, в котором указывается, в каком формате они хранятся (уценка, текстиль и т. Д.)?

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

person Mark Byers    schedule 27.12.2009
comment
Я думал об этом. Причина, по которой я пошел против этого, заключалась в том, что я хочу иметь возможность переключаться между ними на лету. Но это отдельная проблема, и, вероятно, там можно найти решение с потерями. Думаю, вы, наверное, правы. - person Paul Biggar; 27.12.2009
comment
@Paul: Марк дал вам хороший ответ, однако, если вы все еще хотите иметь возможность конвертировать между форматами, попробуйте HTML ex. Уценка- ›HTML-› Текстиль- ›HTML-› restructuredText - person Niteriter; 28.12.2009
comment
Под надмножеством я не имел в виду язык, поддерживающий весь синтаксис. Я имел в виду что-то вроде HTML (может быть, только b, i, a, цитата). Я бы преобразовал reST / markdown / etc в HTML. Я склоняюсь к этому, так как это будет означать наличие некоего канонического формата, через который могут проходить все преобразования, вместо того, чтобы писать / находить библиотеки преобразования для каждой пары форматов. - person Paul Biggar; 28.12.2009
comment
Я согласен с тем, что было бы неплохо использовать HTML при преобразовании между любыми двумя разметками. Я не думаю, что это обязательно означает, что HTML должен храниться в базе данных. Если пользователь отправляет комментарий, а затем сразу же после этого пытается его отредактировать, он может быть разочарован, увидев, что его тщательно отформатированная уценка была преобразована во что-то менее читаемое с помощью автоматического преобразования. - person Mark Byers; 28.12.2009
comment
Хм. Хранить оба? Я не особо беспокоюсь об эффективности использования пространства. Сейчас важнее простота программирования и чистый дизайн. - person Paul Biggar; 28.12.2009
comment
Я бы, вероятно, сохранил его в исходном формате последнего редактирования в разметке, использованной для редактирования, плюс HTML, чтобы его можно было быстро отобразить. Если кто-то захочет отредактировать его в разметке, отличной от той, в которой он был изначально написан, я бы, вероятно, просто конвертировал на лету, поскольку это было бы относительно редким событием. С другой стороны, вы можете сохранить его во всех разметках одновременно, если множество разных пользователей редактируют один и тот же текст на разных языках разметки, но потери при преобразованиях могут раздражать некоторых людей. - person Mark Byers; 28.12.2009