LoginSignup
8
9

More than 5 years have passed since last update.

GradleでAsciiDoc文書 with PlantUMLをPDF出力する (その1)

Posted at

前段

下記ページがとても参考になりました。

これに加えて、出力されるPDFのthemeカスタマイズに向けた環境を準備する話です。

概要

IntelliJ IDEAでPlantUMLを書くに続き、今回はマークアップ言語AsciiDocとPlantUMLを組み合わせた文書作成環境を準備します。

構成

シンプルなGradleプロジェクトです。

$ tree
.
├─build.gradle   // PDF生成のためのビルド定義をここに記述
├─docs           // 出力先
└─src
    └─docs
       └─asciidoc  // AsciiDoc(*.adoc)
           └─theme // 独自themeファイル

(Gradle Wrapperは省略)

今回作成するのは、build.gradle*.adocだけです。
独自themeはデフォルトのものをコピーして使います。

設定

build.gradle

plugins {
    id 'org.asciidoctor.convert' version '1.5.3'
}
apply plugin: 'org.asciidoctor.convert'
apply plugin: 'org.asciidoctor.gradle.asciidoctor'

dependencies {
    asciidoctor 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3'
    asciidoctor 'org.asciidoctor:asciidoctorj-diagram:1.3.1'
    asciidoctor 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.11'
}
asciidoctorj {
    version = '1.5.4'
}

asciidoctor {
    backends = ['html5', 'pdf']
    requires = ['asciidoctor-diagram']
    outputDir = file('docs')
    attributes (
            'imagesdir' : "$rootDir/docs/images",
            'toc-title' : '\u76EE\u6B21',  // 「目次」
            'numbered' : true,
            'pdf-stylesdir' : "theme",     // 独自テーマ格納ディレクトリ
            'pdf-style' : 'custom',        // テーマ名
    )
}
defaultTasks 'asciidoctor'

*.adoc

(省略)

theme

gradleプラグインasciidoctorj-pdfに同梱されているデフォルトのthemeファイルを取り出します。
まずは下記jarを展開すると...

  • $HOME/.gradle/caches/modules-2/files-2.1/org.asciidoctor.asciidoctorj-pdf/1.5.0-alpha.11/{ハッシュ値}/asciidoctorj-pdf-1.5.0-alpha.11.jar

下記場所からasciidoctor-pdfのthemeファイルが取り出せます。

  • gems/asciidoctor-pdf-1.5.0.alpha.11/data/themes/default-theme.yml

これをプロジェクトフォルダsrc/docs/asciidoc/themeに、custom-theme.ymlという名前で配置しましょう。
名前のcustomの部分はbuild.graldepdf-styleとして設定した名前です。

実行

Gradle Wrapperで実行します。

$ ./gradlew

# もしくは

$ ./gradlew asciidoctor

src/docs/asciidoc/*.adocがPDFに変換され、docs/pdfに出力されます。

その他

  • 日本語ファイル名のadocは、PDF化するとファイル名が文字化けしてしまいました。
  • IntelliJを、AsciiDocとPlantUMLのエディタとして使っています。文書作成からPDF生成(Gradle実行)までこの中で実現できるので中々快適です。
  • 今後はthemeファイルのカスタマイズを進めていきます。

参考

8
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
8
9