以下は、MagML Version 0.01仕様書です。
これをきちんと仕上げないと作業が先に進まないので、ともかく作業しました。前のsetextやWikiに引きずられたドキュメントよりは、はるかに綺麗にまとまっています。
ご意見、ご感想などはWelcomeです。
MagML: MagSite Markup Language仕様書 §
Version 0.01
2003年9月1日
株式会社ピーデー
川俣晶
目的 §
MagSite1のコンテンツ記述を楽に済ませる短縮記法を提供する。
この文書について §
この文書はMagML自身で記述されている……はずである。
この文書は、この文書自身で完結していない。MagSite1自身の機能、特にコンテンツに従属する画像の取り扱い機能に関する情報を含んでいない。
要求 §
- 容易に見出しを記述できる
- 容易にリストを記述できる
- 容易に強調を記述できる
- 容易にハイパーリンクを記述できる (URLを隠せる)
- 容易にフォーマット済みテキストを記述できる (固定ピッチ。行頭空白の有効化)
- 容易にテーブルを記述できる
- 容易に画像表示を記述できる
概要 §
既存の言語との互換性は意識せず、シンプルで簡単に使え、同時に拡張性に優れる言語である。XHTMLへの変換を意識している。
空白文字 §
空白文字とは、タブ、半角空白、全角空白のいずれかの文字の1つ以上の繰り返しとする。
マークアップの基本原則 §
2個の連続した$記号がマークアップの開始を意味し、1個の$記号がマークアップの終わりを意味する。終わりを意味する1個の$記号が出現することなく行末に達した場合は、そこに終わりを意味する1個の$記号があると見なす。
連続しない$記号は、マークアップの外側では、そのまま記述することができる。マークアップの内側または外側で、$記号自身は、4個の連続した$記号によって記述することができるが、これはドル記号マークアップによって実現されるものである。
2個の連続した$記号の次の文字から最初の空白文字までの間をマークアップ名と見なす。最初の空白文字から、終わりを意味する1個の$記号までの間は、マークアップの内容である。マークアップの内容は、マークアップ名によって扱いが異なる。最初の空白文字が存在しない場合は、終わりを意味する1個の$記号の手前までがマークアップ名となり、内容は存在しない。
マークアップはネストすることができる。マークアップの内容がマークアップを含んでいても良い。
ブロックマークアップとインラインマークアップ §
マークアップは、ブロックマークアップとインラインマークアップに分けられる。これらは、XHTMLのブロック要素とインライン要素に対応する概念ではあるが、同じではない。
ブロックマークアップはそれ自身が1行を構成している必要がある。
インラインマークアップは1行の一部として存在することができる。
通常、インラインマークアップの内部にはインラインマークアップを記述してネストすることができるが、ブロックマークアップの内容にブロックマークアップを記述することはできない。
マークアップ名 §
見出しマークアップ(1, 2, 3, 4, 5) §
半角数値の1から5までのマークアップ名は見出しを意味し、XHTMLのh2~h6要素に変換される。コンテンツのタイトルは、MagML外で指定される構造であるため、h1に対応するものは定義されない。内容は、見出しの文字列として認識される。内容には、ドル記号マークアップのみを含むことができる。
ブロックマークアップである。
順序のないリスト(ul) §
マークアップ名ulは、順序のないリストの開始または終了を示す。内容が文字列'start'の場合はリストの開始を示す。'end'の場合はリストの終了を示す。空内容の場合は、リストが開始されていない場合はリストの開始を示し、リストが開始されている場合は、リストの終了を示す。リストの開始から終了までの間のすべての行は、リストアイテムであると見なされ、XHTMLのli要素に変換される。順序のないリストマークアップそのものは、XHTMLのul要素に変換される。
順序のないリストはネストすることができる。
リストの終了が示されることなく終わった場合は文書末がリストの終了であると見なされる。
ブロックマークアップである。
アンダーライン(_) §
マークアップ名_は、アンダーラインを示す。XHTMLのspan要素+CSSのスタイル指定に置き換えられる。内容には、文字列とインラインマークアップのみを含むことができる。
これはインラインマークアップである。
強い強調(*) §
マークアップ名*は、強い強調を示す。XHTMLのstrong要素に置き換えられる。標準的にはボールド指定となる。内容には、文字列とインラインマークアップのみを含むことができる。
これはインラインマークアップである。
強調(/) §
マークアップ名/は、強調を示す。XHTMLのem要素に置き換えられる。標準的にはイタリック指定となる。内容には、文字列とインラインマークアップのみを含むことができる。
これはインラインマークアップである。
字下げ(>) §
マークアップ名>は、字下げの開始と終了を示す。内容が文字列'start'の場合は字下げの開始を示す。'end'の場合は字下げの終了を示す。空内容の場合は、字下げが開始されていない場合は字下げの開始を示し、字下げが開始されている場合は、字下げの終了を示す。字下げの開始から終了までの間のすべての行は、字下げされていると見なされ、XHTMLのdiv要素とCSSによる字下げ指定の組み合わせに置き換えられる。
字下げはネストすることができる。
字下げの終了が示されることなく終わった場合は文書末が字下げの終了であると見なされる。
ブロックマークアップである。
ドル記号($$) §
マークアップ名$は、$記号自身を示す。1文字の$記号に置き換えられる。
これはインラインマークアップである。
ハイパーリンク(a) §
マークアップ名aは、強調を示す。最初の空白文字と2番目の空白文字に挟まれた範囲をURIと見なし、2番目の空白文字からマークアップの終わりまでの範囲を見出しと見なす。そして、XHTMLの<a href="URI">見出し</a>に置き換えられる。
これはインラインマークアップである。
フォーマット済みテキスト(pre) §
マークアップ名preは、フォーマット済みテキストの開始と終了を示す。内容が文字列'start'の場合はフォーマット済みテキストの開始を示す。'end'の場合はフォーマット済みテキストの終了を示す。空内容の場合は、フォーマット済みテキストが開始されていない場合はフォーマット済みテキストの開始を示し、フォーマット済みテキストが開始されている場合は、フォーマット済みテキストの終了を示す。フォーマット済みテキストの開始から終了までの間のすべての行は、固定ピッチフォントでフォーマット済みと見なされ、XHTMLのpre要素またはそれに相当する表現に置き換えられる。
フォーマット済みテキストはネストすることができない。
フォーマット済みテキストの終了が示されることなく終わった場合は文書末がフォーマット済みテキストの終了であると見なされる。
ブロックマークアップである。
テーブル(table) §
マークアップ名tableは、テーブルの開始と終了を示す。内容が文字列'start'の場合はテーブルの開始を示す。'end'の場合はテーブルの終了を示す。空内容の場合は、フテーブルが開始されていない場合はテーブルの開始を示し、テーブルが開始されている場合は、テーブルの終了を示す。テーブルの開始から終了までの間のすべての行は、CSV形式のデータと見なされる。CSV形式データの最初の1行のみth要素の変換され、残りの行はtd要素に変換される。また各行はtr要素でくくられる。全体はtable要素でくくられる。
テーブルはネストすることができない。
テーブルの終了が示されることなく終わった場合は文書末がテーブルの終了であると見なされる。
ブロックマークアップである。
画像表示(img) §
マークアップ名imgは画像のインライン表示を示す。内容は、最初の空白文字から2番目の空白文字までの間を、そのコンテンツに従属する画像データの番号を半角数字で記述したものと見なす。2番目の空白文字から3番目の空白文字までの間を、その画像を表示する横幅のピクセル数と見なす。横幅ピクセル数は省略でき、その場合はスケーリング無しを示す。
XHTMLのimg要素に置き換えられる。<img src="画像のURI" alt="画像の見出し" />に置き換えられる。
これはインラインマークアップである。
画像サムネール表示(timg) §
マークアップ名imgは画像のサムネール表示を示す。内容は、最初の空白文字から2番目の空白文字までの間を、そのコンテンツに従属する画像データの番号を半角数字で記述したものと見なす。2番目の空白文字から3番目の空白文字までの間を、画像本体をクリックした場合のデフォルト横幅ピクセル数と見なす。横幅ピクセル数は省略でき、その場合はスケーリング無しを示す。
サイズ別の選択リンク、見出しを含め、XHTMLのa要素とimg要素などに置き換えられる。(画像指定を文書内に含めない場合に文書末に付加される画像表示と同じ)
これはブロックマークアップである。
未知マークアップ名の処理 §
未知のマークアップ名が出現した場合、適切なエラーメッセージに置き換えた上で処理を継続する。処理は中断されない。
変更履歴 §
日付 | バージョン | 内容 |
---|
2003年8月24日 | - | バージョン番号も付かない最初のアイデアメモ |
2003年9月1日 | 0.01 | とりあえず、形にしてみたもの |
end.