途中で終了。
そもそも HTML にも gzip 圧縮がかかっていないことに気付いた。埋め込み装体書が長くなり神経質になっていたからか。修正済み。
KNEST::HTML() としてデラングの HTML 出力を担っていた。
希哲15年3月22日,新デラング実装の出振るいに伴ない,KNEST::HTML_old() に改称,KNEST::HTML() は新旧実装切り替え可能インターフェイスとする。
デラング整備,HTML タグ切り替えについて再検討。
iframe 要素と sandbox 属性を使い,自輪郭については allow-scripts を加えてスクリプトもある程度使えるようにし,他輪郭についてはスクリプト禁止しつつ注意表示をした上でタグを有効化出来る,という方向で考えていた。
ただ,自輪郭はこれでいいとして,他輪郭については用合いとして少し煩雑かという気もしていた。例えば,ちょっとしたタグが1つ使われているだけでも切り替えて見なければならない。読み手にとってはもちろん,柔軟な表現のためにタグを使いたい書き手にとっても好ましい用合いではない。
そもそも HTML の安全性についていちいち検査したくない,というのが動機だったが,Dex によってそれも大した問題ではなくなってきた。
他輪郭についても,ある程度制限はした上で安全なタグは普通に利用出来るように軌道修正することにした。
YouTube や Twitter 等の埋め込み交度にもある程度対応することにした。
これも検査が面倒という点で避けていたが,よく考えると,それらしい入力から最小限のパラメーターだけ拾って,予め用意しておいたテンプレートに置換して出力すれば安全性は容易に担保出来る。
共有用 URI の先頭に + を付けるだけという渡括記法もあった方が良いが,慣れない人は埋め込み交度を貼り付けてくる可能性が高い。
強調については,Markdown 式のアスタリスクを使った方法を採用する。
ただ,欧文・和文で斜体の位置付けが異なるといった問題があるため,アスタリスク1つで em 要素による「軽い強調」,2つで strong 要素による「重い強調」とし,表示については場合とフォントによる,としておくことにした。斜体どころか太字に対応していないフォントもあるため,ここは割り切る。
斜体を表現するために Org-Mode のスラッシュによる記法導入も検討したが,台録記法などいくつか干渉する可能性があるため見送り。
ここで,全角アスタリスクを重い強調に使えるようにすることを思い付く。
もともと DIL 0.2 では半角・全角のアスタリスクで囲んだ文字列を strong 要素にする機能があり,和文中で適度に目立つという理由で個人的にはよく全角を使っていた。これなら自然に和文での斜体を避けられる。
下線については アンダースコアを使った方法が分かりやすいので Org-Mode 方式を採用する。
Org-Mode のようにハッシュを使った記法は利用頻度に対して混同の可能性が高い。
多少冗長でも明確な方がいいということで C 部区込め言の採用を検討したが,HTML が使えるのだから HTML 込め言 で十分だろう。
定表記法については,どの言語も整列の指定方法があまり美しくないので,独自記法を考える。
左寄せなら左縦線にくっつけ,右縦線との間に1つ以上のスペースを空ける,右寄せならその反対,中央寄せなら両側に1つ以上のスペースを空ける,という記法を考案した。
少し忘れていたが,第三次宣伝攻勢を始める前にもう一つやっておくべきこととして,HTML タグ切り替えがあったため再検討。この描出を見て必要性を再認識した。
考えてみれば,HTML タグを使うつもりがなくても引用で入ってしまう可能性がある。誤った HTML が放置されていれば用者にとってはもちろん SEO 上の障害にもなる。
基本的な方針はデライト公式で書いた通りだが,実装にあたっては若干の課題も残っていた。
他輪郭の描写は原則として HTML タグを無効化するとして,有効化した際にスクリプトだけ無効化するというのは意外に難しい。
script 要素を禁止するだけでは十分でなく,on- 属性や iframe 要素等の抜け道も塞がなくてはならない。
on- 属性 に関しては,on で始まる属性を一律削除するか non- にでも置換してしまうことを考えたが,そもそも on- が HTML において予約接頭子なのかよく分からない。
いずれにせよ,HTML の拡張性や近年の仕様変更の激しさを考えると,ブラックリスト的な検査は避けたい。
ここで iframe 要素の sandbox 属性が使えることに気付いた。これならスクリプト禁止の意図を明示出来る。ブラウザ対応状況も悪くない。
スクリプトのみならず,iframe なら誤った HTML によってページ全体の領当てが影響を受けることも簡単に避けられる。自輪郭では allow-scripts を加えるだけでスクリプトを許可出来る。
いっそのこと全ての描写部を砂房にして原則タグ有効に出来れば話は簡単だが,iframe 要素は色々な意味で重く,SEO にも向かない。タグを悪用した迷惑行為やフィッシング等の可能性が完全になくなるわけでもなく,iframe 以前にタグの処理は重いのでやはり原則無効化,有効化時のみ iframe に置換するというのが現実解だろう。