Open volas opened 2 years ago
Проход нужно сделать не тяжелым, с наименьшим дерганьем строк.
я думаю метчить открывающий-закрывающий не обязательно. просто реплейсить как сейчас. если в хтмле закрывающего тега нет, браузер сам его допишет по идее, всякие из этого исходящие проблемы на совести юзера.
из личных фантазий, было бы круто переделать бумажку на ТГУИ с визивиг редактором.
- (WiP) Сам проход будет выглядеть примерно как-то так, пишу уставший по памяти рефов
Можно на сами эти рефы посмотреть?
9. (WiP) Сам проход будет выглядеть примерно как-то так, пишу уставший по памяти рефов
Можно на сами эти рефы посмотреть?
@volas
https://www.byond.com/docs/ref/info.html
букварь у гусева проси, если нужен
Я посидел, подумал, оно разве будет проверять весь текст, а не только вводимый в данный момент? Тип, на сколько я понимаю, для того чтобы с самого начала просматривать, у нас есть last_parsed_pos установленная в 0, но если вводить теги не за один раз, а за несколько, то лимит в теории, не срабатывает тк то что уже введено, заменено на html код, а то, что вводится не превышает его лимит?
К этому же по сути, относится и создание временного списка с лимитами, в котором бы можно было бы производить инкремент ключей и при совпадении значения из временного списка и глобального, заменять на пустоту, но опять же, временный список опустошается к моменту ещё одного вызова, на сколько я понимаю, из-за чего абуз не исчезнет, но будет требовать вводить количество тегов, одобренное лимитом, после чего, снова вводить их через оставшийся [write].
Спрашивал Людука, он предложил просто хранить лимит в самой бумажке, в каждой отдельно.
Не уверен зачем это было писать сюда, если да, решение очевидно - сохранять количество пропаршенных тегов ("лимит") в бумажке... ну или короче в любом другом носителе текста (кажется только у педальных анонсов ещё такой механ?)
Мб я что-то упустил просто и описанный в таске пример не имеет этой проблемы, хз.
Там всё очень плохо, предлагаю подобный вариант для рефакторинга
proc/parsebbcode()
(есть идеи как сделать это без многоуровневых списков?)
(можно сделать лимиты частью общего списка пенкодов выше)
parsebbcode()
(в основном на бумаге) нужно будет перенести в качестве TRUE/FALSE флагов вparsebbcode
, типо (черновой вариант)todo: списки нужно сделать по другому, как-то без дополнительных инициализаций и создания временных списков при каждом запуске прока...
UPD: пофигу, я поплыл :weary: запощу как есть, потом вернусь со свежей головой. Проход нужно сделать не тяжелым, с наименьшим дерганьем строк. Возможно потом еще стоит на всякий замерить профайлером текущий parsebbcode с 20+ replacetext vs новый с кучей небольших конкатенаций.