2014-01-13 5 views
0

위키 구문에 대한 도전입니다! 나는 그것을 원하는 방식으로 작동하는 솔루션 가까이있어 같은 느낌으로Mediawiki : 링크에서 매개 변수를 템플릿 mediawiki로 전달하지 말 것.

Mediawiki: Same section with multiple names (section aliases/synonyms)을 요구하기 때문에, 나는 더 구체적인 질의를 개발했습니다 :

내가 링크에서는,을 전달하려는

매개 변수를 전체 기사를 초월하지 않고 템플릿에 추가하십시오.

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

제외하면 매개 변수를 전달하는 대신 pagename=Name_of_page_you're_on이라는 기사에 대한 링크가 생성됩니다.

기사를 반역 한 결과 매개 변수가 성공적으로 전달되었지만 링크에 매개 변수를 전달해야합니다.

#ifexists 내가 제목 "예제 1"과 "예제 2"와 섹션 기본값은 이름이 부여되지 않은 "코드 예제 컴파일"페이지를 생성 할 수 있습니다 사용하여 더 많은 상황에 대한

,

뿐만 아니라 I

"EIMSK" and "Example Two" 
"EICRA" and "Example Two" 
"Example One" and "PCMSK0" 
"Example One" and "PCMSK1" 
"Example One" and "PCMSK2" 
"Example One" and "PCICR" 

이 너무 몹시 복잡하고, 그냥 수동으로 페이지를 컴파일해야 그들을 섹션 연결 가능해야하며이에서 오는 위치에 따라 적절한 제목으로 표시하려면? 이것이 가능한가?

나의 현재 솔루션은 다음 코드 예제 페이지의 컴파일 한 giant long mess 때문에 이상적인 거리가 멀다

"PCMSK0" 
{{example one code}} 
"PCMSK2" 
{{example one code}} 
"EICRA" 
{{example two code}} 
etc. 

하는 것입니다.

PHP에서 MediaWiki 확장 기능을 쓸 수있는 사람이 있으면 다른 사람에게 알려줄 수 있습니다.

+0

이 질문을 몇 번이나 읽었는데 정확히 무엇을 성취하려고하는지 이해할 수 없습니다. 이 코드는 {{Template : Interrupts Code Examples | pagename = {{PAGENAME}}]]'표시 텍스트 "pagename = ..."을 가진 링크를 만듭니다. 나는 당신이 원하는 것 같지 않습니다. ? –

+0

맞아, 나는 템플릿에 매개 변수 (현재 페이지 이름)를 전달하려고한다. (코드 예제를 인터럽트한다.) 따라서, 링크 할 수 있도록 (pagename) 템플릿에 섹션을 생성한다. 미안 해요. 분명히 손으로해야만 할 것 같아요. 너무 복잡해졌습니다. 하하. – orangenarwhals

답변

1

참고 : 이것은 부분적인 대답 일 수도 있습니다. 어쨌든 그것을 게시 할 것입니다, 어떤 경우에는 그것을 사용합니다.

그것은 당신은 단순히 사용자 지정 쿼리 매개 변수로 위키에 다른 페이지로 링크 중 하나를 사용하려는 URL data magic words (localurl, fullurl, canonicalurl 등)이 같은 :

[{{fullurl:Target page|pagename={{PAGENAMEE}}}} link text] 

{{PAGENAMEE}}에서 automatically URL-encode the source page name까지 사용하십시오.

결과 링크는 MediaWiki에서 외부 링크로 취급되며 형식이 지정됩니다. 외부 링크 아이콘이 문제가되는 경우이를 없애는 간단한 방법은 <span> 또는 <div>의 링크를 class="plainlinks"으로 감싸는 것입니다.

이 모든 것을 템플릿에 넣을 수 있습니다.이 같은 :

페이지 틀 : Fancylink : 비슷한 템플릿의 예를 들어

{{fancylink:Target page|link text}} 

(추가 벨 불구 : 당신은 같은 링크를 작성할 수 있습니다 것

<span class="plainlinks">[{{fullurl:{{{1}}}|pagename={{PAGENAMEE}}}} {{{2|{{{1}}}}}}]</span> 

그리고 호루라기가 위에 덧붙여졌다), 예를 보아라. URL에 action=edit 매개 변수가 추가 된 페이지로 연결되는 Template:Edit on Wikipedia

그러나 혼자이 방법은 원인이 링크에 전달하는 URL 매개 변수 pagename=는 대상 페이지에 {{{pagename}}} 대체 할 수 없습니다. 그렇게하려면 아마도 사용자 지정 MediaWiki 확장을 작성해야 할 것입니다. 이것은 가능해야하지만, 첫 번째 페이지에 링크를 만드는 것보다 훨씬 더 관여해야합니다. 또한


, 문제의이 종류를 해결하는 "기존의"미디어 위키 방법, 유효한 매개 변수 값 세트가 제한 될 것으로 보인다 주어진, 단순히 공유 transcludes 각 값에 대해 별도의 페이지를 작성하는 것입니다 템플릿, 같은 :

페이지 인터럽트 코드 예제 PCICR :

{{Interrupts Code Example One|interrupt=PCICR}} 

템플릿 와 함께 : 코드 예제 1을 중단합니다 실제 예제 코드를 포함하며, 적절한 위치에서 인터럽트 이름 대신 {{{interrupt}}} (또는 things like {{#switch:...}}에 사용됨)으로 대체 될 수 있습니다. create the individual pages에는 많은 수가있는 경우 bot 또는 유지 관리 스크립트 importTextFile.php 또는 edit.php을 사용할 수 있습니다.