Discourse API를 사용하여 PUT 요청으로 게시물을 업데이트하고 있습니다. 업데이트는 정상적으로 반영되지만, 허용된 HTML 태그만 파싱됩니다. 마크다운, BBCode, 이모지는 올바르게 렌더링되지 않습니다. PUT 요청은 실제로 JSON 페이로드이고, 문서에는 세 가지 옵션 중 하나라고 되어 있지만 PUT 요청에 대해 허용되는 것으로 보이는 유일한 콘텐츠 타입이 application/json이므로 이 콘텐츠 타입으로 요청을 보내고 있습니다.
API를 통해 업데이트를 할 때 렌더링 엔진이 내용을 파싱하지 않는 이유에 대해 아시는 분이 있을까요?
로그에는 오류가 보이지 않고, PUT 요청을 수행하는 cURL 요청에서 지정하는 대로 원본 페이로드가 정확히 일치합니다. 토픽의 JSON 뷰를 확인하면 다음과 같은 내용을 볼 수 있습니다:
`<p><img src="https://global.discourse-cdn.com/standard10/uploads/wysterialane/original/1X/284fb6069edededf16b0830d468eaf03bc261616.webp" alt="mother of god shades GIF" data-base62-sha1="5KBSuBIpIj3xlACzeZINBKw7wEu" width="262" height="200" class="animated"></p><br>Why won't this work? :face_with_symbols_over_mouth: <br>`
여기 있는 GIF는 제가 OP(원문)에 넣은 것이며, 렌더링 엔진이 이를 HTML로 변환하여 정상적으로 표시됩니다. 하지만 API를 통해 <br>Why won't this work? :face_with_symbols_over_mouth: <br> 부분을 추가하면 원본 텍스트는 게시되지만 렌더링 엔진이 이를 처리하지 않습니다. 이것이 예상되는 동작인가요? 제 서비스가 전체 HTML 페이로드를 구성하여 전달해야 하는 것 같은데, 이건 좀 비효율적인 방법입니다.
HTML 태그로 감싸진 이모지 쇼트코드에서 발생하는 문제는 예상되는 동작이라고 생각합니다. Discourse 게시물 편집기에서 생성된 게시물에서 이를 재현할 수 있습니다. 예를 들어, :face_with_symbols_over_mouth:는 이 문단 내에서 로 렌더링됩니다.
Markdown 엔진에 의존하는 대신 p 태그를 사용하여 문단을 생성하면 쇼트코드가 렌더링되지 않습니다. 예를 들어:
<p>This sentence contains an emoji shortcode :face_with_symbols_over_mouth:</p>
This sentence contains an emoji shortcode :face_with_symbols_over_mouth:
Markdown
API를 통해 Markdown을 게시하는 문제는 해결 가능해 보이지만, 다루는 것이 까다로울 수 있습니다. 터미널에서 curl을 사용하여 다음과 같은 방식으로 실행해야 합니다:
m="### this is a heading
This is a very short paragraph with some _emphasis_ on a word.
This is another paragraph with a :slight_smile: emoji
- this
- is
- an
- unordered
- list
Followed by another paragraph.
1) and
2) an
3) ordered
4) list"
curl -X POST "http://localhost:4200/posts.json" -H "Api-Key: $api_key" -H "Api-Username: simon" -F "title=Markdown test one" -F "category=6" -F "skip_validations=true" -F "raw=$m"
위 요청의 skip_validations 매개변수는 테스트 시 “본문이 너무 짧음” 또는 “제목 중복” 유형의 오류를 방지하기 위해 포함된 것입니다. 이는 사이트 설정(최소 게시물 길이, 본문 최소 엔트로피, 최소 주제 제목 길이 등)을 우회합니다.
BBCode 문제에 대해서는 확신이 없습니다. 렌더링하려는 BBCode 태그가 Discourse 사이트의 게시물 편집기에 추가되었을 때 정상적으로 작동합니까?