やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

AsciiDocでCSVファイルをincludeしてテーブルを書いてみた

なんと外部ファイルから取り込める。

成果物

GitHubAsciiDoctor.Table.Include.201705092042

開発環境

前回まで

参考

Asciidoctor User Manual

CSVをインクルード

ファイル構成

  • ./
    • test.asc
    • WebServices.csv

ファイル

test.asc

[format="csv", options="header, autowidth"]
|====
include::WebServices.csv[]
|====
[options="header, autowidth"]
,====
include::WebServices.csv[]
,====

ファイル名の後ろにある[]は冗長だが必要。[lines=1..3]とすれば1〜3行目のみ取り込める。

WebServices.csv

Name,URL,Group
https://www.google.co.jp/[Google],https://www.google.co.jp/,portal
Yahoo,https://www.yahoo.co.jp/,portal
GitHub,https://github.com/,Hosting.SourceCode

HTML作成

$ rbenv exec asciidoctor test.asc 

test.htmlが生成される。

ブラウザ表示

f:id:ytyaru:20170509200246p:plain

AsciiDoc形式のリンクも認識するらしい。そんなのCSV形式ファイルにしないと思うけども。

f:id:ytyaru:20170509204739p:plain

1〜3行目だけ取り込んだ。

欲しかった機能

  • TSV形式の対応
  • ある列のデータからタグを作る機能
    • 今回の例ではName列をtext, URL列をhrefの値にしたaタグを作りたい
      • URL列は非表示にしたい

所感

外部ファイル化は非常にありがたい機能。include機能だけでもAsciiDocを使いたくなる。しかしTSVが使えなかったり記述が冗長だったりするのが残念。