blog
初めての Middleman シリーズ初めてのMiddleman:RedcarpetとMiddleman::Rougeを使ったシンタックスハイライト
この記事は書かれてから1年以上経過しており、内容が古い場合があります。
前回の初めてのMiddleman:Markdown EngineをkramdownからRedcarpetに切り替えるをベースにmiddleman-rougeを使ったシンプルなシンタックスハイライトを試してみます。
Gemfile
GemfileにMiddleman::Rougeを加えます。
gem 'middleman-rouge'
config.rb
config.rb
にactivate :rouge_syntax
を追記してmiddleman-rougeを有効にします。
########################
#
# Markdown setting
#
########################
# set :markdown_engine, :kramdown
set :markdown_engine, :redcarpet
set :markdown, :fenced_code_blocks => true, :smartypants => true, :with_toc_data => true, :tables => true, :autolink => true, :gh_blockcode => true
########################
#
# Code highlight
#
########################
activate :rouge_syntax
ビルド
有効にした状態で$ bundle exec middleman server
を実行するとMarkdownで記述したCode Blockがビルド時に以下のように変化します。
Middleman::Rouge 無効時
<pre><code class="ruby">print("Hello")
</code></pre>
Middleman::Rouge 有効時
<pre class="highlight ruby"><code><span class="nb">print</span><span class="p">(</span><span class="s2">"Hello"</span><span class="p">)</span>
</code></pre>
カラーリング
あとはカラーリングするだけです。pygments-cssが使えるので好みのテーマを読み込んでください。テーマのプレビューはこちらTheme previewsで確認できます。たぶん、monokai.cssが人気ですよね。
Middleman-Syntax
行番号表示等を使いたければMiddleman-Syntaxがお勧めです。
次回:初めてのMiddleman:Middleman-Syntaxを使ったシンタックスハイライト
シリーズ
- 初めてのMiddleman:rbenv, bundler 環境でMiddlemanを使ったHello World
- 初めてのMiddleman:レイアウト機能でレイアウトとコンテンツを分離する
- 初めてのMiddleman:パーシャルを使ったコンテンツのモジュール化
- 初めてのMiddleman:SCSSのコンパイルとテンプレートの基礎
- 初めてのMiddleman:Sass MixinライブラリのBourbon, Neatを導入してみる
- 初めてのMiddleman:データファイルとデータファイルを使った動的ページ生成
- 初めてのMiddleman:サイトにブログ機能を追加する
- 初めてのMiddleman:Amazon S3にビルドされたファイルを同期する
- 初めてのMiddleman:HTML/CSS/JS/画像をビルド時に圧縮する
- 初めてのMiddleman:設定について
- 初めてのMiddleman:静的サイトのキャッシュとasset_hash拡張を使ったキャッシュのパージ
- 初めてのMiddleman:Middleman::S3Syncで使うAWS IAMユーザーのアクセスキー管理方法について
- 初めてのMiddleman:Helperを使ってGravatarのアイコンを表示する
- 初めてのMiddleman:アセットパイプラインを使った外部アセットファイルの読み込みと結合
- 初めてのMiddleman:Bowerを使ってjQueryなどのライブラリをロードする
- 初めてのMiddleman:スケルトンを自作する方法
- 初めてのMiddleman:Middleman Blogの記事データを使いやすく管理する方法
- 初めてのMiddleman:Middleman-blogのシングルブログを前提としたSkeletonを作った
- 初めてのMiddleman:Middleman-blogでマルチブログを試してSkeletonを作った
- 初めてのMiddleman:Markdown EngineをkramdownからRedcarpetに切り替える
- 初めてのMiddleman:RedcarpetとMiddleman::Rougeを使ったシンタックスハイライト
- 初めてのMiddleman:Middleman-Syntaxを使ったシンタックスハイライト
- 初めてのMiddleman:Middleman-Blogで記事毎に画像を管理する方法
- 初めてのMiddleman:Gulpを使ってサムネイル画像を生成する
- 初めてのMiddleman:Middleman-OGPのOGP画像指定を相対パスで設定する
- 初めてのMiddleman:Middleman-OGPでMiddleman-BLogにOGPを設定する
- 初めてのMiddleman:Middleman-Titleでタイトルタグを手軽に設定する
- 初めてのMiddleman:多言語化 - 言語ファイルの作成とヘルパーの埋め込み
- 初めてのMiddleman:Middleman-blogにカテゴリやシリーズなどのカスタムコレクションを追加する方法
- 初めてのMiddleman:Bowerで管理されているフォントファイルをインポートする