2012-07-25 55 views
2

我正在使用mediawiki管理一些数据,并且想知道是否可以从现有wiki数据生成标准化页面,而不必创建非常类似页面的负载。在理想的情况下,我会有一个由CGI动态填充的数据库后端和页面模板,我想知道mediawiki模板系统是否可以被强制填充到这个角色中。Mediawiki模板并生成标准化页面

这是我想做什么:

数据页

name:  banana 
colour: yellow 
tastiness: extremely high 
extra:  some more stuff, potentially with complicated wiki formatting 
links:  www.banana.com; www.iheartbananas.org 
image:  banana.jpg 

name:  apple 
colour: red, green 
tastiness: variable 
extra:  some more stuff 
links:  www.apple-fruit.com 

,然后在数据库中的每个项目,生成标准化的页面:

<name> Info 

It is generally <colour> 
Its tastiness rating is <tastiness> 
Read more about <name> at <links> 

<image> 

这是使用mediawiki模板可能吗?

+1

有扩展可以将外部数据加载到wiki模板中。参见例如[Extension:DataTransclusion](http://www.mediawiki.org/wiki/Extension:DataTransclusion)。您仍然需要一种自动生成页面的方法。也许可以将该扩展与[页面预加载扩展]结合使用(http://www.mediawiki.org/wiki/Manual:Creating_pages_with_preloaded_text)。 – Christian 2012-07-25 16:02:32

回答

2

模板是可能的,但它不一定是一个好的解决方案。您需要创建这样每个项目数据模板,东西(比方说,Template:FruitData/banana):

{{ {{{template}}} 
| name =  banana 
| colour = yellow 
| tastiness = extremely high 
| extra =  some more stuff, potentially with complicated wiki formatting 
| link =  www.banana.com 
| image =  banana.jpg 
}} 

和显示模板(比如Template:StandardFruitDisplay):

[[File:{{{image}}}|thumb|right]] 
The {{{name}}} is a {{{colour}}} fruit with {{{tastiness}}} taste. {{extra|}}} See [http://{{{link}}} {{{{link}}}]. 

,然后在实际显示它像这样的页面:{{ Template:FruitData/banana | template = StandardFruitDisplay }}

但是你可能更喜欢一些以数据为中心的扩展,可能(除非你的目标是极端的灵活性或用户控制)。

+0

谢谢,这很好。正如你所说,模板不是最好的解决方案,但这是解决这个问题的方便方法。 – 2012-07-26 18:23:08