blog.hekt.org

Emacs で Markdown を使う

購読しているブログで Markdown が紹介されていたので、ためしにこれでブログを書いています。

Markdown とは、シンプルなプレーンテキストで書けて、HTML に変換できるマークアップ言語です。簡単にいうと、はてな記法みたいなもんです。また、コンセプトとして “原文のままでも読みやすく” というのもあるみたいです。

文法など Markdown についての詳細は公式リソースなど他に譲るにして、僕はとりあえず Emacs で快適に Markdown を使えるようになるまでの作業ログとちょっとした tips を残しておきます。

Markdown, markdown-mode.el のインストールと簡単な使い方

$ brew install markdown
$ cd ~/.emacs.d/site-lisp
$ wget http://jblevins.org/git/markdown-mode.git/plain/markdown-mode.el
$ emacs ~/.emacs.d/init.el
;; markdown-mode
(autoload 'markdown-mode "markdown-mode.el"
  "Major mode for editing Markdonw files" t)
(setq auto-mode-alist
      (cons '("\.mdwn$" . markdown-mode) auto-mode-alist))

拡張子は、僕は .mdwn でやることにしましたが、.md とか .mdt とかもメジャーみたいです。まあなんでもいい。

  • C-c C-c m でカレントバッファを HTML に変換し新しいバッファに表示
  • C-c C-c p でカレントバッファを変換しブラウザで開く
  • C-c C-c e で変換して保存。basename.mdwn だったら basename.html として保存

というのが基本的な使い方です。この他にもアンカーを挿入したりなど便利機能あり。

不満点を強引に解決

section を使いたい

コメントに書いておいて最後にアンコメント。

<!-- <section> -->

# hoge

hogehoge

<!-- </section> -->
<!-- <section> -->

<h1>hoge</h1>

<p>hogehoge</p>

<!-- </section> -->

C-x h M-x uncomment-region RET

<section>

<h1>hoge</h1>

<p>hogehoge</p>

</section>

markdown 記法で書きつつ HTML タグに属性を付与したい

コメントで書いておいて最後に置換。

<!-- blockquote cite="http://example.com/" -->

> 引用
<!-- blockquote cite="http://example.com/" -->

<blockquote><p>引用</p></blockquote>

M-x replace-regexp RET <!-- (([a-z]+).*) --> C-q C-j C-q C-j <2> RET <1> RET

<blockquote cite="http://example.com/"><p>引用</p></blockquote>