2

kramdown (フェンスで囲まれたコード ブロック、インライン属性リスト、ヘッダー ID などの機能) をシンタックス ハイライト ( kramdownで使用される CodeRay では利用できない LaTeX サポートなど) 用のピグメントと一緒に使用したいと考えています。Jekyll は kramdown と pygments の両方をサポートしていますが、明らかに 2 つを一緒にサポートしていません (私が使用したくない Liquid タグを使用しない限り)。

また、kramdown フェンスで囲まれたコード ブロックを作成して、pygments で強調表示されたコードを吐き出す方法のプラグイン スニペットもいくつか見つけましたが、残念ながら、それを機能させる方法がわかりません。

そのサイトのすべてのコードをいくつかの_plugins/krampygs.rbファイルにダンプしようとしましたが、次のようにjekyll build不平を言います:

Generating... error: undefined method `matches'

Jekyll plugin docsの指示に従って、matchesいくつかの些細なことを提供した場合でも、ファイルにこの新しいコンバーターを選択する方法がわかりません。のようなものを追加するoutput_ext.md

markdown: MarkdownConverter

私の_config.yml唯一の不満は、これが有効なオプションではないということです。

では、私の質問をもう一度言います: Jekyll で pygments で kramdown を使用するにはどうすればよいですか?

解決

Matthias (以下) の助けを借りて、Jekyll 1.x 用のこのKramdown+Pygments プラグインを準備することができました。

4

2 に答える 2

3

「あのサイト」の作者はこちら。

Jekyll のバージョンに依存します。投稿が書かれたときのバージョンでは、それで十分でした。少なくとも Jekyll 1.x では、次のようmatchesに で定義されている必要があります。MarkdownConverter

def matches(ext)
  ext =~ /^\.md$/i
end

Jekyll 1.x で発生するもう 1 つの問題は、すべてのカスタム Markdown コンバーターが無視されることです。出力拡張子を明示的に指定することで、これを回避しました

def output_ext(ext)
  ".html"
end

を設定して偽の Markdown 拡張機能を探すように Jekyll に指示します。

markdown_ext: foo

_config.yml

于 2013-08-13T17:16:57.957 に答える
1

Juanによって作成されたプラグインを更新して、Jekyll 2.x と互換性を持たせ、その他の改善を行いました。

ここにあります: https://github.com/mvdbos/kramdown-with-pygments.git

于 2014-07-22T11:23:24.697 に答える