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:----fzvXNkYfnOnW9hSDlzxaQ8Sf1mt5oAKVt5yRL3yarCAMF8R19ML+Ela/F7d24jZXn3doSGTsDbnAkRc58GS7XLXR4bfAZvy68RzErKZAdDaHs9Ueq1KAPz9wqt8CB6pIyKYKRN3BgQDWZ9loYmknxBPqj7lNU0RP6DYEBgepjHkRow+/nHQ1+Kw6xdb0FXs//eQnuyik00A56U7JZjPkzLwpX5vf05gN6QC2F5bqOT1dIdkhjLxIzFh7R2aYSsUXxjwGYFZbFCxaM+pQDRphddRaKlIS7yBswf+Rp3v6aWjcLYTLSBspIHXI3JW73gMpncuDUDXGjbKtv6lWzy4XnmB2ekk/IvNmyXRoxLoQX5HO4fO9eaB0PeUISzdi8uyuboOgqMeGDfRpwiorXRUV2jxJj1ZnpZIX3uc2OzAprfuTa7/33Of5yZg4zLMbG4jt7MwqOnBfFlTywJFiUTNh0rVETecxpsOmey/UUviekhpVxDEeotzrWWciqGwpCziDQmvyYbnAjZoJPnQGvWY29nLG7uV8MIunJ0NQ/IRKWWZlEVrNJM6X9ZBFpCWg/Ke5NjSnfUPR0ZwQB2gnKYcZibd5/evkk1TTE1Kz4aeRXKN3j/yuKOM06IT4UMqZIwZEWrJHQ+xYctwPXYIkVSF/DLiaYynzi9IMcFb6fiiRopQ=----ATTACHMENT:----OTgxNTMyNTg0NDQ3MDUwOSA2OTIzMDgyNjIyODg1OTkwIDk4NzAzNzA3OTgwNTE1NDA=