Jintrick.netagenda2004年05月アーカイブ → 2004年05月23日

クリップボードHTMLとは何か

HTML文書等を書く時、IMEのタグ辞書を使うのを止め、「普通に」記述した文書をクリップボードにコピーして、変換用のスクリプトでHTMLに変換処理するようにしてみたらどうかな、と考えてみたのです。

「普通の」文書とは

「普通の」文書といっても、ある程度の規則性が必要です。

見出し

見出しは、先頭に = をつけてレベルを表します。

因みに、読みやすいと思った某氏のメールを参考にしました。

リスト

中黒があれば箇条リスト。

・リスト項目
・リスト項目
<ul>
<li>リスト項目</li>
<li>リスト項目</li>
</ul>

正数の後にドットがあれば順序型リスト。

1. リスト項目
2. リスト項目
<ol>
<li>リスト項目</li>
<li>リスト項目</li>
</ol>

定義リストは、ある行の次にタブ文字で字下げされている行がある場合に検知されます。

誹謗中傷
	反論できない批判のこと
<dl>
<dt>誹謗中傷</dt>
<dd>反論できない批判のこと</dd>
</dl>

空行が現れない限り、単一のdl要素として認識し続けます。

誹謗中傷
	反論できない批判のこと
FAQ
	聞かれたかった質問のこと
<dl>
<dt>誹謗中傷</dt>
<dd>反論できない批判のこと</dd>
<dt>FAQ</dt>
<dd>聞かれたかった質問のこと</dd>
</dl>

address要素

「-- 」という行が検出されると、以降の行は空行が現れるまでaddress要素として認識します。

-- 
北島 四郎
xxx@example.com
<address>北島 四郎<br />
xxx@example.com</address>

パラグラフ

前述の定義リストやaddress要素として認識されなければ、空行が現れるまで基本的に単一のパラグラフです。

どのHTMLを選んだって
大した違いはないとは思う。だって、ハイパ
ーリンクはa要素で作るのだし、見出しはh1-h6
タグで括るのだし、段落はpタグで括るのだし。

閲覧者にとっては本当にどうでも良い
ような部分に違いがあるだけだ。
<p>どのHTMLを選んだって
大した違いはないとは思う。だって、ハイパ
ーリンクはa要素で作るのだし、見出しはh1-h6
タグで括るのだし、段落はpタグで括るのだし。</p>
<p>閲覧者にとっては本当にどうでも良い
ような部分に違いがあるだけだ。</p>

引用

> で始まる行は引用です。空行が現れるまで単一のblockquote要素として認識します。

>その頃かれの知識欲は漸く明瞭になって来た。
>すなわちわれわれは何を知るか、何によって、
>またいかにして知るか、われわれに知らない
>ものは何であるか、などということをはっき
>りさせることであった。
<blockquote><p>その頃かれの知識欲は漸く明瞭になって来た。
すなわちわれわれは何を知るか、何によって、
またいかにして知るか、われわれに知らない
ものは何であるか、などということをはっき
りさせることであった。</p></blockquote>

罫線

任意の文字(a-zA-Z0-9あ-んを除く)が7つ以上連続しているなら、それはhr要素です。

------------
<hr />

ブロック要素の入れ子

ブロック要素内にブロック要素を入れることは、基本的に出来ません。

例外が幾つか在ります。

>>オンドゥルルラギッタンディスカー
>なんですって?
<blockquote>
<blockquote><p>オンドゥルルラギッタンディスカー</p></blockquote>
<p>なんですって?</p>
</blockquote>

リスト内にリストを入れるには、タブ文字で字下げします。

>・訪問済みリンクと、未訪問リンクには異なる色を使用する。 
>	・未訪問リンクは、訪問済みリンクよりも鮮やかで明るい
色にすべきだ。訪問済みリンクの色は、「くたびれた」
(鈍くて色あせた)ように見えるべきだ。 
<blockquote>
<ul>
<li>訪問済みリンクと、未訪問リンクには異なる色を使用する。 
	<ul>
	<li>未訪問リンクは、訪問済みリンクよりも鮮やかで明るい
色にすべきだ。訪問済みリンクの色は、「くたびれた」
(鈍くて色あせた)ように見えるべきだ。 </li>
	</ul>
</ul>
</blockquote>

定義リスト内で入れ子は出来ません。HTMLを書きます。

Aさん
	<p>発言だらだら</p>
	<p>発言だらだら</p>
<dl>
<dt>Aさん</dt>
<dd><p>発言だらだら</p>
<p>発言だらだら</p></dd>
</dl>

強調

* と * によって括られた部分があれば、それはem要素です。** と ** ならstrong要素。

少人数のジャズバンドが演奏し、
わるい針を使ったほうが効果的な、*娯楽のためだけ*の、
**ダンスのためだけ**の流行歌などは問題としないこと
にしよう。
<p>少人数のジャズバンドが演奏し、
わるい針を使ったほうが効果的な、<em>娯楽のためだけ</em>の、
<strong>ダンスのためだけ</strong>の流行歌などは問題としないこと
にしよう。</p>

引用句

" と " で括られている部分は引用句です。

シーザー曰く、"ブルータス、おまえもか"
<p>シーザー曰く、<q>ブルータス、おまえもか</q></p>

属性

ブロック要素の属性

ブロック要素の属性は、「先行読み込み方」です。@属性名:属性値 という行があると、属性リストにストックされます。で、次に登場したブロック要素によって「消費」されます。

@class:red
@lang:ja
=赤旗
<h1 class="red" lang="ja">赤旗</h1>

ちなみに赤旗はclass="red"から連想しただけで、私は白けた自民党支持者です(どうでもいい)。

インライン要素の属性

インライン要素の属性は、そのインライン要素を示すマークの直後に @属性名:属性値 を書くことで示します。

シーザーは、"ブルータス、おまえもか"@cite:isbn:spam
とシェイクスピアに言わされた。
<p>シーザーは、<q cite="isbn:spam">ブルータス、おまえもか</q>
とシェイクスピアに言わされた。</p>

インライン要素の属性の値は改行が現れるまで認識され続けます。

アンカー

アンカーは 『 と 』 で括ります。

・『example.com』@href:http://www.example.com/
・『Google』@href:http://www.google.com
<ul>
<li><a href="http://www.example.com">example.com</a></li>
<li><a href="http://www.google.com">Google</a></li>
</ul>

その他の要素

私は言語の考案者がでっちあげた変な構文は覚えたくないのです。その点にいつも無駄な時間を費やされています。そこで、「普通に」示すことの出来ない要素は、HTMLで書きます。例えばdfn要素です。尚、HTMLはそのまま残るので、「普通に」かかずにそのままHTMLを書いても大丈夫です。*強調*と書いても<strong>強調</strong>と書いても同じです。

実装

参照

ワレズ日記: クリップボード HTML
PerlとWikiの文法のカスタマイズで実現する方法。どうもありがとうございます。

webmaster@jintrick.net
公開: 2004年05月23日
カテゴリ: HTML ,Python