LINUX.ORG.RU

[бебекод] А почему в бордах хранят сообщения не прямо в html?


0

2

Насколько я знаю по vBulletin и ipb, борды хранят сообщения в базе в виде ббкода. Решение спорное, та как для быстрой отдачи требует кеша. Мне видится более правильным такой вариант - простые теги парсить в html напрямую, а сложные парсить в div, но при этом сохранять метаданные в data-*, чтобы не потерять исходный синтаксис.

Из профитов - очень шустрая отдача. Лишнее из data можно почикать простыми регулярками. Еще можно часть парсинга на клиенте «доводить». Например, менять ссылки на ютюб на подходящий видеоплеер, определяя возможности клиента по месту.

Дискас. Какие могут быть проблемы? Список валидных тегов и их параметров лимитировать вроде не сложно. Если знаете - приведите примеры форумов или чего-то похожего, которые имеют богатую разметку, но при этом хранят данные сразу в html.

★★★★★

Ответ на: комментарий от Vit

>Речь о новых версиях

Ну, 3.x не видел, а в 2.x ещё HTML был.

На вменяемых движках хранится исходный текст юзера + HTML-кеш для вывода.

Ну да, мозгов-то лучше сделать не хватило


Это трансляция на лету-то лучше? :D Что-то мне кажется, у того, кто так считает, тоже мозгов не очень хватает :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

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

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

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

Как бы, да. Я у себя традиционно использую хранение исходного текста, введённого пользователем и кеш его трансляции в HTML. Бонусы такого подхода я осветил. В ответ получил только косвенное обвинение в отсутствии мозгов для «лучшего варианта».

Тебе интересно обсуждение формата или взаимные наезды? Обрати внимание, на личности вместо конструктива переход начался с твоей стороны.

KRoN73 ★★★★★
()

>А почему в бордах хранят сообщения не прямо в html?
Потому что какой-нибудь умнег возьмет и вставит iframe, а внутри - on.nimp.org или другой зловред...

TTRJN
()
Ответ на: комментарий от TTRJN

Читайте тред, сэр. Не было и речи о том, чтобы просовывать в базу нефильтрованный html, беря его прямо у пользователя. Топикстартер вообще хочен конвертировать ббкод в html.

legolegs ★★★★★
()
Ответ на: комментарий от KRoN73

> Я у себя традиционно использую хранение исходного текста, введённого пользователем и кеш его трансляции в HTML. Бонусы такого подхода я осветил. В ответ получил только косвенное обвинение в отсутствии мозгов для «лучшего варианта».

Дружище, мне глубоко пофик, что ты используешь у себя. Более того, из первого поста путем взятия интеграла и возведения в куб можно догадаться, что я знаю про кеширование. А если не впадлу прочитать тред, то станет понятно, что я про него не просто знаю, а знаю хорошо. И речь идет о новом формате хранения разметки, а не о том, что ты накодил на похапе для своего сайта.

Тебе интересно обсуждение формата или взаимные наезды?


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

Обрати внимание, на личности вместо конструктива переход начался с твоей стороны.


Очинь смишно, да. Наверное конструктив был про TinyMCE, а я его не смог оценить. Какая жалость.

Vit ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

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

этот 1% покрывает опциональная возможность эмбеддить готовый html/xml/etc

lazyklimm ★★★★★
()
Ответ на: комментарий от KRoN73

ах, да, стандартный bb-код отличается идеологически неверной разметкой, вместо emphasis - [i], вместо strong emphasis - [b] итп.

lazyklimm ★★★★★
()
Ответ на: комментарий от Vit

>отдельный кэш удваивает размер базы.

Ну и что? Это же текст, у тебя там сто тыщ миллиардов сообщений чтоли?

У меня в одной старой cms-ке (лет 10 назад ее написал), так и сделано (вот кстати сайт на ней - http://stost.ru/).
Это конечно не форум, но смысл тот же. Генерятся статичные html странички из базы. И все ок.
А если ты не будешь хранить сами сообщения в базе - то что ты будешь делать если захочется поменять дизайн? Выдирать regexp'ами данные из статики?

pi11 ★★★★★
()
Ответ на: комментарий от pi11

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

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Да и ты не ответил, на вопрос - «что ты будешь делать если захочется поменять дизайн»?

Единственная идея не хранить в базе копию ради экономии места?

pi11 ★★★★★
()
Ответ на: комментарий от lazyklimm

>отличается идеологически неверной разметкой, вместо emphasis - [i]

Что в этом неверного? Что тебе мешает транслировать [i] в <emphasis>? (при чём так обычно и делается). Зато при вводе текста много меньше ненужной писанины.

KRoN73 ★★★★★
()
Ответ на: комментарий от pi11

>Единственная идея не хранить в базе копию ради экономии места?

При чём, что интересно, чтобы эта экономия достигла хотя бы сотни гигабайт (что всё равно смешно на современных дисках), нужны десятки миллионов сообщений. А такие объёмы, если нагрузка невысокая, будут создаваться многие десятки лет, а если нагрузка высокая, то раньше вылезет вопрос CPU из-за «парсинга регулярками» :)

