Something like this should work? The change to attributes() is a hack to use 'data-scale' rather than 'scale' and the change to Image() is to insert the alt text and the attributes. The main change is the new Figure() function (oops... I see that I'm ignoring its attributes).% git diff -w
diff --git a/confluence.lua b/confluence.lua
index 3057d10..1a7d8ef 100644
--- a/confluence.lua
+++ b/confluence.lua
@@ -38,7 +38,9 @@ local function attributes(attr)
local attr_table = {}
for x,y in pairs(attr) do
if y and y ~= "" then
- table.insert(attr_table, ' ' .. x .. '="' .. escape(y,true) .. '"')
+ local p = ""
+ if x == "scale" then p = "data-" end
+ table.insert(attr_table, ' ' .. p .. x .. '="' .. escape(y,true) .. '"')
end
end
return table.concat(attr_table)
@@ -162,7 +164,7 @@ end
function Image(s, src, tit, attr)
return "<img src='" .. escape(src,true) .. "' title='" ..
- escape(tit,true) .. "'/>"
+ escape(tit,true) .. "' alt='" .. s .. "'" .. attributes(attr) .. "/>"
end
function Code(s, attr)
@@ -330,6 +332,14 @@ function CaptionedImage(src, tit, caption, attr)
return Div('<table><tbody><tr><td><ac:image><ri:attachment ri:filename="' .. escape(src,true) .. '" /></ac:image></td></tr><tr><td>' .. escape(caption) .. '</td></tr></tbody></table>', attr_cpy)
end
+
+function Figure(caption, image, attr)
+ local figcaption = '<figcaption aria-hidden="true">' ..
+ caption .. "</figcaption>"
+ return "<figure>\n" .. image .. "\n" .. figcaption .. "\n" .. "</figure>"
+end
+
+
-- Caption is a string, aligns is an array of strings,
-- widths is an array of floats, headers is an array of
-- strings, rows is an array of arrays of strings.
@@ -411,4 +421,3 @@ meta.__index =
return function() return "" end
end
setmetatable(_G, meta)
-On Tue, 28 Nov 2023 at 17:31, William Lupton <wlupton-QSt+ys/nuMyEUIsrzH9SikB+6BGkLq7r@public.gmane.org> wrote:The Figure element was added in 3.0: search https://pandoc.org/releases.html for "Support complex figures" for full details.So I think that your Confluence writer needs to be updated! I see that it has a CaptionedImage function and suspect that this will no longer be called, and that the needs-to-be-added Figure function will get called instead, but probably not with exactly the same arguments.Are you OK with hacking this? I don't mind having a go if not... let me know!On Tue, 28 Nov 2023 at 17:04, Klaus R. <k-rindfrey@gmx.de> wrote:Hi,To generate my documentation, I use a toolchain that generates a markdown file from various sources, the last step is the generation of Confluence HTML via Pandoc. Since Pandoc does not directly support Confluence HTML, I use a patched version of https://github.com/jpbarrette/pandoc-confluence-writer (patched because the generated HTMl is not always quite correct and some features I need are missing). This worked well for a long time, but after the last update (from Pandoc 2.19.2 to 3.1.8) I got a series of warnings:
WARNING: Undefined function 'Figure'
WARNING: Undefined function 'Figure'
...
and the HTML code for the images is completely missing. I tried Pandoc 3.1.9, same result. Confusing: the Lua code of pandoc-confluence-writer does not contain a call to a function named "Figure". Just to analyze the problem, i tried custom-markdown.lua from https://gist.github.com/tarleb/5a9c3fbfa47b0e6d3643efd8af2994b9 and i got:
Error running Lua:
custom-markdown.lua:19: No function to convert Figure (Block)
What's going on? Is this a bug in Pandoc? Is there a workaround?
At the moment I will be using version 2.19.2, but I would like to be able to upgrade to newer versions of Pandoc.Minimal example:# Example
Just an example.
![Fancy example](img/mypic.png){scale=70}Regards,Klaus--
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/84b364a6-bbfe-4c9b-b825-d0f52557229fn%40googlegroups.com.
--