公開メモ日記
Webに載せる記事を書くとき、いちいちHTMLを書かなくてすむように、各種Wiki文法やはてな記法を参考にして、文法の乱立に荷担して申し訳ないと思いつつ、幸之介の@2.0のための記法を考えてみました。まだ実装してませんが、われながら、超使いやすいと思います。HTMLもそのまま書けるし。
そして、この記法で書かれた記事データを、記法のままとHTML変換後のふた通りで保存しておく仕様を考えています。記法だけを保存すると、記事を表示するときに毎回HTMLに変換するので効率が悪いし、HTML変換後だけを保存すると、修正時に記法に戻す処理やそれに伴って事前にやっておかなくちゃいけない記法への可逆変換処理がスマートではないと感じたためです。サーバーのCPUよりテキストを保存するディスク容量のほうがコスト低いし。
ちなみに、こんなメモ日記を興味を持って読んでくれるのは、10人もいないと思います。
リリースしてわずか1時間余りの幸之介記法(仮称)ですが、ビックリマークを前後にふたつずつ付ける !!テキスト!! で強調させるのは、まずいと思いました。
ビックリマークふたつは文章中に比較的よく出てくるので、特にスタパ斉藤さんあたりだと、強調しまくりでめちゃくちゃになってしまいそうです。
というわけで、ビックリマーク3つに変更。根本的解決になってない気はしますが、複数の種類の記号を使うとタイプしにくいし、Wikiでよくある '''テキスト''' 方式は引用符で強調というのが不自然に思えるから。表に出さない仕様として、ブロック要素をまたぐと!!!の開始をリセットするので、きっと問題ない。
例によって若葉ちゃんやakくんに大変ご好評いただいております幸之介記法。akくんは詳細な感想と要望を付けてくれたので、それに応えます。
「見出しのアンカー処理の自動化」は部分的に採用し、[#anchor テキスト]とすると、テキストに対して見出しで指定したanchorにリンクします。しかも[#anchor]だとアンカー先のテキストに対するリンクにしてくれます。
akくんの仕様の[#テキスト]だと、中身に一字一句違わない見出しを書くのは危ういし(IEでテキストをコピーすると最後に半角スペースが入ったりする)、アンカーの自動生成は当初考えていたのですが、やはり一意性の問題と、人間可読性の問題があるためにやめました。
「パラグラフは一行空きの方が良いのではないか」は採用。空行で段落を生成し、単なる改行はまったく無視します。
これも当初迷っていたところで、初心者に対するユーザビリティとして、改行したのにそれが反映されないというのはかわいそうに思えたのでした。しかし心を鬼にします。それに、改行と折り返しの区別が付かなくなるのはわたしもよく体験します。
「引用形式が不適切な気がする」はほぼ不採用。blockquoteにcite属性は付けますが、要素としてのciteはやはりblockquoteの中です。
要素の位置関係については Web KANZAKI を参考にしました。また、blockquoteのtitle属性にcite属性の中身のページタイトルを入れる件ですが、blockquoteそのもののtitle属性としてはなんか違う気がするので不採用。ついでに、引用ブロックの上にマウスを置いたときにIEの仕様でtitleがポップアップするのが邪魔に思います。
「強調」は了解。ブログサービスとして公開する際の説明文としても少し意識していたので「太字」と書きましたが、初心者の人には空気を読んでもらうということで「強調」に改めました。
em要素にも触れられてしまったので、半角スペースを挟んで ! !テキスト! !で強勢にします。実際のスタイル適用も、letter-spacing:0.5em;あたりにしようと思っています。emは「強調」ではなく「強勢」と表す方がよいと、声を大にして言いたい。emとstrongの違いについては一家言あるので、また今度書きます。
「記法の停止」は不採用。
偶然半角スペースが入る事態に出くわしたことがないのと、記法の停止が利用者にとって致命的ではないから。プレビュー画面で気づけばすぐ修正できます。それに、エスケープ記号は美しくないと感じるのです。
あと、自己改善ですが、[1]などで表す画像の[]を二重にすると、画像をクリックしたときに最大640*640pxの大きさでポップアップウィンドウが開くようにします。[[1]]という感じ。われながらいい記法表現だと思います。
各所に議論が巻き起こっている、大人気の幸之介記法です。まぁ、各所といっても若葉ちゃんとakくんの2ヶ所だけど。先日のブラッシュアップ直後にakくんが「幸之介記法 (2)」を書いてくれたほか、一日じらした甲斐があったか、より有益な記事をふたつも読むことができました(若葉ちゃんによる「Re: 引用のマーク付け」と、akくんによる「幸之介記法 (からちょっと逸脱)」)。
論点はblockquote要素のマークアップに絞られているようです(記法自体はもう論点から外れたっぽい)。
結局、若葉ちゃんの現在の結論はcite要素を中に入れるのかどうか明言されていないのですが、わたしとしては、blockquote要素がなにも直接的に引用そのものである必要はなくて、「引用したコト」のひとつの情報として、中にcite要素を入れることに抵抗はまったく感じないのです。唯一気になるのは、引用する文章の中に元々cite要素が入っている場合に峻別が難しくなる場合ですが、それを人間にも(もちろん機械にも)わかるようにするための努力は、blockquoteの外に出したcite要素をblockquoteと結びつけるためにする努力と、何も変わらないように思います。であれば、レアケースな前者を気にするより、後者から逃れられる方が楽ではないでしょうか。
ちなみに、この問題については『blockquote要素の中に出典を示すcite要素を包含すべきか』に関する議論リンク集に多くの意見が載っているようです。
HTML 5の覚書という記事に、「em要素とstrong要素の違いは重要度ではなくなった。」と書かれています。まさにわたしが思っていたとおりの結果だと確信したと同時に、ずっと昔にakくんから「emとstrongの違い」について期待されていたことを思い出し、HTML 5の覚書を補足する形であらためてわたしの認識を示しておきます。てか件の記事にある「<p>猫は<em>かわいらしい</em>動物だ</p>」なんて例としてわかりにくすぎだろ…。
というわけで、わかりやすい例。
1.「中国の<em>市場規模は</em>、いずれ日本を抜くだろう。しかし技術力はまだまだ日本に追いつけない。」
2.「中国の市場規模は、<em>いずれ</em>日本を抜くだろう。しかしそれは今日明日の話ではない。」
3.「中国の市場規模は、いずれ日本を抜く<em>だろう</em>。バブルの崩壊で大恐慌でも起こらないかぎり。」
4.「最強最悪と思われた大ハリケーンも、<em>当初想定されたほどの被害は</em>もたらさなかった。」
5.「中華<em>で</em>いいの?中華<em>が</em>いいの?」
で、英語の文章ではこのような「強勢」を、HTMLが広まる前からずっとイタリック体を使って表現してきたのです。太字を使うのはあくまで「強調(=重要語句)」であって、これは「強勢」とはまったく異質のものです。いっぽうの日本語の文章では、「強勢」は主にカッコ書きや、上点(ヨコ点)などで表現されますね。カッコ書きはともかく、重要語句を上点で表現することなどありえないはずです。つまり日本語にもちゃんと「強勢」と「強調」の区別の意識はある。
これまで英語圏の人々は、emとstrongの仕様上の定義こそあいまいながらも、ブラウザのレンダリングがイタリックとボールドだったために、これまでの紙の上での文章表現の慣習と結びつけて素直に区別されてきた感があります。混乱していたのは日本人その他だけ。というか、W3Cも悪いが、それに気付いて「慣習としては〜のように使い分ける」などと説明できなかった日本側のいろんなひとたちも悪いとわたしは思うのです。思っていたのです。ずっと。
参考: あまもよう - 幸之介記法 (2)