Exemplo n.º 1
0
 /**
  * parse a HTML string, clean up footnotes prior
  *
  * @param string $HTML input
  * @return string Markdown formatted output
  */
 public function parseString($html)
 {
     /** TODO: custom markdown-extra options, e.g. titles & classes **/
     // <sup id="fnref:..."><a href"#fn..." rel="footnote">...</a></sup>
     // => <fnref target="..." />
     $html = preg_replace('@<sup id="fnref:([^"]+)">\\s*<a href="#fn:\\1" rel="footnote">\\s*\\d+\\s*</a>\\s*</sup>@Us', '<fnref target="$1" />', $html);
     // <div class="footnotes">
     // <hr />
     // <ol>
     //
     // <li id="fn:...">...</li>
     // ...
     //
     // </ol>
     // </div>
     // =>
     // <footnotes>
     //   <fn name="...">...</fn>
     //   ...
     // </footnotes>
     $html = preg_replace_callback('#<div class="footnotes">\\s*<hr />\\s*<ol>\\s*(.+)\\s*</ol>\\s*</div>#Us', array(&$this, '_makeFootnotes'), $html);
     return parent::parseString($html);
 }