私は、Middleman静的ページジェネレータを使用してHAMLテンプレートでHTMLをレンダリングするためにデータファイルに書かれたMarkdownを使用しています。私のデータファイル、data/faq.yaml
は次のようになりますMiddleman:データファイルからマークダウンをレンダリングするときに未定義のメソッド `link_to '
:HTMLにこの値下げを変換するには
dog:
question: I want to know more about a dog.
answerA: (HTML in data) Just <a href="https://google.com">Google</a> it!
answerB: (Markdown link in data) Just [Google](https://google.com) it!
、私はconfig.rb
で定義されたカスタムヘルパーを使用しています:
helpers do
def markdown(text)
Tilt['markdown'].new { text }.render
end
end
このようなテンプレート:
= markdown(data.faq.dog.answerA)
すべてが動作します私がデータファイルに書かれたマークダウンリンクをレンダリングしようとするまで、間違っていました。以下は
と私のfaq.haml
テンプレートです:からanswerB
に直接
answerA
から- マークダウンリンク、マークダウン構文で書かれた同じリンクのデータ
faq.haml
:
.answer
:markdown
(HAML) Just [Google](https://google.com) it!
= markdown(data.faq.dog.answerA)
= markdown(data.faq.dog.answerB)
第2のリンクはpropelyレンダリングが、answerB
でマークダウンリンクは、次のエラーがスローされます。
undefined method `link_to' for #<Object:0x000000044f9e18>
トレースバック:
/home/myself/.rvm/gems/ruby-2.4.0/gems/middleman-core-4.2.1/lib/middleman-core/renderers/kramdown.rb: in convert_a
48. scope.link_to(content, link, attr)
なぜKramdownは尋ねられたとき、「マークダウンリンクに変換することができません"データファイルを参照するカスタムヘルパーを介して行うが、同じ構文がHAMLで直接使用されている場合は適切に行うか? = markdown(data.faq.dog.answerB)
のマークダウンリンクが正しくレンダリングされるように、何ができるのですか?
ps。私の最終目標は、すでに別のdata
ファイルで定義されているリンクを参照することですが、この目標を達成するためにはまずこの問題を解決する必要があると思います。