mdtsql v0.0.3

Posted on:

mdtsql v0.0.3をリリースしました

mdtsql v0.0.3をリリースしました。 Markdown テーブルに対してSQLを実行できるツールです。

README.mdやGitHubのWikiなどで、Markdownのテーブルを書くことがありますが、ドキュメント翻訳担当リスト14.0のようにテーブルが大きくなる場合に手で編集するのも大変ですが、探し出したり、集計したり、更新したり、といった作業が面倒になることがあります。

そこでtrdsqlのモジュールを使って、Markdown Tableに対してもSQLを実行できるようにしました。

trdsqlは既に様々なフォーマットに対して実行できるようになっているため、Markdownを追加しても良いわけですが、一緒にするにはMarkdown用のオプションが必要になるのもどうかと思って、別にしてあります。

mdtsqlはMarkdownファイルに対して実行すると解析してテーブルがあればテーブル情報を表示します。markdownにテーブルは複数含むことができるため、Markdown内のテーブルを指定するテーブル名をここで得ます。

「ドキュメント翻訳担当リスト13.1.md」というファイルに実行してみます。

$ mdtsql ドキュメント翻訳担当リスト13.1.md
Table Name: [ドキュメント翻訳担当リスト13.1]
+-------------+------+
| column name | type |
+-------------+------+
| ファイル名  | text |
| 担当者      | text |
| 進捗        | text |
| 備考        | text |
+-------------+------+

Table Name: [ドキュメント翻訳担当リスト13.1_2]
+------------------------+------+
|      column name       | type |
+------------------------+------+
| お名前                 | text |
| マニュアルへの表記     | text |
| マニュアルへの記載可否 | text |
| 主な貢献内容           | text |
+------------------------+------+

テーブル名がわかったら、-q SQL文でSQLを実行できます。

$ mdtsql -q "SELECT 担当者,count(担当者) FROM \"ドキュメント翻訳担当リスト13.1\" GROUP BY 担当者" ドキュメント翻訳担当リスト13.1.md
担当者count(担当者)
-36
分割して進行中1
北山6
小泉120
斉藤23
星合3
橋本3
田中1
田中ひ5
石井5
高塚6

と担当したファイル数を集計できます。

mdtsql自体はちょっと前に作ってましたが、今回Markdown parserをgoldmarkに変更したことで、更新しやすくなったため新しい版を出しました。

今後の改良がしやすくなったのではないかと思います。