Привет, Meta, мы вернулись. Давайте поговорим о Markdown-it и BBcode

Отказ от ответственности: Я знаю, что попытка вернуть BBCode в Discourse — это нетрадиционный шаг, но это одно из немногих препятствий на пути к полному переходу на Discourse. Я видел, как некоторые очень крупные сайты (хотя их не так много) используют кастомный BBCode в определённой степени. Любая помощь будет очень кстати.

Всем привет,

После годового перерыва в тестировании возобновились тесты массового импорта. Мы можем обработать 30 миллионов сообщений (включая личные сообщения), пользователей, аватары и прочее за несколько часов. Вложения всё ещё увеличивают время до недели, но идеального решения пока нет.

Одной из последних задач, над которыми мы работали в прошлый раз, был наш набор BBCode-тегов, доступный здесь: Tutorial - RpNation - BBcode Guide | RpNation (эта ссылка ведёт на наш рабочий сайт на XenForo, и все эти теги были созданы нами специально для нашего сообщества).

В основном нам удалось заставить их работать в Discourse здесь: GitHub - RpNation/discourse-rpn-bbcode · GitHub

Однако у нас возникли проблемы с встроенными BBCode-тегами внутри блочных:

[block][inline]text[/inline]
text
[/block]

Чтобы обойти эту проблему, у нас есть неуклюжая ветка Refactor/TextPostProcss, которая выполняет замену с помощью регулярных выражений после парсинга BBCode.

Я хотел бы узнать, есть ли у кого-то идеи, как улучшить то, что мы делаем в рамках возможностей Markdown-it и Discourse. Мы также рассматривали возможность использования в будущем совершенно нового парсера BBCode в качестве опции.

Для тех, кто заинтересован, вот пример того, что некоторые из наших пользователей создавали с помощью BBCode на XenForo: Resource - 𝚌𝚊𝚗𝚍𝚢 𝚜𝚔𝚒𝚎𝚜: 𝚝𝚑𝚎 𝚜𝚠𝚎𝚎𝚝 𝚏𝚊𝚌𝚝𝚘𝚛𝚢! | RpNation

После нашей новой ветки это в основном работает в Discourse, но мы пока не настроили демо-версию Discourse для BBCode (сначала мы сосредоточимся на массовом импортере и стилизации, а затем вернёмся к BBCode в целом).

Благодаря @Alteras, который возглавлял наш проект по BBCode в прошлом году, и @Ghan, который в основном руководит усилиями по массовому импортеру. Я же всего лишь стилизатор и владелец сайта.

Не скажу, что понял всё, что вы сказали, но, возможно, эта информация вас заинтересует?

К сожалению, нет, но у нас уже есть несколько зацепок!

Интересно, не упростит ли переход от bbcode к пользовательским HTML-элементам задачу. Реально ли это?

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

Есть ли у вас документация или примеры, на которые вы могли бы нас направить?