User:Retro/Footnotes

My subpages
Broad editing organization More specific projects
Article improvements Mental accretion Phrases to watch Templates Character encoding DKC organizing Footnotes Tooltips
If my subpages inspire you to carry out an idea yourself or you have any questions or concerns, I'm interested in hearing about it!

Current footnote methods

Group type Footnote marker template
or markup
Transclusion
count
Reference list
template
Transclusion
count
Sample labels
none <ref>...</ref> 4,258,757 {{reflist}} 1 2 3 4 5 6 7 8 9 10
{{refn}} (for nested references) 16,351 4,258,757
lower-alpha {{efn}} 41,714 {{notelist}} 46,366 a b c d e f g h i j
upper-alpha {{efn-ua}} 1,202 {{notelist-ua}} 2,163 A B C D E F G H I J
lower-roman {{efn-lr}} 1,121 {{notelist-lr}} 2,156 i ii iii iv v vi vii viii ix x
upper-roman {{efn-ur}} 22 {{notelist-ur}} 15 I II III IV V VI VII VIII IX X
lower-greek[a] {{efn-lg}} 31 {{notelist-lg}} 55 α β γ δ ε ζ η θ ι κ
Note {{NoteTag}} 69 {{NoteFoot}} 58 Note 1 Note 2 Note 3
  1. ^ Not supported by Internet Explorer 7 and below

The row format could probably be turned into a template on its own merit. It would either be one of the two (or perhaps it could function as both, with parameter conditions):

  • |-
    | {{tlx|}} || {{TC|}} || {{tlx|}} || {{TC|}}
  • {{pre||- | {{tlx|}} ({{tlx|}}) || {{TC|}} || {{tlx|}} || {{TC|}}}} {| class="wikitable" |- style="vertical-align:top;" ! Footnote marker template<br/>or markup !! Transclusion<br/> count !! Invocation or<br/>transclusion !! Reference list<br/> template !! Transclusion<br/> count |- | {{tlx|Harvard citation}} ({{tlx|harv}}) || {{TC|Harvard citation|6200}} || <code><nowiki>{{#invoke:Footnotes|harvard_citation}} || || the current page's transclusion count

|- | {{Harvard citation no brackets}} ({{harvnb}}) || 31000 || {{#invoke:Footnotes|harvard_citation_no_bracket}} || || the current page's transclusion count |- | {{Harvard citation text}} ({{harvtxt}}) || 4600 || {{Harvard citation/core || {{[[Template:|]]}} || the current page's transclusion count |- | {{Harvard citations}} ({{harvs}}) || 1500 || || {{[[Template:|]]}} || the current page's transclusion count |- | {{[[Template:|]]}} || the current page's transclusion count || {{[[Template:|]]}} || the current page's transclusion count |- | {{[[Template:|]]}} ({{[[Template:|]]}}) || the current page's transclusion count || {{[[Template:|]]}} || the current page's transclusion count |}

Cref and cnotes

I previously tried to replace some {{cref}} and {{cnotes}} templates, but it turned out poorly because I didn't understand all the technical details. I will want to ensure I understand all the technical details before embarking upon such a quest again.

That this regex is placed higher than all regex in notes is incidental; the quality may vary. Regex is actually suboptimal because of its relative inclarity, so I will probably transition to custom AWB C#.

  • Find:
    \{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}]*)\s*?\}\}
    .*?
    \{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1\s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})
  • Replace: {{efn|\3}}\2

Pages with complex footnotesComplex footnote cases

Pages with footnote mistakes cases

Miscellaneous notes

  • \{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}]*)\s*?\}\}(?=(?:[^{]*(?:(?!\{\{\s*(?:[Tt]emplate:)?[cC]note\s*\|\s*\1).)?)*\{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1\s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})
  • {{efn|\2}}
  • \{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}]*)\s*?\}\}(?=(?&gt;.*?\{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1)\s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})

