Приоритет/Серьезность:
Средний
Платформа
ОС
Браузер
Windows 11
Google Chrome 112.0.5615.138
Ubuntu 22.04
Google Chrome 112.0.5615.49
macOS Ventura
Google Chrome 112.0.5615.137
(все настольные системы)
Описание:
При следующих условиях теги url BBCode отображаются в сообщениях некорректно:
Текст, заключенный в теги, заканчивается URL-адресом
Этот URL-адрес содержит компонент после компонента хоста (т. е. путь , запрос и/или фрагмент )
Шаги для воспроизведения:
Создайте сообщение, содержащее следующую разметку:
[url]http://example.com/[/url]
Разметка отображается не так, как ожидалось:
Ожидаемое поведение:
Разметка должна отображаться следующим образом:
Дополнительная информация
Мне удалось воспроизвести ошибку на try.discourse.org в «безопасном режиме ».
Дополнительные примеры некорректной обработки текста, заканчивающегося URL-адресом с путем:
Разметка:
[url]http://example.com/foo[/url]
[url]http://example.com/foo/[/url]
[url=http://example.com/]http://example.com/[/url]
[url=http://example.com/]foo http://example.com/[/url]
Отображение:
Первоначально сообщено по адресу: Old url markup not migrated to new forum - Website and Forum - Arduino Forum
У нас есть множество сообщений, которые были написаны в то время, когда эта разметка отображалась корректно (до миграции с фреймворка SMF на Discourse).
3 лайка
sam
(Sam Saffron)
21.Апрель.2023 06:38:21
2
Я подтвердил, что это основная ошибка, которую мы надеемся исправить в ближайшие несколько недель.
Конкретно:
[url]http://example.com[/url] работает, однако: [url]http://example.com/example[/url] не работает, если не добавить пробел в конце [url]http://example.com/example [/url].
Я начал анализировать код, и похоже, что наш парсер где-то спотыкается, возможно, из-за правила экранирования. Мы разберёмся с этим, спасибо, что подняли эту тему.
5 лайков
david
(David Taylor)
21.Апрель.2023 18:54:48
7
Я не очень хорошо знаком с этим кодом, но бегло просмотрел его. Думаю, это связано с системой автоматического создания ссылок. К моменту, когда парсер ищет закрывающий тег URL [/url], он уже включён в автоматическую ссылку.
Например, обратите внимание, что автоматическая ссылка здесь ведёт на http://example.com/foo%5B/url%5D:
http://example.com/foo
Именно поэтому добавление пробела помогает — оно предотвращает включение [/url] в автоматическую ссылку.
6 лайков
sam
(Sam Saffron)
24.Апрель.2023 04:45:44
9
Я исправил это согласно:
main ← fix_paths_bbcode
merged 01:28AM - 25 Apr 23 UTC
Due to the order we were parsing markdown, bbcode [url] elements were not
handle… d properly.
`[url]https://example.com/path[/url]` was not currectly parsing cause
linkify was detecting the url as: `https://example.com/path[/url]` which is
legit.
To resolve this I swapped url to use a replace rule, and instead re-parsed
the internal payload and injected the tokens in.
This fix is complex cause we support stuff like
`[url][b]test.com[/b][/url]`
So we need to parse the content inside url `[b]test.com[/b]`
Можете просмотреть и слить… это довольно сложное исправление, @per1234 , так как мы поддерживаем такие странные вещи, как
[url][b]www.site.com[/b][/url]
5 лайков
sam
(Sam Saffron)
25.Апрель.2023 20:29:29
13
Всё исправлено
[url]http://example.com/foo[/url]
[url]http://example.com/foo/[/url]
[url=http://example.com/]http://example.com/[/url]
[url=http://example.com/]foo http://example.com/[/url]
http://example.com/foo
http://example.com/foo/
http://example.com/
foo http://example.com/
@per1234 , вы уже должны быть развернуты с исправлением. Дайте знать, если всё выглядит хорошо!
Спасибо за сообщение!
1 лайк
Большое спасибо за заслуженно быстрое решение, sam !
3 лайка
sam
(Sam Saffron)
Закрыл(а) тему
30.Апрель.2023 22:00:03
15
Эта тема была автоматически закрыта через 5 дней. Новые ответы больше не принимаются.