[內(nèi)部福利]@@include缺省參數(shù)

前幾日我們構(gòu)建時(shí)所用的gulp-file-include被詬?。骸癷f判斷太弱了” “參數(shù)不能有缺省值,現(xiàn)在有10多個(gè)參數(shù),一個(gè)也不能省,太費(fèi)勁”……當(dāng)然,可以炒掉廝,換新的。不過(guò)現(xiàn)實(shí)情況時(shí),我們現(xiàn)在已經(jīng)自己定制過(guò)了,加了{{MIMAGE}} {{MCSS}}等我們獨(dú)用的標(biāo)識(shí)。如果換新的插件,這些又得重現(xiàn)實(shí)現(xiàn)一遍。鑒于此,我就步其后塵,加上了對(duì)缺省參數(shù)的支持,算是“打個(gè)補(bǔ)丁接著穿”吧。因功力有限,沒有給if加上else。

說(shuō)明

此方法的思路是給某一個(gè)文件內(nèi)所用參數(shù)設(shè)置缺省值。

gulp-file-include本來(lái)有全局的設(shè)置缺省參數(shù)的機(jī)制(在gulp任務(wù)中設(shè)context參數(shù),見文檔),這種機(jī)制就像全局變量一樣,作用域太廣,適用于全局或者多個(gè)文件共用變量的情況。

用法

設(shè)有一個(gè)文件 footer.md.html,其中有一個(gè)參數(shù)@@foo。我們預(yù)期缺省讓它為"abc",如需指定,再特別設(shè)定。那就可以這樣:

// footer.md.html

// 設(shè)置缺省參數(shù),推薦放在文件首部
@@default {
    "foo": "abc"
}
// 正文
<div>
   <!-- ... -->
   <p>@@foo</p>
   <!-- ... -->
</div>

@@include該文件時(shí),若欲使用foo的缺省值,則:

@@include("path/to/footer.md.html");

若欲賦其它值,則:

@@include("path/to/footer.md.html", {"foo": "some value"});

就是這樣了。

@@if

其實(shí)缺省參數(shù)在@@if時(shí)更有用。上面的情況,如果找不到變量,僅是不替換;但在@@if時(shí),找不到變量gulp會(huì)報(bào)錯(cuò)。

用法跟上面完全一樣,因我們平時(shí)用的不多,故這里順帶提一下@@if的用法。文檔

// footer.md.html

// 設(shè)置缺省參數(shù),推薦放在文件首部
@@default {
    "foo": "abc"
}

// 正文
<div>
   <!-- ... -->

   @@if (foo === "abc") {
       <p>This is for default.</p>
   }

   <!-- ... -->
</div>

@@if用于根據(jù)某一條件來(lái)決定是否插入指定某html塊。@@參數(shù)則總是顯示,只不過(guò)顯示的值不同。就像編程時(shí)的if語(yǔ)句和變量一樣,各有用武之地,請(qǐng)酌情選用。

文件.../m/common/Footer/main.md.html中有一個(gè)示例,可參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,586評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,734評(píng)論 18 399
  • 介紹 Jinja是基于python的模板引擎,功能比較類似于于PHP的smarty,J2ee的Freemarker...
    ZhouLang閱讀 8,278評(píng)論 0 2
  • 零基礎(chǔ)水彩彩鉛愛好者,之前混跡于豆瓣。自從豆瓣小事關(guān)了,都不知道上哪兒找畫友交流了。上幾幅小畫表達(dá)下喜悅
    寶妮水彩fan閱讀 802評(píng)論 37 25
  • 有個(gè)朋友自己搞了一個(gè)團(tuán)隊(duì)做公眾號(hào),然而最近她發(fā)了一篇文章,論deadline的重要性。 當(dāng)時(shí)我就在想她的團(tuán)隊(duì)是不是...
    panny7116閱讀 5,567評(píng)論 0 51

友情鏈接更多精彩內(nèi)容