Markdown Here 軽量マークアップ言語でBloggerに投稿

Bloggerに、コードスニペットなど簡単きれいに投稿する方法を調べてみた。
ブラウザのプラグインを利用し、軽量マークアップ言語の “Markdown” で文章を書く。
2014/10/23追記:
現在利用している Markdown Here のCSS設定をpastebin.comへアップ

1. 軽量マークアップ言語って?

文字修飾するための シンプルな文法
文法が工夫されていて、①書きやすく、②読みやすく、③元の文章から最終イメージを想像しやすい。
例えば、~~打ち消し~~ と書くと、打ち消し と表示される、など。

軽量マークアップの方言いろいろ比較

2. 軽量マークアップ言語: Markdown

マークアップには様々な流儀があるが、その中で、ここ数年よく見かけるようになったのが Markdown という書き方。
たとえば、GitHubのGitHub Flavored Markdown (GFM) とか。はてなブログとか。Qiitaとか。みんな、Markdown を味付けした感じの書き方になっている。
Markdownは、センスの良い文法とOSSのお陰で、デファクト化しつつあるのかな?

様々なMarkdownの実装

  • Markdown Wiki
    MarkdownによるWikiサービス、色々なプログラム言語でのMarkdown実装一覧もあり

3. Markdownでの投稿方法は?

つまるところ、Markdown文法で書かれたプレーンテキストから、HTML+CSS を生成する変換ソフトウェアを使って、投稿することになる。
この変換ソフトウェアを どこに導入して使うかで、使用感が違ってくる。
この記事を書いている時点で、4つの方法がある模様。
  1. Markdownを組み込んだブログサービスを利用
    Qiita、GitHub、Stack Overflow、はてなブログなど
  2. Markdownを組み込んだテキスト変換サービス(クラウドツール)を利用
    StackEditや、Online Markdown Editorなど
  3. ブログのテンプレートに、ウィジェットなどでMarkdownを組み込んで利用
    Pagedowngoogle-code-prettifyなどを組み込む
  4. ブラウザのプラグインにMarkdownを組み込んで利用
    Markdown Here
それぞれ長短あるが、もっとも楽で便利なのは、1. の「Markdown対応ブログ」を使うこと。
しかし、Markdown対応ブログは記事の著作権の扱いが微妙だったり、今回は Blogger 前提にもしているので、4. ブラウザのプラグインを試してみた。

4. Markdown Hereの紹介

Markdown Hereは、ChromeやFirefoxなどのブラウザプラグインで、Markdownテキストを簡単にHTMLへ変換してくれるソフトウェア。

特長

  • 様々な言語のコードスニペットに対する構文強調表示に対応
  • CSSをわりと簡単に調整できる
  • Texによる数式イメージの挿入も可能 ※既定ではプライバシーに配慮してDisableです
  • Blogger、gmail、Evernote(Web版)などで使える。
Markdown HereのGitHub Wikiページに対応環境の情報がある。

5. Install 方法

とっても簡単。
Chromeでは、Chromeウェブストアにて
 ① “Markdown Here”を検索
 ② “拡張機能”を選んで絞込み
 ③ インストール

以上でおわり。
インストール前から開いていたBloggerやGmailのタブがあれば、プラグインを有効化するのに、一旦タブを閉じて開き直す必要あり。

6. 使い方

これも、とっても簡単。
  • いつもどおり、BloggerやGmailで文章を書いたら、Ctrl-Alt-M を押下。
  • 見出しやテーブル、コードスニペットなどが、美しく整形表示される。
  • 再度編集するときは、再びCtrl-Alt-Mでテキストに戻してから、編集する。
なお、Ctrl-Alt-Mの代わりに、右クリックメニューの「Markdownを有効化/無効化」でもよい。

7. Markdown Hereの文法 - Grammar

Markdown自体の文法の解説は、すでに豊富な日本語リソースがあるので、Markdown Hereに関する2つのリンクだけ参考に掲載する。

8. 細かな設定 - Tuning

Chromeの右上にアイコンが追加されているので、右クリックして “オプション”を選べば、細かな設定を変更できる。