Тут в любом случае нужно переходить на распределённую систему и/или статическое кеширование HTML в файлах, сразу отдаваемых http-сервером.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

дело не в ненужной писанине, emphasis в том же маркдауне это *текст* (кстати, в русской раскладке набирается проще [i]), дело в том, что emphasis - логическая разметка, а italic - нет

lazyklimm ★★★★★
()

Тред прочитал по диагонали, наводка автору: что произойдёт, когда пользователь попытается отредактировать сообщение?

Deleted
()
Ответ на: комментарий от lazyklimm

>дело не в ненужной писанине, emphasis в том же маркдауне это *текст*

Что, кстати, нарушение веками сложившихся норм по типографике. Ибо *текст* в ней традиционно — это сильное выделение, <strong> в терминологии HTML. А _простое_выделение_в_типографике_такое_.

дело в том, что emphasis - логическая разметка, а italic - нет


А кто сказал, что [i] == italic? :) Может, это emphas[I]s. Назвать хоть грошком можно. Важно, какой смысл ты вложишь. 99% пользователей эти понятия вообще не различают, 1% легко запомнит, что [i] — это именно выделение, а не италик, а как ты оттранслируешь BB-код в HTML — это уже от тебя и твоего настроения только зависит.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>А _простое_выделение_в_типографике_такое_.

Во времена интернета подчёркивание как типографский приём обязано умереть.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

>Во времена интернета подчёркивание как типографский приём обязано умереть.

Стандарт — есть стандарт. Не вижу смысла для его отмирания.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>А кто сказал, что [i] == italic? :) Может, это emphas[I]s.

а [B] - не bold, а вовсе даже N[B], например, аха.

99% пользователей эти понятия вообще не различают

и это плохо

1% легко запомнит, что [i] — это именно выделение

не, они запомнят, что это наклонный текст. Ворд головного мозга

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

>не, они запомнят, что это наклонный текст. Ворд головного мозга

Это упомянутые выше 99%

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Да это понятно, экономить место для текствых данных в данном случае врядли имеет смысл.

pi11 ★★★★★
()

Ещё раз подумал. Вся эта идея мне кажется вредной и излишней (в рамках принципа бритвы Оккама). Сейчас объясню почему. Во-первых, совершенно лишний процессинг данных при каждой выдаче. Если делать кеширование,то это ничем не будет отличаться от уже имеющегося и распространённого варианта с хранением исходного поста и его обработанной копии. Во-вторых, эта схема ничего нового не даёт.

Wizard_ ★★★★★
()

А ещё топикстартер как-то излишне нервно реагирует в местах, где ему про ненужность его теории объясняют.

Wizard_ ★★★★★
()

Ajax

а если при сохранении генерировать статические json файлы с сообщениями, а потом подгружать?

PaulAS
()
Ответ на: Ajax от PaulAS

А как-же юзеры без js, роботы и rss?

legolegs ★★★★★
()
Ответ на: Ajax от PaulAS

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

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

>Где конкретно излишний процессинг данных при каждой выдаче?

Тут:

Лишнее из data можно почикать простыми регулярками.

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

Wizard_ ★★★★★
()
Ответ на: комментарий от Wizard_

А полностью цитируемый пост слабо прочитать? Те регулярки - тривиальные и быстрые операции, не влияющие на скорость.

Vit ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

А мне стало интересно, что за стандарт такой, и я даже не поленился залезть на википедию. Однако увидел эпичный фейл википидоров и с выделением и с кавычками чуть ниже. Алсо ’i′ is not for emphasize. Emphasize это выделение одного текста из другого вообще. На той же википедии статья про bold ведёт на emphasize. Хотя верить ли им после этого…

Deleted
()
Ответ на: комментарий от Deleted

Тьфу, там должны быть вот эти ‘’.

Deleted
()
Ответ на: комментарий от Deleted

>А мне стало интересно, что за стандарт такой

Нужно искать советскую ещё литературу по допечатной подготовке. Раньше документы с таким форматированием сплошь и рядом встречались.

Это в смысле про выделение и сильное выделение в простом тексте. А уж как там сегодня bold и emphasis трактуют — это другой вопрос. Раньше просто были курсив и полужирный шрифт. Соответственно, лёгкое и сильное выделение.

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.