markdown_section_numberingに続いて単発のテキスト変換gemを作ってRubygemsで公開した。
今回作ったのはコンマ区切りで書いたテキストをマークダウン形式のテーブルに変換するメソッドを提供するモジュールで、基本的には自分がAutomator経由で呼び出すことを想定している。
ブログや資料をMarkdown形式で書くことが多いんだけど、これまではMarkdown Tables generatorを使っていた。このサイトはこのサイトでかなり素晴らしいが、どうせならエディタ内で簡単に済ませたい。Markdownのテーブルは人間が手作業で書けるものではないので人間でも書きやすいCSV形式を取ることにした。
リンク
使いかた
READMEからそのまんま持ってきた。
基本
require "csvtomd"
csv = <<CSV
head1, head2, head3, head4
line1-1, line1-2, line1-3, line1-4
line2-1, line2-2, line2-3, line2-4
line3-1, line3-2, line3-3, line3-4
CSV
puts CsvToMd.convert(csv)
上のコードで次の出力が得られる。
|head1|head2|head3|head4|
|---|---|---|---|
|line1-1|line1-2|line1-3|line1-4|
|line2-1|line2-2|line2-3|line2-4|
|line3-1|line3-2|line3-3|line3-4|
実際に表にしてみるとこんな感じ。
head1 | head2 | head3 | head4 |
---|---|---|---|
line1-1 | line1-2 | line1-3 | line1-4 |
line2-1 | line2-2 | line2-3 | line2-4 |
line3-1 | line3-2 | line3-3 | line3-4 |
応用
空のセルがあっても大丈夫。勝手に補うようにしている。
require "csvtomd"
csv = <<CSV
, , , head,
, ,
,
CSV
puts CsvToMd.convert(csv)
上のコードではこんな出力になる。
||||head||
|---|---|---|---|---|
||||||
||||||
スカスカの表になる。
head | ||||
---|---|---|---|---|
※はてなブログではMarkdownの解釈が若干異なるようで5列目が潰れてしまっているが、KobitoやGitHubでは空の5列目はそのまま残って表示される。
Automatorと連携
このあたりに同じようなことが書いてあるので参考にしてもらえると良いっす。
マークダウンに見出し番号をつけるRuby Gem書いた - ぴよログ テキスト欄に書いたRubyのコードをAutomatorで評価する - ぴよログ
- CSVを書く
- 選択する
- 設定したショートカットキー
- Markdown形式に置き換えられる
Markdown生活がまた便利になった。