Reputation: 382
I'm converting docx files using pandoc 1.16.0.2 and everything works great except right after each image, the size attributes are showing as text in teh
![](./media/media/image4.png){width="3.266949912510936in"
height="2.141852580927384in"}
So it shows the image fine in the md but also the size tag as plain text right behind/after/below each image. The command I'm using is:
pandoc --extract-media ./media2 -s word.docx markdown -o exm_word2.md
I've read the manual as best I can but don’t see any flags to use to control this. Also most searches are coming up where people want to have the attributes and control them.
Any suggestions to kill the size attributes or is my markdown app (MarkdownPad2 - v-2.5.x) reading this md wrong?
Upvotes: 10
Views: 2999
Reputation: 22609
There are two ways to do this: either remove all image attributes with a Lua filter or choose an output format that doesn't support attributes on images.
The easiest (and most standard-compliant) method is to convert to commonmark
. However, CommonMark allows raw HTML snippets, so pandoc tries to be helpful and creates an HTML <img>
element for images with attributes. We can prevent that by disabling the raw_html
format extension:
pandoc --to=commonmark-raw_html ...
If you intend to publish the document on GitHub, then GitHub Flavored Markdown (gfm) is a good choice.
pandoc --to=gfm-raw_html ...
For pandoc's Markdown, we have to also disable the link_attributes
extension:
pandoc --to=markdown-raw_html-link_attributes ...
This last method is the only one that works with older (pre 2.0) pandoc version; all other suggestions here require newer versions.
The filter is straight-forward, it simply removes all attributes from all images
function Image (img)
img.attr = pandoc.Attr{}
return img
end
To apply the filter, we need to save the above into a file no-img-attr.lua
and pass that file to pandoc with
pandoc --lua-filter=no-img-attr.lua ...
Upvotes: 6
Reputation: 4174
Use -w gfm
as argument in the command line to omit the dimensional of Images.
Upvotes: 5
Reputation: 19867
You could write a filter to do this. You'll need to install panflute. Save this as remove_img_size.py
:
import panflute as pf
def change_md_link(elem, doc):
if isinstance(elem, pf.Image):
elem.attributes.pop('width', None)
elem.attributes.pop('height', None)
return elem
if __name__ == "__main__":
pf.run_filter(change_md_link)
Then compile with
pandoc word.docx -F remove_img_size.py -o exm_word2.md
Upvotes: 4