* Magnus Manske magnusmanske@googlemail.com [Sun, 23 Jan 2011 00:38:53 +0000]:
On Sat, Jan 22, 2011 at 10:09 PM, Platonides Platonides@gmail.com wrote:
Krinkle wrote:
So PHP would extract {{#author:4}} and {{#license:12}} from the textblob when showing the editpage. And show the remaining wikitext in the <textarea> and the author/ license as seperate form elements. And upon saving, generate "{{#author:4}} {{#license:12}}\n" again
and
prepend to the textblob.
Double instances of these would be ignored (ie. stripped
automatically
since they're not re-inserted to the textblob upon saving). One small downside would be that if someone would edit the textarea manually to do stuff with author and license, the next edit would re-arrange them since
they're
extracted and re-insterted thus showing messy diffs. (not a major point as long as it's done independant from JavaScript, which it can be if done from core / php).
If that's what you meant, I think it is an interesting concept that should not be ignored, however personally I am not yet convinced this is the way to go. But when looking at
the
complete picture of up/down sides, this could be something to consider.
-- Krinkle
That's an alternative approach. I was thinking in accepting them
only
at
the beginning of the page, but extracting from everywhere is also an alternative.
OK, my 2 cents:
I would be in favour of extracting data from the {{Information}} template via the parser, but we talked about this over a year ago at the Paris meeting, and it was deemed too complicated (black caching magick etc.), and noone has stepped forward to do anything along those line, so I guess it's dead and buried.
Things like {{#author:4}} seem to be a nice hack to Get Things Done (TM). As was mentioned before, the temptation is great to expand it into a generic triplet storage a la Semantic MediaWiki, but that would probably complicate things to an extend where nothing gets done, again.
But one thing comes to mind: If someone implements an abstraction layer ("4" to a specific author) anyway, it should be dead simple to use it for tags as well. Just allow multiple {{#tag}}s per page (as opposed to {{#author}}), done. The same code that will allow for editing author and license information centrally should make it possible to edit tag information, i18n for example, so the tag display could be in the current user language (with "en" fallback). Search for tags i18n-style could be possible as well, if the translation information is encoded machine-readable as well, e.g. as language links ([[de:Pferd]] on the [[Tag:Horse]] page).
You are correct - triplets definition are always meant to be as much generic as possible, something like categorizing or tagging. It is better to define them separately from templates and to include the references to their values in the template. Such way it would not complicate the parsing too much. Although one might want to have a fancy visual forms to edit these, that probably brings caching issues?
It might be too much to try to activate all of that in the first round, but IMHO the code should keep the use as tags in mind; it would be dreadful to waste such an opportunity.
Dmitriy