middleman-and-zsh
ブログの記事を書くステップは、今までこんな感じだった。
- iTerm2を立ち上げる
CMD + SPACE
=>iterm + ENTER
(alfred)
- blogのリポジトリに移動する
$ cd ~/github/fukayatsu.github.io
- 記事を新規作成する
$ bundle exec middleman article middleman-and-zsh
- 記事を編集する
$ subl source/posts/2013-11-24-middleman-and-zsh.html.md
- 記事をプレビューする
$ middleman
- open in browser
- 記事をコミットする
$ git commit -am 'Add post'
- 記事をpushする
$ git push
- travis-ciとgithub pagesがよしなにしてくれる
今はこうなった
- iTerm2を立ち上げる
CMD + SPACE
=>iterm + ENTER
(alfred)
- blogのリポジトリに移動して、記事を作成し、powのプレビューを立ち上げる
$ blog middleman-and-zsh
- LiveReloadで確認しながら記事を書く
- 記事を公開する
$ blog-publish
- travis-ciとgithub pagesがよしなにしてくれる
かなり心理的負担が無くなった。
作業メモ
zshの関数
function blog() { # リポジトリに移動 cd /Users/fukayatsu/github/fukayatsu.github.io if [ $1 ] then # 新規記事作成 file=$(bundle exec middleman article $1 | \ grep 'create\|update' | \ awk '{print $3}') # ファイル名からプレビュー用url生成 url=$(echo $file | \ sed -e 's/source\/posts/http:\/\/fk.dev/' | \ sed -e 's/\.html\.md/\//' | \ sed -e 's/\(201[0-9]\)-\([0-9][0-9]\)-\([0-9][0-9]\)-/\1\/\2\/\3\//') # エディタを開く subl $file # ブラウザでプレビューを開く open $url || echo preview: $url fi } function blog-publish() { # リポジトリに移動 cd /Users/fukayatsu/github/fukayatsu.github.io # コミットしてremoteにpush git checkout source git add . git commit -m "Update Posts" git push origin source echo 'done.' }
pow用のconfig.ru
# Make Rack comparable to middleman server by tdreyno · Pull Request #560 · middleman/middleman # https://github.com/middleman/middleman/pull/560 require 'rubygems' require 'bundler' Bundler.setup require "middleman-core/load_paths" Middleman.setup_load_paths require "middleman-core" require "middleman-core/preview_server" module Middleman::PreviewServer def self.preview_in_rack @options = { latency: 0.25 } @app = new_app start_file_watcher end end Middleman::PreviewServer.preview_in_rack run Middleman::PreviewServer.app.class.to_rack_app