2010-07-02 75 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擴展的表生成函數來做一些巧妙的事情,或者安裝一個允許你創建循環的擴展,但是我認爲你可能會被阻止像上面描述的那樣手動創建每一行。

作爲最後一點,因爲這是內容,而不是格式化,我建議您將列頁放在主空間而不是模板名稱空間中。事實上,這是子頁面所擅長的。

相關問題