Match BLOCK_OPEN + name "footnoteblock" (case-insensitive).
Parse optional attributes (title, hide) with the rule-local parser.
Consume closing ]].
If ctx.scope.footnoteBlockParsed is already true on the current
ParseContext copy, fail. Because parseBlocksUntil spreads a
fresh ctx per sibling rule, this only rejects a second
[[footnoteblock]] that arrives via the parser's top-level
dispatch loop in practice. See ScopeContext.footnoteBlockParsed.
Replace ctx.scope with the flag set to true and emit a footnote-block
element.
Block rule for
[[footnoteblock]].Parsing strategy:
title,hide) with the rule-local parser.]].ctx.scope.footnoteBlockParsedis alreadytrueon the currentParseContextcopy, fail. BecauseparseBlocksUntilspreads a freshctxper sibling rule, this only rejects a second[[footnoteblock]]that arrives via the parser's top-level dispatch loop in practice. See ScopeContext.footnoteBlockParsed.ctx.scopewith the flag set totrueand emit afootnote-blockelement.