Den tors 12 jan. 2023 18:00Howard Borchew <hborchew-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skrev:
Hello,

There is an example lua filter in pandoc.org called:
"Replacing placeholders with their metadata value"

This does exactly what I need but for one exception:
If I set a metadata value on the pandoc command line with --metadata=KEY[:VALUE]
then the placeholder is not replaced with anything and not the command line VALUE
using this example lua filter.

Probably because if you set the metadata value on the command line it is just a raw string, not a list of inlines as the filter and pandoc.Span expect.



Is there an easy fix for this?

Set the variables in a metadata block in the document or in a metadata file.

<https://pandoc.org/MANUAL.html#option--metadata-file>



I am pasting the example from https://pandoc.org/lua-filters.html below.

Thanks,
Howard
----
local vars = {}

function get_vars (meta)
  for k, v in pairs(meta) do
    if pandoc.utils.type(v) == 'Inlines' then
      vars["%" .. k .. "%"] = {table.unpack(v)}
    end
  end
end

It could be expanded to wrap a raw string value in a Str and an Inlines, and to convert a Blocks value to an Inlines with pandoc.utils.blocks_to_inlines.



function replace (el)
  if vars[el.text] then
    return pandoc.Span(vars[el.text])
  else
    return el
  end
end

return {{Meta = get_vars}, {Str = replace}}

My take is to use a Code or CodeBlock with class .var and the variable name as text. More to type but more robust.

--
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-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.orgm.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/8db3a838-8431-4b75-aac1-94bc29fac675n%40googlegroups.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/CADAJKhCJK59eix-A_-21UfnxnuDPi6r_jZV0RNSF01UuFzKcbA%40mail.gmail.com.