ブログのカスタマイズまとめ for Blogger vol.1


##はじめに
私は､ブログに`Blogger`を使っています｡無料でかつ広告なしなので､お勧めです｡今回は､私が`Blogger`で使っているカスタマイズを紹介していきたいと思います｡


##投稿
`GoogleCL`を使うと`Blogger`に投稿できます｡

```shell:
sudo port install googlecl markdown
```

以下のシェルスクリプトを使うと`Markdown`でも書けます｡自動の改行タグ挿入が少し厄介だったので､それにも対応しています｡

```shell:/usr/local/bin/blogger
#!/bin/zsh
## 使い方:
## $ blogger <file>
## 1行目がタイトル, 2行目がタグ
TITLE="$(awk 'NR==1' $1)"
TAG="$(awk 'NR==2' $1)"
 
case $1 in
 
    # ファイルの拡張子がMarkdownの場合
    *.md)
 
        ## 1-2行を削除
        sed -ie 1,2d $1
 
        ## 行末に改行タグ
        sed -ie 's/$/<br\/>/g' $1
        ## 空行に改行タグ
        sed -ie 's/^$/<br\/>/g' $1
 
        ## MarkdownをHTMLに変換する
        markdown $1 > $1.html
 
        ## 改行を削除
        tr -d '\n' < $1.html > $.tmp && mv $.tmp $1.html
 
        ## bloggerに投稿
        google blogger post --blog "MBA-HACK" --title "${TITLE}" --tags "${TAG}" $1.html
 
 
        ## 投稿した内容を表示する
        cat $1.html
        # w3m $1
 
        ## ブラウザで開く
        open -a Google\ Chrome "http://mba-hack.blogspot.jp/"
        ;;
 
 
    # ファイルの拡張子がHTMLかそれ以外の場合
    *)
 
        ## 1-2行を削除
        sed -ie 1,2d $1
 
        ## 行末に改行タグ
        sed -ie 's/$/<br\/>/g' $1
        ## 空行に改行タグ
        sed -ie 's/^$/<br\/>/g' $1
        ## 改行を削除
        tr -d '\n' < $1 > $.tmp && mv $.tmp $1
 
        ## bloggerに投稿
        google blogger post --blog "MBA-HACK" --title "${TITLE}" --tags "${TAG}" $1
 
 
        ## 投稿した内容を表示する
        cat $1
        # w3m $1
 
        ## ブラウザで開く
        open -a Google\ Chrome "http://mba-hack.blogspot.jp/"
        ;;
esac
```


`MBA-HACK`と`http://mba-hack.blogspot.jp/`の箇所は､自分のブログのものに変更しましょう｡ちなみに､シェルスクリプト作成は以下のようにします｡

```shell:
echo $PATH

cd /usr/local/bin/

vim blogger

chmod +x blogger

exec $SHELL
```

##画像
`GoogleCL`を使うと画像をアップロードできます｡

```shell:
mkdir -p ~/photos/cats/

google picasa create "Cat Photos" ~/photos/cats/*.jpg
```

特定のフォルダを作っておいて､簡単にアップロードするにはエイリアスを作っておきましょう｡

```shell:
echo "alias picasa='google picasa create 'Cat Photos' ~/photos/cats/*.jpg'" >> ~/.zshrc && source ~/.zshrc
```