Chrome自体の設定画面から、”拡張機能”を選んで、Markdown Hereの “オプション” リンクをクリックしても同じ。
例えば…
  • コード表示用のCSSテーマの選択、CSSの調整
  • Texによる数式入力のON/OFF
    ONにすると chart.googleapis.com に数式を送信し画像変換している(URLは変更可)
  • ショートカットを Ctrl-Alt-M 以外に変k脳
試しに、コード表示用のCSSテーマを変更してみる。
まず、Googlecode を選んだあと、①コード表示部分の背景を white から #F0F0F0 へ少し暗くしてみると、②直ちにプレビューに反映されるのがわかる。

反映後:

9. Blogger利用でのTips

9.1. h1ヘッダーは使わない

Markdownの “========” や “#” により h1 ヘッダーを作るのは避ける。
理由は、BloggerのCSSでは、普通、h1を投稿タイトル、h2以降を投稿内の見出しに使っているから。
投稿内で h1 ヘッダーを使うと、見た目や、HTMLの構造がよろしくない。

9.2. CSSの干渉を避ける

Markdownの「スタイリングCSS」設定は、シンプルなCSSにしておくのが良い。
Markdownの「スタイリングCSS」設定は、最終的に element の style attribute によって、インラインで埋め込まれる。例えば…
h1 {
  text-align: center;
}
と書くと <h1 style="text-align:center;">some title</h1> といった感じのHTMLが生成される。
Bloggerでは、BloggerテンプレートにもCSSを持っているから、MarkdownのCSSで部分的に上書きされて、最終的な見た目が思った通りならない可能性が高い。
Chromeなら、右クリックメニューの「要素を検証」で、BloggerテンプレートとMarkdownのstyle attributeの干渉を確認するなどして、適宜、直すと良い。

9.3. Markdown Here スタイル変更後の反映手続き

Markdown Here は、記事にその場でHTMLを生成するので、設定を変更したからといって、自動で過去の記事の見た目が変わるわけではない。
Markdown Hereの設定変更を過去の記事に反映するには、一度、その記事の編集画面から、Ctrl-Alt-Mでプレーンテキストに戻し、再度、Ctrl-Alt-MでHTMLを生成し直す必要がある。
ここは不便だけれど、仕組み的な限界。

9.4. 見た目が乱れた場合

まれに、正しくマークアップできなくなる場合がある。何かのバグを踏んでいるようにも思うが、以下のようにすると直る模様。
  1. 投稿のテキスト編集画面で、Markdownのプレーンテキストに戻す(Ctrl-Alt-M)
  2. Markdownのプレーンテキストすべてを、クリップボードへ切り取り(Ctrl-X)
  3. テキスト編集画面と、HTML編集画面の両方が、空になっていることを確認
  4. テキスト編集画面で、プレーンテキストとしてMarkdownテキストを貼り付ける(Ctrl-Shift-V)
  5. テキスト編集画面で、HTMLへ戻す(Ctrl-Atl-M)
ただし、投稿画面の上部にあるツールバー(↓)を使って編集していた場合、その内容は失われるので注意。

9.5. ページ内アンカーの利用

2014-05-17 バージョン v2.11.0のMarkdown Hereでは、ヘッダーアンカーは、Bloggerでは正しく動かない。HTMLを見ると、記事へのPermlinkではなく、編集ページのURLをベースにアンカー付けてしまっている様子。
例えば、以下の様なアンカーを自動設置したいとする。
<a href="#Sample-title">Jump</a>
もしくは
<a href="http://kimama-eng.blogspot.jp/2014/08/centos-65-gcc48.html#Sample-title">Jump</a>
しかし、Markdownで [Jump](#Sample-title) と書いて、投稿を公開すると、以下のような HTMLになってしまう。
<a href="https://www.blogger.com/blogger.g?blogID=(途中省略)#Anchor-sample"></a>
Markdown Hereの「その他の先進的な設定」にある ヘッダーにアンカーリンクを自動で設定する も同様の動作となる。残念だけれど、この機能は、しばらく利用できなさそう。

いずれにしても、とっても便利なソフトウェアを公開してくれた Adam Pritchard,さんに感謝!

コメントを投稿