web-dev-qa-db-ja.com

ジキルでのGithub風のMarkdownとpygmentsの強調表示

私のJekyllブログをVPSに配置しました。 Pygments強調表示を使用して、Github風味のマークダウンを追加したいのですが、どのファイルをどのように編集する必要があるのか​​わかりません。

これまでのところ、私が設定した唯一のファイルは_config.yml wichは次のようになります。

  1 safe:        false
  2 auto:        false
  3 server:      false
  4 server_port: 4000
  5 baseurl:    /
  6 url: http://localhost:4000
  7 
  8 source:      .
  9 destination: ./_site
 10 plugins:     ./_plugins
 11 
 12 future:      true
 13 lsi:         false
 14 pygments:    false
 15 markdown:    maruku
 16 permalink:   date
 17 
 18 maruku:
 19   use_tex:    false
 20   use_divs:   false
 21   png_engine: blahtex
 22   png_dir:    images/latex
 23   png_url:    /images/latex
 24 
 25 rdiscount:
 26   extensions: []
 27 
 28 kramdown:
 29   auto_ids: true,
 30   footnote_nr: 1
 31   entity_output: as_char
 32   toc_levels: 1..6 
 33   use_coderay: false
 34 
 35 coderay:
 36   coderay_wrap: div
 37   coderay_line_numbers: inline
 38   coderay_line_numbers_start: 1
 39   coderay_tab_width: 4
 40   coderay_bold_every: 10
 41   coderay_css: style

Github風のMarkdownおよびPygmentsハイライトを使用するようにJekyllを適切に構成するにはどうすればよいですか?

31
oFca

編集:より簡単になりました

jekyll> = 0.12.1以降redcarpet2はJekyllでネイティブにサポートされているため、設定をmarkdown: redcarpetに設定するだけで、残りのmumbojumboなしでGFM /フェンス付きコードブロックを使用できます...

元の答え

あなたは明示的にGithub風味のマークダウンを要求するので、非マークダウンリキッドフォーマットでコードブロックを作成する答えを探しているのではないと思います。

{% highlight python %}
def yourfunction():
     print "Hello World!"
{% endhighlight %}

しかし、フェンスされたコードブロックで何かを書くことができればいいのです:

```python
def yourfunction():
     print "Hello World!"
```

このためには、redcarpetマークダウンパーサーを使用します。

Github風味のマークダウンは、「Redcarpet」というマークダウンパーサー 1 を使用します。皮肉なことに、Githubフレーバーマークダウンは redcarpet2 を使用しますが、このマークダウンパーサーはデフォルトでJekyllによってサポートされていません。代わりに、Ruby gemをインストールすることで、これをプラグインとして追加できます。

gem install redcarpet

次に redcarpet2 Jekyllプラグイン を追加します。 (Jekyllにプラグインをインストールすると、そのリポジトリで.rb Rubyスクリプトが_pluginsディレクトリに配置されます。_pluginsのサブディレクトリに置くことができます。も)。

次に、そのドキュメントで説明されているように、redcarpet2を使用するように_config.ymlを編集します。

markdown: redcarpet2
redcarpet:
  extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]

これはgithub-flavored-markdown aka redcarpet2によって提供される一般的な拡張機能を追加します(まあ、ほとんど。これは、問題を番号で識別したり、ハッシュでコミットしたりするようなgithub固有のマークダウン機能を実行しないため、技術的に同じではありません)。

プラグインがあるということは、当面は、サイトをローカルで構築し、_siteをgithubにコピーする必要があります。サイトをホストしている場合は、jekyllエンジンのGithubバージョンではredcarpet2を使用できないためです(これを見る 未解決の問題 ジキルで)

:ところで_config.ymlで指定したすべてのマークダウンエディターは必要ありません。 redcarpet2を使用した基本的な例については、この config と、それに関連する関連するjekyllディレクトリを確認することができます。

47
cboettig

ジキルの最高の部分は、言ったように here

...テンプレートディレクトリ(Webサイトの生の形式を表す)を取得し、それをTextileまたはMarkdownおよびLiquidコンバーターで実行し、完全な静的Webサイトを吐き出します...

つまり、デフォルトでMarkdownとpygmentsが強調表示されます。

この設定では、discardまたはデフォルトの_config.yamlを使用できます。既存の構成で、pygmentsをtrueに設定することができます:pygments: true

これはあなたがすることです

  • Markdown:ファイルに* .markdownという名前を付けます(例:2012-12-01-my-post.markdown)。ルートディレクトリ内の任意の場所に配置します。通常は、_postsに配置します。

    Jekyllがこのファイルを解析すると、マークダウンフィルターを通過します。追加のボーナスとして、*。textileとして保存し、 textile を使用して解析します。そしてもちろん、それを.htmlにしておけば、マークダウンの解析は行われません。

  • pygments:コードでこれを行うだけです:

    {% highlight python %}
    def yourfunction():
         print "Hello World!"
    {% endhighlight %}
    

    また、次のようにして行番号を取得します。

    {% highlight python linenos %}   
    {% endhighlight %}
    

編集:また、コマンドを使用して構文スタイルシートを生成する必要があります

pygmentize -S default -f html > style.css

前述のとおり here および@ joshuahornby10による。明らかに、htmlにstyle.cssを含めます。次に、コードが構文で強調表示されます。

これが機能するために、_config.yamlの設定を変更する必要はありません。 jekyll --server --autoを使用してサイトを実行し、見栄えがよいかどうかを確認してください。補足として、_configファイルを編集するときは、自動実行を停止し、変更を行うためにjekyllを再実行する必要があります。

11
SiddharthaRT

構成ファイルの変更

 pygments:    false 

 pygments:    true

これは、マークダウンファイル(素晴らしいリソース http://daringfireball.net/projects/markdown/ )でコードセクションを記述するときに、pygmentsスタイルを使用することを意味します。あなたがインストールしたことを確認してください、これは私が犯した間違いです。また、インストールしたら、スタイリングを実行するためのcssファイルを作成する必要があります(当然のように聞こえますが、この間違いを犯しました)

 pygmentize -S default -f html > stylesheets/pygments.css

ここにあるテーマのいずれかにデフォルトを変更できます:

http://pygments.org/demo/35195/

マークダウンに関して、私はそれを読んで、pygmentsを機能させるためには、マークダウンをマルクにして、設定ファイルですでに設定している必要があります。

これがお役に立てば幸いです。Jekyllは素晴らしいブログプラットフォームですが、文書化が不十分です。

4
joshuahornby10