【Asciidoc】ブロックについて理解する
まず、「軽量マークアップ言語」について考えてみます。
「XML」に代表される「マークアップ言語」は「タグ」を意味をもたせたい部分の両端(始点と終点)に配置して表現したい事を構成していきます。
ここからは想像ですが、
「HTML」は「改行タグ」を入れなければ改行されない。
「ブロック系のタグ」を使わなければ改行されない。
これに気付いた人が推敲の容易さから「一行一文」ルールを定めて作業した時に発想したのだと思われる。(エウレカ!!)
「なんだ!開始タグがあれば終了タグは改行と空改行で自動的に設定できるではないか。」と更に「変換プログラムを利用するなら開始タグはもっと簡単な行頭であまり利用しないマーク数個の方が書く時に楽だよね」と……。
「軽量マークアップ言語」はこの様な感じでスタートしたのではないかと想像しています。
さて、「Asciidoc」も「軽量マークアップ言語」に分類されます。故に
行頭マークから空改行まで
マークから次のマークまで
開始マークから終了マークまで
インラインマークから空白まで
を認識して変換プログラムは処理を行います。この区切り毎の文字群を「ブロック」として「Asciidoc」ではマニュアル化されています。
この「ブロック」という概念がソーステキストの読みやすさと変換の効率を両立しているのだと思います。
「ブロック」は「積み木」や「レゴブロック」の様な物を想像してもらって構いません。(「STOP」系の「ブロック」を想像されると話が進みませんのでお止めください)
「語、単語、一文、文節、…、文章」のどれも「ブロック」の一部であり「ブロック」そのものです。
一行 = 「一個のレゴブロック」
数行 = 「数個の結合したレゴブロック」
行群 + 空改行 = 「(大人にはわからなくても)意味のある形状のレゴブロック」
自分はこの様な感じに解釈しています。
「Asciidoc」の様な「軽量マークアップ言語」の面白さは、文章にむかって「ブロック」を組み上げる楽しさも一役買っているような気がします。
次回は「ブロック」の種類等について書いてみようかと思います。
ここまで、少しずつ「ブロック」を複雑にして「意味」を追加してきたのですが、構成を少し見誤っています(反省中…orz)。表は「ブロック」の中で唯一(?)、「空改行」終了でブロックに意味をもたせる事が出来ない特殊例です。
「Asciidoc」らしい解説を行うなら、表の話はもっと後のほうが良かったのでしょう。
…ではまた。
当Noteは下記の「AsciiDoc Language Documentation」の文法に従っています。