ブログのポストや普段のメモ書きはMarkdownで書いています。プロセッサにはテーブルや定義リストといった拡張文法を持つPHP Markdown Extraを使っていて、Wordpressのプラグインディレクトリに放り込みつつ、以下のように変更したものを手元でも使っています。
--- markdown.org.php 2008-01-20 17:15:08.000000000 +0900 +++ markdown.php 2008-01-20 17:16:21.000000000 +0900 @@ -1,3 +1,4 @@ +#!/usr/bin/env php <?php # # Markdown Extra - A text-to-HTML conversion tool for web writers @@ -2633,4 +2634,11 @@ software, even if advised of the possibility of such damage. */ -?> \ No newline at end of file + +if ($argc < 2) { + $src = 'php://stdin'; +} else { + $src = $argv[1]; +} +echo Markdown(file_get_contents($src)); +?>
実際に、ローカルのテキストファイルをHTML化する時には以下のような関数を使ってEmacsから呼び出しています。
;; リージョンの内容をMarkdownExtraで変換する関数 (defun markdown-region (from to) (interactive "r") (if (> from to) (rotatef from to)) (let ((buffer-output (get-buffer-create "*markdown*"))) (with-current-buffer buffer-output (erase-buffer)) (call-process-region from to "markdown.php" nil buffer-output nil) (switch-to-buffer-other-window buffer-output)))
このままでも結構満足していたのですが、昨日になってEmacs markdown-modeという素晴らしいものを見つけてしまいました。
markdown-modeは、Markdownで書かれたテキストのSyntax Highlightingとhtml-helper-modeライクなキーバインドでのマークアップを支援してくれ、ブラウザでのプレビュー(C-c C-c p)やバッファ内容のHTML化(C-c C-c m)もできる優れもの。.emacsでは以下のように書いて、変換に使用するコマンドを指定しています。
;; markdown-mode ;; http://jblevins.org/projects/markdown-mode/ (autoload 'markdown-mode "markdown-mode.el" "Major mode for editing Markdown files" t) (setq auto-mode-alist (cons '("\\.mdml$" . markdown-mode) auto-mode-alist)) ;; markdown-modeで利用するコマンド (setq markdown-command "markdown.php")
markdown-modeにはリージョンの内容をHTML化する機能はなさそうなので前述のmarkdown-regionも併用していますが、これでかなり便利になりました。




