I notice that the latest wikipedia home page does inclusions by using the {{msg:...} "transclusion" variable.
It seems to me that inclusions like this should come from the $wgMetaNamespace or other namespace, not the MediaWiki namespace. The MediaWiki namespace is really for running the software, and should not really contain specific user modifyable site data.
Perhaps we need a new set of variables for these operations.
How about:
{{incl:article}} # include from the default namespace {{incl:namespace:article}} # include an article from 'namespace'. {{incl:language:namespace:article}} {{inclnw: ...} } # use the nowiki tag {{repl: ...}} # new version of {{subst:}}
This provide a more general mechanism without making obsolete the old one and providing a migration path for the type of include used by Main_page. It also uses the same naming convention as the [[...]] markup.
Nick Pisarro
Nick Pisarro wrote:
I notice that the latest wikipedia home page does inclusions by using the {{msg:...} "transclusion" variable.
It seems to me that inclusions like this should come from the $wgMetaNamespace or other namespace, not the MediaWiki namespace. The MediaWiki namespace is really for running the software, and should not really contain specific user modifyable site data.
I completely disagree. Whoever said the MediaWiki namespace was "for running the software"? Or for anything, for that matter? Factually, we can use the MediaWiki namespace to do the {{msg:...}} stuff, so we do. It is a very useful feature, and its functionality and usefulness is in no way at all influenced by the name of the MediaWiki namespace. (For usability by newbies, maybe the MediaWiki namespace should instead be called Includables or something, but as I said, this does not affect the functionality.)
Additionally, I really don't think it should be possible to include any article in any other article. An article should be clearly marked as being "includable" (which it is by being in the MediaWiki namespace). I don't know if it is currently possible to place a {{msg:}} inside a page on the MediaWiki namespace, but I believe that should be disallowed to prevent circular references (infinite recursion).
Timwi
Timwi-
I completely disagree. Whoever said the MediaWiki namespace was "for running the software"?
The software is called MediaWiki. The namespace is called MediaWiki. But it is used for purposes that have nothing to do with the software. That is confusing (bad usability!) and should be changed.
There is really no significant added overhead in making it impossible to create new MediaWiki: pages and having a separate Template: namespace. In my opinion that is much more user-friendly and keeps interface translation/adaption and content management separate.
Nick's idea of arbitrary inclusion requires some more discussion. It would be more difficult to cache pages for inclusion. Right now we can load all the articles in the MediWiki namespace into memcached, which is fairly manageable. Once any article can be transcluded, we have to rely on the database.
On the other hand, arbitraty inclusion would open some pretty neat possibilities. It's very close to Ted Nelson's Xanadu visions. You could start thinking about specifiers like {{include:Religion#2-}}, which would include all sections except the intro from the religion article. Using such mechanisms you could then build different views of an article (long, detailed pages or smaller, more specific pages). Of course you'd also get a whole barrel of new problems. Nevertheless, I think we should remain open to the possibility while keeping caching in mind.
Regards,
Erik
Erik Moeller wrote:
Timwi-
I completely disagree. Whoever said the MediaWiki namespace was "for running the software"?
The software is called MediaWiki. The namespace is called MediaWiki. But it is used for purposes that have nothing to do with the software. That is confusing (bad usability!) and should be changed.
Firstly, just because the namespace is called MediaWiki doesn't have any impact on what it can or can't be used for.
Secondly, even *if* it was not originally intended for this purpose (which is hard to believe, seeing as the {{msg:}} functionality was available right from the start), that is no argument to not use it.
Thirdly, bad usability is a legitimate concern, but not an obstacle. It can be rectified by renaming the namespace, but it certainly does *not* mean you should immediately stop using it at all until that is done.
There is really no significant added overhead in making it impossible to create new MediaWiki: pages and having a separate Template: namespace.
Yes, there is. Developer time. There actually is no added overhead of simply keeping it the way it is. It's the same thing either way.
In my opinion that is much more user-friendly and keeps interface translation/adaption and content management separate.
I agree about the user-friendliness if we rename the namespace to "Template" (or "Templates" or "Includables" or whatever).
On the other hand, arbitraty inclusion would open some pretty neat possibilities. It's very close to Ted Nelson's Xanadu visions. You could start thinking about specifiers like {{include:Religion#2-}}, which would include all sections except the intro from the religion article. Using such mechanisms you could then build different views of an article (long, detailed pages or smaller, more specific pages).
I'm not sure I like that; if that was done, then numerous articles would contain copies of the same text. This, in turn, would mean that I can't browse Wikipedia's collection of articles on a particular topic without being presented with repetitions of the same text over and over again. Conversely, if I just skipped an article for this reason, then I can't be certain that I haven't skipped anything that isn't repeated elsewhere.
Timwi
Wikimedia developers wikitech-l@Wikipedia.org writes:
Additionally, I really don't think it should be possible to include any article in any other article. An article should be clearly marked as being "includable" (which it is by being in the MediaWiki namespace). I don't know if it is currently possible to place a {{msg:}} inside a page on the MediaWiki namespace, but I believe that should be disallowed to prevent circular references (infinite recursion).
If you did implement this feature, as you build up the page you *would* have to watch for circular references. You could do this by stacking the fully qualified names of what your in the middle of including and make sure the new file isn't already on the stack.
You should really do this anyway if there is nested inclusion now.
Marking an article as includable is a thought, but how would you do that? You could restrict your inclusion to a special "Templates" name space, but that would not be as powerful. I don't think that would be necessary, unless there are caching considerations.
Nick Pisarro
Nick Pisarro wrote:
Wikimedia developers wikitech-l@Wikipedia.org writes:
Additionally, I really don't think it should be possible to include any article in any other article. An article should be clearly marked as being "includable" (which it is by being in the MediaWiki namespace). I don't know if it is currently possible to place a {{msg:}} inside a page on the MediaWiki namespace, but I believe that should be disallowed to prevent circular references (infinite recursion).
If you did implement this feature, as you build up the page you *would* have to watch for circular references. You could do this by stacking the fully qualified names of what your in the middle of including and make sure the new file isn't already on the stack.
It would still be possible to create a ridiculously long chain.
You should really do this anyway if there is nested inclusion now.
Yes, I agree. I don't know if this is done.
Marking an article as includable is a thought, but how would you do that?
It's already possible. By putting the "article" into the MediaWiki namespace.
You could restrict your inclusion to a special "Templates" name space,
That namespace already exists, except it's called "MediaWiki".
Timwi
On Thursday 26 February 2004 21:11, Timwi wrote:
Nick Pisarro wrote:
Wikimedia developers wikitech-l@Wikipedia.org writes:
Additionally, I really don't think it should be possible to include any article in any other article. An article should be clearly marked as being "includable" (which it is by being in the MediaWiki namespace). I don't know if it is currently possible to place a {{msg:}} inside a page on the MediaWiki namespace, but I believe that should be disallowed to prevent circular references (infinite recursion).
If you did implement this feature, as you build up the page you *would* have to watch for circular references. You could do this by stacking the fully qualified names of what your in the middle of including and make sure the new file isn't already on the stack.
It would still be possible to create a ridiculously long chain.
Or you could do something similar to redirects, allow only one level of inclusion.
Nick-
Marking an article as includable is a thought, but how would you do that? You could restrict your inclusion to a special "Templates" name space, but that would not be as powerful. I don't think that would be necessary, unless there are caching considerations.
I think it would be useful to have
$wgIncludeFromNamespaces
content from all namespaces in that array could be transccluded using {{incl:}}.
$wgCacheFromNamespaces
content from all namespaces in this array would be kept in memcached.
{{repl:}} should work with all namespaces, I see no reason for it not to.
Regards,
Erik
Wikimedia developers wikitech-l@Wikipedia.org writes:
Marking an article as includable is a thought, but how would you do
that?
You could restrict your inclusion to a special "Templates" name space,
but
that would not be as powerful. I don't think that would be necessary, unless there are caching considerations.
I think it would be useful to have
$wgIncludeFromNamespaces
content from all namespaces in that array could be transccluded using {{incl:}}.
$wgCacheFromNamespaces
content from all namespaces in this array would be kept in memcached.
{{repl:}} should work with all namespaces, I see no reason for it not to.
These suggestions would allow the greatest range of flexibility. This might be the key to resolving most of the objections to this idea.
I'll put together a design document of {incl...} idea on meta.wikipedia and include some of this discussion.
Nick Pisarro
wikitech-l@lists.wikimedia.org