마크다운 플러그인을 개발 중인데, 해당 기능을 비활성화할 수 있도록 사이트 설정을 추가하는 데 어려움을 겪고 있습니다. 플러그인은 Discourse Footnote 구조를 참고하여 작성했으며, 이 플러그인에는 해당 기능을 비활성화할 수 있는 설정이 있습니다. footnotes 플러그인을 설치해 보니 UI에서 비활성화할 수 있고, 관련 테스트도 통과하는 것을 확인했습니다. 하지만 제 플러그인을 사이트 설정에서 비활성화해도 아무런 효과가 없으며, 단위 테스트도 실패하여 이를 확인했습니다.
footnotes 플러그인과 제가 다르게 무엇을 하고 있는지 모르겠습니다. opts.features 사용법이 완전히 잘못되었거나 잘못된 가정을 하고 있는 것일 수 있습니다. 거의 모든 곳에서 "footnotes"를 "ruby"로만 교체했기 때문입니다. 도움을 주시면 감사하겠습니다.
레포지토리는 여기 있습니다: GitHub - seanblue/discourse-ruby: Adds ruby markdown support to Discourse · GitHub
사이트 설정과 관련된 주요 부분들은 다음과 같습니다:
그리고 계속 실패하는 테스트는 다음과 같습니다(아직 레포지토리에 있지 않음):
it "can be disabled" do
SiteSetting.enable_markdown_ruby = false
markdown = <<~MD
Here is some text: {漢字|かん|じ}.
MD
html = <<~HTML
<p>Here is some text: {漢字|かん|じ}.</p>
HTML
cooked = PrettyText.cook markdown.strip
expect(cooked).to eq(html.strip)
end
예상대로, 실패 메시지는 마크다운이 여전히 적용된 것처럼 쿡된 텍스트를 반환하고 있다고 알려줍니다.
expected: "<p>Here is some text: {漢字|かん|じ}.</p>"
got: "<p>Here is some text: <ruby>漢<rt>かん</rt>字<rt>じ</rt></ruby>.</p>"