On Sun, Jan 26, 2014 at 11:41 AM, Sylvester Keil <[email protected]> wrote: > On Sat, 2014-01-25 at 10:36 -0500, Rintze Zelle wrote: >> On Sat, Jan 25, 2014 at 5:40 AM, Sylvester Keil <[email protected]> wrote: >> > Going back to the first question, I do see some merit in allowing >> > substitution cs:names to inherit the child nodes from the original >> > cs:names even when they are called by a macro; not allowing it is easier >> > to implement, but by allowing it, style authors could effectively >> > override the cs:name, cs:et-al and cs:label settings of a macro. >> >> Having cs:names in a called macro inherit the attribute settings from >> the parent cs:names of cs:substitute makes CSL less expressive. E.g., >> if the parent cs:names defines et-al abbreviation, there will be no >> way to get rid of it in the called macro. This isn't an issue for >> inheritable name attributes, since there, if some name variables need >> to be rendered without et-al abbreviation, the style author can always >> abstain from defining the et-al attributes on cs:style, cs:citation, >> and cs:bibliography. > > Right, I've changed the processor to use the cs:names parent of > cs:substitute during the substitution process only: > > - When the current cs:names does not have children of its own > - And when the cs:names that is being substituted is an ancestor of the > current cs:names in the XML tree > > Does that sound good?
Yes. By the way, looking at the schema, I just noticed how much flexibility there is in defining elements within cs:substitute (basically any content allowed within macros can be used within cs:substitute). CSL 1.0.1 also made cs:name an optional child element of cs:names, which makes it impossible to distinguish between the "shorthand" cs:names an a regular cs:names. Perhaps we should consider limiting cs:substitute in future versions of CSL, and e.g. only allow the cs:names shorthand and cs:text (to call variables and macros) as children. Anything complex can then be moved out into a macro. Rintze ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ xbiblio-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/xbiblio-devel
