인용 기능이 작동하지 않아요

도움이 되지 않는 것 같아 죄송합니다. 일반적으로 플러그인을 설치했다면 제거하는 방법도 알고 있을 것이라고 가정합니다. 만약 제 클라이언트였다면 제가 대신 처리해 드렸을 텐데요. 제가 대신 처리해 드리고 싶으시다면 이 서비스에 구독하실 수 있습니다. 수정: 귀하의 문제는 해당 서비스의 범위를 벗어난 것으로 보입니다. 행운을 빕니다!

app.yml 파일을 수정하세요. retort 플러그인이 포함된 줄을 삭제하세요.

./launcher rebuild app

자세한 지침은 Discourse에 플러그인 설치하기를 참고하세요.

try.discourse.org에서 재현을 시도해 볼 수도 있습니다. 또한 평소 사용하지 않는 웹 브라우저에서 재현을 시도해 보면, 비정상적인 로컬 브라우저 커스터마이징이나 플러그인을 배제할 수 있습니다.

이전에 보고되었을 때 재현에 성공하지 못했기 때문에, 이번에도 상황이 다르지 않을 것으로 예상합니다. 불행히도 재현할 수 없는 것은 수정할 수 없습니다.

실제로 문제가 발생하는 (여러!) 사이트들을 방문해서 직접 시도해 보셨나요? 해야 할 일은 텍스트를 선택하는 것뿐입니다. 여러 사이트에서 약 12명 정도가 이 문제를 보고하고 있기 때문입니다.

그냥 이렇게만 표시됩니다:

WARNING: Docker version 17.05.0-ce deprecated, recommend upgrade to 17.06.2 or newer.
You have less than 5GB of free space on the disk where /var/lib/docker is located. You will need more space to continue
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   42G  5.0G  90% /

Would you like to attempt to recover space by cleaning docker images and containers in the system?(y/N)y
If the cleanup was successful, you may try again now

하지만 몇 번을 실행해도 아무 변화가 없습니다.

yml 파일을 수정하지 않고 플러그인을 설치했다면, yml 파일을 수정하지 않고도 제거할 수 있어야 한다는 것이 일반적인 가정입니다.

재현할 수 없는 문제를 해결하는 데는 우리가 완전히 무력합니다.

새로운 Digital Ocean 드롭렛(또는 유사한 서비스)을 생성하고 Discourse를 처음부터 설치하는 건 어떨까요? 그런 다음 데이터를 복원하고 다시 시도해 보세요. 관련해서 최근 비슷한 주제들이 있습니다. 그 후 해당 플러그인을 다시 설치해 보세요. 정상적으로 작동하기 시작하면 처음에 문제가 무엇이었는지 영원히 알 수 없을 수도 있지만, 더 이상 신경 쓰지 않게 될 것입니다 :slight_smile:

전적으로 동의합니다.

YAML 파일을 수정하지 않고 플러그인을 설치하는 방법은 없습니다.

Discourse 버그 수정을 위해 해당 버그를 특정 Discourse 사이트에서 재현하는 것이 아니라, Discourse 팀이 직접 재현하고, 로그를 확인하고, 설정을 변경하고, 테스트할 수 있는 팀이 관리하는 사이트에서 재현해야 한다는 요구사항은 충분히 이해할 수 있습니다. 그렇다면 어떻게 그들에게 수정을 기대할 수 있겠습니까?

웃어야 할지 울어야 할지 모르겠습니다. 오늘 제 사이트에서는 인용(quoting) 기능이 정상적으로 작동합니다. 어제까지는 얼마 전부터 어떤 브라우저에서도 작동하지 않던 것이 엊그제 Edge와 Opera에서는 작동했지만 Chrome이나 Firefox에서는 작동하지 않았습니다. 그런데 지금은 의외로 모든 브라우저에서 예상대로 정상 작동하고 있습니다.

저는 Discourse 기본 플러그인 외에는 어떤 플러그인도 설치해 본 적이 없습니다. 현재 2.6.9.beta6 버전을 사용 중이며, 최신 커밋으로 실시간 업데이트를 하고 있습니다. DigitalOcean 드롭렛에서 Ubuntu 20.04 LTS 환경으로 실행 중입니다.

