Now that we support both <fn> and [fn] syntax, there is an increasing amount of code doing "the same thing twice" and/or regexps getting more complex.

It would simplify code and just generally make sense to use the "process:" phase to make following transformations:

<fn([^>]*)> to [fn\1]
</fn> to [/fn]
<footnotes(( )?\/)?> to [footnotes\1]

After this, all other code could be simplified to assume input always uses [fn] syntax.

Comments

hingo’s picture

Note: This should be done at the beginning of "process:" phase, not "prepare:" phase. Square brackets have special meaning in some other filters like MediaWiki, BBCode and Textile, so it is safer to not do anything in "prepare" but only convert them "internally" in the "process" phase.

hingo’s picture

Status: Active » Fixed

Done and committed. I actually ended up doing the opposite, all [fn] are replaced with <fn> so internally it's all angle brackets after that.

hingo’s picture

Status: Fixed » Closed (fixed)