
【Asciidoc】カスタム属性 ー 再利用:議事録雛形 ー
昨日、「【Asciidoc】書誌情報 ー 再利用してみる ー」にて属性情報の再利用について書いた。今日はもう少し変わった使い方を考えてみる。
まず、再利用とは関係ないが「見出しを表示しない」設定を利用する。
これは「【Asciidoc】TIP拾い ー 見出しを目次に載せたくない…? ー」の逆バージョン。(デフォルトでは「PDF」のみ有効です。「HTML」の場合、カスタム「CSS」を利用する必要があります。)
見出しに
[%notitle]
[,options=notitle]
を追加します。
= test
:doctype: article
:scripts: cjk
:pdf-theme: default-with-font-fallbacks
:toc:
[%notitle]
== Reference Text Only
Content of section.
[%notitle]
== 日本語 表題 です
日本語のコンテンツです。
変換すると


「PDF」の場合、本文から見出しが消えています。しかし、目次にはちゃんと反映されています。
これと「属性の再利用」を利用して「AsciiDoc文書作成入門(筑波産学連携支援センター)」の例題を少し工夫してみます。題材は「7. 実際の文書事例(7.1. 議事録)」を利用します。
さあ!改造の時間だ!
まず、ヘッダ用のファイルを準備します。
(ソースの汚さはご愛嬌で・・・)
// example-hederr-03-1.adoc 議事録ヘッダーファイル
[id=chain-{会議名},options=notitle]
=== {会議名}
[cols="2,6,2"]
|====
^.^| 取り扱い注意 +
社内限り
^a| [id=chain-{会議名}-discrete,discrete]
=== {会議名}
>.^| 文書番号: {文書番号} +
{編集日}
| 日時 2+| {開催日時}
| 場所 2+| {開催場所}
| 出席者 2+| {出席者}
|====
ファイル名を「example-hederr-03-1.adoc」としましょう。
次に「example-03.adoc」を改変した「example-03-1.adoc」を用意します。
// example-03-1.adoc 議事録サンプル
:doctype: article
:scripts: cjk
:pdf-theme: default-with-font-fallbacks
// 此処に会議のヘッダー内容を記述してください。
:会議名: 第3回 プロジェクト会議議事録
:文書番号: 210035
:開催日時: 令和3年3月25日 15:00-15:45
:開催場所: 第6会議室
:出席者: チームリーダー、スタッフ2名、開発室長、開発室3名
:編集日: {docdate}
// ヘッダ内容此処まで
include::example-hederr-03-1.adoc[]
// ここから下に議事内容を記述してください。
==== 議事内容
[qanda]
提案概要説明::
資料を配布し、提案概要を開発室から説明
チームリーダー質疑::
提案Aについて:::
文書の間違いが、多くなっているが・・・・・。
開発室:::
Gitを使って、バージョン管理を行います。diffを使って差分をを確認しながら、
作成することが可能です。
提案Bについて:::
Ward文書は、差分の表示ができるのか、・・・・・・・・・・・・・・。
開発室:::
Word文書でも差分表示可能なツールはありますが、マージができませんので、
AsciiDocを使って作成します。 +
AsciiDocであれば、プログラムソースコードと同様にテキストデータですので、
Gitでのバージョン管理、差分表示やマージを行うことが可能です。
参考意見::
このように、・・・・・・・・・してはどうか?
[.text-right]
以上
PDF変換すると

見た目はほぼ昭和の書類といったものが出来たと思います。
これを例題にした理由は
「Excel」や「Word」の議事録や報告書を作る企業はヘッダを表状にしているところがママある。
ユーザーにヘッダの崩れなどを意識せずに文書を書いてほしい。
と思ったので・・・。
実際利用する場合、属性名は2バイト文字ではなく半角英数を使うべきだと思うが、今回は見た目で直感的に把握できるであろう漢字を利用した。
・・・あっ・・・押印欄や報告者とかもいるなぁ・・・
まあ、例題だし暫定だし・・・
それでも議事録自体は編集しやすくなったよね。。。
で、構成は
ヘッダー部分をインクルードファイルにしてユーザーの意識の外においた。
属性部分を書けばヘッダは自然に完成するように構成する。
(ヘッダ表まで含め)書類全部をセクションで纏める構造にしたかった。
この議事録を年度分纏める場合、年度ファイルにインクルードして目次を付けても目次が単一表示されるように[notitle]と[discrete]を利用した。
複数の議事録をまとめてもインデックスアンカーが重複しないようカスタムインデックス([id=chain-{会議名}]等)を利用した。
等、です。
「前回は使える部分少ないよ」と発言したのだが・・・。
作ってみて定型書類はこの手法が結構使えるかもしれないと感じた。
このアイデアは自分が「リファレンスマニュアル」を構想した時の課題が元ネタ。
よく見られる「逆引き」や「(HTML等の)基本リファレンス」本の解説構成を真似たかった。その為に「ヘッダーを表示せず目次に登録して表の中に見出しと同じ文言を置きたい。」と言う要件で考えてみたら、このような形になった。
リファレンスの場合はこのトリックを利用するのではなくカスタムテンプレートで処理するべきなのだろうが、「Asciidoctor」はこの昭和的処理が苦手なので・・・。
「どうだろう?使えるだろうか?」
取り敢えず今回はここまで。
…ではまた。
当Noteは下記の「AsciiDoc Language Documentation」の文法に従っています。
参考: