public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: William Lupton <wlupton-QSt+ys/nuMyEUIsrzH9SikB+6BGkLq7r@public.gmane.org>
To: pandoc-discuss <pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: Re: Passing multiple options to lua-filter from CLI
Date: Fri, 20 Aug 2021 17:26:33 +0100	[thread overview]
Message-ID: <CAEe_xxgDzL+Qjar4bGfUndO7Pq-RimWPmN5tzYSV3B6BUh0Nrg@mail.gmail.com> (raw)
In-Reply-To: <CAPGHSezmvUZSEApp0fGCezjUNcqSJJCMBaLGTaPUc86tSoUS0A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 6829 bytes --]

Inline...

On Fri, 20 Aug 2021 at 17:06, Clément Aubert <aubert.clement-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:

> Thanks a lot for looking into it!
> It does not seem to produce the desired effect on my end.
>
> Could you explain how changing
> return {{Meta = get_default_code_class},
>         {Code = add_default_code_class},
>         {CodeBlock = add_default_code_class}}
> into
> return {{Meta=get_default_code_class}, {CodeBlock=add_default_code_class}}
> (as far as I can tell, this is the only modification) is supposed to
> achieve the desired effect?
>

Ah, well I don't think that you included this in your original message, so
I thought that was the problem :).

return {{Meta = get_default_code_class},
        {Code = add_default_code_class},
        {CodeBlock = add_default_code_class}}

You are correct: the only difference is that you have Code. You could
combine Code and CodeBlock into a single pass, as in:

return {{Meta=get_default_code_class},
        {Code=add_default_code_class, CodeBlock=add_default_code_class}}

But it _does_ work for me! Maybe add some debug output? Here I'm using my
own inspect-like function but the standard inspect would probably be
similar.

Pandoc version? I'm using 2.14.1.

*% *cat default-code-class.lua

utils = require 'utils'


local default_code_classes = {}


function get_default_code_class(meta)

  utils.temp('meta', meta)

  if meta['default-code-class'] then

    default_code_classes =
{pandoc.utils.stringify(meta['default-code-class'])}

  end

end


function add_default_code_class(el)

  utils.temp(el.tag, el)

  if #(el.classes) == 0 then

    el.classes = default_code_classes

    return el

  end

end


return {{Meta=get_default_code_class},

        {Code=add_default_code_class, CodeBlock=add_default_code_class}}


*% *LUA_PATH=../?.lua pandoc -L default-code-class.lua code.md -M
default-code-class="c numberLines"

