Topic List Previews (legacy)

리베이킹(Rebaking)이 완료되었습니다. 결과가 정말 엉망이네요! :pensive:

자, 이제 이 옵션이 비활성화되어 있던 이유를 알겠습니다.

저희는 WordPress를 사용하고 있으며, 첫 번째 게시물에는 전체 HTML이 포함되어 있습니다. Discourse는 이미지 HTML을 마크다운으로 대체하는 데 문제가 없지만, HTML(또는 구체적으로는 위쪽에 최소한 빈 줄 하나)로 둘러싸인 경우 마크다운 이미지가 렌더링되지 않습니다.

저에게는 두 가지 문제가 있습니다:

  1. 일부 이미지가 다운로드되지 않았습니다. 아마도 srcset 속성 때문인 것 같습니다(하지만 괜찮습니다). 이미지는 첫 번째 게시물에서 잘 표시되지만, 섬네일이 생성되지 않습니다. 이전에는 작동했습니다.

    이미지가 포함된 HTML이 이미 있는 게시물에서는 섬네일을 생성할 수 없도록 변경된 플러그인의 호환성 깨짐(breaking change)이 있나요? 지금까지 3번 리베이킹을 시도했지만 효과가 없었습니다. 섬네일 생성을 강제하는 다른 방법이 있을까요? 이전에는 옵션이 비활성화되어 있더라도, 주제 생성 시나 편집 후에도 어떤 이미지든 섬네일이 생성되었습니다. 하지만 더 이상 이 동작이 작동하지 않습니다.

  2. 위에서 언급했듯이, 일부 마크다운 이미지가 렌더링되지 않습니다.

    게시물이 쿡(cook, 처리)되기 전에 사용할 수 있는 플러그인 API가 있는지 확인해 보았지만 찾을 수 없었습니다.

    유일한 방법은 rails 콘솔을 통해 DB에서 해당 원본 메시지(raw message)에 직접 줄바꿈을 추가하고 다시 리베이킹하는 것 같습니다.

    현재, ruby를 잘 모르지만 discourse 소스 코드를 기반으로 어떻게든 시도하고 있습니다.
    하나의 주제에서는 작동하는 것 같습니다. 아직 모든 주제에 대해 실행하지는 않았습니다. 이렇게 하지 않고 이 문제를 해결할 더 나은/깔끔한 방법이 있을까요?

Post
  .where(post_number: 1)
  .where("raw LIKE '%upload://%'").each do |post|  
     post.raw.gsub!(/(!\[.*upload:\/\/.*\))/, "\n\n\\1") 
     post.save!(validate: false); 
     post.rebake! 
end

도움 주시면 감사하겠습니다!

1개의 좋아요