かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

include directive で adoc ファイルを分ける時に AsciiDoc Plugin の preview が表示されるようにする

Translate to English
https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fksby.hatenablog.com%2Fentry%2F2021%2F01%2F13%2F193258

概要

記事一覧はこちらです。

前回の include directive で章毎に adoc ファイルを分けてみる で、adoc ファイルを include した時に AsciiDoc Plugin の preview にイメージが表示されず、かつ index.adoc 内の記述に赤波下線が表示されていたので、それらを解消します。

参照したサイト・書籍

  1. Include directives and base directory
    https://asciidoctor.github.io/asciidoctor-gradle-plugin/master/user-guide/#_include_directives_and_base_directory

目次

  1. build.gradle に baseDirFollowsSourceFile() を追加する
  2. src/docs/asciidoc/02_include/index.adoc を変更する
  3. asciidoctor タスクを実行して結果を確認する

手順

build.gradle に baseDirFollowsSourceFile() を追加する

Asciidoctor Gradle Plugin SuiteInclude directives and base directory を見ると include directive は baseDir に設定されたディレクトリを基準にファイルの位置を判断する模様。

この section には baseDir... で始まるメソッドが4つ記載されていますが、index.adoc のあるディレクトリが baseDir になると AsciiDoc Plugin の preview も表示されるようになるので baseDirFollowsSourceFile() を使用することにします。

build.gradle の asciidoctor block に baseDirFollowsSourceFile() を追加します。

..........

asciidoctor {
    sourceDir file("src/docs/asciidoc")
    baseDirFollowsSourceFile()
    sources {
        include "**/index.adoc"
    }
    resources {
        from("${sourceDir}") {
            include "**/*.png"
        }
    }
}

..........

src/docs/asciidoc/02_include/index.adoc を変更する

src/docs/asciidoc/02_include/index.adoc を以下のように変更します。

= include directive で章毎にファイルを分けてみる
:lang: ja
:doctype: book
:idprefix:
:idseparator: -
:tabsize: 4
:sectanchors:
:sectnums:
:icons: font
:hide-uri-scheme:
:docinfo: shared,private
:docinfodir: ../../docinfo

include::01.adoc[leveloffset=+1]
include::02.adoc[leveloffset=+1]
  • docinfodir の Path も baseDir のディレクトリを基準に判断されるので、:docinfodir: src/docs/docinfo:docinfodir: ../../docinfo に変更します。
  • include directive で指定している Path から src/docs/asciidoc/02_include/ を削除してファイル名だけにします。

index.adoc に赤波下線が表示されなくなり、AsciiDoc Plugin の preview 上に include した adoc ファイルの内容が表示されるようになりました。

f:id:ksby:20210113191203p:plain

asciidoctor タスクを実行して結果を確認する

asciidoctor タスクを実行すると特にエラーメッセージは出ずに BUILD SUCCESSFUL が出力されて、

f:id:ksby:20210113191908p:plain

build/docs/asciidoc/02_include/index.html を表示すると include したファイルの内容が表示されており、docinfo.html の css も適用されて本文のフォントがゴシック体になっていました。

f:id:ksby:20210113192117p:plain

adoc ファイルを同じディレクトリ内に配置するならばこの方法で良さそうです。

履歴

2021/01/13
初版発行。