2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SIer必見】AsciiDocとPlantUMLでドキュメント作成環境を作った

Last updated at Posted at 2024-10-10

これは何?

Asciidoctor(AsciiDoc)は、特に技術文書やプロジェクトドキュメントの作成でよく使用されるマークアップ言語です。Markdownよりも柔軟な表現ができる一方で,html等よりも記述が簡単であり,htmlやpdfとしてexportすることもできます。
しかし,意外と環境構築が面倒です。

この記事ではDocker/DevContainerを使ってすぐにAsciiDocをbuildできる環境を作成しました。


AsciiDocとは

  • Asciidoctor(AsciiDoc)は、特に技術文書やプロジェクトドキュメントの作成でよく使用されるマークアップ言語の一つ
  • markdownよりも表現力がある一方で,HTMLような高い表現力

自分の記事ではないですが,このQiitaがわかりやすかったので貼っておきます。


ビルド方法の歴史

もともとはasciidoctorというRuby製のツールを使ってビルドを行うのが一般的でした。
しかし,関連ツールの依存性を解決したりPlantUMLと連携することを考えるとコマンドがとても長くなってしまいます。
そこで,Asciidoctor Gradle Pluginが作成され,build環境を整えやすくなったという歴史的背景があるようです。
そのため,本記事でもGradleを使ってbuildを行います。


AsciiDocをビルドしてみる

今回作成したサンプルリポジトリではDockerでBuild環境を整えました。詳しくはこちらをご覧ください。

VSCodeのDev Containerについてはスペースの問題上割愛します。
Dev Containerについては

https://qiita.com/sigma_devsecops/items/79db1640d1a1cd82343d

を参考にしてください。

FROM gradle:8.10.2-jdk17-jammy AS devcontainer
WORKDIR /app

RUN apt-get update -y

RUN <<EOF bash -ex
apt-get install -y --no-install-recommends libxext6 libxrender1 libxtst6 libxi6
rm -rf /var/lib/lists
EOF

CMD ["gradle", "asciidoctor"]
git clone https://github.com/RyosukeDTomita/asciidoc_env
cd asciidoc_env
docker buildx bake
docker compose up # ./build配下にhtmlが作成される。

前述したようにビルドにGradleを使うのでGradleイメージをベースイメージに使用しています。
また,PlantUML作って作成したシーケンス図等を埋め込むため,必要なツールをインストールしています。

image.png

最低限の構成だとこんな感じになります。テーマ等もカスタマイズ可能なので,Orilly用のテーマとか探してみても面白いかも。


追記

日本語が重なる場合には日本語フォントをいれると解決できた。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?