그리고 스크립트를 사용해 이미지가 원래의 아바타를 대체하고, 캐릭터 이름이 주제 링크와 함께 사용자 이름 앞에 표시되도록 하려 합니다. 예를 들어, 게시물이 보통 "Username"이라고 표시된다면, 이를 "Character Name played by Username"으로 대체하고 싶습니다.
("Character Name"은 캐릭터 시트가 있는 주제에 대한 링크를 포함해야 하며, 사용 편의성을 위해 위키링크 테마 구성 요소를 사용하는 것이 좋겠습니다.)
게시물 골격을 Codepen에 붙여넣고, 이 동작을 정확히 수행하는 자바스크립트를 작성하는 데 성공했습니다. 하지만 이를 게시물 데코레이터에 추가하고 API와 실시간으로 작동하게 하려 할 때 벽에 부딪혔습니다.
현재 common>header에 작성한 내용은 다음과 같습니다:
<script type="text/discourse-plugin" version="0.8">
api.decorateCookedElement(
element => {
// 게시물 내의 characterpost 태그 찾기
const characterPost = element.querySelector('[data-wrap="characterpost"]');
// characterpost 태그의 부모 요소 찾기. 이는 아바타와 사용자 이름을 포함하고 있습니다.
const characterPostParent = characterPost.closest('article');
// 작동하는지 확인하기 위해 빨간색으로 변경
characterPostParent.style.backgroundColor = "red";
},
{
id: 'render-character-post', onlyStream: true, afterAdopt: true
}
);
</script>
이 코드가 오류를 발생시키고 있습니다. decorateCookedElement를 사용하여 게시물의 “article” 래퍼에 접근하여 사용자 이름과 아바타에 도달할 수 있을까요? 불가능하다면, 어떻게 이 문제를 해결할 수 있을까요?