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-QSt+ys/nuMyEUIsrzH9SikB+6BGkLq7r@public.gmane.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-QSt+ys/nuMyEUIsrzH9SikB+6BGkLq7r@public.gmane.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-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
Hi,

This question relates to
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-/JYPxA39Uh5TLH3MbocFFw@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.

--
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-/JYPxA39Uh5TLH3MbocFFw@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.

--
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/CAPGHSezmvUZSEApp0fGCezjUNcqSJJCMBaLGTaPUc86tSoUS0A%40mail.gmail.com.

--
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-/JYPxA39Uh5TLH3MbocFFw@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.

--
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-/JYPxA39Uh5TLH3MbocFFw@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.