\{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}]*)\s*?\}\} (?= (?&gt; [^{]*(?:.?[^{]*)*? \{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1) \s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})

  • Find: (?:[^{]*.??)*?
  • Replace: [^{]*(?:.?[^{]*)*?
  • [^{}]*(\{(?(\{)[^{}]*(?1)?\}|(?!)[^{}]*)*

Needs a subroutine, not a backreference.

  • (\(((?&gt;[^()]+)|(?1))*\))*

[Old note:] I'm just not going to get recursion today, and I'm fine with that; there are two many possible confusing variables.

  • (\{[^{]*\2[^}]*}\)
  • Find:

\{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}]*)\s*?\}\} ((?:[^{]*(?:(?!\{\{\s*(?:[Tt]emplate:)?[cC]note\s*\|\s*\1).)?)* \{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1\s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})

  • Replace: {{efn|\3}}\2

Iteration 2: Lookahead time!:

  • Find:

\{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}]*)\s*?\}\} (?!((?:[^{]*(?:(?!\{\{\s*(?:[Tt]emplate:)?[cC]note\s*\|\s*\1).)?)* \{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1\s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\}))

  • Find 2:

\{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}]*)\s*?\}\}(?=(?:[^{]*(?:(?!\{\{\s*(?:[Tt]emplate:)?[cC]note\s*\|\s*\1).)?)*\{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1\s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})

  • Replace: {{efn|\2}} Efficiency tweaking :-p: *{{code|&lt;nowiki&gt;(?:[^{}]*(?:\{\{[^}]*\}\})?)+
  • (\{\{[Rr]efbegin\}\})?((?:[\s*]*?\{\{\s*?(?:[Tt]emplate:)?[E]fn\s*?((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})*)\s*(?(1)\{\{[Rr]efend\}\})
  • (\{{2})([Rr]efbegin\}{2}\s*)?((?:\{{2}\s*?(?:[Tt]emplate:)??[E]fn\s*?(?:[^{}]*(?:\{{2}[^}]*\}{2})?)+\}{2}[\s*]*?)+)\s*(?(1)\{{2}[Rr]efend\}{2})

List of {{efn}} -> {{notelist}}:

  • (\{\{[Rr]efbegin\}\})?((?:[\s*]*?\{\{\s*?(?:[Tt]emplate:)?[E]fn\s*?((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})*)\s*(?(1)\{\{[Rr]efend\}\}|(?!))
  • \{{2}([Rr]efbegin\}{2}\s*)?((?:\{{2}\s*?(?:[Tt]emplate:)??[E]fn\s*?(?:[^{}]*(?:(?(1)\{{2)[^}]*\}{2})?)+\}{2}[\s*]*?)+)\s*(?(1)\{{2}[Rr]efend\}{2})
  • \{{2}([Rr]efbegin\}{2}\s*)?((?:\{{2}\s*?(?:[Tt]emplate:)??[E]fn\s*?(?:[^{}]*(?:(?(1)\{{2})[^}]*\}{2})?)+\}{2}[\s*]*?)+)\s*(?(1)\{{2}[Rr]efend\}{2})

\{{2} ([Rr]efbegin\}{2}\s*)? ((?: \{{2}\s*?(?:[Tt]emplate:)??[eE]fn\s*?(?:[^{}]*(?:(?(1)\{{2})[^}]*\}{2})?)+\}{2}[\s*]*? )+) \s* (?(1)\{{2}[Rr]efend\}{2})

Substitution:

Unique {{cref}} -> inline {{efn}}:

  • \{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}]*)\s*?\}\}(?=(?:[^{]*(?:(?!\{\{\s*(?:[Tt]emplate:)?[cC]note\s*\|\s*\1).)?)*\{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1\s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})
  • \{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}]*)\s*?\}\}(?=(?&gt;[^{]*(?:.?[^{]*)*?\{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1)\s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})
  • \{\{\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}\s]*)\s*?\}\}(?=(?&gt;[^{]*(?:.?[^{]*)*?\{\{\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1)\s*?\|((?:[^{}]*(?:\{\{[^}]*\}\})?)+)\}\})
  • \{{2}\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}\s]*)\s*?\}{2}(?=(?&gt;[^{]*(?:.?[^{]*)*?\{{2}\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1)\s*?\|((?:[^{}]*(?:\{{2}[^}]*\}{2})?)+)\}{2})

\{{2}\s*?(?:[Tt]emplate:)?[cC]ref\s*?\|\s*?([^}\s]*)\s*?\}{2} (?= (?&gt;[^{]*(?:.?[^{]*)*? \{{2}\s*?(?:[Tt]emplate:)?[cC]note\s*?\|\s*?\1) \s*?\|((?:[^{}]*(?:\{{2}[^}]*\}{2})?)+)\}{2} )

Midstage templates

I assume these were part of an idea to have a middle transition stage between notes templates. But I want to avoid doing that if possible. I only thought of this because it was done previously, I wonder where it was done previously.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.