クリップボード用「Hyper Text Mediate Language」、略してクリップボード用HTMLです。
HTML文書に整形する以前の一時的な「メモ」をクリップボードにコピーして、クリップボードのデータをスクリプト等(クリップボード用HTMLの実装)によってHTML文書の断片に変換する為の書式です。実際のスクリプトの例はこの文書の最後に載せてあります。
アイデアをメモする過程とタグを入力する過程を同時に行いたくない場合、あるいは、IMEなどの辞書を利用して記号をタグに変換するのが面倒な場合に好都合です。
例えば、フライドポテトの作り方を次のようにメモしたとします:
1. 水で冷やす
2. 茹でる
3. 油で揚げる
4. 油で揚げる(高温)
5. 塩をふる
これは、クリップボード用HTMLの実装によって次のように変換されます:
<ol>
<li>水で冷やす</li>
<li>茹でる</li>
<li>油で揚げる</li>
<li>油で揚げる(高温)</li>
<li>塩をふる</li>
</ol>
この文書も、下書きをクリップボード用HTMLで書きました。
推敲する以前のメモというものは変更や修正を必要とすることが多いですから、HTMLとしてマークアップしてしまうと可読性が落ち、修正も面倒になる場合があります。したがって推敲が一通り終わった段階で、HTML文書に変換できた方が良い筈です。
そして、HTML文書に変換する為にはその「メモ」もある一定の書式に従っている必要があります。その「書式」の一つとして「クリップボード用HTML」を考えたわけです。
HTML文書に整形する面倒を省く為にこの書式を考えるのですから、この書式は出来る限り「規則」を意識せずに自然に、素早く記述でき、可読性の高いものを目指しています。
まず文書を保存するフォーマットは目指しません。飽くまでも一時的なメモの書式として考えています。
アイデアの一時的なメモ用のフォーマットですから、フォーム部品や表(テーブル)、ヘッダ(head要素)等の略記法は目指しません。しかし見出しや段落、箇条書きリスト等の記法を規定します。
ある一つの行が次の条件を満たした時、それは見出しとなります:
=見出し(<h1>見出し</h1>)
==見出し(<h2>見出し</h2>)
イコールの数は見出しレベルを表します。
空行を挟まない連続する一つ以上の行が、次の条件を満たした時、それは段落引用となります:
>引用
>>孫引き
>引用
これはHTMLにおける次の表記と同じです。
<blockquote>
<p>引用</p>
<blockquote>
<p>孫引き</p>
</blockquote>
<p>引用</p>
</blockquote>
段落引用内部では他のあらゆる表記が可能です。まず、> で始まる行を見つけると、blockquote要素が開始されます。そして以降の行が > で始まる限り、先頭の > を取り除いたものをスタックに入れ、スタックに入れられたものを各行として処理し、最後にblockquote要素を終了する形で実現できます(実装の一例)。
空行を挟まない一つ以上の連続する行が次の条件を満たす時、それは順不同リストとなります:
・リストアイテム
・リストアイテム
上はHTMLにおける次の表記と同じです:
<ul>
<li>リストアイテム</li>
<li>リストアイテム</li>
</ul>
タブ文字でインデントすることで、リストの入れ子を作ることが出来ます:
・リストアイテム
・リストアイテム
・リストアイテム
・リストアイテム
上はHTMLにおける次の表記と同じです:
<ul>
<li>リストアイテム
<ul>
<li>リストアイテム
<ul>
<li>リストアイテム</li>
</ul>
</li>
</ul>
</li>
<li>リストアイテム</li>
</ul>
空行を挟まない二つ以上の連続する行が次の条件を満たす時、それは順序型リストとなります:
1. リストアイテム
2. リストアイテム
上はHTMLにおける次の表記と同じです:
<ol>
<li> リストアイテム</li>
<li> リストアイテム</li>
</ol>
タブ文字でインデントすることで、リストの入れ子を作ることが出来ます。順不同リストと同様です。
バックスラッシュのみの行で囲まれた部分は、整形済みテキストとして扱われ、記法は無視されます:
\
=見出し?
\
上はHTMLにおける次の表記と同じです:
<pre>=見出し?
</pre>
次の条件を満たすとき、その範囲はHTMLのaddress要素となります:
--
Sophisme
w650s@mcn.ne.jp
上はHTMLにおける次の表記と同じです:
<address>Sophisme<br />
w650s@mcn.ne.jp<br />
</address>
定義リストは、ある行の次にタブ文字で字下げされている行がある場合、前者が被定義語句(dt要素)、後者が定義語句(dd要素)となり、空行が現れるまで単一の定義リスト(dl要素)として扱われます。
被定義語句1
定義語句1
被定義語句2
定義語句2
<dl>
<dt>被定義語句1</dt>
<dd>定義語句1</dd>
<dt>被定義語句2</dt>
<dd>定義語句2</dd>
</dl>
同じ文字のみが7つ以上連続している行は、罫線となります:
------------------
<hr />
以上のどれにも該当しないものは、段落となります。
これは段落です。
空行が現れるまで一つの段落です。
上はHTMLにおける次の表記と同じです。
<p>これは段落です。空行が現れるまで一つの段落です。</p>
ブロック要素の属性は、@属性名:属性値 という行で示します。
@cite:http://example.com/
この属性は、次に登場するブロック要素に「消費」されます。
@cite:http://example.com/
>引用
<blockquote cite="http://example.com/">
<p>引用</p>
</blockquote>
@cite:http://example.com/
>@cite:http://google.com/
>>孫引き
>引用
<blockquote cite="http://example.com/">
<blockquote cite="http://google.com/">
<p>孫引き</p>
</blockquote>
<p>引用</p>
</blockquote>
仕様上、属性をつけることの出来ないブロック要素もあります(li要素、dt、dd要素など)。
ハイパーリンク用の始点アンカーは二重鍵括弧 『 と 』 で括ります。href属性のつけ方はインライン要素の属性を参照してください。
段落中に『アンカー』が。
<p>段落中に<a>アンカー</a>が。</p>
因みに論文等では、参考文献のタイトルは二重鍵括弧でくくることになっています。
強調はアスタリスクで括ります。* と * で括ればem要素、** と **で括ればstrong要素です。入れ子にすることは出来ません。
・リスト項目内に*強調*が
<ul>
<li>リスト項目内に<em>強調</em>が</li>
</ul>
ダブルクォーテーションでくくれば、引用句になります。
段落中に"引用句"が。
<p>段落中に<q>引用句</q>が。</p>
cite属性のつけ方はインライン要素の属性を参照してください。
a、em、strong、q 以外のインライン要素は、HTMLでそのまま書きます。
インライン要素の属性は、インライン要素の直後に @属性名'属性値' または @属性値"属性値" と書いて明示します。
段落中に『アンカー』@href'http://example.com/'が。
<p>段落中に<a href="http://example.com/">アンカー</a>が。</p>
複数の属性を付けるには続けて属性を明示します。
段落中に『アンカー』@href'http://example.com'@hreflang'en'が。
<p>段落中に<a href="http://example.com" hreflang="en">アンカー</a>が。</p>
Python(2.3以降)とwin32allが必要です。win32allはPython for Windows Extensions、またはMark Hammond's Python Extensionsから入手できます。
ClipboardHTML-version.win32.exe というインストーラを起動して、指示に従います。