새로운 설정이 Discourse를 진정한 댓글 시스템으로 만들어 주셨기에, 특히 여러 블로그의 댓글 시스템을 하나의 포럼 시스템으로 결합하는 용도로 사용할 때 그 효과가 뚜렷합니다. 이 점에 대해 진심으로 감사드립니다. 하지만 불행히도 여러 가지 문제들이 발생하고 있습니다.
외관상의 문제들은 일단 제쳐 두고, 저는 이 설정이 Ghost 블로그와 함께 작동하도록 하려고 노력하고 있다는 점을 먼저 지적하겠습니다. 이 블로그는 Discourse on Ghost (DoG) 통합을 통해 Ghost와 Discourse의 멤버십 시스템을 통합하고 있습니다 (Discourse 포럼에서 여기에 발표됨). 제가 겪고 있는 문제 중 일부는 DoG 사용 때문인 것으로 확신하지만, 다른 문제들은 그렇지 않고, 또 다른 문제들은… 어쩌면 그럴까요?
먼저 지적할 것은, 제가 “완전한” 댓글 시스템이 아닌, 그 절반 정도에 가까운 것만 보고 있다는 점입니다.
네, DoG를 통해 전체 가입 과정을 거친 후 “접근 허용” 팝업이 표시되고, 저는 이를 동의했습니다.
하지만 그 후, 데모 Discourse 블로그 게시물에서 보았던 것처럼 각 댓글 뒤에 “답장” 버튼이 보이지 않을 뿐만 아니라, 링크 아이콘도 Discourse 블로그에서 보는 것과 현저히 다릅니다(이것은 Discourse 포럼이 사용하는 테마의 결과일 수도 있습니다). 또한, 게시물 하단으로 스크롤하면 새로운 설정의 일부는 존재하지만, 왼쪽에 나타날 것으로 생각했던 공유와 답장 버튼이 없고, 유일한 답장 버튼은 오른쪽에 있습니다(Discourse 블로그에서 본 것과 다른 화살표 아이콘이 있으며, 이 아이콘은 원래 임베드 시스템의 복고풍이거나 포럼 자체에서 사용되는 테마와 관련이 있다고 추정됩니다).
더욱이, 그 답장 버튼을 클릭하면 새로 통합된 댓글 상자가 나타나는 대신 블로그 포럼의 홈페이지로 이동합니다. 그렇게 되면, 위의 “37/37” 댓글 수 버튼을 클릭하면 실제로 상자가 나타나고, “이동” 버튼과 댓글 사이를 "스크롤"할 수 있는 기능이 있지만, 댓글로 "스크롤"하여 마우스 버튼을 놓으면 댓글 임베드 내의 위치가 이동하지 않습니다(상자가 그냥 닫힙니다).
명확히 하기 위해, 제 임베드 코드는 다음과 같습니다:
<section itemscope itemtype="http://schema.org/UserComments" class="post-item post-comments" id="comments" loading="lazy">
<div class="wrapper post-wrapper{{#is "post"}} no-post-border{{/is}}">
<h2 class="comments-title">
<a href="#comments" class="heading-link">
<svg aria-hidden="true" class="aal_svg" version="1.1" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path>
</svg>
</a>
Comments</h2>
<div id='discourse-comments'></div>
<meta name='discourse-username' content='DISCOURSE_USERNAME'>
<script type="text/javascript">
if (window.location.pathname.indexOf('/p/') < 0) {
DiscourseEmbed = {
discourseUrl: 'https://ff2f.discourse.group/',
discourseEmbedUrl: '{{url absolute="true"}}',
fullApp: true,
dynamicHeight: true,
};
(function() {
var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
})();
}
</script>
</div>
</section>
그리고 네, 제 사이트 포럼 설정에서 전체 앱 모드 토글이 켜져 있습니다.
저가 어떤 토글을 활성화하지 못했거나 코드 한 줄을 포함하지 못했기 때문일까요, 아니면 새로운 전체 댓글 시스템과 DoG 사이의 어떤 종류의 호환성 문제일 수 있을까요?
수정 #1: 실제로는 코드 한 줄이 빠져 있었습니다. fullApp: true와 dynamicHeight: true 외에 추가해야 할 것이 더 있다는 사실을 실수로 인지하지 못했기 때문입니다. 그러나 누락된 <meta name='discourse-username' content='DISCOURSE_USERNAME'>을 삽입해도 아무런 변화가 없었습니다.
수정 #2: 누락된 <meta name='discourse-username' content='DISCOURSE_USERNAME'>을 추가한 직후 임베드를 조작해 보다가, "스크롤바"를 사용할 때 마우스 버튼을 놓으면 댓글 임베드 내의 위치가 이제 올바른 위치로 이동하는 것을 우연히 발견했습니다. 추가된 코드 때문일 것이라고는 상상할 수 없지만, 결과가 그렇습니다.
수정 #3: 아. Discourse 블로그와 로그인 과정을 조작해 보았는데, 이것은 어떤 식으로든 DoG와 관련된 문제인 것 같습니다. 왜냐하면 포럼 쪽에서 로그인하지 않은 상태에서 Discourse 블로그의 임베드 모습은 제가 "절반"이라고 부른 댓글 시스템과 정확히 같기 때문입니다.
즉, 로그인 과정을 거친 후에도, 블로그의 임베드는 사용자가 포럼에 로그인했다는 것을 인식하지 못하고 있습니다(비록 "본인 계정으로 댓글을 남기려면 세션 접근을 허용하세요"라는 팝업이 나타났음에도 불구하고).




