public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
* Image styling md -> docx
@ 2023-04-27 13:29 Oskar Wood Hansen
       [not found] ` <8b721e7e-adfd-4a87-b4fa-fe1a2822b9c9n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Oskar Wood Hansen @ 2023-04-27 13:29 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 1680 bytes --]

When i convert from markdown to docx I would like to use a luafilter to add 
styling to my images. I have a css snippet that does the styling I want 
within obsidian, but this doesnt affect pandoc conversion to docx. I also 
have another luafiler that emables to center-align the images i want (I 
haven't written it my self). Ideally I'd like to have another luafilter, 
that enables me to toggle the custom styling (add borders) to my images.

The working luafilter to align:

function Image (img)

  align = 'left'
  for k, v in pairs(img.classes) do
    if v == 'center' then
      align = 'center'
    elseif v == 'right' then
      align = 'right'
    end
  end
  
  ret_img = {
     pandoc.RawInline('openxml', string.format('<w:pPr><w:jc 
w:val="%s"/></w:pPr>', align)),
     img
  }

  return ret_img
end


which allows me to add ![text that isnt transferred to docx 
anyway](imgpath.png){.center}.

The CCS to add border styling is simple:
img {
  border: 1px solid #d8d5d4;
  padding: 5px;
  border-radius: 5px;
}

I would also like to be able to invoke that with for instance .border.

I've been searching for a full day, trying different things out - so I hope 
my possible rookie question is acceptable. 

also once again praise to talber and jgm and co!

-- 
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/8b721e7e-adfd-4a87-b4fa-fe1a2822b9c9n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 4322 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Image styling md -> docx
       [not found] ` <8b721e7e-adfd-4a87-b4fa-fe1a2822b9c9n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
@ 2023-05-09 12:14   ` Stephan Meijer
  0 siblings, 0 replies; 2+ messages in thread
From: Stephan Meijer @ 2023-05-09 12:14 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 3107 bytes --]

Hi,

This would indeed be significantly harder than conversion the other way 
around.

Your approach using RawInline is probably the best one.

GPT4 tells me it is possible in Docx this way (xml):

<w:pict> <v:shape id="_x0000_i1025" type="#_x0000_t75" style=
"width:300pt;height:200pt"> <v:imagedata r:id="rId5" o:title="Image 
Description"/> <w10:wrap type="square" anchorx="column" anchory="line"/> 
<v:stroke color="black" weight="1pt"/> <!-- Specify the border color and 
weight here --> </v:shape> </w:pict>
.
Then possibly you could try a filter like this?


   1. function Image (img)
   2.  
   3. align = 'left'
   4. for k, v in pairs(img.classes) do
   5. if v == 'center' then
   6. align = 'center'
   7. elseif v == 'right' then
   8. align = 'right'
   9. end
   10. end
   11.  
   12. border_code = '<v:stroke color="black" weight="1pt"/>'
   13.  
   14. ret_img = {
   15. pandoc.RawInline('openxml', string.format('<w:pPr><w:jc 
   w:val="%s"/></w:pPr>', align)),
   16. pandoc.RawInline('openxml', '<w:pict><v:shape type="#_x0000_t75">'),
   17. pandoc.RawInline('openxml', border_code),
   18. img,
   19. pandoc.RawInline('openxml', '</v:shape></w:pict>'),
   20. }
   21.  
   22. return ret_img
   23. end
   

Hope I was of any help

Stephan.


On Thursday, 27 April 2023 at 15:29:12 UTC+2 Oskar Wood Hansen wrote:

> When i convert from markdown to docx I would like to use a luafilter to 
> add styling to my images. I have a css snippet that does the styling I want 
> within obsidian, but this doesnt affect pandoc conversion to docx. I also 
> have another luafiler that emables to center-align the images i want (I 
> haven't written it my self). Ideally I'd like to have another luafilter, 
> that enables me to toggle the custom styling (add borders) to my images.
>
> The working luafilter to align:
>
> function Image (img)
>
>   align = 'left'
>   for k, v in pairs(img.classes) do
>     if v == 'center' then
>       align = 'center'
>     elseif v == 'right' then
>       align = 'right'
>     end
>   end
>   
>   ret_img = {
>      pandoc.RawInline('openxml', string.format('<w:pPr><w:jc 
> w:val="%s"/></w:pPr>', align)),
>      img
>   }
>
>   return ret_img
> end
>
>
> which allows me to add ![text that isnt transferred to docx 
> anyway](imgpath.png){.center}.
>
> The CCS to add border styling is simple:
> img {
>   border: 1px solid #d8d5d4;
>   padding: 5px;
>   border-radius: 5px;
> }
>
> I would also like to be able to invoke that with for instance .border.
>
> I've been searching for a full day, trying different things out - so I 
> hope my possible rookie question is acceptable. 
>
> also once again praise to talber and jgm and co!
>

-- 
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/cbcc1adb-41bd-449a-9fc3-f3410f1e6e5bn%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 22239 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-05-09 12:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-27 13:29 Image styling md -> docx Oskar Wood Hansen
     [not found] ` <8b721e7e-adfd-4a87-b4fa-fe1a2822b9c9n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2023-05-09 12:14   ` Stephan Meijer

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).