置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

幫助:模塊中使用標籤

萌娘百科,萬物皆可萌的百科全書!轉載請標註來源頁面的網頁連結,並聲明引自萌娘百科。內容不可商用。
跳至導覽 跳至搜尋
Commons-emblem-notice.svg
這個頁面「Help:模塊中使用標籤」是萌娘百科的幫助文檔
  • 本文用於介紹萌娘百科中一些特定功能的操作方法;
  • 本文僅是一篇論述,不屬於方針或指引。如果本指南與相關方針或指引發生衝突或存在不一致的情況,請以方針或指引的條文為準。

MediaWiki為模塊中提供了很多標籤使用方法,皆為面向對象的。本頁面介紹它們。

函數

mw.html.create(【標籤名字】)是使用對象的第一步。這個函數將返回一個標籤對象。如果沒有提供參數,則返回一個沒有標籤的空標籤對象。

對象元方法

__tostring

這個元方法使對象變為字符串。因此你可以使用tostring()

對象方法

:wikitext(text)

向這個對象中輸入text,添加在關閉標籤(空標籤對象添加在末尾)的前面。text可以是nil、字符串或數字。不能輸入標籤對象。如要使用,請先tostring()。返回結果為對象自身。

:attr(attr,value)

向對象增加一個值為valueattrHTML屬性。請注意這個方法會覆蓋原有屬性。返回結果為對象自身。

:addClass(class)

向對象增加class類。不會覆蓋原有的。class可以是包含一個或多個類的一個字符串。返回結果為對象自身。

:cssText(css)

向對象增加css的CSS文本。不會覆蓋原有的。返回結果為對象自身。

:css(style,value)

向對象增加一個值為valuecssCSS屬性。不會覆蓋原有的。返回結果為對象自身。

:tag(name)

創建一個新的name標籤對象,然後向原來對象中輸入這個新對象,添加在關閉標籤的前面(空標籤對象添加在末尾),並將原來對象設置為新對象的一個屬性(父對象)。返回結果為新的對象。

:done()
  1. 返回這個標籤對象的父對象。
  2. 如果沒有,則新建一個空的標籤對象,然後將原對象設為新對象的子對象,並返回新對象。請注意這個方法不對對象造成任何更改,因此若不在賦值時使用則不能放在最後一個方法!!!

注意

  • Lua中縮進是會被忽視的,但縮進方便閱讀。建議:
    • 對所有寫在同一對象後的方法增加一縮進。
    • 每一次使用:tag(name)增加一縮進。
    • 每一次使用:done()(第一種情況)減少一縮進。
  • Lua中寫在同一對象後的方法都屬於同一語句,排列方法實際上是一個方法用前一個方法的返回結果。因此,當你寫下面代碼,變量obj在:done()之前是沒有值的。並且只有:done()後面可以加分號。當然你可以全都不換行,但那怎麼好看呢?
obj = mw.html.create("div")
   :addClass("foo")
   :tag("span")
        :css("color","#114514")
        :wikitext("bar")
        :done()
  • 此外,如果不:done(),obj就成了一個span而不是div。
  • 不過,div對象仍然存在於內存中。您可以這樣調用它:
obj = obj:done()

記住不能漏掉「obj =」,因為:done()不作任何操作,只返回值。

  • 讓我們來看看下面兩個的區別:
obj = mw.html.create("div")
obj:addClass("foo")
   :tag("span")
        :css("color","#114514")
        :wikitext("bar")
        :done()
   :wikitext("emm")
obj = mw.html.create("div")
   :addClass("foo")
   :tag("span")
   obj:css("color","#114514")
        :wikitext("bar")
        :done()
   :wikitext("emm")

兩者區別在於,第一個執行完畢後是div,而第二個是span。這就告訴我們使用:done()一定要弄清變量是否有指向自己想要的對象,自己是在賦值還是直接操作。