From: Van de B. <van...@gm...> - 2011-10-31 19:36:02
|
> I like this idea too. However, I suspect it will be hard to get MW to > ignore {{{#n}}} just for the purposes of SMW. I would say opposite: it would be easy to implement. With a little hack to MW core (I think I will proposed it soon) I implemented following extensions: {{ #assign: var | value }} (I would like to use {{ #set: }}, but `set' is already occupied by SMW.) After it, {{{ var }}} returns `value'. What is more important, variable `var' is local to the current template, not global like {{ #var: var }}. Another extension I am playing with is `validate': {{ #validate: | param1 = alias: 1; type: integer; in-range: 2, 6; default: 2; | param2 = alias: 2; type: string; default: Oops; | ... }} This checks template arguments (by using `Validator' extension), and /changes/ template arguments, for example, for assigning default values, so in the rest of template code you still use normal notation {{{ param1 }}}, {{{ param2 }}}, etc. Ok, my point is that implementing in-line templates with triple-brace placeholders is possible and, actually, simple. (BTW, you may vote for https://bugzilla.wikimedia.org/show_bug.cgi?id=31995 to push it to MW core, because the patch for triple-brace is very similar -- it gets access to `Frame' internals from outside of `Frame'. I think it will be more chances for triple-brace if this one is accepted.) Regarding the other stuff... I think a "personal" template for each printout statement my be overkill... However, I do not like numbered placeholders as well. We already have /names/ of properties, why don't use them? For example: {{ #ask: [[Category:City]] [[Area::+]] [[Population::+]] | ?Population=Inhabitants | ?Area#km²=Size in km² | format=inline | inline={{{Population}}} people squeeze into the {{{Area}}} of {{{City}}}. | limit=3 }} Van. On Sat, 2011-10-29 at 19:50 +0100, Dan Bolser wrote: > I like this idea too. However, I suspect it will be hard to get MW to > ignore {{{#n}}} just for the purposes of SMW. > > Is there a cleaner way to 'inline' a format template in the query? > > I totally agree that creating two or three templates for one ask query > is the main reason that template format is a pain. > > > Cheers, > Dan. > > On 28 October 2011 23:18, Jon Lang <dat...@gm...> wrote: > > Dan Bolser wrote: > >> > >> Hi, > >> > >> Currently we have tabular format results and, if we want > >> customization, we have 'template' format results. > >> * Tabular format is great, but is quite inflexible. > >> * Template format is very flexible, but complex, hard to develop and > >> maintain. > >> > >> I'd like to suggest a half way house for simple column based tabular > >> formatting. Something along the lines of the following: > >> > >> {{#ask: [[My Cat]] > >> |? My prop 1 # Template for p1 > >> |? My prop 2 # Template for p2 > >> |? My prop 3 > >> |? My prop 4 = P4 > >> }} > >> > >> For each row, this would call the template 'Template for p1' with just > >> one parameter, the value for 'My prop 1'. The resulting wikitext would > >> then be passed back for regular tabular layout. As implied, these 'per > >> column' templates could be mixed with 'unadorned' values, that would > >> appear just as in regular tabular output. > >> > >> This would be a much lighter and easier way to 'tweak' the results of > >> tabular format without going to the full blown (and sometimes > >> unpopular) template format. > >> > >> I've posted here for discussion, but we can start a feature request > >> instead. > >> > > > > I like this idea, and would like to piggyback a suggestion of my own here. > > > > Sometimes, the reason why the template format is unpopular is because it is > > overkill. For instance, if you're only going to be formatting a single > > #ask, creating a full template page for it seems like a bit much. I'd like > > to see an "inline" result format that works just like the template result > > format except that it embeds the template directly into the query. For > > example: > > > > {{#ask: [[Category:City]] [[Area::+]] [[Population::+]] > > | ?Population=Inhabitants > > | ?Area#km²=Size in km² > > | format=inline > > | inline={{{#2}}} people squeeze into the {{{#3}}} of {{{#1}}}. > > | limit=3 > > }} > > > > The hash marks inside the triple-curlies are to distinguish these "inline > > template" parameters from any regular template parameters that may be in > > play if the #ask appears on a template page. > > > > This is germane to Dan's proposal in that I would recommend inline templates > > for what he's suggesting rather than regular templates: > > > > {{#ask: [[My Cat]] > > |? My prop 1 # format string for p1 > > |? My prop 2 # format string for p2 > > |? My prop 3 > > |? My prop 4 = P4 > > }} > > > > As with my "inline result format" suggestion above, the value for each > > cell's format would be specified as {{{#1}}}. So: > > > > {{#ask: [[Category:City]] [[Area::+]] [[Population::+]] > > | ?Population=Inhabitants # {{{#1}}} people > > | ?Area#km²=Size in km² > > | limit=3 > > }} > > > > would produce something like: > > > > {| > > ! Inhabitants !! Size in km² > > |- > > | Berlin || 3,391,409 people || 891.85 km² > > |- > > | Frankfurt || 679,664 people || 248.31 km² > > |- > > | Karlsruhe || 285,812 people || 173.46 km² > > |} > > > > If you wish to utilize an actual template page, you can do so using the > > regular wiki syntax for including a template; the only catch is that I think > > that you'd have to explicitly pass the value into the template: > > > > {{#ask: [[My Cat]] > > |? My prop 1 # {{template for p1|{{{#1}}}}} > > |? My prop 2 # {{template for p2|{{{#1}}}}} > > |? My prop 3 > > |? My prop 4 = P4 > > }} > > > > -- > > Jonathan "Dataweaver" Lang > > > > ------------------------------------------------------------------------------ > Get your Android app more play: Bring it to the BlackBerry PlayBook > in minutes. BlackBerry App World™ now supports Android™ Apps > for the BlackBerry® PlayBook™. Discover just how easy and simple > it is! http://p.sf.net/sfu/android-dev2dev > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user |