跨Wiki鏈接

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

跨Wiki鏈接InterWiki links)是一種將萬維網上的眾多Wiki網站鏈接到一起的方式。用戶可以不用輸入完整的URL(一般網頁都需要)而使用相似的簡寫就能在同一Wiki網站內相互鏈接。

與互聯網上的域名不同,並不存在一個全球統一定義的跨Wiki前綴——並且Wiki用戶必須準確定義他們所需的映射。用戶通常得設立不同的帳戶以便在各個Wiki部分中使用(除非他們想匿名編輯)。文本之間各式各樣的格式和版面都會對於Wiki部分間的無縫鏈接產生阻礙。

為使某些特殊群體成員更簡便地輸入Wiki鏈接,以下一些特徵有助於將不同的Wiki部分更緊密地聯接。為了進一步實現這個目標,跨Wiki「巴士漫遊」(類似於webring英語webring)被用於解釋和說明此目標並將不同的Wiki部分高亮顯示。

符號

跨Wiki符號很大程度上因Wiki使用者的鏈接模式而不同。其中最重要的兩種鏈接模式是駝峰式大小寫及自由鏈接(指被分隔符分開的任意詞語,比如{{tsl|en|double square brackets|雙方括號}}).

相應地,基於駝峰式大小寫的跨Wiki鏈接常以這種形式出現:「信號:頁面名稱」,在這裡信號是另一Wiki部分的跨映射前綴。因此,像這樣一個鏈接:「Wikipedia:InterWiki」就能夠做為HTML指向Wikipedia中的某篇文章,比如Wikipedia:跨語言鏈接。以駝峰式大小寫Wiki方式鏈接到的頁面標題中的空格應以下劃線代替(比如WikiPedia:Main_Page)。

Wiki網站中的基於自由鏈接的跨Wiki鏈接,比如說維基百科,同樣地遵守這樣的原則,但是分隔符在這種情況下用於網站內部連結。這些鏈接如果用作內部連結將會被解析和轉換為它們的本原,這使得輸入變得容易,但是這可能會同其它一些特殊符號起衝突。比如在維基百科中,[[MeatBall:AssumeGoodFaith]]會顯示為Meatball:AssumeGoodFaith英語Meatball:AssumeGoodFaith,{{tsl|de|InterWiki|}}(以前的語法為:[[DeWikipedia:InterWiki]])將顯示為InterWiki德語InterWiki.


實現

就內部而言,使用跨Wiki鏈接的Wiki網站需要有一個「跨映射」來定義從Wiki代碼到URLs的映射。比如,[[MeatBall:InterWiki]]將會顯示為MeatBall:InterWiki,但卻鏈接到meatballwiki.org/wiki/InterWiki

因為大部分的Wiki系統在個人網頁上使用URL,這些頁面的標題將會以一個不變的地址出現於頁面底部,因此定義這種映射的最簡單辦法就是將URL的不變部分以跨Wiki前綴來代替。所以在上述的例子中,MeatBall僅以meatballwiki.org/wiki/代替就可以創建一個HTML鏈接目標。

儘管如此,在使用特殊符號的時候還是要小心,這包含兩個方面,一是作為本地鏈接模式規則的例外,一是作為目標系統中的必須被用來專門代表URL的符號。所以基於駝峰式大小寫的Wiki網站必須使用特殊規則來識別能作為跨Wiki鏈接一部分的非字母和數字符號,並且甚至連自由鏈接系統也可能因技術上的原因不允許某些符號如「+」包含在本地鏈接中。同樣的,像「?」和「&」諸如此類的符號在URLs中是受到特別對待的,當用於Wiki中時需要轉換成某些其它的不常用符號,在連接不同的網址時使用不同的符號編碼

然而,與為每個Wiki部分創建新的列表以代替擦除的符號相比,從其它站點複製一份顯得更為有用。像MeatballWiki用戶模式Wiki等站點包含有一些用於此目的的全面的列表--前一種同其它Wiki網頁一樣被公開地編輯,後一種易於檢查但是已有落伍之嫌了。

MeatBallWiki使用一種叫做文檔替換機制直接適用於公開編輯它自身的跨Wiki映射。映射的變化並不會立刻顯現,但是跨映射的結構文檔會在規定時間內沒有被編輯的情況下重新提交。這種延遲意在確保所有的改變都得到顯現但並無礙於公開編輯。

非Wiki網站的速記

絕大部分跨映射實現僅僅是用完整URL的前綴來代替跨Wiki的前綴,如此多的非Wiki網站也同樣可以使用這種系統。比如說在自由的在線計算機詞典上對某定義的參考資料能夠以這樣的形式出現:[[Foldoc:foo]],這會告訴系統將「foo」指向http://www.foldoc.org/foldoc.cgi,並將鏈接顯示為Foldoc:foo。這使得從Wiki網頁內鏈接一般參考資源變得非常容易,這不需要對URL形式的有多少了解。

同樣應注意的是跨Wiki概念能相應地應用於來自非Wiki網站的鏈接,比如Advogato英語Advogato,它提供了一種基於MeatBall-derived跨映射的速記語法。

外部連結