Freelance Web Engineer

middlemanの設定

2013-10-16  middleman

本サイトで使用している middleman の主な設定をご紹介します。

Gemfile

# If you have OpenSSL installed, we recommend updating
# the following line to use "https"
source 'http://rubygems.org'

gem "middleman", "~> 3.1.5"
gem "middleman-blog", "~> 3.3.0"
gem "middleman-livereload", "~> 3.1.0"
gem "middleman-deploy"
gem "middleman-rouge"
gem "nokogiri"
gem 'redcarpet'

# For feed.xml.builder
gem "builder", "~> 3.0"

config.rb

Time.zone = "Tokyo"

# [1] ブログ基本設定
activate :blog do |blog|
  blog.prefix = "blog"
  blog.taglink = "tags/:tag.html"
  blog.layout = "layouts/layout"

  blog.tag_template = "tag.html"
  blog.calendar_template = "calendar.html"

  blog.paginate = true
  blog.per_page = 10
  blog.page_link = "page/:num"
end

# [2] markdown 設定
set :markdown_engine, :redcarpet
set :markdown, :fenced_code_blocks => true, :smartypants => true

# [3] シンタックスハイライト
activate :rouge_syntax, :lineanchor => 'line'

activate :directory_indexes

# [4] Atom フィード設定
page "/feed.xml", :layout => false
activate :livereload

set :css_dir, 'stylesheets'

set :js_dir, 'javascripts'

set :images_dir, 'images'

# [5] build 時の設定
configure :build do
  # For example, change the Compass output style for deployment
  activate :minify_css, :ignore => ['syntax.css']

  # Minify Javascript on build
  activate :minify_javascript
end

# [6] デプロイ設定
activate :deploy do |deploy|
  deploy.build_before = true
  deploy.method       = :rsync
  deploy.host         = 'www'
  deploy.path         = '/var/local/projects/risin.jp'
end

以下、解説。

[1] ブログ基本設定

ブログエントリは /blog 配下になるよう、blog.prefix を指定しています。その他、ページネーション設定等、基本的な設定を行っています。

[2] markdown 設定

redcarpet という markdown engine を使用しています。 fenced_code_block は、「`“」で囲んだ箇所がコードブロックとして解釈されます。

[3] シンタックスハイライト

middleman-rouge を使用しています。スタイルシートは /stylesheets/syntax.css.erb を用意し、以下の様にします。

<%= Rouge::Themes::ThankfulEyes.render(:scope => '.highlight') %>
<%# <%= Rouge::Themes::Github.render(:scope => '.highlight') %> %>
<%# <%= Rouge::Themes::Colorful.render(:scope => '.highlight') %> %>
<%# <%= Rouge::Themes::Base16.render(:scope => '.highlight') %> %>
<%# <%= Rouge::Themes::Base16::Solarized.render(:scope => '.highlight') %> %>
<%# <%= Rouge::Themes::Base16::Monokai.render(:scope => '.highlight') %> %>

お好みでスタイルを選んでください。

[4] Atom フィード設定

サイトを build する際に、自動的に xml ファイルを出力します。 source/feed.xml.builder を編集して、xml.title, xml.subtitle を適切に書き換えます。

[5] build 時の設定

build 時に、CSS, JavaScript の minify を行います。 [3] の syntax.css を minify 対象から外すようにしてください。

[6] デプロイ設定

middleman-deploy プラグインを使いました。middleman deploy コマンドを実行すると、build コマンドが行われ、スタティックなファイルを生成した後に、rsync, Git, FTP, SFTP などで Web サーバに転送することができます。今回は rsync を用いました。

deploy.host = 'www' となっているのは、ホスト名は別途 ~/.ssh/config にて設定しているためです。適切に設定してください。

deploy.path は、転送先に存在しない場合は作られます。


以上、参考になりましたら幸いです。

comments powered by Disqus