게시글 수정 권한이 있는 사용자(TL4 이상)가 텍스트를 선택하여 해당 부분을 코드 블록으로 변환할 수 있도록 하는 아이디어를 떠올리게 되었습니다.
Discourse AI 플러그인 코드의 일부와 제가 사용하는 플러그인 아웃렛에 전달되는 데이터를 참고한 끝에, quote-share-buttons-before 아웃렛을 사용하여 선택된 텍스트를 가져오고 코드 펜스(code fence)로 감싸는 코드를 작성했습니다.
하지만 이제 막혀 있습니다. 체크리스트 플러그인은 checklistSyntax 함수의 postDecorator 인자를 통해 (어떤 방식으로든) 이것을 수행하며, 이를 통해 모델(아마도 post 모델일 것 같습니다)을 .getModel()로 가져올 수 있습니다. 이 인자가 어떻게 전달되는지는 알 수 없으며, 제 환경에서는 사용할 수 없을 것 같습니다.
만약 체크리스트 플러그인에서 실제로 post 모델을 사용하고 있다면, 다음 코드에 사용되는 단순한 ‘save’ 함수가 models/post.js 어디에 있는지 찾는 데 어려움을 겪고 있습니다. 제가 잘못 이해하고 있는 것이 아니라면 말입니다.
현재 저는 this.args.outletArgs.data.editPost(this.post)를 사용 중입니다(기억이 맞다면 models/topic.js에 있는 함수인데, 틀렸다면 알려주세요). 이 함수는 게시글을 직접 편집하는 것이 아니라 편집기(composer)를 열어 게시글을 수정하게 합니다.
따라서 제 질문은 이렇습니다. 체크리스트 플러그인처럼 매끄럽게 게시글을 편집하려면 어떻게 해야 할까요? 체크리스트가 사용하는 api.decorateCookedElement 대신 아웃렛에 버튼을 넣는 경우에도 이를 수행할 수 있는 방법이 있을까요? 가능하면 REST API를 사용하지 않고 싶습니다.