그래서 지금은 상황이 좋지만, 여전히 수수께끼입니다. 당연히 소프트웨어가 스스로 고쳐지는 일은 없으므로, OS, 브라우저, 또는 Discourse 중 어딘가에 이 문제를 유발하는 아주 작은 변화가 있었을 것입니다. 하지만 그 원인을 영원히 파악하지 못할 수도 있습니다. 제가 할 수 있는 말은 ‘graceful’ 테마가 설치되어 있다는 점인데, 지난 며칠간 꽤 많은 업데이트로 인해 다소 불안정한 상태였습니다. 하지만 저는 그 테마를 사용하고 있지 않습니다. 사용하지 않는 테마를 단순히 비활성화하는 것만으로는 부족해서 아예 삭제해야 하는 경우가 있을까요? 사용되지 않는 테마나 플러그인 등이 시스템에 문제를 일으킨다는 것은 이상하게 느껴지지만, (어렵게나마) 믿을 준비는 되어 있습니다.

이 문제를 처음 제기했을 때를 돌이켜 보면, 지금은 모든 것이 업데이트되고, 플러그인 개입도 없으며, 모든 것이 정상이라는 점을 말할 수 있습니다. 거의 부끄러울 정도이지만, 그 문제가 실제로 존재했고 불편을 초래했었다고 맹세합니다.

지금 제 상황은 이렇지만, 다른 사용자들도 제가 겪었던 현상을 분명히 보고 있으므로, 이 이야기에는 아직 더 많은 것이 있을 것이라고 확신합니다.

여러 번 클린업을 실행한 것을 알지만, 현재 사용 중인 버전이 더 이상 지원되지 않으므로 Docker를 더 새로운 버전으로 업그레이드했나요?
브라우저 캐시를 지우는 것이 도움이 되는 경우가 있습니다.

솔직히 말씀드리면, 당신의 문제는 가장 좋은 경우에도 상당히 특이한 것이었습니다. 문제가 발생했던 모든 사이트에서 이제 문제가 해결되었나요?

제 사이트에서 여러 방법으로 재현을 시도해 보았지만 실패했습니다. 모든 것이 정상적으로 작동했습니다. 다행히도 당신의 문제가 다시 발생하지 않기를 바랍니다. :crossed_fingers:

https://caddy.community에서 여전히 문제가 발생하고 있습니다.

로그인 상태에서 템플릿을 사용한 사용자의 도움이 필요한 스레드에 아무거나 들어가 보세요. version이라는 단어를 선택하면 인용 버튼이 나타납니다. 그런 다음 전체 줄을 선택하면 버튼이 나타나지 않습니다.

앞서 말했듯이 증상은 매우 명확합니다. 문제가 발생하는 시점은 선택 범위에서 HTML 태그 경계를 넘을 때이며, 이때 인용이 불가능해집니다.

우선, 저는 Cady에 대해 전혀 익숙하지 않습니다. 제 이해로는 템플릿에서 인용을 할 수 없지만, 템플릿 외부의 텍스트는 인용할 수 있다고 알고 있습니다. 맞나요? 같은 이해를 바탕으로 이야기해보고 싶습니다. :slightly_smiling_face:

아래의 문제가 당신이 겪고 있는 인용 문제와 관련이 있을까요? 당신의 사용자 중 한 명이 작업 중인 다른 템플릿에서 렌더링 문제를 발견했습니다. 어쩌면 인용 문제가 템플릿 문제와 관련이 있을지도 모릅니다.

그것보다 더 복잡한 문제가 있습니다. 여러분의 포럼에서는 code 텍스트(단독으로든, code가 아닌 텍스트와 함께 선택하든)를 "인용"하는 것이 불가능합니다.

코드 하이라이트 설정을 제거하면 어떻게 되나요? 코드 블록 주변의 hljs 클래스, span 태그 및 pre 태그를 제거하면 "인용"이 정상적으로 작동합니다. 물론 코드가 올바르게 표시되지 않기는 하지만요…

아니요, 저는 단순히 논의할 때 일관된 기준점으로 템플릿을 언급한 것뿐입니다. 하지만 이 문제는 어디에서나 발생합니다.

