読者です 読者をやめる 読者になる 読者になる

意識の高いLISPマシン

藤原惟/すかいゆき(@sky_y)の技術用ブログ

(ツール紹介)Markdown記法をはてな記法に変換するツール

Lifehack Documentation Programming

最近、ちょっとした文書をMarkdownでドキュメントを書くことが多いです。
しかし、このブログ(技術的な話専用)がはてなダイアリーなので、
うっかりドキュメントをMarkdownで書いてしまうと、はてな記法への書き換えが若干面倒でした。


ググったところ、はてな記法に変換するツールをMarkdownに変換してくれるツールを見つけましたが、
コンパイル方法について記述が無かったので、ここで補足しておきます。

markdown2hatena (joker1007 さん作)

Haskellを使ってmarkdownをパースしてはてな記法に変換する

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

というわけで、現在対応しているのは以下の記法。


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

今後のToDo


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

今後に期待です。

ソースコード

joker1007/markdown2hatena · GitHub


Haskellソースコードしかないので、自分でコンパイルする必要があります。

コンパイル方法

必要なもの
  • Haskellコンパイラ GHC
    • Haskell Platformというパッケージでインストールすることをおすすめします。一緒にパッケージマネージャなんかもインストールしてくれます。
  • Git
  • お好みで、Haskellに対応したエディタ
手順

1. 端末上で適当なディレクトリに移り、上記GitHubサイトからgit cloneします。

$ git clone https://github.com/joker1007/markdown2hatena.git

2. markdown2hatenaディレクトリに移ります:

$ cd markdown2hatena 

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

-- import System

に変えます。

  • 新しいGHCコンパイラではimportする必要ないらしく、付けるとエラーになります。

4.

$ ghc -o markdown2hatena main.hs

とすると、コンパイルして"markdown2hatena"という実行ファイルを吐き出してくれます(実行ファイルの名前はお好みで)。
5. 下記の「使い方」を試してOKだったら、PATHの通っているディレクトリに実行ファイルを置いて完了。

使い方

Markdown形式のファイルを標準入力に流し込みます。

$ ./markdown2hatena < sample.markdown
*見出し1


パラグラフ1
パラグラフ1
パラグラフ1


パラグラフ2
パラグラフ2
パラグラフ2


パラグラフ3
-Red
-Green
--Green
-Blue
--Blue
---Blue
パラグラフ3


**見出し2
パラグラフ1
  ## パラグラフ1


+White
+Silver
++Black
+White


"ダブルクォート"
テキスト[http://www.google.com/:title=リンク] テキスト
[http://www.yahoo.com/:title=リンク]


***[http://www.google.com/:title=リンク]
-[http://www.yahoo.com/:title=リンク]
-[http://www.yahoo.com/:title=リンク]
-[http://www.yahoo.com/:title=リンク]

ファイルに書き込む場合は下記の通りにします(はてな記法の拡張子は適当)。

$ ./markdown2hatena < sample.markdown > sample.hatena

便利な使い方

似たようなツールでPandocというのがあります。


Pandoc can convert documents in markdown, reStructuredText, textile, HTML, DocBook, or LaTeX to


HTML formats: XHTML, HTML5, and HTML slide shows using Slidy, Slideous, S5, or DZSlides.
Word processor formats: Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML
Ebooks: EPUB
Documentation formats: DocBook, GNU TexInfo, Groff man pages
TeX formats: LaTeX, ConTeXt, LaTeX Beamer slides
PDF via LaTeX
Lightweight markup formats: Markdown, reStructuredText, AsciiDoc, MediaWiki markup, Emacs Org-Mode, Textile


これと上述のmarkdown2hatenaを組み合わせると、色々な記法をはてな記法に変換出来ます(詳細は省きますが、リダイレクションを使うと綺麗に書けると思います)。