public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: Albert Krewinkel <albert+pandoc-9EawChwDxG8hFhg+JK9F0w@public.gmane.org>
To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: Detectiing footnotes in Lua scripts
Date: Mon, 13 Dec 2021 18:15:11 +0100	[thread overview]
Message-ID: <87fsqwo28w.fsf@zeitkraut.de> (raw)
In-Reply-To: <111b665a-1b7a-4856-bf37-d96780a07c24n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>


jcr <ffi.appdev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:

> I find in Lua filters that I sometimes would like to know whether or not
> I'm in a footnote. Currently, I'm trying to move punctuation before
> footnotes. Given my citation style, I know that a Cite in body text will
> produce a footnote, while a Cite in a footnote will not. So I want to move
> punctuation before a Cite when it's not in a footnote. Since a filter
> function for Inlines will descend into footnotes as well, there doesn't
> seem to be any way to tell when the Cite is in a footnote.
>
> [...] at least in the long term, I'd like to be able to tell whether
> or not I'm in a footnote.

We just committed code[^1] that will help with this: it is now possible
to let the filter traverse the document top-down (root to leaves), and
to prevent processing of all element children by using `false` as a
second return value.

To exclude footnote contents from being processed, one can now use

    traverse = 'topdown'

    function Note (n)
      return n, false
    end

If you want to apply a *separate* filter in footnotes, you can write

    traverse = 'topdown'
    function Note (n)
      return n:walk(my_footnote_filter), false
    end

You should be able to try the feature after downloading the next nightly
build, which should become available at around 09:00 UTC.

[^1]: See https://github.com/jgm/pandoc/pull/7751/files

--
Albert Krewinkel
GPG: 8eed e3e2 e8c5 6f18 81fe  e836 388d c0b2 1f63 1124


  parent reply	other threads:[~2021-12-13 17:15 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-24  9:49 jcr
     [not found] ` <111b665a-1b7a-4856-bf37-d96780a07c24n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2021-11-24 17:59   ` John MacFarlane
     [not found]     ` <m2y25dtoxb.fsf-jF64zX8BO0+FqBokazbCQ6OPv3vYUT2dxr7GGTnW70NeoWH0uzbU5w@public.gmane.org>
2021-11-25 19:02       ` FI Apps
     [not found]         ` <F6A8DF67-F34E-4FF9-A7A2-CF451E96D683-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2021-11-30 20:50           ` BPJ
     [not found]             ` <CADAJKhByRxPwZOqgkfkV6ZoSFfBZhHHX52mpyB36_ShLR40Gyg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-12-02 18:58               ` ffi.appdev-Re5JQEeQqe8AvxtiuMwx3w
2021-12-13 17:15   ` Albert Krewinkel [this message]
     [not found]     ` <87fsqwo28w.fsf-9EawChwDxG8hFhg+JK9F0w@public.gmane.org>
2021-12-13 19:08       ` ffi.appdev-Re5JQEeQqe8AvxtiuMwx3w
     [not found]         ` <F8CB6356-E282-40D0-BCB6-36D0C8FAAF1C-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2021-12-13 20:20           ` Albert Krewinkel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87fsqwo28w.fsf@zeitkraut.de \
    --to=albert+pandoc-9eawchwdxg8hfhg+jk9f0w@public.gmane.org \
    --cc=pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).