시스템이 생성한 게시물에 raw_html이 포함된 경우

개발 중인 웹사이트 플러그인에서 원시 HTML을 사용하는 시스템 관리 게시물을 생성하려고 시도하고 있습니다. 문서와 여러 게시물을 살펴본 결과, 제가 올바른 접근 방식을 취했다고 생각하지만, 프리프로세서가 여전히 게시물의 여러 부분을 \<code\>로 변환하고 있습니다.

결과가 이렇게 나옵니다:

이렇게 나와야 합니다(브라우저에서 직접 편집함):

게시물을 생성하는 데 사용 중인 코드는 다음과 같습니다:

post = PostCreator.new(Discourse.system_user,
    title: mmbill.getTitle(),
    raw: cooked,
    cooked: cooked,
    cook_methods: Post.cook_methods[:raw_html],
    archetype: 'regular',
    created_at: createdAt,
    skip_validations: true,
    category: Mmbill.getCatId(),
    is_warning: false,
    meta_data: { mm_type: 'bill', mm_id: final[:bill_id] },
    shared_draft: false,
    topic_opts: {}
 )

도와주실 수 있는 조언이 있다면 감사하겠습니다!

이전에 비슷한 문제를 겪은 적이 있습니다. 원본 게시글 콘텐츠를 생성하는 코드에서 일부 줄의 시작 부분에 불필요한 공백이 포함되어 있었습니다. 원본 출력이 Markdown으로 해석되기 때문에, 줄의 시작 부분에 공백이 있으면 코드 블록으로 간주됩니다. 원본 콘텐츠를 생성하는 방식에 따라, HTML을 다시 서식 지정함으로써 문제를 해결할 수 있을 수도 있습니다.

제 생각엔 그 줄들에 불필요한 앞쪽 공백이 있는 것 같습니다. 문제를 해결하려면 해당 줄의 앞쪽 공백을 제거하세요.

이거였네요, 감사합니다! 이제 HTML에 적힌 대로 포맷이 적용되었습니다. 문제는 Ruby가 코드를 포맷팅하기 위해 사용했던 탭 문자열을 문자열 안에 포함시켰기 때문이었습니다.

iframe을 제거하기로 결정했는데, 이는 관리자 iframe 설정과 관련이 있을 것 같습니다.