【AsciiDoc入門】コードブロック表示とシンタックスハイライトを極めよう!

この記事は約4分で読めます。

前回の連載第6回「【AsciiDoc入門】内部リンク(クロスリファレンス)と画像・動画の埋め込みをマスターしよう!」では、見出しを変更してもリンク切れを起こさない「クロスリファレンス」の書き方や、画像・動画の埋め込み方法について解説しました。

連載の最終回となる第7回は、エンジニアや技術ブロガー、仕様書作成者にとって欠かせない「ソースコードの埋め込みとシンタックスハイライト」について徹底解説します!

Markdownでもおなじみのコードブロック表示ですが、AsciiDocでは「タイトル(キャプション)の付与」「行番号の自動表示」「特定の行のハイライト」など、プレゼンテーション層の機能が非常に充実しています。

VS Codeでのリアルタイムプレビューを見ながら、綺麗で読みやすいコードブロックの作り方をマスターしましょう!

1. 基本的なコードブロックの書き方

最もシンプルなソースコードの囲み方です。

[source,python]
----
def hello():
    print("Hello, AsciiDoc!")

hello()
----

見え方

💡 記述のポイント

  • コードブロックは ---- (ハイフン4つ) で上と下を囲みます。
  • 直前の行に [source,言語名] を記述することで、その言語に応じたシンタックスハイライト(色付け)が有効になります。
  • 指定できる言語例: python, rust, bash, html, javascript, json, c など

2. 【応用】コードに「タイトル」をつける

「このコードがどのファイルの何処理なのか」を読者に伝えるため、コードブロックの上にファイル名やタイトルを表示できます。

.src/main.py(Pythonの実行サンプル)
[source,python]
----
import sys

print(f"Python version: {sys.version}")
----
  • コードブロックの直前に .タイトル名(ドットから始まる文字列)を書くだけで、自動的に太字のキャプション(タイトル)として出力されます。

見え方

3. 【超便利】特定の行を解説する「Callout(注釈)機能」

「コードの〇行目の処理について説明したい」という場合に大活躍するのが Callout(注釈番号) です。

コード内に <1><2> と書くことで、コードのすぐ下で各行の解説を紐付けることができます。環境や出力形式に左右されず、VS CodeプレビューやPDF出力でも綺麗に表示されます。

= Rustのコード解説
:icons: font

[source,rust]
----
fn main() {
    let mut vec = Vec::new(); <1>
    vec.push(1);              <2>
    println!("{:?}", vec);
}
----
<1> 可変(mut)なVector配列を初期化
<2> 要素を末尾に追加

💡 見た目のイメージ

コードの該当行の横に丸数字の が表示され、直下にその番号の解説文が綺麗にレイアウトされます。コードの中に直接長いコメントを書かずに済むため、ソースコードの見た目を汚さずに分かりやすい解説が作成できます。

4. 【第4回のおさらい】実ファイル(include::)と組み合わせる

第4回(https://niyanmemo.com/7544/ )で解説した include 機能と組み合わせることで、実際のプログラムファイルを直接コードブロック内に読み込むことができます。

フォルダ構成

my-document/
├── main.adoc
└── src/
    └── main.rs

記述例(main.adoc

.src/main.rs
[source,rust,linenums]
----
include::src/main.rs[]
----

コードをコピー&ペーストして貼り付ける必要がなくなり、元プログラムを修正すればドキュメント内の表示コードも自動的に最新化されるため、コピペミスや更新漏れを完全に防止できます!

見え方

5. まとめ&全7回の連載を振り返って

今回は、コードブロックの記述、言語ごとのハイライト、タイトルや行番号の表示テクニックについて解説しました。

  • コードブロックは ----(ハイフン4つ) で囲む
  • [source,言語名] でシンタックスハイライトを有効化
  • 直前に .ファイル名 を書くとタイトルが付けられる
  • linenums を追加するだけで行番号がつく
  • include:: と組み合わせれば実ファイルを直接読み込める

🎉 AsciiDoc入門連載完結!

全7回にわたってお届けしてきた「AsciiDoc入門」シリーズも、今回でひとまず完結です!

  1. 第1回: インストール方法とMarkdown徹底比較
  2. 第2回: 基本のテキスト装飾・見出し・目次の自動生成
  3. 第3回: 箇条書き・チェックボックス・定義リストの極意
  4. 第4回: ファイルの分割と結合(include)
  5. 第5回: 高度なテーブル(表組み)マスター
  6. 第6回: 内部リンク(相互参照)と画像・動画の埋め込み
  7. 第7回: コードブロックとシンタックスハイライト(今回)

Markdownの「手軽さ」を残しつつ、仕様書や技術書、大規模ドキュメントで圧倒的な威力を発揮するAsciiDoc。ぜひVS Codeの環境を活用して、今後のドキュメント作成やブログ執筆に役立ててみてください!

ご愛読ありがとうございました!

コメント

タイトルとURLをコピーしました