(ツール紹介)Markdown記法をはてな記法に変換するツール
最近、ちょっとした文書をMarkdownでドキュメントを書くことが多いです。
しかし、このブログ(技術的な話専用)がはてなダイアリーなので、
うっかりドキュメントをMarkdownで書いてしまうと、はてな記法への書き換えが若干面倒でした。
ググったところ、はてな記法に変換するツールをMarkdownに変換してくれるツールを見つけましたが、
コンパイル方法について記述が無かったので、ここで補足しておきます。
markdown2hatena (joker1007 さん作)
Haskellを使ってmarkdownをパースしてはてな記法に変換する
続・Haskellを使ってmarkdownをパースしてはてな記法に変換する
というわけで、現在対応しているのは以下の記法。
頭に#をつけるタイプの見出し記法。見出しレベル対応。
順序無しリスト(スペース4つ、もしくはタブ1つで1レベルインデント)
順序付きリスト(スペース4つ、もしくはタブ1つで1レベルインデント)
ノーマルなパラグラフ
見出し、リスト、パラグラフ中に存在するリンク記法
今後のToDo
コードブロック対応
引用ブロック対応
画像貼りつけ対応
今後に期待です。
コンパイル方法
必要なもの
- 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を組み合わせると、色々な記法をはてな記法に変換出来ます(詳細は省きますが、リダイレクションを使うと綺麗に書けると思います)。