行動化訊息框/提示與技巧

## 行動化訊息框

### 目前狀況

Fandom努力於建立包容性更大的Wiki生態系的努力，現在有了一個在使用 行動化訊息框上「好的實踐」 (但還不是最佳實踐，也可參見CSS與標籤)。這些會持續進展，還會有新一代的其他模板。許多行動化訊息框已經建立了！這裡是除了官方說明之外的另一種說明選擇。

**如果你並沒有需要建立或修改模板，這個指引對你來說不必要。**

你也可以先參見相關的常見問題。

就像所有新功能一樣，它會有許多錯誤，我們會在 錯誤列表（英文）中注意追縱並試圖解決這些問題。

背景
--

如同其他訊息框一樣，有一個 放在Template: 頁面中的格式（例如 Template:Infobox character)。然而，不像其他所有的模板，行動化訊息框是使用特別的XML格式，而不是wiki文本或 Lua程式。這種語法更多是在wiki文本中的HTML或 擴展功能，而行動化訊息框的語法實際上是一個擴展功能的腳本；這功能使鴃能在多種平台上適當地顯示。

一旦模板建立之後，它就像其他模板的使用方式一樣。這代表對大多數Wiki來說，變更模板甚至可以不需要變更文章裡的內容。 而變更工具正是以此為目的而設。最終的文本，有可能在部分的wiki中，還需要作一些修改。在這種狀況下，會需要一個全新的語法。而需要注意的是在大多數變更工具無效的狀態，可能是很舊的模板（很可能在其他裝置上顯示不佳）或是特別複雜 (使用Lua 或Parser函數)，或非常常典的訊息框（其中有很可能不能在各裝置適當顯示的設計）。

基本
--

主條目：help:訊息框

在文章頁中，訊息框使用的方式和原本一樣，例如

```
{{infobox character
}}
```

使用的模板 (在這個例子中是 Template:Infobox character) 可能是使用行動化訊息框語法，看起來像是這樣：

```
<infobox>
 <title source="title" />
 <image source="image">
 <caption source="imagecaption" />
 </image>
 <data source="position" />
 <data source="age" />
 <data source="status" />
 <data source="height" />
 <data source="weight" />
</infobox>

```

上面的例子就能產生基本的訊息框，也就是使用變更工具時所產生的。但還有一些沒用的功能，可以使它更好。這裡我們導入「預設」（可以由源代碼編輯中產生）的「標籤」「格式」。這讓我們能以純粹的資訊而非混雜的資訊和單位來開始，但同樣的功能還可以做很多其他事，我們在後面還會再介紹。

```
<infobox>
 <title source="title">
 <default>{{PAGENAME}}</default>
 </title>
 <image source="image">
 <caption source="imagecaption" />
 </image>
 <data source="position">
 <label>位置</label>
 </data>
 <data source="age">
 <label>年齡</label>
 </data>
 <data source="status">
 <label>狀態</label>
 </data>
 <data source="height">
 <label>身高</label>
 <format>{{{height}}} 吋</format>
 </data>
 <data source="weight">
 <label>體重</label>
 <format>{{{weight}}} 公克</format>
 </data>
</infobox>

```

## 變更工具說明

主條目：help訊息框變更工具

訊息框變更工具是用於將其他類型的訊息框轉換為行動化訊息框的工具。但如果是比較複雜的模板，還是需要以手動來處理。

## 用視效編輯器來插入訊息框

使用視效編輯器（新的wiki編輯者最常用的工具）來進行訊息框增加本身是不難的。在編輯工具欄會有一個下拉式選擇提供行動化訊息框的列表。但要作一些調整以及操作就稍複雜。其中一些訊息框的變量會沒有說明，且圖片和影片的插入較不容易。

要用視頻編輯器在訊息框中插入圖片（或影片）需要在文章中使用插入工具，並將該圖片的指標在源代碼編輯器中剪貼至訊息框。很重要的是，圖片要放置什麼變量。其他像是大小、圖片說明、縮圖等的調整並不重要。如圖片的寬度是由CSS決定，而圖片標示可以使用另一個圖片標示標籤來處理。

目前使用傳統可視編輯器，也需要進入這個剪下貼上的動作。

模籤
--

主條目：help:訊息框/標籤
如果你習慣傳統的模板，應知道三個頓號所包圍的文字 (例如 "**`{{{word}}}`**")即為 參數（或變量）。它們代表在模板中輸入的內容，而該文字的值是要放入文章中的。 同樣的輸入方式在行動化訊息框中可使用 **`source="word"`**。這樣的參數用於將資料存於在文章中，但不會以輸入的樣子顯示，顯示的方式要使用 **`<format>`** 標籤。

標籤的結構安排對於追縱了解是很重要的，因為有些標籤會以巢狀結構放在其他的標籤之下。在XML，標籤的結束是很重要的，如果不用一個關閉用的標籤，那需要以**`/>`**來結束。

要將資料內容編為一個段落群組（可以是水平或是垂直的），可以使用`<group>`。

`<navigation>`標籤是一個將各類型的wiki文本放入行動化訊息框，以防止它被忽略或限制功能的常用方法。這樣標籤一般會函括一整個段落（很類似 <data> 標籤），可以用於顯示連結或任何其他資訊。導航標籤一般是用在訊息框最底下。

### 圖片

