-
Notifications
You must be signed in to change notification settings - Fork 7
/
build.gradle
136 lines (127 loc) · 4.34 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
plugins {
id 'org.asciidoctor.jvm.convert' version '3.3.2'
id 'org.asciidoctor.jvm.pdf' version '3.3.2'
id 'org.asciidoctor.jvm.gems' version '3.3.2'
}
repositories {
mavenCentral()
ruby.gems()
}
dependencies {
asciidoctorGems files('gradle/repos/gem/prawn_svg_font_patch-0.1.0.gem')
// only asciidoctor-pdf 1.5.3 - 1.6.2
asciidoctorGems files('gradle/repos/gem/asciidoctor-nabetani-0.1.4-ruby25-patched.gem')
// for another asciidoctor-pdf version
// asciidoctorGems 'rubygems:asciidoctor-pdf-linewrap-ja:0.7.1'
}
asciidoctor {
dependsOn asciidoctorGemsPrepare
baseDir file('src/docs/asciidoc')
sources {
include 'index.adoc'
}
resources {
from('src/docs/asciidoc') {
include 'Chapter*/images/*'
}
}
asciidoctorj {
attributes 'stylesdir': '@style',
'stylesheet': 'asciidoctor.css'
}
}
asciidoctorPdf {
dependsOn asciidoctorGemsPrepare
baseDir file('src/docs/asciidoc')
fontsDir file('src/docs/asciidoc/@font')
sources {
include 'index.adoc'
}
asciidoctorj {
attributes 'pdf-themesdir': "@style",
'pdf-theme': 'pdf-theme.yml'
// When using the asciidoctor-pdf standard ward-wrap
//, 'scripts': 'cjk'
}
}
asciidoctorj {
version = '2.5.6'
modules {
diagram.use()
diagram.version '2.2.8'
// If asciidoctor-nabetani is used,
// asciidoctor-pdf must be specified as 1.5.3 - 1.6.2.
pdf.version '1.6.2'
}
requires = [
'asciidoctor-diagram',
'prawn_svg_font_patch',
// only asciidoctor-pdf 1.5.3 - 1.6.2
'asciidoctor/nabetani',
// for another asciidoctor-pdf version
// 'asciidoctor-pdf-linewrap-ja',
]
attributes 'source-highlighter': 'rouge'
}
/**
* docs/ 配下のファイル及びディレクトリを全て削除するタスク
*/
tasks.register('cleanDocs', Delete) {
group 'documentation'
description 'Task to delete all files and directories under docs/'
// docs/ ディレクトリは残しその配下のファイルとディレクトリを全て削除
delete file('docs/').listFiles()
}
/**
* Asciidoc 文章とファイルシステムの画像の整合性を確認するユーティリティタスク
*
* src/docs/asciidoc 内の未使用画像と .adoc からのリンク切れ画像の一覧を出力する。
* 処理は一覧の表示のみで未使用画像ファイルの削除は行わない。
* また .adoc からのリンク切れもエラー終了しない。
* ./gradlew -q checkSyncImage
*
* @see buildSrc/src/main/groovy/SyncImageTask.groovy
*/
tasks.register('checkSyncImage', SyncImageTask) {
group 'documentation'
description 'Utility to check the consistency of Asciidoc text and file system images'
// 起点の文書ディレクトリ
baseDir = file('src/docs/asciidoc')
// 起点の Asciidoc 文書(include を辿る)
index = 'index.adoc'
// ファイルシステム上で画像として認識する拡張子
// 文書内で image:: として使われているファイル全ての拡張子を設定すること
imageExt = ['png', 'jpg', 'jpeg', 'svg']
}
/**
* PDF 文書のメタデータを確認するユーティリティタスク
*
* ./gradlew -q checkPdfInfo
*
* @see buildSrc/src/main/groovy/PdfInfoTask.groovy
*/
tasks.register('checkPdfInfo', PdfInfoTask) {
group 'documentation'
description 'Utility task to check PDF document metadata'
// 確認する PDF 文書
pdfFile = file('docs/index.pdf')
}
/**
* Asciidoc 文書から HTML/PDF 文書を生成し配布可能な状態で docs 配下に出力するタスク
*
* ./gradlew docs
*/
tasks.register('docs', Copy) {
dependsOn(asciidoctor, asciidoctorPdf, cleanDocs)
group 'documentation'
description 'Generate HTML/PDF documents from Asciidoc documents and output them under docs/'
// build に生成された PDF/HML 文書を docs にコピー
from 'build/docs/asciidoc/index.html'
from 'build/docs/asciidocPdf/index.pdf'
// HTML 文書用に build に出力されたダイアログ生成画像、表紙裏表紙カバー PDF を含む
// 各 images 配下の全ての画像リソースを docs にコピー
from('build/docs/asciidoc/') {
include 'Chapter*/images/*'
}
into 'docs/'
}