[Skich](http://evernote.com/intl/jp/skitch/)には便利なショートカットがあります｡これで画像を保存できます｡

`Command`+`E`

##SyntaxHighlighter
[SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/)を使うと､コードを綺麗に表示できます｡

私は以下のようにカスタマイズしています｡

```css:
/* シンタックスハイライト */
.syntaxhighlighter {
  border: 1px solid #999999; /* 枠のサイズ､形態､色 */
  /* 以下､角丸 */
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
  border-radius: 3px;
}
 
.syntaxhighlighter,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter span
{
  line-height: 1.5em !important; /* 行間調整 */
}
 
.syntaxhighlighter table td.gutter .line {
padding: 0 6px 0 13px !important;
}
 
/* タイトル */
.syntaxhighlighter table caption {
  text-align: left !important; /* 文字位置 左揃え */
  padding: 0.5em 0 0.5em 0.5em !important; /* 余白設定 上右下左の順 *
  color: #999999 !important; /* タイトル文字の色 */
  border-bottom: 2px solid #999999 !important; /* 下線のサイズと形態と色 */
  background-color: #F5F5F5 !important; /* 背景の色 */
  /* 以下､角丸 (意味ないかもしれません)*/
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
  border-radius: 3px;

/* ツールバーを非表示にする */
<script language='javascript' type='text/javascript'>
SyntaxHighlighter.defaults[&#39;toolbar&#39;] = false;
</script>
```

`HTML`は以下のように書きます｡言語とハイライト､タイトルを表示できます｡

```html:
<pre class="brush: 言語; highlight: [ハイライト]; title: 'タイトル';">ここにコードを書きます｡</pre>
```

##引用

```css:
/* 引用 */
blockquote {
position: relative;
 padding: 20px 50px;
 min-height: 20px;
 background: url(quote_start.gif) no-repeat 10px 10px #eeeeee;
 }

 blockquote:after {
position: absolute;
 bottom: 10px; right: 10px;
content: url(quote_end.gif);
}
```

`HTML`は以下のように書きます｡アップロードした画像URLを上の`quote_start.gif`と`quote_end.gif`の部分に挿入します｡画像は[こちら](http://creazy.net/2007/09/blockquote_css.html)からダウンロードするのがいいでしょう｡

```html:
<blockquote>ここに引用を書きます</blockquote>
```

##キーワード
私は､キーワードを強調するために以下の様なタグを使っています｡

```css:
/* キーワード */
span.code {
    color: #000000;
    margin: 5px;
    padding: 5px 10px;
    line-height: 2em;
    background-color:  #DCDCDC;
    border-radius: 7px;        /* CSS3草案 */
    -webkit-border-radius: 7px;    /* Safari,Google Chrome用 */
    -moz-border-radius: 7px;   /* Firefox用 */
}
 
span.code2 {
    color: #ff3399;
    margin: 5px;
    padding: 5px 10px;
    line-height: 2em;
    background-color:  #DCDCDC;
    border-radius: 7px;        /* CSS3草案 */
    -webkit-border-radius: 7px;    /* Safari,Google Chrome用 */
    -moz-border-radius: 7px;   /* Firefox用 */
}
```

`HTML`は以下のように書きます｡

```html:
<span class="code">ここにキーワードを書きます</span>
 
<span class="code2">ここにキーワードを書きます</span>
```

##テーブル
テーブルは[こちら](http://www.red-team-design.com/practical-css3-tables-with-rounded-corners)のものを使うと結構カッコイイです｡


```css:
/* テーブル */
table {
    *border-collapse: collapse; /* IE7 and lower */
    border-spacing: 0;
    width: 100%;    
}
 
.bordered {
    border: solid #ccc 1px;
    -moz-border-radius: 6px;
    -webkit-border-radius: 6px;
    border-radius: 6px;
    -webkit-box-shadow: 0 1px 1px #ccc; 
    -moz-box-shadow: 0 1px 1px #ccc; 
    box-shadow: 0 1px 1px #ccc;         
}
 
.bordered tr:hover {
    background: #fbf8e9;
    -o-transition: all 0.1s ease-in-out;
    -webkit-transition: all 0.1s ease-in-out;
    -moz-transition: all 0.1s ease-in-out;
    -ms-transition: all 0.1s ease-in-out;
    transition: all 0.1s ease-in-out;     
}    
     
.bordered td, .bordered th {
    border-left: 1px solid #ccc;
    border-top: 1px solid #ccc;
    padding: 10px;
    text-align: left;    
}
 
.bordered th {
    background-color: #dce9f9;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#ebf3fc), to(#dce9f9));
    background-image: -webkit-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:    -moz-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:     -ms-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:      -o-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:         linear-gradient(top, #ebf3fc, #dce9f9);
    -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset; 
    -moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;  
    box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;        
    border-top: none;
    text-shadow: 0 1px 0 rgba(255,255,255,.5); 
}
 
.bordered td:first-child, .bordered th:first-child {
    border-left: none;
}
 
.bordered th:first-child {
    -moz-border-radius: 6px 0 0 0;
    -webkit-border-radius: 6px 0 0 0;
    border-radius: 6px 0 0 0;
}
 
.bordered th:last-child {
    -moz-border-radius: 0 6px 0 0;
    -webkit-border-radius: 0 6px 0 0;
    border-radius: 0 6px 0 0;
}
 
.bordered th:only-child{
    -moz-border-radius: 6px 6px 0 0;
    -webkit-border-radius: 6px 6px 0 0;
    border-radius: 6px 6px 0 0;
}
 
.bordered tr:last-child td:first-child {
    -moz-border-radius: 0 0 0 6px;
    -webkit-border-radius: 0 0 0 6px;
    border-radius: 0 0 0 6px;
}
 
.bordered tr:last-child td:last-child {
    -moz-border-radius: 0 0 6px 0;
    -webkit-border-radius: 0 0 6px 0;
    border-radius: 0 0 6px 0;
}
```

`HTML`は以下のように書きます｡長くなるので途中省略します｡

```html:
<table class="bordered">
    <thead>
 
    <tr>
        <th>#</th>        
        <th>IMDB Top 10 Movies</th>
        <th>Year</th>
    </tr>
    </thead>
    <tr>
        <td>1</td>        
        <td>The Shawshank Redemption</td>
 
        <td>1994</td>
    </tr>        
    <tr>
        <td>2</td>         
        <td>The Godfather</td>
        <td>1972</td>
    </tr>
    <tr>
 
        <td>3</td>         
        <td>The Godfather: Part II</td>
        <td>1974</td>
    </tr> 
</table>
```

##Sublime Text2 : Markdown Preview

プレビューは､ `st2`を使うと便利です｡

[Download](http://www.sublimetext.com/)

[Package Control](http://wbond.net/sublime_packages/package_control)

[sublimetext-markdown-preview](https://github.com/revolunet/sublimetext-markdown-preview)

```shell:~/.vimrc
" st2で開く
nnoremap <leader>om :silent !open -a Sublime\ Text\ 2 '%:p'<cr>
```

これで､`¥om`を押すと､`st2`が起動します｡

`~/Library/Application Support/Sublime Text 2/Packages/User/Default (OSX).sublime-keymap`

```shell:
[
{ "keys": ["alt+m"], "command": "markdown_preview", "args": {"target": "browser"} }
]
```

これで､`Alt+m`を押すと､`Markdown Preview`ができます｡ただし､予め Package Control などを用いて､`Markdown Preview`のパッケージをインストールしておいてください｡