(#) meta {default-code-class: "c numberLines"}

(#) Code Code {

  attr: Attr {

    attributes: {}

    classes: {}

    identifier: ""

  }

  text: "inline code"

}

(#) CodeBlock CodeBlock {

  attr: Attr {

    attributes: {}

    classes: {}

    identifier: ""

  }

  text: "This is a code block."

}

<p>This is <code class="c numberLines">inline code</code>.</p>

<pre class="c numberLines"><code>This is a code block.</code></pre>

Thanks!
>
> Le ven. 20 août 2021 à 11:57, William Lupton <wlupton@broadband-forum.org>
> a écrit :
>
>> I think you need a two-pass filter, one to pick up the metadata and the
>> other to use it (this is because Meta is called nearly last).
>>
>> This works (I've re-ordered your functions and declared a local variable,
>> but this probably wasn't necessary).
>>
>> *% *cat default-code-class.lua
>>
>> local default_code_classes = {}
>>
>>
>> function get_default_code_class(meta)
>>
>>   if meta['default-code-class'] then
>>
>>     default_code_classes =
>> {pandoc.utils.stringify(meta['default-code-class'])}
>>
>>   end
>>
>> end
>>
>>
>> function add_default_code_class(el)
>>
>>   if #(el.classes) == 0 then
>>
>>     el.classes = default_code_classes
>>
>>     return el
>>
>>   end
>>
>> end
>>
>>
>> return {{Meta=get_default_code_class}, {CodeBlock=add_default_code_class}}
>>
>>
>> *% *pandoc -L default-code-class.lua code.md -M default-code-class="c
>> numberLines"
>>
>> <pre class="c numberLines"><code></code></pre>
>>
>> On Fri, 20 Aug 2021 at 16:29, Clément Aubert <aubert.clement@gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> This question relates to
>>> https://github.com/jgm/pandoc/issues/2104#issuecomment-595983954
>>> There is a lua filter containing
>>>
>>> ``` lua
>>> function add_default_code_class(el)
>>>   if #(el.classes) == 0 then
>>>     el.classes = default_code_classes
>>>     return el
>>>   end
>>> end
>>>
>>> function get_default_code_class(meta)
>>>   if meta['default-code-class'] then
>>>     default_code_classes =
>>> {pandoc.utils.stringify(meta['default-code-class'])}
>>>   end
>>> end
>>> ```
>>>
>>> and I'm trying to tweak it so that two classes can be passed from the
>>> command-line, eg. using
>>>
>>> --lua-filter default-code-class.lua -M default-code-class=c, numberLines
>>>
>>> but can't find a way.
>>>
>>> Thanks!
>>> Clément.
>>>
>>> --
>>> 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/c025fcc7-ff39-4993-97f0-3dc8a7107724n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/pandoc-discuss/c025fcc7-ff39-4993-97f0-3dc8a7107724n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "pandoc-discuss" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/pandoc-discuss/NrRuAcm1otQ/unsubscribe.
>> To unsubscribe from this group and all its topics, 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/CAEe_xxgqyK6%2BT3kmb7sNUckEJrS81cwm05iCvauKOA0Z3doRcg%40mail.gmail.com
>> <https://groups.google.com/d/msgid/pandoc-discuss/CAEe_xxgqyK6%2BT3kmb7sNUckEJrS81cwm05iCvauKOA0Z3doRcg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> 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/CAPGHSezmvUZSEApp0fGCezjUNcqSJJCMBaLGTaPUc86tSoUS0A%40mail.gmail.com
> <https://groups.google.com/d/msgid/pandoc-discuss/CAPGHSezmvUZSEApp0fGCezjUNcqSJJCMBaLGTaPUc86tSoUS0A%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CAEe_xxgDzL%2BQjar4bGfUndO7Pq-RimWPmN5tzYSV3B6BUh0Nrg%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 30176 bytes --]

  parent reply	other threads:[~2021-08-20 16:26 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-20 15:29 Clément Aubert
     [not found] ` <c025fcc7-ff39-4993-97f0-3dc8a7107724n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2021-08-20 15:57   ` William Lupton
     [not found]     ` <CAEe_xxgqyK6+T3kmb7sNUckEJrS81cwm05iCvauKOA0Z3doRcg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-08-20 16:06       ` Clément Aubert
     [not found]         ` <CAPGHSezmvUZSEApp0fGCezjUNcqSJJCMBaLGTaPUc86tSoUS0A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-08-20 16:26           ` William Lupton [this message]
     [not found]             ` <CAEe_xxgDzL+Qjar4bGfUndO7Pq-RimWPmN5tzYSV3B6BUh0Nrg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-08-20 17:03               ` Clément Aubert
     [not found]                 ` <CAPGHSewt=nK73AHRJ4C6yMs_rdRkcXAiJXeY0MEYo1pAxX4ugQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-08-20 17:21                   ` William Lupton
     [not found]                     ` <CAEe_xxjF_GT3XXobnhGizje_U6VDcODV0ubGR0dDN=Dj_U2B3A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-08-20 18:19                       ` Clément Aubert

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=CAEe_xxgDzL+Qjar4bGfUndO7Pq-RimWPmN5tzYSV3B6BUh0Nrg@mail.gmail.com \
    --to=wlupton-qst+ys/numyeuisrzh9sikb+6bgklq7r@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).