An internally handled parser function doesn't conflict with showing it
as a textbox.
We could for instance store it as a hidden page prefix.
Data stored in the text blob:
"Author: [[Author:Bryan]]
License: GPL
---
{{Information| This is a nice picture I took }}
{{Deletion request|Copyvio from
http://www.example.org}}
"
Data shown when clicking edit:
Author: <input type="text value="Bryan" />
License: <select>GPL</select>
<textarea name="textbox1">
{{Information| This is a nice picture I took }}
{{Deletion request|Copyvio from
http://www.example.org}}
</textarea>
Why do I like such approach?
* You don't need to create a new way for storing the history of such
metadata.
* Old versions are equally viewable.
* Things like edit conflicts are already handled.
* Diffing could be done directly with the blobs.
* Import/export automatically works.
* Extendable for more metadata.
* Readable for tools/wikis unaware of the new format.
On the other hand:
* It breaks the concept of "everything is in the source".
* Parsing is different based on the namespace. A naive parsing as
"License: GPL" instead of showing an image and a GPL excerpt, would be
acceptable, but if incomplete markup is stored there, the renderings
would be completely different. Could be skipped if placing the metadata
inside a tag. But what happens if the tag is inserted elsewhere in the
page? MediaWiki doesn't have run-once tags.
PS: The field author would be just a pointer to the author page, so you
wouldn't need to edit everything on any case.