2010-07-02 103 views
1

Wikimedia explains how you can create a table基于多个模板,其中每行由单个模板组成。是否可以创建一个由多个模板填充列的mediawiki表格?

无论如何要做同样的列吗?这听起来很简单,但我无法让它工作。相反,我的页面显示多个表格而不是多个列。

下面是一些代码:
行页面

{|class="wikitable sortable" style="font-size:85%" 
|+ table name 
! Title 1 
! Title 2 
! Title 3 
|- 
{{R1}} 
{{R2}} 
{{R3}} 
|} 

行模板:

| Row 1, Column 1 
| Row 1, Column 2 
| Row 1, Column 3 
|- 

列页面

{{C1}}{{C2}}{{C3}} 

列模板: 不知道这应该如何工作。

回答

1

我认为这是不可能的。我想了一下,我不知道该怎么做。

也许某种嵌套的模板重新排列列和行的顺序。看起来很困难,我不确定它在理论上是可能的。

+0

thx,我也会得出这个结论。感谢你给它一些想法。 – Wikis 2010-07-06 17:27:47

-1

你可以得到的列使用的DIV模板填充,但你更是预示了重建和重新大小中的每个格设置手动

+0

你能提供一些示例代码吗? – Wikis 2012-04-17 21:07:56

3

每个小区我知道的唯一方法,比用浮动创建一个虚拟表等<div> s,正在使用Labeled Section Transclusion(或其等效{{#dpl}}函数,如果您有Extension:DynamicPageList)。您可以使用<section/>标签或标题分别标记“列模板”的每个单元格,然后创建一个框架表,通过跨列模板填充每行。该结构将是这个样子:

{|class="wikitable sortable" style="font-size:85%" 
|+ table name 
! Title 1 
! Title 2 
! Title 3 

|- valign="top 
| {{#lst:col1|row1}} 
| {{#lst:col2|row1}} 
| {{#lst:col3|row1}} 

|- valign="top 
| {{#lst:col1|row2}} 
| {{#lst:col2|row2}} 
| {{#lst:col3|row2}} 

|- valign="top 
| {{#lst:col1|row3}} 
| {{#lst:col2|row3}} 
| {{#lst:col3|row3}} 
... 
|} 

这种解决方案缺乏折腾出列,你可以折腾出行方式的简单,但可悲的是HTML只是不旨在创造真正的基于列的表格。但是,通过这种布局,每列的所有信息至少可以存储在同一页面上,您可以更轻松地编辑它(如{{col1}},{{col2}}等),如果您正在记录文本信息,则还可以读取每列作为一个可能方便的独特页面。

如果你打算做很多事情,你可以通过创建一个填充每一行的模板来进一步简化它,所以你只需要指定行号,如下所示:(假设你的列总是作为子页面放置在那里他们将出现在文章)的

template:col-based table row 
{{!}}- valign="top" 
{{!}} {{#lst: {{PAGENAME}}/col1 | row{{{1|}}} }} 
{{!}} {{#lst: {{PAGENAME}}/col2 | row{{{1|}}} }} 
{{!}} {{#lst: {{PAGENAME}}/col3 | row{{{1|}}} }} 

然后标题下你只需要列出:

{{col-based table row|1}} 
{{col-based table row|2}} 
{{col-based table row|3}} 
... 

现在,如果你想,直到你用尽模板自动-产生这些行(或换句话说,让表格决定如何许多行的创建没有你手动设置),我不认为我可以帮你。也许你可以用DPL扩展的表生成函数来做一些巧妙的事情,或者安装一个允许你创建循环的扩展,但是我认为你可能会被阻止像上面描述的那样手动创建每一行。

作为最后一点,因为这是内容,而不是格式化,我建议您将列页放在主空间而不是模板名称空间中。事实上,这是子页面所擅长的。

相关问题