스마트 따옴표가 인용 템플릿을 깨뜨립니다

최소 두 개의 다른 Discourse 사이트에서 텍스트를 선택하고 “Quote” 버튼을 눌러 답변을 작성할 때, 한 곳에서 스마트 쿼테이션(smart quotes)이 사용되어 게시물의 표시가 깨지는 문제를 겪고 있습니다. 첫 번째 줄 끝(괄호 안)의 스마트 쿼테이션 때문에 올바르게 표시되지 않는 게시물의 예를 보여주는 스크린샷은 다음과 같습니다:

이 문제는 몇 달째 계속되고 있으며, 해당 게시물에서 무슨 일이 일어나고 있는지 방금 깨달았습니다.

Mac OS 15.4의 Safari 18.4와 Mac OS 15.3의 이전 버전 Safari에서도 약 50%의 확률로 재현할 수 있습니다.

제가 이 문제를 확인하는 제가 운영하는 사이트는 Discourse 3.4.2를 사용하고 있습니다. 방금 이 문제를 발견한 다른 사이트는 3.4.0.beta3-dev를 실행 중입니다.

제 사이트에서 다른 사용자들도 이 문제에 직면한 것으로 보이지만, 오늘 다시 확인해 보지는 않았습니다.

1개의 좋아요

물론 버그에 대한 진정한 수정이 이루어져야 하지만, 그 사이에 유용할 수 있으므로 임시 해결책으로 Markdown typographer quotation marks 사이트 설정에서 이중 인용 부호를 제거하거나 Enable markdown typographer 사이트 설정을 비활성화하는 방법을 언급하겠습니다.

이 “Markdown typographer” 기능이 BBCode 태그에서 올바른 직선 이중 인용 부호 문자를 잘못된 “스마트” 또는 “커리 인용 부호” 문자로 대체하고 있다고 추정합니다.

좋은 직감입니다. 몇 년 전 비슷한 문제를 겪은 적이 있는데, 이 엣지 케이스를 처리하기 위해 Discourse에 "→ "를 변환하는 코드가 여전히 포함되어 있다고 기억합니다.

@jtbayly 해당 사이트들에 새 컴포저가 활성화되어 있나요?

새로운 compose도 활성화되어 있지 않습니다.

다른 사용자는 Safari의 편집->대체->스마트 따옴표에서 Smart Quote 대체를 끄면 문제가 해결된다고 보고했습니다.

하지만 저는 그렇게 하고 싶지 않습니다. ㅋㅋ. 대부분의 경우 스마트 따옴표를 좋아하거든요.

이것이 문제의 원인이라고 생각합니다. 또한, 이 유형의 추가 작업에서 취소 기록을 잃지 않기 위해 textarea에서 사용자 입력을 모방하는 사실도 문제입니다.

요소에 spellcheck="false"를 설정하면 해결할 수 있다고 생각하지만, 명백한 단점이 있습니다.

문제를 일으키는 것은 일관되지 않은 따옴표입니다. 양쪽에 동일한 스타일의 따옴표가 사용되면 작동할 것입니다 – 다음 중 어떤 세트든 사용할 수 있습니다:

수동으로 BBCode를 입력하면 양쪽이 모두 변환되는데, 인용할 때 두 번째 따옴표만 변환된다는 점이 이상합니다.

3개의 좋아요

문제는 또한 일관성이 없습니다. 항상 발생하는 것은 아니지만, 정확히 언제 발생하고 언제 발생하지 않는지는 아직 파악하지 못했습니다.

여러 가지 다른 따옴표 옵션에서는 잘 작동하는데,偏偏 이 옵션만 작동하지 않는다는 점이 재미있네요. 궁금하네요…

사실 일관성 없는 따옴표 스타일을 일치시키는 것이 간단한 수정 사항일까요? 특히 " 와 ” 같은 경우를 말입니다. 그렇게 하면 문제가 생기지 않을까요?

파서를 수정하여 " ” 쌍과 bbcode에 들어오는 여러 가지 희귀하고 이상한 인용 기호를 허용하도록 해야 할까요?

2개의 좋아요