Jedit X で Markdown(とついでにPOD)
Markdownとは?
Markdownとは「軽量マークアップ言語の1つ」で、簡単な記法で書いたテキストをHTMLに変換してくれる仕組みです。Wikiや「はてな記法」みたいなものですね。
「Markdown」というものがあることは知っていたのですが、githubの「README.md」がこの方式だったので、改めて記法などを調べてみた訳です。HTMLを埋め込めるなど、マニュアル等を作るのに使いやすそうですね。
既にいろんなCMSやテキストエディタがMarkdownに対応しているそうですが、愛用のテキストエディタ「Jedit X」についての情報は見つけられなかったので、例のようにJedit Xのマクロ(=AppleScript)を作ってみました。
Markdown を Safariでプレビュー
Markdownのオリジナル版はPerlで実装されていて、以下でダウンロードできます。
http://daringfireball.net/projects/markdown/
まずはこれを入手して、「Markdown.pl」を Jedit X の「scripts」フォルダ(~/Library/Application Support/Jedit X/scripts/Markdown.pl)に入れておきます。
で、以下のようにAppleScriptを書きました。
tell document 1 of application "Jedit X" save set fPath to path as POSIX file set pPath to POSIX path of fPath set tmppath to pPath & ".preview.html" set existsflg to false tell application "Finder" set existsflg to exists file tmppath as POSIX file end tell if not existsflg then set scpt to "perl ~/Library/Application\\ Support/Jedit\\ X/scripts/Markdown.pl " & quoted form of pPath & " > " & quoted form of tmppath do shell script scpt tell application "Safari" activate open tmppath as POSIX file end tell delay 1 do shell script "rm -f " & quoted form of tmppath end if end tell
上記を「AppleScriptエディタ」にコピペして、「MarkdownをSafariでプレビュー.scpt」とかの名前で保存、Jedit Xの「スクリプトウィンドウ」に放り込めば完成です。
元のファイル名に「.preview.html」を加えたファイルをテンポラリファイルとして作ってます。無闇に上書きしてしまうとまずいので、既に同名のファイルがある場合には何もしないようにしてあります。
Safariでプレビューしますが、他のブラウザがよければ、「tell application "Safari"」のくだりをお好きなブラウザに書き換えてもらえばよいですね。ちなみに、Chrome の場合は、
tell application "Google Chrome" activate -- open tmppath as POSIX file open location "file://" & tmppath end tell
としないと開きませんでした。
ついでに POD も。PODをSafariでプレビュー
同じような軽量マークアップ言語の1つとして「POD = Plain Old Documentation」というPerlを書く人にはお馴染みの記法があります。これも同じようにできるなぁ、と思ったので作ってみました。
Mac OS X であればデフォルトで「pod2html」というコマンドが入っていますので、こちらはダウンロードとかする必要はありません。
tell document 1 of application "Jedit X" save set fPath to path as POSIX file set pPath to POSIX path of fPath set tmppath to pPath & ".preview.html" set existsflg to false tell application "Finder" set existsflg to exists file tmppath as POSIX file end tell if not existsflg then set scpt to "pod2html " & quoted form of pPath & " > " & quoted form of tmppath do shell script scpt tell application "Safari" activate open tmppath as POSIX file end tell delay 1 do shell script "rm -f " & quoted form of tmppath do shell script "rm -f ./pod2htmd.tmp" do shell script "rm -f ./pod2htmi.tmp" end if end tell
ちなみに、両方ともプレビューするだけなので出力したHTMLは消しちゃっていますが、出力するためのスクリプトも登録しておくと便利かもしれませんね。