On Tue, Jun 30, 2009 at 6:54 PM, Brian<brian.min...@colorado.edu> wrote: > On Tue, Jun 30, 2009 at 10:16 AM, Brion Vibber<br...@wikimedia.org> wrote: >> As many folks have noted, our current templating system works ok for >> simple things, but doesn't scale well -- even moderately complex >> conditionals or text-munging will quickly turn your template source into >> what appears to be line noise. > > In addition to changing the programming language that is used in the > template namespace a lot of progress can be made on the readability of > articles (and thus how usable they are) by rethinking how we invoke > templates, or rather how we make data available to templates. > > If you look at the George W. Bush article you see that the first 50 > lines of the article are template code and that his birthday is > declared multiple times like so: > > |birth_date={{birth date and age|mf=yes|1946|7|6}} > born July 6, 1946 > |DATE OF BIRTH=July 6, 1946 > > Editors clearly need a better system for declaring facts about > articles and then using them in advanced template programming. One can > imagine an alternate system where his birthday is only declared once, > like so, in the article text: born on [[birthday::July 6, 1946]]. And > so on for all the other facts listed in his infobox. Rather than > declaring them explicitly in the infobox, you declare them explicitly > inline in the text in a highly readable format. > > Then there is the issue of calling templates. Where do you place them > within the article? Much like MediaWiki itself I suggest we introduce > the notion of hooks. Beginning of article, end of article. Beginning > of section, end of section. Beginning of paragraph end of paragraph. > Template programmers can use these hooks to inject data that is > declared explicitly in the article into various points of the article. > > This can be thought of as a separation of content and presentation. > Articles have the constraint that their source code must, under all > circumstances, be highly readable to our visitors. That way our > visitors might become encyclopedia writers! Associated with those > articles is another page where users can control higher level > organizations of the content in the body of text. They can format it > in infobox style, process it any way they like using our new > programming language, and place it in a variety of locations > throughout the article without sacrificing the readability of the > wikitext at all. > > It will take a little bit more conceptual work to handle all cases, > such as inline references, etc.., etc... But the bottom line is that > the source code to articles on Wikipedia has become so complicated > that it is now too difficult for reasonable people to consider > editing. One user said that adding a new programming language to > MediaWiki is totally orthogonal to the method that we use to pass data > to those programs, or the context in which those programs are called. > I couldn't disagree more - one of the major reasons Wikipedia is so > unreadable today is because of the way we call templates from > articles. From the bottom of the design to the top, it needs to be > rethought. I believe that this conversation should be held far beyond > wikitech-l and should be made available to subscribers of almost all > of our lists and also the large pool of contributors. One of the > reasons that we ended up with ParserFunctions is that very few people > were involved in the conversation. Do we even understand the problem > that needs to be solved? I am not convinced that it has been > adequately characterized.
I'm not sure how one would make your hook system work in a way that was practical and not totally opaque to the editor. An idea that has been toyed with a couple of other places is to allow defined blocks and references to them in article text. For example: An article might start: <display name="infobox" /> Thomas Jefferson was the third president... and at the end of the article have: <define name="infobox"> {{infobox ... }} </define> It would provide the flexibility to place items where needed in the article while moving the complex wikicode into a separate segment that's less likely to confuse novices. One could also call <display> multiple times if there is an element (like a birth date) that needs to be repeated in some awkward manner. There is actually code lying around somewhere that implements such a system for <ref> so that the first call would not need to attach the full reference definition but could simply use <ref name="foo" /> if a corresponding <ref_define name="foo">...</ref> appeared later in the text. Personally, my guess is that a system of placement by reference would make for a more flexible / less confusing approach than trying to create a system of article hooks and attach infoboxes and the like to them. -Robert Rohde _______________________________________________ foundation-l mailing list foundation-l@lists.wikimedia.org Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/foundation-l