1

Is it possible to give the same section multiple names in mediawiki out-of-the-box (vastly preferred), or do I need to write my own hook/extension/plugin (and if so, tips on how to do so much appreciated)?

In my case, I have example code on single compilation page that I want to link to for multiple individual articles by the name of each article. For instance, I would like something like the following the work.

Page: Interrupts Code Examples

===(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.                           
 }

and both of the following would link to the same section, but with the appropriate name for each page:

Page: EICRA:

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

Page: EIMSK:

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

For full context, see example page http://narwhaledu.com/AVRwiki/index.php?title=PCMSK0.

It's possible I could use something like mediawiki: is there a way to automatically create redirect pages that redirect to the current page?, but is it possible to write it for sections instead of pages? Also, although acceptable, I would prefer not to have the allowed aliases be ALL the sections on a page; for instance, on http://narwhaledu.com/AVRwiki/index.php?title=Interrupts_Code_Examples, I have an "about" section.

Edit: If it wasn't clear, ideally the when the user visits

Page: Interrupts Code Examples#PAGENAME

they see a properly populated section title, instead of "EIMSK or EICRA Example Code" (since there can be a LOT of aliases to a code example)

==={{{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.                           
 }

I can get transclusion to work but not links.

Page: Template:Interrupts Code Examples

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

My ideal syntax would be

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

but obviously this produces instead a link to the nonexistant page pagename=Name_of_Register instead of linking to Interrupts Code Examples and passing the parameter {{PAGENAME}} such that I can reference it in Interrupts Code Examples with {{{pagename}}} and thereby generate my section header..

This would keep the compilation page clean (only have two code examples instead of copying each one 5x for each alias, my current solution), but I can only pass parameters to the template if I transclude, not if I link to the template, I believe. Is this true?

I may just use the "Example Code One" catchall for wiki markup readability in the end since this is starting to break my brain...

Community
  • 1
  • 1
orangenarwhals
  • 365
  • 1
  • 5
  • 18

1 Answers1

1

Any HTML anchor will work as a section link. So, if you have <span id="foo">, you can use [[Bla#foo]] to jump to the span. You'll need one HTML element per ID, but that's still workable I think.

brightbyte
  • 971
  • 4
  • 10
  • I think I really wanted syntax like `== [[ {{Template:Name_of_Register|pagename={{PAGENAME}} ==` to work, since I want to link to the subsection by the proper name (to not confuse newcomers when they see e.g. PCICR instead of PCMSK0) instead of including the text (in transclusion I can accept params and create text according to PAGENAME) but instead it produces a link titled `pagename={{PAGENAME}}`. I'll keep this question open and upvote when I get enough rep though. – orangenarwhals Jan 13 '14 at 15:16
  • Just ignore the anchor name mediawiki generates automatically (you can't really controll it). Generate whatever extra anchors you want inside your template. – brightbyte Mar 17 '14 at 08:37