Template:NumBlk2/doc

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA Template:Documentation subpage Template:Lua 此模板是Template:Tl包裝模板wrapper template)。粗略來說,可將此模板視為Template:TlTemplate:Tl的結合。因此在一般的情況下,此模板可以直接和Template:Tl一起使用,而不需動用到Template:Tl

此模板提供與Template:Tl類似的醒目標記——藉由指定id屬性的方式來使整個Template:Tl模板成為一個HTML的錨,也就是一個可連結到的目標,當點選到某個Template:Tl模板右側顯示為編號的自我連結或其他連結到該Template:Tl模板之連結(例如[[#id|...]])時,會使得該Template:Tl模板背景顏色改變而在視覺上將整個模板凸顯出來。

Template:警告因為此模板是Template:Tl的包裝模板,所以推測當此模板與前導冒號:、前導星號*或前導井字號#一起使用時,可能會導致lint錯誤。更多資訊,請參閱[[Template:NumBlk#top-warn|Template:((NumBlkTemplate:))之警告]]。

参数

参数Template:ParaTemplate:ParaTemplate:Para是必须的。另外还有可选参数Template:ParaTemplate:ParaTemplate:ParaTemplate:ParaTemplate:ParaTemplate:ParaTemplate:ParaTemplate:ParaTemplate:ParaTemplate:Para

原先在使用Template:Tl時,需對Template:TlTemplate:Para賦值來決定Template:Tl的編號。然而透過此模板對Template:Tl的包裝,Template:Tl的編號改由此模板的介面決定,預設會根據Template:ParaTemplate:Para之值以生成自我連結並將該連結當作Template:Tl的編號,但若Template:Para生效時則依照Template:Para的參數說明決定Template:Tl的編號。

  • Template:Para
    預設作為決定id屬性、標籤的依據,參見Template:ParaTemplate:Para之說明。
  • Template:Para
    指定模板的id屬性,將Template:Para之值與Template:Para之值依序串接在一起所得之字串為此參數的預設值。id屬性在HTML文件中必需是唯一的。
  • Template:Para
    指定id屬性預設的前綴(prefix),預設值為math_
  • Template:Para
    指定id屬性預設的後綴(suffix),預設值為Template:Para之值。
  • Template:Para
    指定標籤(label),即模板右側的自我連結所要顯示的內容,預設值為Template:Para之值。
  • Template:Para
    賦予之值若為空值或全由空白字元組成則此參數失效,否則此參數生效。當此參數生效時,模板會將此參數之值轉換為Template:Tl的編號。
    Template:Para的參數值轉換到Template:Tl的編號,依序會經過以下三個步驟:
    1. mw.text.unstripNoWiki處理Template:Para之值,將文字從<nowiki>...</nowiki>標籤(tag)中提取出來,這類似於Template:Tl的效果。
    2. 將上一步的結果視為格式化字串並轉換為一般文字(plain text)。格式化字串是一種類似printf風格的格式描述。格式化字串可包含轉換指示符(conversion specifier),格式化字串之中轉換指示符以外其餘部份的字元在轉換為一般文字後維持原樣不變,而轉換指示符的轉換方式如下:
      %i
      此指示符將被轉換為Template:Para之值。
      %l
      此指示符將被轉換為Template:Para之值。
      %L
      此指示符將被轉換為小於字元<
      %G
      此指示符將被轉換為大於字元>
      %c
      此指示符將被轉換為字元cc代表ilLG以外的字元。
    3. 將上一步的結果視為wikitext並以frame:preprocess展開(expand)當作Template:Tl的編號,這類似於Template:Tsl的效果。
    Template:Para之值中如有<math>...</math>等...解析器擴展標籤,可以使用#tag解析器函數以幫助得到預期的結果,參見後面範例中的Template:EquationNote 。目前的測試顯示,也許在第一步中所使用的mw.text.unstripNoWiki函式會將字元<替換為&lt;,將字元>替換為&gt;,因此當需要避免這些字元實體參照的替換時,可以將<nowiki>...</nowiki>之中的<>字元分別以轉換指示符%L%G取代,參見後面範例中的Template:EquationNoteTemplate:EquationNote
  • Template:Para
    預設值是一些適當的屬性設定以使模板符合此文件之說明,不建議一般的使用者對此參數賦值而將預設值覆蓋掉。

參數Template:ParaTemplate:ParaTemplate:ParaTemplate:ParaTemplate:ParaTemplate:Para的意義基本上維持不變,請參見Template:Tl之說明,這裡不再贅述。

示例

本章節會先列出呼叫Template:Tl的範例,接著列出改寫為呼叫Template:Tl的範例,作為互相對照,最後可能再列出連結到前述Template:TlTemplate:Tl的範例。可以試著點選所列出的連結或模板右側的編號,以觀察透過背景顏色改變凸顯模板的效果。

Template:Remark:編號部份可能有修改而與來源中的編號不同,以確保id屬性都是獨一無二的。

範例1

此範例中可以看到以下兩種方案之間的對照:

  1. Template:Tl + Template:Tl + Template:Tl
  2. Template:Tl + Template:Tl

NumBlk

Template:Hatnote

{{NumBlk|:|<math>\Delta{}E = W + Q + E </math>|{{EquationRef|1A}}}}

Template:NumBlk

NumBlk2

{{NumBlk2|:|<math>\Delta{}E = W + Q + E </math>|1B}}

Template:NumBlk2

可以看到Template:Tl呈現出來的結果其右側的標籤是一個顯示為編號的自我連結(1B)。因為Template:ParaTemplate:ParaTemplate:Para未賦值,所以皆是預設值。Template:Para預設值是math_Template:Para預設值是Template:Para之值即1BTemplate:Para預設值是Template:ParaTemplate:Para之值的串接即math_1B,所以這裡Template:Tl模板的id屬性為math_1B

也可以透過對Template:Para賦值的方式得到類似的結果:

{{NumBlk2|:|<math>\Delta{}E = W + Q + E </math>|1C|RawN=y|FmtN=<nowiki>'''([[#%i|%l]])'''</nowiki>}}

Template:NumBlk2

連結

可藉由Template:Tl或直接以[[#id|...]]的方式連結到模板。

範例2

NumBlk

Template:Hatnote

{{NumBlk|:|<math>
\begin{array}{rcl}
x_1 \left( s = 0 \right) &=& h_1 \left( t_1, t_2, \ldots, t_{N - 1} \right)\\
x_2 \left( s = 0 \right) &=& h_2 \left( t_1, t_2, \ldots, t_{N - 1} \right)\\
\vdots \\
u \left( s = 0 \right) &=& v \left( t_1, t_2, \ldots, t_{N - 1} \right)
\end{array}
</math>|{{EquationRef|2A}}}}

Template:NumBlk

NumBlk2

{{NumBlk2|:|<math>
\begin{array}{rcl}
x_1 \left( s = 0 \right) &=& h_1 \left( t_1, t_2, \ldots, t_{N - 1} \right)\\
x_2 \left( s = 0 \right) &=& h_2 \left( t_1, t_2, \ldots, t_{N - 1} \right)\\
\vdots \\
u \left( s = 0 \right) &=& v \left( t_1, t_2, \ldots, t_{N - 1} \right)
\end{array}
</math>|2B}}

Template:NumBlk2

這個例子是對一組的數學式而非對單一的數學式加上編號,當點選Template:Tl的自我連結時,整個Template:Tl模板的背景顏色將發生改變,可以藉此而看出模板所指涉的數學式範圍。其他方法還可以直接用Template:Tl將整組的數學式包圍起來,如同Template:Oldid2的作法。

連結

範例3

NumBlk

Template:Hatnote

{{NumBlk|:|<math>F_\text{net} = F_\text{external} - F_\text{friction}</math>|<math>(\text{3A})</math>|RawN=y}}

Template:NumBlk

NumBlk2

{{NumBlk2|:|<math>F_\text{net} = F_\text{external} - F_\text{friction}</math>|(無作用)|RawN=y|IdSfx=3B|Lbl=<math>(\text{3B})</math>}}

Template:NumBlk2

上面的範例中,右側編號(標籤)依然是可點選之連結。其實以下的範例利用不同的參數設定方式,也可以得到幾乎相同的結果:

{{NumBlk2|:|<math>F_\text{net} = F_\text{external} - F_\text{friction}</math>|3C|RawN=y|Lbl=<math>(\text{3C})</math>}}

Template:NumBlk2

{{NumBlk2|:|<math>F_\text{net} = F_\text{external} - F_\text{friction}</math>|<math>(\text{3D})</math>|RawN=y|IdSfx=3D}}

Template:NumBlk2

{{NumBlk2|:|<math>F_\text{net} = F_\text{external} - F_\text{friction}</math>|<math>(\text{3E})</math>|RawN=y|Id=math_3E}}

Template:NumBlk2

也可以透過對Template:Para賦值的方式得到類似的結果,下面的例子使用了#tag解析器函數:

{{NumBlk2|:|<math>F_\text{net} = F_\text{external} - F_\text{friction}</math>|3F|RawN=y|FmtN=<nowiki>[[#%i|{{#tag:math|(\text{%l})}}]]</nowiki>}}

Template:NumBlk2

也可以改為使用轉換指示符%L%G得到類似Template:EquationNote的結果:

{{NumBlk2|:|<math>F_\text{net} = F_\text{external} - F_\text{friction}</math>|3G|RawN=y|FmtN=<nowiki>[[#%i|%Lmath%G(\text{%l})%L/math%G]]</nowiki>}}

Template:NumBlk2

如果在Template:EquationNote之中不使用轉換指示符%L%G而是直接使用<>字元,則會得到非預期的結果:

{{NumBlk2|:|<math>F_\text{net} = F_\text{external} - F_\text{friction}</math>|3H|RawN=y|FmtN=<nowiki>[[#%i|<math>(\text{%l})</math>]]</nowiki>}}

Template:NumBlk2

連結

範例4

NumBlk

Template:Hatnote

{{NumBlk|:|<math chem>\underbrace\ce{PCl5}_{(1)}\ \ce{->[t\text{-}\ce{Bu-\overset{\oplus}{NH3}.\overset{\ominus}{Cl}}]}\ \underbrace{t\text{-}\ce{Bu-N=PCl3}}_{(5)}</math>|[{{EquationRef|4A}}]|RawN=y}}

Template:NumBlk

NumBlk2

{{NumBlk2|:|<math chem>\underbrace\ce{PCl5}_{(1)}\ \ce{->[t\text{-}\ce{Bu-\overset{\oplus}{NH3}.\overset{\ominus}{Cl}}]}\ \underbrace{t\text{-}\ce{Bu-N=PCl3}}_{(5)}</math>|(無作用)|RawN=y|IdSfx=4B|Lbl={{colors|black|[}}'''4B'''{{colors|black|]}}}}

Template:NumBlk2

上面的範例中,使用了Template:Tl將左右方括號的顏色改為黑色,否則左右方括號將會是連結的顏色。所以只要做適當的格式設定也能讓標籤看起來如同普通的文字,雖然它仍舊是一個連結:

{{NumBlk2|:|<math chem>\underbrace\ce{PCl5}_{(1)}\ \ce{->[t\text{-}\ce{Bu-\overset{\oplus}{NH3}.\overset{\ominus}{Cl}}]}\ \underbrace{t\text{-}\ce{Bu-N=PCl3}}_{(5)}</math>|(無作用)|RawN=y|IdSfx=4C|Lbl={{color|black|'''[4C]'''}}}}

Template:NumBlk2

也可以透過對Template:Para賦值的方式得到類似的結果,Template:EquationNote近似於Template:EquationNoteTemplate:EquationNote近似於Template:EquationNote

{{NumBlk2|:|<math chem>\underbrace\ce{PCl5}_{(1)}\ \ce{->[t\text{-}\ce{Bu-\overset{\oplus}{NH3}.\overset{\ominus}{Cl}}]}\ \underbrace{t\text{-}\ce{Bu-N=PCl3}}_{(5)}</math>|4D|RawN=y|FmtN=<nowiki>['''[[#%i|%l]]''']</nowiki>}}

Template:NumBlk2

{{NumBlk2|:|<math chem>\underbrace\ce{PCl5}_{(1)}\ \ce{->[t\text{-}\ce{Bu-\overset{\oplus}{NH3}.\overset{\ominus}{Cl}}]}\ \underbrace{t\text{-}\ce{Bu-N=PCl3}}_{(5)}</math>|4E|RawN=y|FmtN=<nowiki>'''&lsqb;[[#%i|{{color|black|%l}}]]&rsqb;'''</nowiki>}}

Template:NumBlk2

連結

範例5

NumBlk

Template:Hatnote

{{NumBlk|:|<chem>CO2(aq) + H2O -> H2CO3</chem>|{{EquationRef|5A}}}}

Template:NumBlk

NumBlk2

{{NumBlk2|:|<chem>CO2(aq) + H2O -> H2CO3</chem>|5B|IdPfx=chem-}}

Template:NumBlk2

因為這裡是對化學式而不是對數學式加上編號,我們可以改用更適當的id屬性前綴chem-而不是原本的math_,這時只要對Template:Para適當地賦值即可達成。

也可以透過對Template:Para賦值的方式得到類似的結果,應該可以發現底下%i指示符的轉換結果為chem-5C,因為Template:Para被賦值chem-Template:Para之預設值為Template:Para之值也就是5CTemplate:Para之預設值為Template:Para之值與Template:Para之值的串接也就是chem-5C,而%i會被轉換為Template:Para之值也就是chem-5C,所以驗證了%i指示符的轉換結果符合預期:

{{NumBlk2|:|<chem>CO2(aq) + H2O -> H2CO3</chem>|5C|IdPfx=chem-|RawN=y|FmtN=<nowiki>'''([[#%i|%l]])'''</nowiki>}}

Template:NumBlk2

連結

  • '''[[#math_5A|5A]]'''得到5A{{EquationNote|5A}}得到Template:EquationNote
  • '''[[#chem-5B|5B]]'''得到5B
  • '''[[#chem-5C|5C]]'''得到5C