Note there's a caveat to this solution: as the guide mentions, with 'block' the notes are placed at the end of the current **top-level** block, which might not be the paragraph itself. Examples: - If the paragraph is an item in a list, the note is placed below the list, not the item (and below main list if a nested list). - If the paragraph is within a fenced div, the note is placed after the fenced div. - A corollary to the above: if a filter uses `make_sections`, the notes might end up at end of document after all. On Tuesday, November 21, 2023 at 9:55:26 PM UTC-5 Lyndon Drake wrote: > Brilliant @EBkysko — that works exactly as I'd hoped. Thank you! > > On Tuesday, 21 November 2023 at 19:11:24 UTC-6 EBkysko wrote: > >> try (with markdown output >> ) >> >> ``` >> --reference-location=block >> ``` >> >> On Tuesday, November 21, 2023 at 4:23:57 PM UTC-5 Gwern Branwen wrote: >> >>> This seems possibly tricky? I don't know what the Lua filters can or >>> cannot do, but I'm not sure how one could solve this using just the Haskell >>> API... Pandoc was not designed as a source-2-source processor so it doesn't >>> make much effort to support Markdown-to-Markdown passes - like the obvious >>> roundtrip will potentially change your Markdown formatting to a >>> semantically-equivalent but entirely different-looking Markdown doc. >>> (Macfarlane has said repeatedly that this will not be changed.) >>> >>> In your case, footnotes throw away the positioning information. >>> Consider the 3 possibilities: >>> >>> Foo[^foo]. >>> >>> Foo bar^[Bar.] >>> >>> Foo baz[^baz] >>> >>> [^baz]: Baz. >>> >>> [^foo]: foo. >>> >>> This parses into: >>> >>> [ Para >>> [ Str "Foo" , Note [ Para [ Str "foo." ] ] , Str "." ] >>> , Para >>> [ Str "Foo" >>> , Space >>> , Str "bar" >>> , Note [ Para [ Str "Bar." ] ] >>> ] >>> , Para >>> [ Str "Foo" >>> , Space >>> , Str "baz" >>> , Note [ Para [ Str "Baz." ] ] >>> ] >>> ] >>> >>> So you can't know 'where' a footnote body was put, whether at the end of >>> the doc or elsewhere. >>> >>> Further, Pandoc will write out the Markdown according to its own >>> conventions, which go opposite of what you want, by putting *all* footnote >>> bodies at the end, regardless of where they were or whether they could be >>> inline footnotes, and the Markdown writer probably takes no options which >>> would change that: >>> >>> Foo[^1]. >>> >>> Foo bar[^2] >>> >>> Foo baz[^3] >>> >>> [^1]: foo. >>> >>> [^2]: Bar. >>> >>> [^3]: Baz. >>> >>> -- >>> gwern >>> https://gwern.net >>> >> -- You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/ff6a6898-e1c0-413f-b6c2-d81ea2d949d4n%40googlegroups.com.