niszetの日記

細かい情報を載せていくブログ

asciidoctor出力結果のチェックのために環境を整える

先人がいるのはありがたいことです。

asciidoc/asciidoctor形式の出力ファイルを見るために、指定したツールで正しくレンダリングされるかどうかが判断基準になるため、環境を作っていました。以下はメモ。

環境そのものは下記のブログの記事を参考に入れました(そのリンク先のrubyのインストールも)

ai-gaminglife.hatenablog.com

qiita.com

ただし、rubyのインストールはこのまま実行すると以下のようなメッセージ(抜粋)が出る。

Note, selecting 'libreadline-dev' instead of 'libreadline6-dev'
E: Unable to locate package libgdbm3

上は無視しても良かったが、下はエラーになるので、インストールする一覧からlibgdbm3を削除して再実行して問題なくインストールが進んだ。

rubyのバージョンは一覧中で最も新しかった2.7.2とした。

手元にあるサンプルのadocに不備があるのか、pdf化はうまくいかなかったのだが、最低限まで削除してたら出力は出来た。

しかし、以下のようにエラーメッセージがでて、 --traceつければ何かわかるかなと思ったら内部のエラー状況を出してくるだけで入力ファイルの何が問題なのかはsuggestしてくれないので意味がなかった。どうするのが良いのだろうか?

asciidoctor-pdf -r asciidoctor-pdf-cjk test.adoc
Prawn::Errors::CannotFit
  Use --trace for backtrace

pdf出力できたが、しかし日本語が出力できない。調べるとフォントの問題だったので調べたところ下記の記事の対応で出来そうだった。

qiita.com

ただし、私はrbenvを使用してasciidoctorをインストールしているのでどこにdefault-theme.ymlがあるのかわからなかった。結果としては下記にあった。

/home/niszet/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/asciidoctor-pdf-1.5.3/data/themes/default-theme.yml  

これに追記して、日本語出力が出来た。

なお、調べたかったのは改ページの<<<の扱いで、html出力の場合は無視され、pdf出力場合は正しく改ページがされているようであった。Pandocとしては別にasciidocの先がpdfかhtmlかは気にしないので一律挿入でよさそうだなという見解。

フォント周りはまだ色々ありそうなんだけど面倒くさいので必要になるまで放置。

rubyのインストールは結構時間がかかったのだが、progress bar表示とかしてくれるといいなぁ。動いているのか止まっているのか不安になりますね。

html出力は

asciidoctor  test.adoc -r asciidoctor-diagram -a allow-uri-read -a data-uri -a toc=left

できれいに出力されたので特に深追いをしていない。pdf化出来なかったadocがhtmlは出力できたので、何かキラーパターン的なモノがあるのかもしれない。いずれまた調べるかもしれない。