public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: "Clément Aubert" <aubert.clement-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: Passing multiple options to lua-filter from CLI
Date: Fri, 20 Aug 2021 13:03:18 -0400	[thread overview]
Message-ID: <CAPGHSewt=nK73AHRJ4C6yMs_rdRkcXAiJXeY0MEYo1pAxX4ugQ@mail.gmail.com> (raw)
In-Reply-To: <CAEe_xxgDzL+Qjar4bGfUndO7Pq-RimWPmN5tzYSV3B6BUh0Nrg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

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

Thanks!

pandoc -v
pandoc 2.14.1
Compiled with pandoc-types 1.22, texmath 0.12.3, skylighting 0.11,
citeproc 0.4.1, ipynb 0.1.0.1
User data directory: /home/caubert/.local/share/pandoc

with the first line (about utils), I now get

Error running filter templates/filters/default-code-class.lua:
templates/filters/default-code-class.lua:1: module 'utils' not found:
        utilsis not one of pandoc's default packages
        no field package.preload['utils']
        no file '/usr/local/share/lua/5.3/utils.lua'
        no file '/usr/local/share/lua/5.3/utils/init.lua'
        no file '/usr/local/lib/lua/5.3/utils.lua'
        no file '/usr/local/lib/lua/5.3/utils/init.lua'
        no file './utils.lua'
        no file './utils/init.lua'
        no file '/usr/local/lib/lua/5.3/utils.so'
        no file '/usr/local/lib/lua/5.3/loadall.so'
        no file './utils.so'
stack traceback:
        [C]: in function 'require'
        templates/filters/default-code-class.lua:1: in main chunk
make: *** [Makefile:281: build/labs/If/index.html] Error 83

without it, I get

Error running filter templates/filters/default-code-class.lua:
templates/filters/default-code-class.lua:7: attempt to index a nil value
(global 'utils')
stack traceback:
        templates/filters/default-code-class.lua:7: in function
'get_default_code_class'
make: *** [Makefile:281: build/labs/If/index.html] Error 83





Le ven. 20 août 2021 à 12:26, William Lupton <wlupton@broadband-forum.org>
a écrit :

> Inline...
>
> On Fri, 20 Aug 2021 at 17:06, Clément Aubert <aubert.clement@gmail.com>
> 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 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_xxgDzL%2BQjar4bGfUndO7Pq-RimWPmN5tzYSV3B6BUh0Nrg%40mail.gmail.com
> <https://groups.google.com/d/msgid/pandoc-discuss/CAEe_xxgDzL%2BQjar4bGfUndO7Pq-RimWPmN5tzYSV3B6BUh0Nrg%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/CAPGHSewt%3DnK73AHRJ4C6yMs_rdRkcXAiJXeY0MEYo1pAxX4ugQ%40mail.gmail.com.

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

  parent reply	other threads:[~2021-08-20 17:03 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
     [not found]             ` <CAEe_xxgDzL+Qjar4bGfUndO7Pq-RimWPmN5tzYSV3B6BUh0Nrg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2021-08-20 17:03               ` Clément Aubert [this message]
     [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='CAPGHSewt=nK73AHRJ4C6yMs_rdRkcXAiJXeY0MEYo1pAxX4ugQ@mail.gmail.com' \
    --to=aubert.clement-re5jqeeqqe8avxtiumwx3w@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).