Hatena::ブログ(Diary)

makogの日記 RSSフィード

2011-08-15

[][] 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は消しちゃっていますが、出力するためのスクリプトも登録しておくと便利かもしれませんね。