On Sat, 2005-06-11 at 00:54 +0100, Rowan Collins wrote:
- I'm not 100% sure about external links using "|" as a separator (you
don't have an example of this, but you imply it) - because they can be quite long and include all sorts of characters, it might not be clear at a glance where the URL ends and the text begins:
You're right, I don't have an explicit example, but it was my intent. If you want to have URLs with "|" (pretty rare, I think), you'll have to encode that character, just as we would with spaces now.
- your omission of any keyword or character to reference built-in
variables seems odd - <<servername>> looks like it should mean "invoke extension 'servername' with no input". I think <<global servername>> or <<$$servername>> would be more consistent with your other syntax.
Yes, each variable is like an extension of its own, and some of them *will* have arguments, for example <<currentmonth tc gen>> when you want the name of the current month, in titlecase and genitive.
- come to that, why do template parameters ("<<$foo>>") get to be less
verbose than everything else? Consistency would demand "<<param foo>>", whereas simplifying most common usage would probably lead to something like "<<+foo>>" instead of "<<include foo>>".
The $ things are for parameter expansions *inside* the template, not for invocations of a template, so they're just like variables. I think "$" is just as evocative as "param", and easier to type, especially in the three-way fallback syntax. I wouldn't mind simplifying some of the other ones like "include" or "raw" down to a special character, especially in light of you're good point about internationalization.
I suspect you've been swayed by programming experience here - it's "obvious" to you that "$" means "variable", so why invent something new? But in doing so you've over-ridden what was clearly a design goal of not having lots of "magic characters"; for better or worse, that avoidance is the feature that comes out most strongly - verbosity in place of arcanity, I guess.
True, I am swayed by programming experience, but I'm not so concerned with having many special characters, as long as they have some overall sane structure to them--that's why "$$" is used for <tt>, for example; it evokes the idea of "variable" there as well. Simplicity is a goal, but not number one; this is simpler than the existing syntax, but not simpler than needed to achieve goal number one, ***ease of editing**.
- I note that your image syntax sticks with the current kinds of
argument (although a cryptic note implies that some of these will relate to styles in some way); it occurs to me that things like "frame" and "left", being neither named nor position-dependent, aren't consistent with everything else. Perhaps "align=left" and "style=frame"? [I guess what they imply is "frame=true" and "left=true", but this isn't how, say, "<<include foo left thumb>>" would interpret its arguments]
The details here are yet to be worked out. It is my intent that each extension interpret its arguments its own way, so the arguments to image will be only those meaningful to it, and not include *purely* stylistic things, except maybe as shortcuts. Again, I'm wiling to sacrifice a little bit of simplicity and/or consistency for ease of use.