web-dev-qa-db-ja.com

Jekyllのマークダウンコードブロックを強調する構文(リキッドタグを使用しない)

Jekyllの構文強調表示は、次のような液体タグとピグメントの使用に限定されているようです。

{% highlight bash %}
cd ~
{% endhighlight %}

ただし、既存のブログをwordpressからインポートし、マークダウン(マークダウンコードブロックを使用)で記述されているため、各投稿を調べてコードブロックを修正する必要はありません。また、ブログプラットフォームを再度切り替える必要がある場合に備えて、投稿を純粋なマークダウン形式で保持したいと思います。

このマークダウン構文を使用できることを期待して、Jekyllパーサーをredcarpetに切り替えました。

```bash
cd ~
```

しかし、うまくいかないようです。通常のcodeブロックにラップするだけです。何か案は?

43
markquezada

最終的には kramdown に切り替えて、構文の強調表示のために coderay に付属するマークダウンを解析しました。これには、herokuで動作する純粋なRubyソリューションであるという利点があります。

9
markquezada

フェンス付きブロック 導入された Redcarpet 2でJekyll 現在サポート Redcarpet 2。

余談ですが、Redcarpetを RougeKramdown support が利用可能になるまで使用しています。

さらに、ジキルよりも Nanoc を好む人もいます。

20
Steven Penny

代替ソリューション

MarkdownはHTMLを許可するので、少しのJSの追加を気にしないのであれば、これを行うことができます:

## A section

Here is some Ruby code.

<pre>
  <code class="Ruby">
    puts "hello"
  </code>
</pre>

次に、 Highlight.js (ドキュメント ここ )を使用して、そのクラスに基づいて強調表示を追加できます。

これは理想的なソリューションではありませんが、Markdownパーサーで動作するはずです。

16
Nathan Long

ステップ1。インストール Redcarpet .

gem install redcarpet

ステップ2。_config.yamlのビルド設定を次のように更新します。

# Build settings
#markdown: kramdown
markdown: redcarpet
4
kjtanaka

最新のjekyllサポートコードブロックでは、古いバージョンを使用している場合は、ハッキングする必要があります。

以下はどうですか?以下のファイルを_plugin/triple-backtick.rb

module Jekyll
  class MarkdownConverter
    alias :old_convert :convert
    def convert(content)
      content.gsub!(/(?:^|\n)```(\w*)\n(.*\n)```\n/m) do |text|
        cls = $1.empty? ? "prettyprint" : "prettyprint lang-#{$1}"
        "<pre class=\"#{cls}\"><code>#{$2}</code></pre>"
      end
      old_convert(content)
    end
  end
end
1
mattn

RedcarpetはデフォルトでJekyllに統合され、コードの強調表示は期待どおりに機能します。

古いJekyllブログの場合:

  1. Redcarpet gemをインストールします。

    gem install redcarpet

  2. _config.yamlを更新

    markdown: redcarpet
    

参照および詳細については、以下を参照してください。

Githubのクローズ済みの問題

更新されたJekyllコードベース

1
Matt Perejda

だから私もこの問題に出くわし、Jekyllの公式redcarpet2サポートでようやく実現した多くの場所に頭をぶつけた後、これは非常に簡単です。 _config.ymlにこれを書いてください

# Conversion
markdown: redcarpet
highlighter: pygments
redcarpet:
  extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]

pygments cssファイルがあり、含まれていることを確認してください。このステップIS重要。

あなたは私のブログ投稿を読むことができます http://blog.championswimmer.in/2015/10/jekyllsyntax-highlighting-in-github-favoured-markdown-codeblocks/ 詳細について。

0
Arnav Gupta

トリプルチルダ構文も使用できます。

~~~Ruby
class Base
  def two
    1 + 1
  end
end
~~~

kramdown(Jekyll)でサポートされています。

0
Franklin Yu

適切にフォーマットされたコードスニペットをJekyll駆動型サイトに追加する2つの代替ソリューションを説明しました。 http://demisx.github.io/jekyll/2014/01/13/improve-code-highlighting-in-jekyll.html 。サードパーティのプラグインに依存せず、無料のGitHubページホスティングと互換性があります。

0
demisx