[racket] secref & other-doc

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed Apr 30 15:15:00 EDT 2014

It would make sense for a document to be accompanied by a library that
exports the document's module path and tag names, so that the path and
tags could change. Even better, the module could export `secref`-like
functions to refer to various sections of the document, where the
functions map to the same or different sections, and the mapping could
change over time.

So, we can support a spectrum of less-to-more abstract approaches, and
maybe we should build Scribble libraries that help with the more
abstract end of the spectrum.

I think your larger point is that Racket modules tend encourage the
less abstract end, and I agree. But I also think that's the right
choice, along the same lines that structs should have been made
transparent by default (and it took me a long time to arrive at that
conclusion).

At Wed, 30 Apr 2014 12:17:08 -0400, Matthias Felleisen wrote:
> 
> I think we are discovering a weakness in our language-oriented programming 
> approach. 
> 
> Scribble benefits from linguistic inheritance from modules but our interface 
> story for modules is under-developed. We don't write down provides for sections 
> and their references, which we should if others should be able to link into 
> sections, and we also don't have tools that show us what we expose. 
> 
> -- Matthias
> 
> 
> 
> 
> 
> 
> 
> 
> On Apr 29, 2014, at 8:21 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> 
> > You just have to know. That is, you can only refer to a specific
> > document when its main source module's path is somehow publicized, and
> > you can only refer to a section within a document its suitable tag is
> > publicized somehow.
> > 
> > We haven't pushed much on this direction, and the only sense that we've
> > "publicized" document modules and tags is by providing the source ---
> > so fishing out the ".scrbl" source file is the only answer we have, so
> > far. Of course, it would be nice to have a better answer in the future.
> > 
> > In the case of the "@ Syntax" page, you've probably already worked out
> > that you want
> > 
> > @secref["reader" #:doc '(lib "scribblings/scribble/scribble.scrbl")]
> > 
> > To ensure that links will continue to work, we refrain from moving
> > document sources in the collection tree, and we refrain from changing
> > sections tags. So, the `secref` call above should always work in the
> > future.
> > 
> > 
> > At Tue, 29 Apr 2014 15:40:22 -0700, Matthew Butterick wrote:
> >> + What's the best way to discover the tag argument needed for secref without 
> >> actually fishing out the .scrbl source file associated with a particular 
> HTML 
> >> file? (When a #:tag argument is specified in the .scrbl source, it doesn't 
> seem 
> >> to appear in the HTML.)
> >> 
> >> + What's the best way to figure out the '(lib ...) argument needed for 
> secref 
> >> or other-doc? For instance, I'm trying to use other-doc to link to the "@ 
> >> Syntax" page in the Scribble docs. [1] I'm probably overlooking something 
> >> obvious, but I've not come up with a permutation of path elements that works.
> >> 
> >> 
> >> [1] 
> >> 
> http://docs.racket-lang.org/scribble/reader.html#%28part._.The_.Scribble_.Syntax
> >> _at_a_.Glance%29____________________
> >>  Racket Users list:
> >>  http://lists.racket-lang.org/users
> > ____________________
> >  Racket Users list:
> >  http://lists.racket-lang.org/users
> 
> 
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

Posted on the users mailing list.