[Top][All Lists]

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

Re: yet another todo editing system

From: Joe Corneli
Subject: Re: yet another todo editing system
Date: Sun, 15 Jun 2003 20:44:24 -0500 (CDT)

>        o  By exporting all the lists in a "path" (as in, math_hw*), you 
>         can build hypertext outlines.
> I don't understand what that means in concrete terms.  So I cannot
> tell whether it would be easy or hard to make Outline mode do this
> too.

I mean that you can export every Todo file with a certain prefix to html
at once very easily.  The command line expression that will do this is

    % todo -l math_hw* -html

If the files you are exporting are linked together in an outline-like
structure (e.g. math_hw.A, math_hw.A.1, math_hw.A.2, math_hw.B, etc., with
the appropriate links from math_hw.A to math_hw.A.1 and math_hw.A.2, etc.)
then the output from the command quoted above will be several HTML pages
that give an outline of the math_hw tree.

A concrete example of a "hypertext outline" is on my webpage at


this has a catalog of the things in my apartment shortly after moving in.

>     I.e. forward links do not appear automatically; backwards links as
>     discussed in my eariler email to Kai do appear automatically.
> I am not sure what "forward links" and "backward links" mean in this
> context.  Outline mode does not have anything to do with links.

Ok, here is an example:


contains a "forward link" to


(Only "forward links" have been exported to HTML.)

In my Todo working directory there is a file called


that contains exactly one line, viz.,

< > inventory.library <<inventory.library>>

This "backwards link" represents the fact that "inventory.library links to
inventory.library.bookcase".  If I added a link to
inventory.library.bookcase from the file foo, the line

< > foo <<foo>>

would be added automatically to the file
inventory.library.bookcase.clients to represent the new "client", foo.

Todo has a lot to do with links!  You can use Todo to build a hypertext
network with any kind of "graph structure". Importantly, not just a
dendritic structure like you find in outlines.

The "backwards links" are very useful for navigating though the weird
hypertext structures that you can build.
>       It might turn out to be useful for editing
>     code, since you could easily see which functions use the current
>     function -- though of course you can do that with plain ol' grep too.
> A feature for browsing programs certainly ought to be part of Emacs.

One way to think about this feature would be to instantiate a function
prototype (a b c) -- as in, (insert &rest ARGS) -- as something like this:
((a "link a") (b "link b") (c "link c")) -- where "link a" points to
whatever fills the first slot of the the prototype in this instantiation.  
The "link bla" stuff would be more-or-less invisible when you were
browsing, but C-<feature> would take you from a link to what actually goes

Eg. you might see something like (insert _COPYING_) in the code.  
C-<feature> would take you from "insert" to its definition or from
"_COPYING_" to its definition.  Or if you write out the text of "COPYING",
you could press M-<feature> to collapse the text down to a link.

(This example is probably pretty silly - but it gives an example for
how a "code browser" might work.)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]