
build.gradle.kts
org.asciidoctor.jvm.convert プラグインを導入して設定する。
plugins {
id("org.asciidoctor.jvm.convert") version "3.3.2"
}
// asciidoctor config
val asciidoctorExtensions: Configuration by configurations.creating
tasks.asciidoctor {
baseDirFollowsSourceFile()
sources(delegateClosureOf<PatternSet> {
include("index.adoc")
})
forkOptions {
jvmArgs("--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED")
jvmArgs("--add-opens", "java.base/java.io=ALL-UNNAMED")
}
}
app/build/docs/asciidoc/index.adocが Asciidoc のソースbaseDirFollowsSourceFile()で同ディレクトリを起点に設定- Java モジュールシステム用に forkOptions を指定
index.adoc
app/build/docs/asciidoc/index.adoc に以下のような感じで作成。
include::attribute.adoc[] = Document Title toc::[] include::01-contents.adoc[] include::02-contents.adoc[]
app/build/docs/asciidoc/attribute.adoc は以下のようなAsciidocの属性を定義(直接 index.adoc に記載しても可)。
:encoding: utf-8 :backend: html5 :doctype: article :toc: left :toclevels: 3 :source-highlighter: rouge :icons: font :sectanchors: :sectanchors:
変換は以下
$ ./gradlew asciidoctor
とすると、build/docs/asciidoc 以下に index.html が作成される。
Github Action
.github/workflows/gh-pages.yml を作成。
name: GitHub Pages on: push: branches: [ main ] pull_request: branches: [ main ] jobs: doc: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v3 - name: Set up JDK 18 uses: actions/setup-java@v3 with: java-version: '18' distribution: 'temurin' - name: Asciidoc with Gradle uses: gradle/gradle-build-action@0d13054264b0bb894ded474f08ebb30921341cee with: arguments: asciidoctor - name: publish if: ${{ github.ref == 'refs/heads/main' }} uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./app/build/docs/asciidoc
Gradle で、asciidoctor して Asciidoc 変換し、actions-gh-pages で変換したhtmlファイルを公開。
上記例では、actions-gh-pages により、./app/build/docs/asciidoc ディレクトリの中身が、gh-pages ブランチ(自動的に作成してくれる)に配置される。
Github Pages
gh-pages ブランチを Github Pages で公開。

これでプッシュすれば、その内容で公開される。