[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

=?utf-8?b?UmU6IFtlbWFjcy13M206MTI4MTZdIFJlOiDml6XmnKzoqp4gV0lLSVBFRElBIOOBriBhbg==?==?utf-8?b?Y2hvcg==?=



HTML5 では、id属性値(a要素のnameはobsolete)もURLのfragmentにも禁則事項はほとんどなく、ドットで始まる値はもちろん記号類だけでも良いと規定されています。

http://www.w3.org/TR/html5/dom.html#the-id-attribute
https://www.w3.org/TR/html5/obsolete.html#obsolete-but-conforming-features
https://url.spec.whatwg.org/#url-fragment-string

ここで許されない非ASCII文字は、普通は%-encodingすると思いますが、Wikipediaのように独自の様式でエンコードするのもあり、ですね。
現状の [a-z][-.0-9:_a-z]* はちょっと狭すぎるかもしれません。

2017年11月20日 10:01 Katsumi Yamaoka <yamaoka@xxxxxxx>:
In [emacs-w3m:12812]
On Sat, 18 Nov 2017 15:59:50 +0900, 白井さん wrote:
> ご無沙汰しています。白井です。

こんにちは。お久しぶりです。

[...]

> WIKIPEDIA がマルチバイト文字の anchor を作るときに、UTF8の各BYTE
> を "." で区切って生成しているようですが、

> <a href="">span class="tocnumber">1</span>
> <span class="toctext">特徴</span></a></li>

> のように "." で始めているのが敗因で

今まで気が付きませんでした。ご指摘ありがとうございます。
そんなエンコーディングの手法、というか規格があるんですか?  もし
wikipedia 独自なのであれば

> w3m-filter-add-name-anchors() は href="">\)\"
> と受けているため、emacs-w3mが扱える <a name=XXX> の生成をしてい
> ません。

> ここを href="">z]*\\)\ に変えれば動作します
> が、HTML4 だと name や id は [A-Za-z] で始まると規定されていたの
> で悩ましいところです。

そういう対処も仕方ないと思います。
そもそも w3m-filter-add-name-anchors じたい、

<TAG ... id=\"FOO_BAR\" ...>FOO BAR</TAG>

というものの前に

<a name=\"FOO_BAR\"></a>

をむりやり置いて w3m が扱えるようにする、しかも用の無い name ア
ンカーも作ってしまうものなので、わざわざ ja.wikipedia.org 専用に
仕立てる必要も無いだろうと。

というわけで変更しておきました。
--
山岡
;; eww の、閲覧バッファ内に置く input/textarea を emacs-w3m でも
;; 使えないかと思ったのが発端で、この一ヶ月 eww をいじっています。