閑話

Markup四方山

 自分でも、何故こんなことを書いてしまったのか不思議なのだが、「Markup/What's (Mark)up/HTMLの場合」で意味Markupなどの話をすると書いてしまったので、少し触れておく。まだそれぐらいの記憶力はあるようだ。


 さて、 MDNから引用したMarkupの定義[1]には {視覚 / 手続き / 意味} Markupが分類分けされている。


 正直なところ、そこに書いてある説明でほぼ尽きているので何を書いたものかと思ったのだが、この3クラスの「どれか1つ」に必ずMarkupが属すると勘違いするかもしれないので、そのあたりを話してみることにしよう。


 とりあえずは、[1]から説明を引いておく。


「視覚マークアップ:

 伝統的な WYSIWYG (what you see it is what you get) に基づくワードプロセッサーで使用されています。これは人間の作成者、ユーザー、編集者から隠蔽されているものです。


 手続きマークアップ:

 テキストと組み合わせてテキスト処理をプログラムへ指示するものです。このテキストは作成者から視覚的に操作されます。


 意味マークアップ:

 文書の区間をプログラムがどのように扱うべきかでラベル付けします。例えば、 HTML の <td> は HTML の表でセルを定義します。」


 それぞれの説明は見たままといえば見たままなのだが、表現が少しわかりにくいかもしれないので、それぞれ説明しておこう。


 まず、視覚Markupだが、実は小説を書いていると暗黙のうちに使っている。


 例えば、「段落を変えたら行頭を一字下げる」や「空白で段落のまとまりを分解してみやすくする」という具合だ。


 1つ目は「段落が変わった。だから、行頭を下げて知らせよう」ということであるし、 2つ目は「この2つの段落の間には文に直接現れない隔たりがある。だから、行を空けてそれを表現しよう」ということだ。


 この手の「文章の構造を見た目で表現しよう」というアイデアが視覚Markupである。


 引用の表現で「編集者から隠蔽されている」というのは「別に改まって言わないけれど、こういうルールがある(と解る)でしょ」ぐらいのことである。


 少し違うが、前のページまでで紹介した Markdownはこの性格が強いかもしれない。


 次に、手続きMarkup、これは雑に言うと「この文章はだいたいこんなレイアウトで表示するよ」と文書中に書き入れるアイデアだ。


 この文書で紹介したLaTeX、というかTeXがこの手のMarkupである。


 例えば、LaTeXの場合の例文で例文を載せたが、一番上に書いてある \documentclass[uplatex, a4j]{jsarticle} というのは「この文書はA4サイズの紙に日本語(a4j)で書くことを想定して、日本語論文に向いたレイアウト(jsarticle)で書くので、 UTF-8形式に対応したプリンター(uplatex)で処理してね」ということを宣言している。


 引用が「視覚的に」と言っているのは、「こういう内容書いたから(文書)こんなレイアウトでまとめておいて(視覚的な命令)」ぐらいのことをやっているということだ。


 最後の、意味Markupだが、引用でも言っている通り、HTMLがこの性格の強いMarkupだ。


 引用で言っている<td>タグはこの文書中では触れなかったが、表組みの一要素、 MS-Excelやそれっぽいものを触ったことがあるなら、アレのセル(四角い枠)一個の中身が <td>...</td> の中に入る。


 たしかにこの<td>タグは好例で、表の中の1つのセルに小説を一段落分書く人間は(もしかしたらいるかも知れないが)まずいないだろう。


 要するに、文書中の中に「ここからここまでが一段落(<p>)」や「ここで改行する(<br>)」、「これは他の場所へのリンク(<a href=...>)」のようなことをいちいち書いてあるのが意味Markupである。


 これは人間が書くには不便なのだが、機械側からすれば言われたこと以外はやらなくていいので楽なアイデアだ。


 また、文書が完全に意味付いているので、読み上げなどを機械に任せようとした場合などは、横に並んだ目次が間違えて合間に入ってしまうような、意図しない動作が起きにくい。


 なので、実はユニバーサルデザインという意味では一番便利なMarkupでもある(文字が読めなかったり画面が見えなくても、翻訳や読み上げで同じ構造のまま伝えられるので)。


 ただ、ここまでの例を見て疑問に思うだろう。


「確かにそれぞれのMarkupの性格が強い言語はあるけど、どいつも別の性格を持っているようにも見えるぞ?」


