Jekyllを使用しているときに、HTMLファイルにマークダウンをネストしようとしています。次のようなものを達成する方法はありますか?
# index.html
---
layout: default
---
<p>[Stack Overflow](http://www.stackoverflow.com)</p>
注:代わりにこれを実行できることを知っています。
# index.html
---
layout: default
---
<p><a href="http://www.stackoverflow.com">Stack Overflow</a></p>
Jekyllプラグイン を使用してマークダウンブロックを定義する方法は次のとおりです。
module Jekyll
class MarkdownBlock < Liquid::Block
def initialize(tag_name, text, tokens)
super
end
require "kramdown"
def render(context)
content = super
"#{Kramdown::Document.new(content).to_html}"
end
end
end
Liquid::Template.register_tag('markdown', Jekyll::MarkdownBlock)
(このスニペットをプラグインとしてインストールするには、ソースサイトルートの*.rb
ディレクトリの下の_plugins
ファイルに配置します)
次に、次のように使用します。
{% markdown %}
[Stack Overflow](http://www.stackoverflow.com)
{% endmarkdown %}
[〜#〜] edit [〜#〜]:より良い解決策については@Cristianの回答を参照してください! Kramdownを使用している場合(Jekyllを使用しているため、これが当てはまる可能性があります)、その機能を使用して、div
内にmarkdown="1"
属性を付けてマークダウンをレンダリングできます。
their doc に基づいてKramdownを使用している場合、これを行うことができます:
<div markdown="1">
My text with **markdown** syntax
</div>
このようにして、div
内のテキストはマークダウンとしてレンダリングされます。
必ず.md
または.markdown
ファイルの拡張子、.html
ファイルは処理のためにKramdownに送信されません!
@ sunny-juneja、markdownify
という名前のLiquid Extension Filterをチェックしてください:
https://github.com/mojombo/jekyll/wiki/liquid-extensions#markdownify
次のように使用します。
<p>{{ '[Stack Overflow](http://www.stackoverflow.com)' | markdownify }}</p>
Outputタグ内の文字列を一重引用符または二重引用符で囲みます。
Jekyll 1.0.0beta3で動作します
MarkdownからHTMLにページのセクションを解釈できるJSコードについては、 Paul Irish's Gist をご覧ください。