読者です 読者をやめる 読者になる 読者になる
月 の 上

Markdown→はてな記法変換ツール『md2hatena』を作った

Atomで変換する様子

github.com

Markdownで書いてしまった文章を増田に投稿したい方など、どうぞご利用ください。
ライセンスはMIT, テストカバレッジは C0 100% です。

インストール方法

$ npm install --global md2hatena

使い方

ターミナルから利用できます。

$ md2hatena foo.md > foo.hatena

拙作のAtomはてな記法モード language-hatena をインストールすると、コマンドパレットから実行することもできます。
(冒頭の画像)

Atomで変換する様子

JS用のライブラリとしても使えます。

import fs from 'fs';
import { md2hatena } from 'md2hatena';

const md = fs.readFileSync('foo.md', 'utf8');
md2hatena(md).then((hatena) => {
  console.log(hatena);
})

作ったメモ

今回は remark, meow といったツールを利用しました。

remark: Markdownパーサー

github.com

remark はMarkdown文字列をパースしたり処理するためのツールです。
内部的には remark-parseremark-stringify といったモジュールで構成されています。

今回は remark-parse を利用して Markdown文字列の AST (構文木) を取得し、node毎にはてな記法に変換しています。
ASTの仕様は syntax-tree/mdast というレポジトリにまとめられています。

Markdown で遊びたい人は使ってみると良いでしょう。

meow: CLIフレームワーク

github.com

CLI ツールを開発するときは、コマンドライン引数やオプションを扱うためのライブラリをよく使います。
Node.js だと minimist が一番有名です。

meow は minimist のラッパーです。
--help--version オプションを渡した自動で追加してくれます。
今回開発した md2hatena のような、単純な用途にはピッタリだと思います。


次回はAtomはてな記法モード language-hatena の紹介記事を書きます。
よろしく〜