안녕하세요! 제 Discourse 2.5.0.beta1 설치 환경에서 영어 이외의 언어로 검색을 수행할 경우 검색 결과에서 검색된 키워드가 하이라이트되지 않습니다.
이것이 버그인지 기능인지 궁금합니다.
감사합니다
여기서 @sam은 무엇을 기대하나요?
완전한 단어만 강조합니다. 이는 부분 단어처럼 보입니다.
@vinothkannans 아래 코드를 잠깐 확인해 주시겠어요:
@smith 여기서 정확한 그리스어 단어를 게시물로 남겨 주시겠어요? (이것은 그리스어인 것 같습니다) 우리의 하이라이팅 JavaScript 라이브러리에 버그가 있을 수 있습니다.
이것은 키릴 문자이며, 그리스 문자에 기반하고 있습니다. 여기 예시가 있습니다:
성령과 우리도 너희에게 이 필요한 것 외에는 아무 부담도 지우지 아니하노라:
즉, 우상에게 바친 것과 피와 목이 졸린 것과 음행을 금하고, 또 남에게 원하지 않는 것을 너희도 하지 말라. 이것을 지키면 잘하리라. 평안하라.
문제는 jQuery Highlight 플러그인에 있습니다. 이 플러그인은 단어 하이라이팅을 위해 \b 정규 표현식을 사용하는데, 이는 유니코드 문자에서 지원되지 않습니다.
https://medium.com/@shiba1014/regex-word-boundaries-with-unicode-207794f6e7ed
(?<=[\s,.:;"']|^)UNICODE_WORD(?=[\s,.:;"']|$)
이것이 가능한 해결책처럼 보입니다 ![]()
gerhard 님이 이 유니코드 사용자 이름 관련 문제를 처리하신 것 같습니다(적어도 희미하게 기억은 나네요).
여기서 수정이 이루어진 것을 보니 정말 기쁩니다. 다만, 텍스트가 길거나 특히 불리한 경우에서 우리가 선택하는 정규 표현식이 병적으로 나쁜 성능을 보이지 않도록 매우 주의해야 합니다. 또한 중국어에서는 단어 경계 자체가 중요하지 않다고 생각합니다.
수정 사항을 담은 새로운 PR을 생성했습니다


