AsciiDoc で書いたドキュメントをPDFに変換する
5868 ワード
概要
AsciiDoc で書かれたドキュメントをPDFファイルに変換するための設定についてのメモ。
環境
- Gradle:5.6
詳細
ディレクトリ構成
│
├ gradle
│ │
│ └ wrapper .. asciidoctorビルド用jar
│
├ src
│ ├ themes
│ │ │
│ │ ├ custom-theme.yml .. pdfのstyle設定用ファイル
│ │ │
│ │ └ logo.png .. ロゴ画像
│ │
│ └ index.adoc
│
├ build.gradle .. asciidoctorビルド設定ファイル
│
├ gradlew .. asciidoctorビルド実行exe(unix系統用)
│
└ gradlew.bat .. asciidoctorビルド実行exe(windows系統用)
-
src
フォルダ配下のadocがビルドされる
- pdfのstyleを設定するファイルを用意する
ビルド設定
build.gradle
buildscript {
ext {
asciiDoctorGradlePluginVersion = "1.5.7"
asciidoctorjDiagramVersion = "1.5.8"
asciidoctorjPdfVersion = "1.5.0-alpha.15"
}
repositories {
jcenter()
}
dependencies {
classpath("org.asciidoctor:asciidoctor-gradle-plugin:${asciiDoctorGradlePluginVersion}")
classpath("org.asciidoctor:asciidoctorj-diagram:${asciidoctorjDiagramVersion}")
classpath("org.asciidoctor:asciidoctorj-pdf:${asciidoctorjPdfVersion}")
}
}
apply plugin: 'org.asciidoctor.convert'
apply plugin: 'org.asciidoctor.gradle.asciidoctor'
asciidoctor {
dependsOn 'clean'
requires = ['asciidoctor-diagram'] // asciidoctor-diagram の利用設定
backends = ['html5', 'pdf'] // htmlとpdfファイルを出力する設定
sourceDir = file('src') // ビルド対象のファイルを置くフォルダ
outputDir = file('build') // ビルド後のファイルが出力されるフォルダ
separateOutputDirs = false
}
wrapper {
gradleVersion = '5.6'
}
defaultTasks 'asciidoctor'
PDFスタイル設定(custom-theme.yml)
- PDF変換時のフォントなどを指定する設定ファイルを用意する
- 詳しくは https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc を参考にする
- 元にするスタイル設定はこちらから取得する
サンプルドキュメント(index.adoc)
index.adoc
:data-uri:
:pdf-style: ./themes/custom-theme.yml
:title-logo-image: image:./themes/logo.png[]
:toc: left
:sectnums:
:chapter-label:
:toclevels: 2
:toc-title: 目次
:figure-caption: 図
= タイトル
== TEST1
=== TEST2
==== TEST3
* 設定で目次や段落を自動的に作ってくれる
* toclevelsを2にしているため2段落(x.x)までの表題で目次が作成される
==== UML
* UMLの出力テスト
:imagesdir: /build
[plantuml, test-uml]
----
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml
----
まとめ
ディレクトリ構成
│
├ gradle
│ │
│ └ wrapper .. asciidoctorビルド用jar
│
├ src
│ ├ themes
│ │ │
│ │ ├ custom-theme.yml .. pdfのstyle設定用ファイル
│ │ │
│ │ └ logo.png .. ロゴ画像
│ │
│ └ index.adoc
│
├ build.gradle .. asciidoctorビルド設定ファイル
│
├ gradlew .. asciidoctorビルド実行exe(unix系統用)
│
└ gradlew.bat .. asciidoctorビルド実行exe(windows系統用)
-
src
フォルダ配下のadocがビルドされる - pdfのstyleを設定するファイルを用意する
ビルド設定
build.gradle
buildscript {
ext {
asciiDoctorGradlePluginVersion = "1.5.7"
asciidoctorjDiagramVersion = "1.5.8"
asciidoctorjPdfVersion = "1.5.0-alpha.15"
}
repositories {
jcenter()
}
dependencies {
classpath("org.asciidoctor:asciidoctor-gradle-plugin:${asciiDoctorGradlePluginVersion}")
classpath("org.asciidoctor:asciidoctorj-diagram:${asciidoctorjDiagramVersion}")
classpath("org.asciidoctor:asciidoctorj-pdf:${asciidoctorjPdfVersion}")
}
}
apply plugin: 'org.asciidoctor.convert'
apply plugin: 'org.asciidoctor.gradle.asciidoctor'
asciidoctor {
dependsOn 'clean'
requires = ['asciidoctor-diagram'] // asciidoctor-diagram の利用設定
backends = ['html5', 'pdf'] // htmlとpdfファイルを出力する設定
sourceDir = file('src') // ビルド対象のファイルを置くフォルダ
outputDir = file('build') // ビルド後のファイルが出力されるフォルダ
separateOutputDirs = false
}
wrapper {
gradleVersion = '5.6'
}
defaultTasks 'asciidoctor'
PDFスタイル設定(custom-theme.yml)
- PDF変換時のフォントなどを指定する設定ファイルを用意する
- 詳しくは https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc を参考にする
- 元にするスタイル設定はこちらから取得する
サンプルドキュメント(index.adoc)
index.adoc
:data-uri:
:pdf-style: ./themes/custom-theme.yml
:title-logo-image: image:./themes/logo.png[]
:toc: left
:sectnums:
:chapter-label:
:toclevels: 2
:toc-title: 目次
:figure-caption: 図
= タイトル
== TEST1
=== TEST2
==== TEST3
* 設定で目次や段落を自動的に作ってくれる
* toclevelsを2にしているため2段落(x.x)までの表題で目次が作成される
==== UML
* UMLの出力テスト
:imagesdir: /build
[plantuml, test-uml]
----
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml
----
まとめ
社内でのみ運用する仕様書だとHTMLであっても問題ないが、
顧客に納品するとなるとどうしてもそういうわけにはいかなくなってくる。
そういったときにasciidoctorj-pdf
を使えばPDFに変換できるため便利だと思う。
仕様書などのドキュメントも、バージョン管理のしやすいテキストベースのもので作成できると
履歴管理などしやすいのでそうなっていけばいいなと思う。
Author And Source
この問題について(AsciiDoc で書いたドキュメントをPDFに変換する), 我々は、より多くの情報をここで見つけました https://qiita.com/nkk777dev/items/e09e980e17c15c3732fb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .