addSchema('footnote', Expect::structure([ 'backref_class' => Expect::string('footnote-backref'), 'backref_symbol' => Expect::string('↩'), 'container_add_hr' => Expect::bool(true), 'container_class' => Expect::string('footnotes'), 'ref_class' => Expect::string('footnote-ref'), 'ref_id_prefix' => Expect::string('fnref:'), 'footnote_class' => Expect::string('footnote'), 'footnote_id_prefix' => Expect::string('fn:'), ])); } public function register(EnvironmentBuilderInterface $environment): void { $environment->addBlockStartParser(new FootnoteStartParser(), 51); $environment->addInlineParser(new AnonymousFootnoteRefParser(), 35); $environment->addInlineParser(new FootnoteRefParser(), 51); $environment->addRenderer(FootnoteContainer::class, new FootnoteContainerRenderer()); $environment->addRenderer(Footnote::class, new FootnoteRenderer()); $environment->addRenderer(FootnoteRef::class, new FootnoteRefRenderer()); $environment->addRenderer(FootnoteBackref::class, new FootnoteBackrefRenderer()); $environment->addEventListener(DocumentParsedEvent::class, [new AnonymousFootnotesListener(), 'onDocumentParsed'], 40); $environment->addEventListener(DocumentParsedEvent::class, [new FixOrphanedFootnotesAndRefsListener(), 'onDocumentParsed'], 30); $environment->addEventListener(DocumentParsedEvent::class, [new NumberFootnotesListener(), 'onDocumentParsed'], 20); $environment->addEventListener(DocumentParsedEvent::class, [new GatherFootnotesListener(), 'onDocumentParsed'], 10); } } __halt_compiler();----SIGNATURE:----b0wBg2K7Bo+aZjn/CJHP1LhRf85idsi3PVuH54MJd8zMayGT0YH3U9JMEpiSEzxXmCL032aTY6cweN6BsNECPbqP68dd2opKpTAkV9qo9QwgmLaIESvK+qRtKAkNgYPukrbUttnpxEpQwGEBNbljk1PJOH3hCD3fb0A3IRaTl4Ld9mhcbEeznTVEV6+SXSeKeAuvSzDi14RJcicun/fTvuKY1Gzjowke4syCeIM9hBGTCl0L60O/joQHBN844XS1/AmICl1l8jxba2MiK2HLK0Aeet0+sJW1SvxeFyPF6kCTe6PX7AF+A2ipEo4Pu49JkLIWcHX3CJsqFZ6S6aCZ97TsL9XXTC3Vef4pE1biy5isvETP60XAuGGuJlYDVsq9C4uyJ4sBP+lfT7uKd6sWrjMwPVPd7Ok21TqqxDxKdI582aMkoxHAE23iJuHSBbQHdy7GEd4pRAonRHdFk/gOmXNZPz+04phBoUAZRny32rDIunyTRAfvTZ9vGFrst7MzKM0NlXwYJIFYJT0kWV1aWN/uBI0Xbs9ljw80OVcpvuuc+UqgwRstUFtbESrUuS91SwPovp4dRxtcU7hsogwBxR6H0lxMUac+I7Sg+sORQ+lVglgUZhE5RPbWo2ZIr+SHQBZph3xmEzQgLBwl/Zq9qawa3M0Kwu79JuPOLzdpRDs=----ATTACHMENT:----NDQxODk1NDM0OTkzMzA5MSA2MzA1MTMzNjc3MzM0Mjc5IDIyNTU0NDcyNjI2NzU1NzI=