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

Re: some Google links not linked?

Hi Jidanni,

I've added a filter to the emacs-w3m trunk so as to work around
news.google.com.tw.  The filter is as follows, runs on raw html
contents that are passed to `w3m -halfdump':

| w3m-fix-illegal-blocks is a compiled Lisp function in `w3m.el'.
| Replace <div>...</div> within <a>...</a> with <span>...<br></span>.
| <div> is a block element that should not appear within inline elements
| like <a>, however some web sites, e.g., news.google.com.tw, do so and
| w3m regards it as an incomplete <a> tag that is not closed.

N-san and Ito-san wrote that what's bad is news.google.com.tw
(see above) and don't want to make w3m work around.  I agree and
value their policy.  But, although a block element appearing within
an inline element is illegal, it doesn't mean to prohibit a browser
from doing something with it, I believe. ;-)  So, I wish emacs-w3m
developers agree with having made it follow a way that Firefox, IE,
etc. do.

In [w3m-dev : No.04431] 伊東さん wrote:
>>> <div> で <a> が閉じられてしまうためですね。
>> そういうことなのですか。素人としては <foo> を閉じるのは </foo>
>> だけだと思っていたので、ちょっと驚きです。

> これについては、【えぬ】さんの御指摘のとおりです。<div> が現れた時点で
> <a> の閉じ忘れと判断してしまいます。

えぬさん、伊東さん、ご説明ありがとうございます。w3m が html 処理
いとも思うので、emacs-w3m としては見かけの動作を Firefox や IE
などに倣うことにしてみました。Emacs-w3m のみんなの賛同が得られれ

>> 私の手元ではスペースの代わりに 0x9E というものが返ってきました。

> 念のため確認しましたが、確かにスペース (0x20) でした。

こちらではやはり 0x9E です。変ですね。locale は関係無さそうだし。

$ w3m -halfdump test3.html| od -t cx1
0000040   h   i   .   c   o   m   /   "   > 236   <   /   a   >  \n   T
         68  69  2e  63  6f  6d  2f  22  3e  9e  3c  2f  61  3e  0a  54

このためか、w3m 単体でも news.google.com.tw のリンクは使えません。

$ /usr/local/bin/w3m -version
w3m version w3m/0.5.2+cvs-1.1040, options lang=ja,m17n,image,color,\
$ /usr/bin/w3m -version
w3m version w3m/0.5.2, options lang=en,m17n,image,color,ansi-color,\