說明討論:替換引用
哈,這是「模板戳」啊? Burea Acupotter'n TALK? 14:42 2006年5月4日 (UTC)
一些有關 subst: 的問題
from Wikipedia:互助客棧/技術
請教一些有關 subst: 的問題
- 使用「subst替換引用」是會加重伺服器負擔還是會減輕伺服器的壓力?
- 目前中文維基對「subst替換引用」的政策?鼓勵使用還是不鼓勵使用?
—SEEDER 2007年8月4日 (六) 07:25 (UTC)
- 1.我想應該會減低伺服器負擔了(我對Wiki系統不太熟悉,這些全屬自己的猜測。),subst:會把模版轉為模版中的內容然後儲存,那以後讀取時不需再:讀取模版,相對儲存模版名稱然後每次載入頁面時讀取模版,subst:應該可以減低系統的處理。不過多數subst:時會令頁面儲存更多東西,所以會較佔用系統儲存的空間—域奇 @ 2007年8月4日 (六) 07:30 (UTC)
- 舉例,用{{welcome}}模版時,如果頁面只儲存{{welcome}},那隻佔用了幾個byte,不過每次載入都要查詢welcome模版內容。而用{{subst:welcome}}時,頁面會儲存成
<span style="display:none">
</span>
<!---------- Welcome 模板开始 ---------->
......(下刪不知多少字)
<span style="display:none"></span>
<!---------- Welcome 模版結束 ---------->
- 這些東西佔數KB,不過載入頁面時不需再於資料庫查welcome模版內容了。—域奇 @ 2007年8月4日 (六) 07:39 (UTC)
補充一個問題,對模板使用「subst替換引用」會否令條目的更新受到影響?比如模板擴充時,用了替換引用的條目的模板應該不會更新才是。這樣一來,對模板格式的統一性也出現了問題喔。—Altt311 2007年8月4日 (六) 07:48 (UTC)
- 「伺服器的壓力?」<---這主要是Brion Vibber的責任,你不必理。儘管編好百科內容。
- 「補充一個問題」<---你可自己去wikipedia:沙盒試試。WP:BOLD. * : -) ---Hillgentleman | 書 | 二零零七年八月四號(星期六)格林尼治 11時27分01秒。
- (!)意見,你確定這是應有的態度嗎?我會去問問Brion Vibber的意見。—SEEDER 2007年8月4日 (六) 12:47 (UTC)
對常修改的模板不適用 {{subst}} 除非有一個完整的機制可以處理這些問題。 Gavin54321 2007年8月4日 (六) 11:39 (UTC)
- Seedermaster,
- -->en:wikipedia:template substitution#Benefits of substitution , en:WP:PERF * : -) ---Hillgentleman | 書 | 二零零七年八月四號(星期六)格林尼治 12時58分03秒。
- ""'Policy' shouldn't really concern itself with server load except in the most extreme of cases; keeping things tuned to provide what the user base needs is our job." - Brion Vibber " [1] * : -) ---Hillgentleman | 書 | 二零零七年八月四號(星期六)格林尼治 12時58分03秒。
- (!)意見,謝謝你提供的資料,這樣說以後就不必再理會例如「Wikipedia:刪除投票和請求」的說明。
以下模板的使用,提倡在模板名前加subst:實現替換引用,以減輕伺服器的壓力。
- —SEEDER 2007年8月4日 (六) 13:25 (UTC)
- 請注意「提倡」二字,這個的中文意思是希望你能這麼做,但並不強制你不得違反。 fdcn talk — 2007年8月4日 (六) 21:29 (UTC+8) —
- 所以才說以後就不必再理會所謂的「提倡」,不那麼做沒人反對,做了反倒會被指責。—SEEDER 2007年8月4日 (六) 13:51 (UTC)
- ??誰在投票模板指責過你嗎?不過,其它的模板是否用subst要看具體情況。一個主要原則是:看內容是否是固定不變的。當然,還有其它的一些考量,多看看已有的慣例可能會有幫助。— fdcn talk — 2007年8月5日 (日) 00:01 (UTC+8) — 2007年8月4日 (六) 16:01 (UTC)
- 還沒被人在投票模板指責過,不過,8月4日遭遇 管理員「費勒姆」以「請不要使用subst:,以免加重伺服器負擔」為理由回退幾條老船的編輯,請看鎮遠號戰艦、金剛號戰艦、長門號戰艦、大和號戰艦、三笠號戰艦的歷史頁面,這些船都是已經沉了近百年的,模板的資料是船的尺寸等基本資料。我是第一次聽到「請不要使用subst:,以免加重伺服器負擔」這種宣告,當時還真讓我迷惑了好久。—SEEDER 2007年8月4日 (六) 16:52 (UTC)
- 我先代他向你道歉,這個理由並不正確。不過,這幾個條目不用subst倒是對的,因為被引用替換後,這些信息難以被其它維基人編輯和維護。— fdcn talk — 2007年8月5日 (日) 01:16 (UTC+8) — 2007年8月4日 (六) 17:16 (UTC)
- 你太客氣了,我並不介意這幾個條目用不用subst,不過「費勒姆」的理由還真讓我迷惑了好久,還以為自己玩伺服器多年的經驗都是錯的。—SEEDER 2007年8月4日 (六) 17:28 (UTC)
- 還沒被人在投票模板指責過,不過,8月4日遭遇 管理員「費勒姆」以「請不要使用subst:,以免加重伺服器負擔」為理由回退幾條老船的編輯,請看鎮遠號戰艦、金剛號戰艦、長門號戰艦、大和號戰艦、三笠號戰艦的歷史頁面,這些船都是已經沉了近百年的,模板的資料是船的尺寸等基本資料。我是第一次聽到「請不要使用subst:,以免加重伺服器負擔」這種宣告,當時還真讓我迷惑了好久。—SEEDER 2007年8月4日 (六) 16:52 (UTC)
- 比如在歡迎用戶時應使用{{subst:welcome}}而不是{{welcome}},以反映當時歡迎用戶的信息。--Shinjiman ⇔ ♨ 2007年8月4日 (六) 16:07 (UTC)
- ??誰在投票模板指責過你嗎?不過,其它的模板是否用subst要看具體情況。一個主要原則是:看內容是否是固定不變的。當然,還有其它的一些考量,多看看已有的慣例可能會有幫助。— fdcn talk — 2007年8月5日 (日) 00:01 (UTC+8) — 2007年8月4日 (六) 16:01 (UTC)
- 所以才說以後就不必再理會所謂的「提倡」,不那麼做沒人反對,做了反倒會被指責。—SEEDER 2007年8月4日 (六) 13:51 (UTC)
- 請注意「提倡」二字,這個的中文意思是希望你能這麼做,但並不強制你不得違反。 fdcn talk — 2007年8月4日 (六) 21:29 (UTC+8) —
- —SEEDER 2007年8月4日 (六) 13:25 (UTC)
總的來說,我覺得文章內的模板均不適合使用Subst,因為文章中的模板在被改進後我們希望老文章中的模板也隨着被自動改進,假如我們使用subst的話這些老文章中的模板不會被自動更改,而要找到所有老文章中的老模板很困難(尤其是假如一個模板使用得多的話),而且模板的碼本身往往很複雜,使用subst的話使得文章內出現一大堆的與文章內容無關的碼(這些碼主要不是內容,而是格式),這使得更改這些文章更加困難。這些碼顯示在文章中也使得對於碼不熟悉的用戶的編輯本身變得很困難,他們假如不小心刪除了一個字母的話就有可能使得整篇文章變得混亂。這是我們使用Template主要想要避免的東西。比如沉船的碼,使用模板的話編輯者就不必去管整個表格的格式啊、顏色啊等等了。比如說一部沉船的第一次編輯里的數據有錯(比如長度不是150米而是160米),假如文章的模板使用subst的話第二位做校正的編輯者要在表格中找到相應的關於長度的地方來進行修改,而且要避免不要不小心刪除什麼使得表格被破壞。使用模板而不subst的話就比較簡單了,他出錯導致破壞的可能性也減小。--Wing 2007年8月5日 (日) 02:08 (UTC)
- 有參數的模板不應該使用subst,其他模板如果使用使用於多數條目,而且模板內容可能會被修改,則也不應該使用subst。簡單的投票模板則可以使用subst,因為它們再怎麼修改,也不會改變它們表達的內容。--Jnlin(討論) 2007年8月5日 (日) 02:58 (UTC)
- 被修改的近70%為我寫及常留意的條目,在我看來用subst對我會很麻煩,所以我很少使用。另外,用subst的話令條目容量增大,用這來騙DYK應該不錯的說(開玩笑)。而這是否減輕伺服器負擔我就不得而知了。--すぐる@武蔵×桂言葉 2007年8月5日 (日) 05:52 (UTC)
不使用「subst替換引用」是會加重伺服器負擔,但加重的負擔極少(模板再套模板則作別論,頁面載人時慢得可以)--✉Hello World! 2007年8月9日 (四) 16:02 (UTC)
在WP:subst時,無法清除Nowiki標籤問題
如題。
- 問題描述:
- 如何在WP:subst時清除Nowiki標籤
- 問題症狀:
- 目前已知在WP:subst時,清除Nowiki標籤的動作皆無效,純文字處理清除的方式已由User:Sunny00217測試發現也無效。
- en:Wikipedia:Village_pump_(technical)#How_to_using_unstripNowiki_in_subst:_?英文維基人覺得subst時本來就不能移除Nowiki標籤而無法提供協助。
- 問題起因:
- User:Sunny00217在User talk:A2569875/存檔/2020年/1-3月#模塊:TemplateParameters報告模板在WP:subst階段時,本來應該被unstripNowiki函數清除的部分在WP:subst階段時不會執行清除,進一步的測試表明,unstripNowiki在WP:subst與沒有WP:subst的輸出是不同的,且可以視為unstripNowiki在WP:subst階段不會執行。然而透過nowiki防止維基代碼被提前解析的這個需求本來就存在,而對應模板當然也有可能有WP:subst的需求,因此我認為此屬BUG,見下方測試。-- 娜娜奇🐰鮮果茶☕(宇帆·☎️·☘️) 2020年2月5日 (三) 08:53 (UTC)
- 一般情況
- 輸入「
<nowiki>[[1]]</nowiki>
」到unstripNowiki函數:- 輸出→「[[1]]」
- 輸出的原碼為→「
<nowiki>[[1]] </nowiki>
」 - 描述:十分正常地將
<nowiki></nowiki>
清除了。
- 輸入「
<nowiki>[[1]]</nowiki>
」到unstripNowiki函數,並將unstripNowiki函數回傳值移除首個與末個字元:- 輸出→「'"`UNIQ--nowiki-00000008-QINU`"'」
- 輸出的原碼為→「
'"`UNIQ--nowiki-00000009-QINU`"'
」 - 描述:十分正常地將
<nowiki></nowiki>
清除,移除首個與末個字元正常。
- 輸入「
- WP:subst情況
- 輸入「
<nowiki>[[1]]</nowiki>
」到unstripNowiki函數:- 輸出→「[[1]]」
- 輸出的原碼為→「
<nowiki>[[1]]</nowiki>
」 - 描述:異常。內容似乎是原封不動地被輸出。
- (附註:可參考Special:濫用日誌/3160999(subst前的diff紀錄)、Special:Diff/58001233(subst後的diff紀錄))
- 輸入「
<nowiki>[[1]]</nowiki>
」到unstripNowiki函數,並將unstripNowiki函數回傳值移除首個與末個字元:- 輸出→「'"`UNIQ--nowiki-00000021-QINU`"'」
- 輸出的原碼為→「
'"`UNIQ--nowiki-00000022-QINU`"'
」 - 描述:異常。unstripNowiki函數似乎沒有執行,本來應該被unstripNowiki轉為純文字的mw:Strip_marker似乎原封不動地被輸出,導致移除首個與末個字元後mw:Strip_marker損毀。
- (附註:可參考Special:濫用日誌/3160999(subst前的diff紀錄)、Special:Diff/58001233(subst後的diff紀錄))
- 輸入「
- safesubst情況
- 輸入「
<nowiki>[[1]]</nowiki>
」到unstripNowiki函數:- 輸出→「[[1]]」
- 輸出的原碼為→「
<nowiki>[[1]]</nowiki>
」 - 描述:異常。同上,疑似unstripNowiki函數無效或失靈沒有運行。
- (附註:可參考Special:濫用日誌/3160999(subst前的diff紀錄)、Special:Diff/58001233(subst後的diff紀錄))
- 輸入「
<nowiki>[[1]]</nowiki>
」到unstripNowiki函數,並將unstripNowiki函數回傳值移除首個與末個字元:- 輸出→「'"`UNIQ--nowiki-00000029-QINU`"'」
- 輸出的原碼為→「
'"`UNIQ--nowiki-0000002A-QINU`"'
」 - 描述:異常。同上,疑似unstripNowiki函數無效或失靈沒有運行。
- (附註:可參考Special:濫用日誌/3160999(subst前的diff紀錄)、Special:Diff/58001233(subst後的diff紀錄))
- 輸入「
- 可參考Special:濫用日誌/3160999(subst前的diff紀錄)、Special:Diff/58001233(subst後的diff紀錄)
- 從上方結果分析可見,unstripNowiki函數在Subst階段時,回傳值仍為mw:Strip_marker,移除首個與末個字元破壞了mw:Strip_marker而導致Strip_marker失效,這意味着unstripNowiki函數在Subst階段時根本不起作用。不曉得是Bug還是技術限制。
- 可參考Special:濫用日誌/3160999(subst前的diff紀錄)、Special:Diff/58001233(subst後的diff紀錄)
- 前往英文維基詢問如何完成「subst階段移除Nowiki」en:Wikipedia:Village_pump_(technical)#How_to_using_unstripNowiki_in_subst:_?卻得到了「我誤解模板運作」的答案,不知道是我表達不清還是雞同鴨講,或者根本是技術限制,因此想到這裏請求支援。-- 娜娜奇🐰鮮果茶☕(宇帆·☎️·☘️) 2020年2月5日 (三) 08:53 (UTC)
根據程式碼[2]有很高的概率是技術限制。--180.217.106.185(留言) 2020年2月13日 (四) 05:00 (UTC)