On Fri, Jan 04, 2002 at 11:29:20AM -0700, Sean M. Burke wrote:
> At 11:13 2002-01-04 -0500, Adam Turoff wrote:
> >[...]
> >Like many XML folks, I trust James implicitly when it comes to markup
> >languages; if he says that adding a macro facility such as =equate is a
> >bad idea in a markup language, then it's a Bad Idea(tm).  
> 
> First off, I don't trust him implicitly any further than I can throw him
> implicitly.

Fair enough.

> And =equate as I've outlined it is hardly a "macro facility" such as he
> would deride.  It's simply a way to declare a new element while allowing
> /simple/ fallback to established constructs.  I'm quite leaning against
> resisting any capability to say:
> =equate D "Shazbot: ~!"
> such that D<yow> turns into "Shazbot: yow!".

Nevertheless, I don't think that embedding this in the Pod document
using them is the correct location for such declarations.

If they're done in an ad-hoc manner in the beginning of a document (or
anywhere else for that matter), then they simply lead to confusion 
of someone reading the source who isn't the original author.  If they
are intended to be reusable constructs, it leads to cargo cult markup
descriptions scurrying hither and thihter.  

This is regardless of =equate's status as a macro facility.

The way to create such descriptions such that they're reusable is
to do so externally.  This could be done with an "=use foo"
declaration that would load in some =equate definitions from a
foo.pod file in an appropriate location.  Alternatively, the "=use foo" 
declaration could work at the layer of a parser/formatter, such that
a simple yet-to-be-defined heuristic would be used to load a Perl
module that would define what D<> (or anything else) means, and
possibly [re-]parse it as well.

Z.

Reply via email to