2014-01-13 75 views
1

是否可以在mediawiki中提供同一部分的多個名稱開箱即用(非常優選),還是我需要編寫自己的掛接/擴展/插件(如果是這樣,提示如何做到如此讚賞)?Mediawiki:具有多個名稱的相同部分(部分別名/同義詞)

就我而言,我在單個編譯頁面上有示例代碼,我想通過每篇文章的名稱鏈接到多個單獨的文章。例如,我希望像下面這樣的工作。

頁:中斷代碼示例

===(EIMSK|EICRA)=== 
void interrupt01_init(void)              
{                    
    EICRA = 0X0F; // in binary, 1111. That is, the rising edge of INT1 and INT0 generate an interrupt request. 
    EIMSK = 0X03; // in binary, 0011. Enables INT0 and INT1 interrupts.       
} 

,並同時滿足以下兩個將連接到相同的部分,但用適當的名稱爲每個頁面:

頁:EICRA:

[[Interrupts Code Examples#{{PAGENAME}}]] 

頁面:EIMSK:

[[Interrupts Code Examples#{{PAGENAME}}]] 

對於完整的上下文,請參閱示例頁面http://narwhaledu.com/AVRwiki/index.php?title=PCMSK0

有可能我可以使用類似mediawiki: is there a way to automatically create redirect pages that redirect to the current page?的東西,但可以將它寫成段而不是頁面嗎?此外,雖然可以接受,但我不希望讓允許的別名成爲頁面上的所有部分;例如,在http://narwhaledu.com/AVRwiki/index.php?title=Interrupts_Code_Examples,我有一個「約」部分。

編輯: 如果它是不明確的,理想情況下,當用戶訪問

頁:中斷代碼示例#頁面名

他們看到的不是「一個EIMSK正確填充部分的標題,或EICRA示例代碼」(因爲可以有別名很多的代碼示例)

==={{{PAGENAME}}}=== 
void interrupt01_init(void)              
{                    
    EICRA = 0X0F; // in binary, 1111. That is, the rising edge of INT1 and INT0 generate an interrupt request. 
    EIMSK = 0X03; // in binary, 0011. Enables INT0 and INT1 interrupts.       
} 

我可以得到transclusion的工作,但沒有鏈接。

頁:模板:中斷代碼示例

=={{#ifexist: {{{pagename}}} | [[{{{pagename}}}]] | External Interrupts Example Code One}}== 
{{Template:ExampleCode~PCMSK0, PCMSK1, PCMSK2, PCICR, PCINT0_vect, PCINT1_vect}} 

我理想中的語法將

[[ Template:Interrupts Code Examples|pagename={{PAGENAME}} ]] 

但很明顯,這將產生,而不是一個鏈接到pagename=Name_of_Register的不存在的頁面,而不是鏈接到Interrupts Code Examples和通過參數{{PAGENAME}},這樣我可以在Interrupts Code Examples{{{pagename}}}中引用它,從而生成我的分區n標頭..

這將保持編譯頁面乾淨(只有兩個代碼示例,而不是每個別名複製5個每個別名,我的當前解決方案),但我只能將參數傳遞給模板,如果我transclude,而不是如果我鏈接到模板,我相信。這是真的?

我可能只是使用wiki標記可讀性「示例代碼一個」包羅萬象到底,因爲這是開始打破我的大腦......

回答

1

任何HTML錨將作爲一個欄目的鏈接。因此,如果您有<span id="foo">,則可以使用[[Bla#foo]]跳轉到跨度。您需要爲每個ID添加一個HTML元素,但我認爲這仍然可行。

+0

我想我真的很想像'== [[{{Template:Name_of_Register | pagename = {{PAGENAME}} =='''來工作,因爲我想通過正確的名稱鏈接到子部分(不要混淆當他們看到PCICR而不是PCMSK0時),而不是包括文本​​(在transclusion中,我可以接受params並根據PAGENAME創建文本),但是它會生成一個名爲'pagename = {{PAGENAME}}'的鏈接。當我得到足夠的代表時,我會保持這個問題的開放和快速。 – orangenarwhals

+0

只需忽略mediawiki自動生成的錨點名稱(您無法真正控制它)。在模板中生成所需的任何額外錨點。 – brightbyte

相關問題