跨Wiki連結
此條目沒有列出任何參考或來源。 (2024年2月2日) |
跨Wiki連結(InterWiki links)是一種將萬維網上的眾多Wiki網站連結到一起的方式。用戶可以不用輸入完整的URL(一般網頁都需要)而使用相似的簡寫就能在同一Wiki網站內相互連結。
與互聯網上的域名不同,並不存在一個全球統一定義的跨Wiki字首——並且Wiki用戶必須準確定義他們所需的對映。用戶通常得設立不同的帳戶以便在各個Wiki部分中使用(除非他們想匿名編輯)。文字之間各式各樣的格式和版面都會對於Wiki部分間的無縫連結產生阻礙。
為使某些特殊群體成員更簡便地輸入Wiki連結,以下一些特徵有助於將不同的Wiki部分更緊密地聯接。為了進一步實現這個目標,跨Wiki「巴士漫遊」(類似於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,{{tsl|de|InterWiki|}}(以前的語法為:[[DeWikipedia: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,它提供了一種基於MeatBall-derived跨對映的速記語法。