10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Cacooの図をAPIで取得してAsciiDoc文書に埋め込むasciidoctor-diagram-cacooを作った

Posted at

はじめに

AsciiDocの文書内にCacooで作った図を埋め込みたい、しかもいちいちPNGにエクスポートしてローカルに保存しなくてもAPIで画像を取得して埋め込みたい、ということで
asciidoctor-diagramというasciidoctorのエクステンションのエクステンションhnakamur/asciidoctor-diagram-cacooを作成しました。

RubyGems.orgにもasciidoctor-diagram-cacooとして公開済みですので、Gemfileに以下のように書けば利用可能です。

gem "asciidoctor-diagram-cacoo"

サンプル文書

asciidoctor-diagram-cacooを利用したサンプル文書用のプロジェクトhnakamur/asciidoctor-diagram-cacoo-example
も作りました。

日本語入りのPDFのサンプルは
https://hnakamur.github.io/asciidoctor-diagram-cacoo-example/sample-ja.pdf です。

ローカルで試すための手順

予めRubyとJavaとVLゴシックフォントをインストール

asciidoctorはRubyで、asciidoctor-fopubはJavaで書かれていますので、事前にインストールしておいてください。

また、日本語フォントとしてVLゴシックフォントを使用しますので、VL Gothic Font Familyからダウンロードしてインストールしてください。GoogleのNoto Sans Japaneseフォントも使いたいのですが、asciidoctor-fopubがTrueTypeフォントはサポートしていますがOpenTypeフォントはサポートしていないので使えません。

OSXでAnsibleをお使いであれば、hnakamur/macbook_setupを使えばまとめてセットアップすることが出来ます(ただし、他にもいろいろセットアップされます)。

サンプル文書のプロジェクトをgitでローカルに取得

git clone https://github.com/hnakamur/asciidoctor-diagram-cacoo-example
cd asciidoctor-diagram-cacoo-example

APIキーの設定

事前にCacooにログインしてアカウントの設定ページのAPIキータブでAPIキーを発行して、環境変数CACOO_API_KEYに設定しておいてください。

export CACOO_API_KEY=_Your_Cacoo_API_Key_Here_

zimbatm/direnvをお使いの場合は、上記の内容を.envrcというファイルに保存しておいて、以下のコマンドを実行することで、.envrcのファイルが存在するディレクトリにcdしたら自動的に環境変数 CACOO_API_KEY が設定されます。

direnv allow .

direnvは hnakamur/macbook_setupのプレーブックを使えば簡単にセットアップできます。

bundlerでgemをインストール

bundle install --path vendor/bundle --binstubs vendor/bin

PDFファイル作成

以下のコマンドを実行すると*.adocファイルに対応して*.pdfファイルが生成され、openコマンドによってプレビュー.appで*.pdfファイルを開きます。

bundle exec rake pdf

ファイルウォッチモード

以下のコマンドを実行すると*.adocファイルを編集して保存する度に*.pdfファイルが生成されプレビュー.appで開きます。

bundle exec rake watch
10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?