From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Stephen J. Turnbull" Newsgroups: gmane.emacs.xemacs.design,gmane.emacs.devel Subject: Re: INFO on add-ons Date: Thu, 05 Sep 2002 13:22:30 +0900 Organization: The XEmacs Project Sender: xemacs-design-admin@xemacs.org Message-ID: <871y89rrp5.fsf@tleepslib.sk.tsukuba.ac.jp> References: <3D728E82.8000808@cox.net> <87ptvxxkoj.fsf@tleepslib.sk.tsukuba.ac.jp> <87fzwtxad9.fsf@tleepslib.sk.tsukuba.ac.jp> <3D73F6D1.7010002@cox.net> <874rd7wuos.fsf@tleepslib.sk.tsukuba.ac.jp> <3D74D797.7000707@cox.net> <87bs7etocv.fsf@tleepslib.sk.tsukuba.ac.jp> <200209041549.g84FnQp19483@rum.cs.yale.edu> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1031199768 31041 127.0.0.1 (5 Sep 2002 04:22:48 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 5 Sep 2002 04:22:48 +0000 (UTC) Cc: Miles Bader , bob@rattlesnake.com, emacs-devel@gnu.org, xemacs-design@xemacs.org Return-path: Original-Received: from gwyn.tux.org ([207.96.1.200]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 17moAI-00084O-00 for ; Thu, 05 Sep 2002 06:22:46 +0200 Original-Received: from gwyn.tux.org (localhost.localdomain [127.0.0.1]) by gwyn.tux.org (8.9.3/8.9.1) with ESMTP id AAA27836; Thu, 5 Sep 2002 00:24:12 -0400 Original-Received: (from turnbull@localhost) by gwyn.tux.org (8.9.3/8.9.1) id AAA27804 for xemacs-design-mailman@xemacs.org; Thu, 5 Sep 2002 00:23:52 -0400 Original-Received: (from mail@localhost) by gwyn.tux.org (8.9.3/8.9.1) id AAA27800 for turnbull@tux.org; Thu, 5 Sep 2002 00:23:52 -0400 Original-Received: from tleepslib.sk.tsukuba.ac.jp (tleepslib.sk.tsukuba.ac.jp [130.158.98.109]) by gwyn.tux.org (8.9.3/8.9.1) with ESMTP id AAA27795 for ; Thu, 5 Sep 2002 00:23:50 -0400 Original-Received: from localhost ([127.0.0.1] helo=tleepslib.sk.tsukuba.ac.jp ident=steve) by tleepslib.sk.tsukuba.ac.jp with esmtp (Exim 3.36 #1 (Debian)) id 17moA7-0006PP-00 for ; Thu, 05 Sep 2002 13:22:35 +0900 Original-To: "Stefan Monnier" In-Reply-To: <200209041549.g84FnQp19483@rum.cs.yale.edu> ("Stefan Monnier"'s message of "Wed, 04 Sep 2002 11:49:25 -0400") Original-Lines: 100 User-Agent: Gnus/5.090007 (Oort Gnus v0.07) XEmacs/21.4 (Informed Management, i686-pc-linux) X-Delivery-Agent: TMDA/0.61 X-XEmacs-List: design Errors-To: xemacs-design-admin@xemacs.org X-BeenThere: xemacs-design@xemacs.org X-Mailman-Version: 2.0.1 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Discussion of design and features for XEmacs. List-Unsubscribe: , Xref: main.gmane.org gmane.emacs.xemacs.design:1408 gmane.emacs.devel:7511 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:7511 >>>>> "Stefan" == Stefan Monnier writes: Stefan> Huh?!? What kind of wacky Emacs macros did you have to Stefan> maintain indices and to ensure a consistent style when Stefan> editing Info files ? I didn't do indicies (at the time writing Info was a lot easier for me than the mechanics of contributing, so I knew what was in there), mea maxima culpa, although I doubt it would be that hard to write a macro to do it. As for style, Info has basically three forms of physical presentation, *emphasis*, `literals' and META VARIABLES. Very mnemonic. (I find modern Texinfo bewildering in its variety of useful-only-in-the- hardcopy markup, @url and @htmlurl and @file and @dir and @subdir and @lionsandtigersandbearsohmy and so on.) Stefan> What's so great about compared to Stefan> @kindex C-x k ? I wouldn't have a kindex element. It would be an attribute of the key element: C-x k runs the command kill-buffer. ... An alternative to C-x k RET C-x b UP RET is M-x erase-buffer RET. This means that it would be easy to make an XML-based indexing helper. If you just index all references, it could be automatic. If you want intelligent indexing, as above, it would be interactive. This would mean that it's hardly a crime to be lazy about indexing, as I was with the third key element above. I'm sure you could do it with regexps and Lisp for texinfo, too, but with XML these possibilities just walk up and bite you on the ankle. Furthermore, XML allows you to take natural advantage of commonality, as I did in the example above by endowing the cmd element with an index attribute. Now, any time I want to index something, I just add an index attribute. I don't need to remember @kindex and @cindex and @whateverindexthetexinfomaintainerdeemsnecessarytoday. If we add an "eg" (to be distinguished from "ref") value for index attributes, then it's easy to ensure all indexables share that new distinction. And the validating parser will barf if index isn't an attribute of key, while Texinfo doesn't care if I @kindex{Stefan Monnier}. (Tell me about how easy it would be to fix _that_ bug.) If I really want to index keys, I report it to the XML/Info maintainer as an RFE. If approved, implementation is trivial. You change the definition in two places in the DTD. You add the index attribute to key, and key to the list of indexables for an appropriate index. It's also easy to add features like xindex, which would automatically put "see also" entries in the indicies. Stefan> What's so great about foobar compared to Stefan> @sample{foobar} ? Nothing. Once again, I want the Document Object Model, so I can use the many tools that are being developed for structure manipulation. I want locality (index an attribute of key, rather than a separate markup). I want orthogonality, so that once a new contributor learns a concept, she can employ it correctly everywhere. Documentation should be do-able by users who aren't specialists in Emacs or in documentation. (See the Thi-Thien Nguyen thread.) Stefan> XML has its advantages, but for a *source* format, it's just Stefan> way too cumbersome/verbose, That is clearly a deficiency of XML in this application, although I hardly think it's crippling. In "suppress-attribute" mode, the example above appears as C-x k runs the command kill-buffer. ... An alternative to C-x k RET C-x b UP RET is M-x erase-buffer RET. Perhaps with fontification to indicate that some of the elements have hidden attributes. Still more verbose, but I'm willing to sacrifice terseness for the power and orthogonality I've described above, power that Somebody Else Somewhere is already implementing and maintaining for me. YMMV. Stefan> unless you use an editor that hides the markup, but then Stefan> what would such an editor look like ? PSGML? outline-mode (for structure editing)? It would even be possible to use TeX-like {element contents} notation to decrease verbosity. Stefan> If you say WYSIWYG Please, I have asthma. Take your strawman outside. ;-) -- Institute of Policy and Planning Sciences http://turnbull.sk.tsukuba.ac.jp University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN My nostalgia for Icon makes me forget about any of the bad things. I don't have much nostalgia for Perl, so its faults I remember. Scott Gilbert c.l.py