と。


 これは全くその通りで、そもそもこの三パターンに完全に分類されるものではない(つまり、あくまで概念的なもの)。例えばMarkdownの[text](path)なんてものは明らかに意味Markup的だし、 HTMLに「書いたまま表示」タグ<pre>なんてものもあるが、これは視覚Markup的だ。


 なので、本当はこの話に触れたくなかったのだが、引用元まで遡って読む(奇特な)人を混乱させたくないためにちょっと触れてみた。


 分類に触れたついでに、もう1つトピックに触れておくと、実はMarkdownのような「他の言語の簡易化」みたいな Markdownを「軽量Markup」と呼んだりすることがある。


 この軽量というのが人間と機械のどちらにとって軽量なのかというと、 Markdownを見れば解る通り人間にとって軽量な Markupが軽量Markupである。つまり、人間が書きやすいMarkupということだ。


 軽量Markupは大抵(全部と言いたいが、筆者が全てのMarkupを知っているわけではないので) HTMLかXMLに変換することを前提にしている。


 前ページでも出てきたこのXMLというのは HTMLの兄弟のような言語(同じ先祖を持つ)なのだが、構造化がHTMLよりも更にガチガチに決まっているため、データベースとしても使われるようになったり、独立したプログラム間で情報をやり取りするのに使われたり(この用途は最近JSONなんかのほうが強いかもしれない)するという、最強モノの主人公みたいな奴だ。


 なのに、どうしてHTMLがWEBページに使われるかというと、答えは単純で、「何でもできるようにしなければいけない」からだ。


 つまり、ユーザー向けに表示させたいこと以上のことを大量に書かないといけないので、ファイルサイズは大きくなるし、書く側も大変だし、そのくせファイル内の別の要素の再利用が難しいのだ(あたかもこの文書のように)。


 とはいえ便利は便利なので。機械側に読ませる言語としてはよく使われる。


 では、人間側に読ませる(書かせる)にあたって便利な、軽量Markupにはどういう物があるだろうか。


 これはこれで大量にあるらしいのだが、筆者が触れたことのあるものでいくつか紹介する。


 まずはMarkdown 。これについては説明しなくでいいですね?


 次はRe:VIEW 。これはMarkdownと同じように HTMLっぽい出力もできるのだが、 LaTeXと連携したり、電子書籍向けの形式に出力したりと出力の面に力が入っている言語だ。


 というのもある意味納得で、実はこのRe:VIEW、どうもアスキー社(今はKADOKAWAブランド)が使っていたEWB(Editor's Work Bench)という形式を元に作られたらしいのだ。これは電子書籍用の形式で、要するに印刷用に作られているので出力方面が強いということだろう。


 実際、筆者もRe:VIEW形式に触れたのは ePUB(電子書籍)で少し遊ぼうと思いゴニョゴニョした時だった。その後すっかり触れていないので、すっかり文法を忘れてしまったが。


 もう1つぐらい紹介しようと思い、何にしようか、 Markdownとほぼ同期のはてな記法にするか、 MarkdownよりさらにラフなBBCodeにするか…… と考えていたのだが、ふと読者がまず触れているであろう形式を思い出した。


 そう、「生命、宇宙、そして万物についての究極の疑問の答え」が載っていることで有名なあのWEBサイトに使われている言語、 Wiki言語である。


 あのWEBサイトことWikipediaは Wikiと呼ばれる言語で各ページが書かれている。 Wiki言語も最終的にはHTMLに翻訳されるのだが、 Markdownと比べると文字の装飾や表の扱いの面で強い[要出典]言語だ。


 また、大人数で1つのファイル群を編集するという点も一般のMarkupから見ると特異な点だろう。


 実はWikiにもいくつか方言があり、 PukiwikiだのMediawikiだのと地味に互換性がない方言があったりするのだが、ユーザー側で処理する Markdownと違い Wikiはサイトを用意した側で使う方言を決められるので、使い始めれば案外不満は出なかったりする。


 ちなみに、このWiki言語を使ったデータ管理システムをWikiシステムと言うので、例えばゲームの攻略サイトなども Wikiシステムを使っていれば(最近のサイトは割と使ってるみたいですね) Wikiと名乗ることができる。ただし、だからといって情報まとめサイト全般を Wikiと呼んではいけない。


 例えば、カクヨムは小説をまとめたサイトだが、(多分)Wikiシステムは使っていないので小説Wiki(Powered By KADOKAWA) とはならないのだ(おそらく)。


 ともかく、事程左様に、 Markup言語は意外と身近に使われている。


 なので、興味を持ったところから少し勉強してみるといいだろう(せっかくなので、XMLから始めるのはどうだろうか)。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る