有支援與tabber類似的功能，你可以用`<gallery>` 或 `<tabber>` 標籤的模板來放置一組圖片，參見使用多個圖片或影片。

行動訊息框例子

```
<!-- Infobox character -->
<infobox layout="stacked">
  <title source="name"><default>{{PAGENAME}}</default></title>
  <image source="image" />
  <data source="season"><label>Season(s)</label></data>
  <data source="first"><label>First seen</label></data>
</infobox>

```

圖片冊使用例子

```
{{Infobox character
    Mary riding.jpg|Mary on a horse
    Mary wedding.jpg|Mary in wedding dress
    Mary dancing.jpg|Mary dancing
  </gallery>
           [[Series 4|4]], [[Series 5|5]], [[Series 6|6]]
}}

```

標籤器（tabber）使用例子。

```
{{Infobox character
    Dancing  = [[File:Mary dancing.jpg]]
  </tabber>
           [[Series 4|4]], [[Series 5|5]], [[Series 6|6]]
}}

```

## 用CSS來設計樣式

[http://zh.community.wikia.com/wiki/Help:%E8%A8%8A%E6%81%AF%E6%A1%86/CSS 主條目：Help:訊息框/CSS}}
使用這種語法的訊息框會自動加上樣式，主要來自於社區的自訂樣式。如果任何變量是空的，模板的該列就不會顯示（除非有使用「預設」標籤」）

不支援行中的CSS，而自訂CSS類別（class）也不支援，但可以藉由使用 `theme`和`theme-source`屬性，來使用預先定義的類別中的樣式元素。

### 界面布局

對於一般或表格資訊框來說，界面布局目前還很陽春，只能用於資料以及其標示。

```

 ### label

 Data

預設為類似"表格"的布局，其中的標示放在右側。

```

### label

Data

另一種布局是 `<infobox layout="stacked">`，可以將標示放在資料上方而資料會置入框的右邊。

布局也可以使用在群組上而提供更多的選擇。（參見以下以及群組相關說明）

### 群組

你可以把群組想成是子訊息框，你在其中控制布局和一些功能，不受限於整個訊息框。

群組在你想要訊息框的一部分能摺疊時很好用。你可以增加以下其中之一的屬性

* `collapse="closed"` - 預設摺疊
* `collapse="open"` - 預設不摺疊

### 樣式主題

主條目：樣式主題

樣式主題是一套用於特定行動訊息框的CSS樣式（使用`<infobox>`的 `theme="*themename*"`屬性)。一旦你指定了樣式主題，你可以將樣式用於 MediaWiki:Wikia.css中的`.portable-infobox.pi-theme-*themename*`類型（class） 。它們會不同於預設的樣式，但如果在樣式主題中沒有指定的部分，仍會使用預設樣式。

例子
* Fanz of Lucy Worsley Wiki的 The Styling of a PortableInfobox可以看到很多好的樣式主題預覽。
* 也可以參見由Robcamstone所製作的很棒的Chalkboard Theme 。

## 進階的顯示方法

最直接的使用資料方式就是輸入的和顯示的一樣。然而，行動化訊息框的第二個目標，就是讓資料結構化。在上面身高與體重的例子中，是假設所有的值都是吋和公克，而**`format`**標籤在增加內容時也預期輸入值只能的數字。在未來的視效編輯器中，有可能會有一設定讓這類欄位不能輸入數字以外的值。

### Format標籤

Format 標籤 (`<format>`) 允許用來控制變量資料如何在`<data>`, `<title>`, 和 `<caption>` 標籤中顯示。

### Parser函數

目前要使用Parser函數（ParserFunctions）可以在`<default>`、`<format>`，或`<navigation>`標籤中使用**`{{#switch:`** (或更簡單） 的) 語法。當用於format或navigation標籤時，需要該資料中有數值才會顯示。而在default標籤中使用時，避免使用連至預設的同個元素。在default標籤中使用Parser函數會從其他輸入的地方獲取資訊，用以填補顯示缺少的資訊。因此如果要測試變量，不需要使用 **`{{#if:`**語法，因為如果函數資料是空白，就不會顯示，除非 `<default>`標籤存在。

### 使用 Lua 函數

Lua函數（尤其是有多重輸入的）只要在Wiki文本能使用的地方就能生效，但它通常是在 `<format>`或<default>標籤中， 使用**`{{#invoke:}}`**語法。這部分如果在資料來源中沒有值，就不會顯示。

### DPL

"DPL"是指動態頁面列表（DynamicPageList） ，是一個複雜、能力強但有限制的wiki擴展功能，它會以基於分類和其他資料（像時間標籤或是上個編輯者）來產生列表（主要用於表格）它在Fandom並非預設開戶，需要申請才能使用這個功能。

## 未來的方向

在Community Connect 2015中，討論了關於進一步功能的發展，包括Semantic MediaWiki (SMW) 、可能在訊息框中的DynamicPageList (DPL) 、加入HTML5的microdata等，但細節尚未議定。而關於折疊與標籤的功能也有進一步的討論。

初步的擴展語法或新功能推出時，也將會在本頁增加說明。

## 另參見

* **行動化訊息框/提示與技巧**
* 行動化訊息框/常見問題
* 行動化訊息框/優點
* 行動化訊息框/最佳實踐

## 相關討論 （英文）

* Making a simplified documentation (e.g. basics page)
* A pros (and cons) page for portable infoboxes
* Non-standard (or exotic) portable info box uses