전혀 관련이 없습니다. Caddy는 웹 서버이며, 마크다운과 Go 템플릿을 HTML로 렌더링하는 기능을 가지고 있습니다. 그 스레드는 Discourse 자체와는 무관하며, Caddy에 대한 질문입니다.

맞습니다. 이는 HTML 요소 경계와 관련이 있다는 제 가설과 일치합니다.

hljs는 코드를 렉싱(lexical analysis)하고 각 토큰 유형에 해당하는 클래스가 포함된 HTML span을 출력하는 방식으로 작동합니다. 이는 코드 블록이 종종 하나의 연속된 HTML 요소가 아니라, 색상을 제공하기 위해 많은 수의 span으로 구성됨을 의미합니다. 이는 분명히 hljs의 문제가 아닙니다.

일치한다고 보기는 어렵습니다. Site served by Caddy looks different to my HTML when open from disk - #4 by francislavoie - Help - Caddy Community 에서 code 텍스트의 어떤 문자도 "인용(Quote)"할 수 없습니다(즉, code 태그 경계 내부에서도 불가능합니다). pre 태그로 둘러싸여 있지 않은 경우의 file_server 단어는 어떤 이유에서인지 정상적으로 동작합니다.

네, 알겠습니다. 이제 그만하겠습니다 :slight_smile:

caddy.community 사이트에서 특정 문제가 있는 것 같습니다. meta, try, review, 고객 사이트 및 셀프 호스팅 사이트에서 보고된 문제를 재현해 보았지만, 여러 줄을 인용하는 기능은 모든 곳에서 정상적으로 작동했습니다. caddy 사이트가 이 특정 기능에서만 깨져 있는 이유가 무엇인지 정확히 알 수는 없지만, 실제로는 그렇게 되어 있습니다.

또한, caddy 사이트의 콘솔에서 또 다른 문제를 발견했는데, 이는 CSP 오류입니다: Refused to load https://caddy.community/google-universal-analytics-v3.js because it does not appear in the script-src directive of the Content Security Policy.. 근본적인 문제는 스크립트 경로가 잘못되어 있다는 것이며, 올바른 경로는 ../assets/google-universal-analytics-v3-HASH.js여야 합니다.

여러분,
버그 보고를 한 후에야 이 주제를 발견했어요:
https://meta.discourse.org/t/cant-quote-in-certain-situations/171269

성공적으로 다시 빌드(rebuild)하면 인용 관련 문제를 해결할 수 있을 거예요.
제가 잘못 알고 있던 것은 /admin/upgrade를 통해 업그레이드하면 다시 빌드도 함께 수행된다고 생각했던 것이었습니다.

왜 처음부터 이런 문제가 발생했는지 찾아보는 것이 아니라 무작정 다시 구축하는 것이 맞는 건가요? 이 문제가 다시 발생하지 않는다는 보장은 어디에 있나요? 이 회귀 오류는 어디서 온 건가요? 버전 마이그레이션 스크립트에 문제가 있었던 건가요?

무작정 다시 구축하는 것이 해결책인 경우가 많습니다. 무작정 재부팅하는 것이 문제를 해결하는 경우가 많듯이요. 원인을 탐사해 보셔도 좋습니다만, 결국 해결책은 동일할 것입니다.

한 포럼에서는 같은 문제가 발생하지만(다른, 더 새로운 포럼에서는 발생하지 않음).

여러 번 재구축을 시도해 봤지만 효과가 없었습니다.

인용하고 싶은 내용에 HTML 태그가 포함되어 있을 때 발생하는 것 같습니다. 즉, 단락 하나만 인용하는 경우에는 문제가 없지만, 굵게 표시된 내용이 있거나 단락 하나 이상을 인용하려고 하면 작동하지 않습니다.

흥미롭게도, 로그아웃한 상태에서 '인용 공개 범위’가 익명으로 설정되어 있으면, 로그인하지 않은 사용자에게는 정상적으로 작동하는 것 같습니다(아니면 그렇게 보이는 것 같습니다). 그래서 이것이 원인과 관련이 있을 수도 있다고 추측합니다. 이 기능은 비교적 새로운 기능인 것 같습니다.