AsciiDoc
ref:
https://qiita.com/hbsnow/items/88e1414ac97501af17ff
環境構築
https://github.com/asciidoctor/docker-asciidoctor
Docker で PDF 出力
docs/index.adoc
を PDF 化しdist/
に出力する例:
# 日本語を利用する場合は`-a scripts=cjk -a pdf-theme=default-with-fallback-font`を設定する
docker run -it --rm \
--mount type=bind,source=docs/,target=/documents/ \
--mount type=bind,source=dist/,target=/dist \
asciidoctor/docker-asciidoctor:1.0.0 \
asciidoctor-pdf -r asciidoctor-diagram -a scripts=cjk -a pdf-theme=default-with-fallback-font -D /dist index.adoc
日本語を使う場合は、Fallback Fonts の設定をする。
Ref:
https://github.com/asciidoctor/asciidoctor-pdf#support-for-non-latin-languages
オリジナルのテーマやフォントを適用する
FROM asciidoctor/docker-asciidoctor:1.0.0
WORKDIR /usr/lib/ruby/gems/2.5.0/gems/asciidoctor-pdf-1.5.0.rc.3/data
# フォントの追加
RUN cp <.ttfファイル> fonts/
# テーマの追加
RUN cp <.ymlファイル> themes/
ENTRYPOINT [ "sh" ]
VSCode
必要な拡張機能。
joaompinto.asciidoctor-vscode
settings.json
で asciidoctor-kroki`を有効にすると、plantUML もプレビューされるようになる。
{
"asciidoc.use_kroki": true
}
文法
Ref:
http://asciidoc.org/userguide.html
リスト
順序なしは*
、順序付きは.
子リストは**
のように書く。
変数
:name: hoge
{name}
.adoc
を読み込み
別のinclude::hoge.adoc[]
リンク
link:http://example.com[hoge]
テーブル
autowidth
を付けると列幅を内容に合わせてくれる。
[options='header,autowidth']
|===
|1-1|2-1|3-1
|1-2
|2-2
|3-2
|1-3
|2-3
|3-3
|===
Admonition
- NOTE
- TIP
- IMPORTANT
- CAUTION
- WARNING
[CAUTION]
====
警告メッセージはここに。
====
PluntUML の読み込み
.Include
plantuml::../puml/hoge.puml[]
Asciidoctor Gradle Plugin
https://asciidoctor.org/docs/asciidoctor-gradle-plugin/
build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.asciidoctor:asciidoctorj-diagram:1.5.4.1'
}
}
plugins {
id 'org.asciidoctor.convert' version '1.5.8'
}
repositories {
mavenCentral()
}
asciidoctor {
requires = ['asciidoctor-diagram']
backends = ['html5']
sourceDir = file("docs")
outputDir = file("${buildDir}")
attributes = [
'imagesdir': './images'
]
}
次のコマンドでビルドできる。 ```bash ./gradlew asciidoctor
## CSV, TSCをテーブルに変換
次のディレクトリ構成とする。
docs index.adoc csv table.csv tsv table.tsv
TSVとCSVをインポートできる。
```adoc
TSVの読み込み。
[format="tsv", options="header"]
|===
include::../tsv/table.tsv[]
|===
CSVの読み込み。
[format="csv", options="header"]
|===
include::../csv/table.csv[]
|===
ソースコード参照
次のディレクトリ構成とする。
docs
index.adoc
src
test.sql
index.adoc
は次のように書く。
[source,sql]
----
include::../src/test.sql[]
----
Gradle + plantUML + livereload で環境構築
プロジェクトを作成する。
gradle init
build.gradle
を書く。
plugins {
id 'org.asciidoctor.convert' version '1.5.3'
id 'org.kordamp.gradle.livereload' version '0.2.1'
}
group = 'com.example'
dependencies {
asciidoctor 'org.asciidoctor:asciidoctorj-diagram:1.5.8'
}
asciidoctor {
requires = ['asciidoctor-diagram']
backends = ['html5']
sourceDir = file("docs/adoc")
outputDir = file("${buildDir}")
attributes = [
'imagesdir': './images',
'doctype': 'book',
'revnumber': project.version,
'source-highlighter': 'coderay',
'sectanchors': '',
'toc': 'left',
'toclevels': '2'
]
}
liveReload {
docRoot asciidoctor.outputDir.canonicalPath
}
.adoc
ファイルを作る。
mkdir docs
echo 'Hello world' > docs/adoc/index.adoc
ビルドする。
./gradlew asciidoctor
Markdown と比べた場合の利点
- 標準で細かい表現ができる 表のセル結合や目次生成など。
ベストプラクティス
https://asciidoctor.org/docs/asciidoc-recommended-practices/