markdown2hatenaをインストール

(ツール紹介)Markdown記法をはてな記法に変換するツール - 雲行きそらゆきココロイキ
を使いたいので先ほどHaskellをインストールしました。バージョンは以下の通り。

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3

次はmarkdown2hatenaをインストール。

$ git clone https://github.com/joker1007/markdown2hatena.git
Cloning into 'markdown2hatena'...
remote: Reusing existing pack: 69, done.
remote: Total 69 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (69/69), done.
Checking connectivity... done.
$ cd markdown2hatena/
$ ghc -o markdown2hatena main.hs

main.hs:12:8:
    Could not find module `System'
    It is a member of the hidden package `haskell98-2.0.0.2'.
    Use -v to see a list of the files searched for.

エラーが出ました。

エディタでmain.hsを開き、一番上の import System をコメントアウトして

-- import System

に変えます。
(ツール紹介)Markdown記法をはてな記法に変換するツール - 雲行きそらゆきココロイキ

に従って修正します。

$ ghc -o markdown2hatena main.hs
[1 of 4] Compiling Node             ( Node.hs, Node.o )
[2 of 4] Compiling Trim             ( Trim.hs, Trim.o )
[3 of 4] Compiling LineParser       ( LineParser.hs, LineParser.o )
[4 of 4] Compiling Main             ( main.hs, main.o )
Linking markdown2hatena ...
$ ls -l
total 5808
-rw-r--r--  1 riocampos  staff     1679  6 25 18:09 LineParser.hi
-rw-r--r--  1 riocampos  staff     1210  6 25 18:07 LineParser.hs
-rw-r--r--  1 riocampos  staff     8212  6 25 18:09 LineParser.o
-rw-r--r--  1 riocampos  staff     1617  6 25 18:09 Node.hi
-rw-r--r--@ 1 riocampos  staff     1979  6 25 18:08 Node.hs
-rw-r--r--  1 riocampos  staff    39864  6 25 18:09 Node.o
-rw-r--r--  1 riocampos  staff      743  6 25 18:09 Trim.hi
-rw-r--r--  1 riocampos  staff      579  6 25 18:07 Trim.hs
-rw-r--r--  1 riocampos  staff     3172  6 25 18:09 Trim.o
-rw-r--r--  1 riocampos  staff     1878  6 25 18:09 main.hi
-rw-r--r--@ 1 riocampos  staff     3561  6 25 18:09 main.hs
-rw-r--r--  1 riocampos  staff    41084  6 25 18:09 main.o
-rwxr-xr-x  1 riocampos  staff  2829088  6 25 18:09 markdown2hatena
-rw-r--r--  1 riocampos  staff      576  6 25 18:07 sample.markdown

結局、目的のmarkdownファイルの変換ができませんでしたorz

現在対応しているのは以下の記法。

  • 頭に#をつけるタイプの見出し記法。見出しレベル対応。
  • 順序無しリスト(スペース4つ、もしくはタブ1つで1レベルインデント)
  • 順序付きリスト(スペース4つ、もしくはタブ1つで1レベルインデント)
  • ノーマルなパラグラフ
  • 見出し、リスト、パラグラフ中に存在するリンク記法

今後のToDo

  • コードブロック対応
  • 引用ブロック対応
  • 画像貼りつけ対応

続・Haskellを使ってmarkdownをパースしてはてな記法に変換する - joker1007の日記

ですもんね…。
markdown2hatenaの作者が参考にした

を持っているので、改良するかもしれませんし、Rubyで別スクリプトを作るかも知れません*1

*1:作るとは言っていない^^;;