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

xhtml dtd hypertext '<a id="fuga">'



こんにちは、
飛田です.

http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_Hypertext

の中に、次のような項目があります.

F.3.1.3. Hypertext

<!-- ...................................................................... -->
<!-- XHTML Hypertext Module  .............................................. -->
<!-- file: xhtml-hypertext-1.mod

     This is XHTML, a reformulation of HTML as a modular XML application.
     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: $Id: xhtml-hypertext-1.mod,v 4.0 2001/04/02 22:42:49 altheim Exp $ SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

       PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Hypertext

        a

     This module declares the anchor ('a') element type, which
     defines the source of a hypertext link. The destination
     (or link 'target') is identified via its 'id' attribute
     rather than the 'name' attribute as was used in HTML.
-->

で、これを読むと (私の読み違いが無ければ)

 <a href="#fuga">fuga</a>

を辿ると

 <a id="fuga">fuga の説明</a>

とあるところに飛んでくれると良いように思います.

素の w3m/0.4.1 ではそのように動いてくれますが、emacs-w3m だと、どうも
 <a name="fuga">fuga の説明</a> というように、"name" でないと飛んでくれ
ません.

そこで、ものは試しに w3m.el の "name" とまったく同じ様に "id" について
つけ足してみました.

    (while (re-search-forward "<a[ \t\r\f\n]+" nil t)
      (setq start (match-beginning 0))
      (setq prenames (get-text-property start 'w3m-name-anchor))
-      (w3m-parse-attributes (href name charset
+      (w3m-parse-attributes (href name charset id
				  (rel :case-ignore) (hseq :integer))

[...]

+	    (when id
+	      (w3m-add-text-properties start (point-max)
+				       (list 'w3m-name-anchor
+					     (cons id prenames))))))
 	 (name
 	  (w3m-add-text-properties start (point-max)
 				   (list 'w3m-name-anchor
-					 (cons name prenames)))))))
+					 (cons name prenames))))
+	 (id
+	  (w3m-add-text-properties start (point-max)
+				   (list 'w3m-name-anchor
+					 (cons id prenames)))))))

すると、一応 "name" の場合でも "id" の場合でも動いているようです.

どうするのが良いのか、とか、他の物との整合性とか良くわからないのですが、
"id" でも動いてくれると嬉しいです.

宜しくお願い致します.

-- 
  Shinichiro HIDA  mailto:shinichiro@stained-g.net
  GPG fingerprint = 5F2D 1656 FFF6 F691 A51C  5E61 E416 D398 470C 1CE9