Привет! В моей установке Discourse 2.5.0.beta1 не подсвечиваются найденные ключевые слова в результатах поиска, если поиск выполнен не на английском языке. Это баг или фича?)
Спасибо
Что здесь ожидается, @sam?
Мы выделяем только полные слова. Это похоже на неполное слово.
@vinothkannans, можешь быстро посмотреть:
@smith, можешь создать здесь пост с точным греческим словом? (Кажется, это греческий). Возможно, это ошибка в нашей библиотеке JavaScript для подсветки.
This is Cyrillic, based on Greek tho, here is some example:
Ибо угодно Святому Духу и нам не возлагать на вас никакого бремени более, кроме сего необходимого:
воздерживаться от идоложертвенного и крови, и удавленины, и блуда, и не делать другим того, чего себе не хотите. Соблюдая сие, хорошо сделаете. Будьте здравы.
Проблема заключается в плагине jQuery Highlight. Для подсветки слов он использует регулярное выражение с границей слова \b, которое не поддерживает Unicode-символы.
https://medium.com/@shiba1014/regex-word-boundaries-with-unicode-207794f6e7ed
(?<=[\s,.:;"']|^)UNICODE_WORD(?=[\s,.:;"']|$)
Похоже, это возможное решение ![]()
Кажется, @gerhard уже решал эту проблему с юникодными именами пользователей (по крайней мере, я смутно помню).
Очень рад видеть здесь исправление, но нам нужно быть предельно осторожными: выбранное регулярное выражение не должно иметь патологически низкой производительности в некоторых случаях, особенно когда текст длинный или содержит специфические символы. Кроме того, в китайском языке, кажется, нам вообще не важны границы слов?
Создан новый PR с исправлением


