Open simonthum opened 2 years ago
Inline SVG should strip empty lines or otherwise prevent arbitrary p tag insertion.
Sure, that should be relatively easy to do. Note that this is going kind of out of the scope of ox-hugo though. If an external SVG is being inlined, the user should ensure that it's compatible to inline in a Markdown file. It's out of scope of ox-hugo because the org exporter is not generating the SVG.
Inline SVG should not have lines wrapped around arbitrarily. (preserve-filling is t)
Can you post the full SVG file over a gist or something? I'd like to see how the rendering changes between the wrapped and unwrapped cases. Except for the content in HTMLpre blocks, I am not sure of the wrapping matters in HTML and SVG. But I'd like to learn what I missed.
Thanks!
@simonthum I'll need an example SVG that I can use to reproduce this issue so that I can test and fix it.
Closing this issue as there was no response.
Hi, sorry I missed your feedback!
I think it can be any SVG with a blank line and/or long lines in it. However, you may download from excalidraw:
https://excalidraw.com/#json=9fsXhwPq32hndZnYkIao4,6STG_FQmm2wXklexgT3PVQ
Click "Save as image" on the upper left, then select "SVG".
I hope this helps reproduce.
If an external SVG is being inlined, the user should ensure that it's compatible to inline in a Markdown file. It's out of scope of ox-hugo because the org exporter is not generating the SVG.
That seems fine, could you link me to what exactly is required for SVG to be compatible to inline in MD?
Mind that the wrapped viewbox string in the example is from the inlining process, not the SVG.
Thanks for your replies. I'll see if I can reproduce the issue. If so, the fix should be easier.
Actual Behavior
Similar to #470, inline SVG is broken for me. I use excalidraw export. There are two issues with that:
ox-hugo produces the following markdown:
The empty line creates an extra html p tag on md -> html, which leads the browser to close the SVG tag prematurely, messing up the drawing. The emptyline is in the original SVG.
After fixing that, I noticed that text blocks are being wrapped in the output. This breaks text formatting in the rendered result.
Expected Behavior
Inline SVG should strip empty lines or otherwise prevent arbitrary p tag insertion.
Inline SVG should not have lines wrapped around arbitrarily. (preserve-filling is t)
How to Reproduce the Issue
Inline export an SVG with an empty line after the starting tag, as in the example above.
Example Org File
Generated Markdown File or Error
Ox-Hugo Debug Information
Debug information for
ox-hugo
Debug Info
## Emacs Version GNU Emacs 27.2 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.30, cairo version 1.17.4) of 2021-08-07 ## Org Version Org mode version 9.5.2 (9.5.2-gfbff08 @ /home/user/.emacs.d/elpa/org-9.5.2/) ## Hugo Version hugo v0.91.2-1798BD3F+extended linux/amd64 BuildDate=2021-12-23T15:33:34Z VendorInfo=gohugoio ### Org `load-path` shadows **Warning**: Possible mixed installation of Org /home/user/.emacs.d/elpa/org-9.5.2/ob-maxima hides /usr/share/emacs/27.2/lisp/org/ob-maxima /home/user/.emacs.d/elpa/org-9.5.2/ob-core hides /usr/share/emacs/27.2/lisp/org/ob-core /home/user/.emacs.d/elpa/org-contrib-0.3/ob-shen hides /usr/share/emacs/27.2/lisp/org/ob-shen /home/user/.emacs.d/elpa/org-9.5.2/org hides /usr/share/emacs/27.2/lisp/org/org /home/user/.emacs.d/elpa/org-contrib-0.3/ob-io hides /usr/share/emacs/27.2/lisp/org/ob-io /home/user/.emacs.d/elpa/org-9.5.2/org-protocol hides /usr/share/emacs/27.2/lisp/org/org-protocol /home/user/.emacs.d/elpa/org-9.5.2/ol-eshell hides /usr/share/emacs/27.2/lisp/org/ol-eshell /home/user/.emacs.d/elpa/org-9.5.2/org-habit hides /usr/share/emacs/27.2/lisp/org/org-habit /home/user/.emacs.d/elpa/org-9.5.2/ob-calc hides /usr/share/emacs/27.2/lisp/org/ob-calc /home/user/.emacs.d/elpa/org-9.5.2/ob-octave hides /usr/share/emacs/27.2/lisp/org/ob-octave /home/user/.emacs.d/elpa/org-9.5.2/ob-screen hides /usr/share/emacs/27.2/lisp/org/ob-screen /home/user/.emacs.d/elpa/org-9.5.2/ox-texinfo hides /usr/share/emacs/27.2/lisp/org/ox-texinfo /home/user/.emacs.d/elpa/org-9.5.2/ox-icalendar hides /usr/share/emacs/27.2/lisp/org/ox-icalendar /home/user/.emacs.d/elpa/org-9.5.2/org-plot hides /usr/share/emacs/27.2/lisp/org/org-plot /home/user/.emacs.d/elpa/org-9.5.2/ob-ref hides /usr/share/emacs/27.2/lisp/org/ob-ref /home/user/.emacs.d/elpa/org-contrib-0.3/ob-ebnf hides /usr/share/emacs/27.2/lisp/org/ob-ebnf /home/user/.emacs.d/elpa/org-9.5.2/org-inlinetask hides /usr/share/emacs/27.2/lisp/org/org-inlinetask /home/user/.emacs.d/elpa/org-9.5.2/org-num hides /usr/share/emacs/27.2/lisp/org/org-num /home/user/.emacs.d/elpa/org-9.5.2/ob-latex hides /usr/share/emacs/27.2/lisp/org/ob-latex /home/user/.emacs.d/elpa/org-9.5.2/ob-fortran hides /usr/share/emacs/27.2/lisp/org/ob-fortran /home/user/.emacs.d/elpa/org-9.5.2/ob-scheme hides /usr/share/emacs/27.2/lisp/org/ob-scheme /home/user/.emacs.d/elpa/org-9.5.2/ob-java hides /usr/share/emacs/27.2/lisp/org/ob-java /home/user/.emacs.d/elpa/org-9.5.2/ob-clojure hides /usr/share/emacs/27.2/lisp/org/ob-clojure /home/user/.emacs.d/elpa/org-9.5.2/ob-sql hides /usr/share/emacs/27.2/lisp/org/ob-sql /home/user/.emacs.d/elpa/org-9.5.2/org-table hides /usr/share/emacs/27.2/lisp/org/org-table /home/user/.emacs.d/elpa/org-contrib-0.3/ob-vala hides /usr/share/emacs/27.2/lisp/org/ob-vala /home/user/.emacs.d/elpa/org-9.5.2/ol-gnus hides /usr/share/emacs/27.2/lisp/org/ol-gnus /home/user/.emacs.d/elpa/org-9.5.2/org-attach-git hides /usr/share/emacs/27.2/lisp/org/org-attach-git /home/user/.emacs.d/elpa/org-9.5.2/ob-R hides /usr/share/emacs/27.2/lisp/org/ob-R /home/user/.emacs.d/elpa/org-9.5.2/ob-makefile hides /usr/share/emacs/27.2/lisp/org/ob-makefile /home/user/.emacs.d/elpa/org-9.5.2/ob hides /usr/share/emacs/27.2/lisp/org/ob /home/user/.emacs.d/elpa/org-9.5.2/ob-css hides /usr/share/emacs/27.2/lisp/org/ob-css /home/user/.emacs.d/elpa/org-9.5.2/org-agenda hides /usr/share/emacs/27.2/lisp/org/org-agenda /home/user/.emacs.d/elpa/org-9.5.2/ox-latex hides /usr/share/emacs/27.2/lisp/org/ox-latex /home/user/.emacs.d/elpa/org-9.5.2/ob-tangle hides /usr/share/emacs/27.2/lisp/org/ob-tangle /home/user/.emacs.d/elpa/org-9.5.2/ol hides /usr/share/emacs/27.2/lisp/org/ol /home/user/.emacs.d/elpa/org-9.5.2/ob-perl hides /usr/share/emacs/27.2/lisp/org/ob-perl /home/user/.emacs.d/elpa/org-9.5.2/ol-w3m hides /usr/share/emacs/27.2/lisp/org/ol-w3m /home/user/.emacs.d/elpa/org-9.5.2/ox hides /usr/share/emacs/27.2/lisp/org/ox /home/user/.emacs.d/elpa/org-9.5.2/ob-groovy hides /usr/share/emacs/27.2/lisp/org/ob-groovy /home/user/.emacs.d/elpa/org-9.5.2/ob-awk hides /usr/share/emacs/27.2/lisp/org/ob-awk /home/user/.emacs.d/elpa/org-9.5.2/org-element hides /usr/share/emacs/27.2/lisp/org/org-element /home/user/.emacs.d/elpa/org-9.5.2/ob-matlab hides /usr/share/emacs/27.2/lisp/org/ob-matlab /home/user/.emacs.d/elpa/org-9.5.2/org-colview hides /usr/share/emacs/27.2/lisp/org/org-colview /home/user/.emacs.d/elpa/org-9.5.2/org-tempo hides /usr/share/emacs/27.2/lisp/org/org-tempo /home/user/.emacs.d/elpa/org-contrib-0.3/ob-mscgen hides /usr/share/emacs/27.2/lisp/org/ob-mscgen /home/user/.emacs.d/elpa/org-9.5.2/org-macro hides /usr/share/emacs/27.2/lisp/org/org-macro /home/user/.emacs.d/elpa/org-9.5.2/ol-bbdb hides /usr/share/emacs/27.2/lisp/org/ol-bbdb /home/user/.emacs.d/elpa/org-9.5.2/ob-table hides /usr/share/emacs/27.2/lisp/org/ob-table /home/user/.emacs.d/elpa/org-9.5.2/org-datetree hides /usr/share/emacs/27.2/lisp/org/org-datetree /home/user/.emacs.d/elpa/org-9.5.2/ox-publish hides /usr/share/emacs/27.2/lisp/org/ox-publish /home/user/.emacs.d/elpa/org-9.5.2/ob-exp hides /usr/share/emacs/27.2/lisp/org/ob-exp /home/user/.emacs.d/elpa/org-9.5.2/ob-python hides /usr/share/emacs/27.2/lisp/org/ob-python /home/user/.emacs.d/elpa/org-9.5.2/org-keys hides /usr/share/emacs/27.2/lisp/org/org-keys /home/user/.emacs.d/elpa/org-9.5.2/ob-sed hides /usr/share/emacs/27.2/lisp/org/ob-sed /home/user/.emacs.d/elpa/org-9.5.2/ob-sass hides /usr/share/emacs/27.2/lisp/org/ob-sass /home/user/.emacs.d/elpa/org-9.5.2/ox-html hides /usr/share/emacs/27.2/lisp/org/ox-html /home/user/.emacs.d/elpa/org-9.5.2/ob-lob hides /usr/share/emacs/27.2/lisp/org/ob-lob /home/user/.emacs.d/elpa/org-9.5.2/org-entities hides /usr/share/emacs/27.2/lisp/org/org-entities /home/user/.emacs.d/elpa/org-9.5.2/org-timer hides /usr/share/emacs/27.2/lisp/org/org-timer /home/user/.emacs.d/elpa/org-9.5.2/ob-processing hides /usr/share/emacs/27.2/lisp/org/ob-processing /home/user/.emacs.d/elpa/org-9.5.2/ol-eww hides /usr/share/emacs/27.2/lisp/org/ol-eww /home/user/.emacs.d/elpa/org-9.5.2/ob-emacs-lisp hides /usr/share/emacs/27.2/lisp/org/ob-emacs-lisp /home/user/.emacs.d/elpa/org-9.5.2/ob-lua hides /usr/share/emacs/27.2/lisp/org/ob-lua /home/user/.emacs.d/elpa/org-contrib-0.3/ob-asymptote hides /usr/share/emacs/27.2/lisp/org/ob-asymptote /home/user/.emacs.d/elpa/org-9.5.2/ob-comint hides /usr/share/emacs/27.2/lisp/org/ob-comint /home/user/.emacs.d/elpa/org-9.5.2/org-footnote hides /usr/share/emacs/27.2/lisp/org/org-footnote /home/user/.emacs.d/elpa/org-contrib-0.3/ob-stan hides /usr/share/emacs/27.2/lisp/org/ob-stan /home/user/.emacs.d/elpa/org-9.5.2/ob-ditaa hides /usr/share/emacs/27.2/lisp/org/ob-ditaa /home/user/.emacs.d/elpa/org-9.5.2/ob-sqlite hides /usr/share/emacs/27.2/lisp/org/ob-sqlite /home/user/.emacs.d/elpa/org-9.5.2/org-lint hides /usr/share/emacs/27.2/lisp/org/org-lint /home/user/.emacs.d/elpa/org-9.5.2/org-mouse hides /usr/share/emacs/27.2/lisp/org/org-mouse /home/user/.emacs.d/elpa/org-9.5.2/ob-plantuml hides /usr/share/emacs/27.2/lisp/org/ob-plantuml /home/user/.emacs.d/elpa/org-9.5.2/ox-org hides /usr/share/emacs/27.2/lisp/org/ox-org /home/user/.emacs.d/elpa/org-9.5.2/org-duration hides /usr/share/emacs/27.2/lisp/org/org-duration /home/user/.emacs.d/elpa/org-9.5.2/ob-eval hides /usr/share/emacs/27.2/lisp/org/ob-eval /home/user/.emacs.d/elpa/org-9.5.2/ob-lisp hides /usr/share/emacs/27.2/lisp/org/ob-lisp /home/user/.emacs.d/elpa/org-contrib-0.3/ob-ledger hides /usr/share/emacs/27.2/lisp/org/ob-ledger /home/user/.emacs.d/elpa/org-9.5.2/ob-ocaml hides /usr/share/emacs/27.2/lisp/org/ob-ocaml /home/user/.emacs.d/elpa/org-9.5.2/ol-mhe hides /usr/share/emacs/27.2/lisp/org/ol-mhe /home/user/.emacs.d/elpa/org-9.5.2/org-clock hides /usr/share/emacs/27.2/lisp/org/org-clock /home/user/.emacs.d/elpa/org-9.5.2/ob-shell hides /usr/share/emacs/27.2/lisp/org/ob-shell /home/user/.emacs.d/elpa/org-9.5.2/org-attach hides /usr/share/emacs/27.2/lisp/org/org-attach /home/user/.emacs.d/elpa/org-contrib-0.3/ob-picolisp hides /usr/share/emacs/27.2/lisp/org/ob-picolisp /home/user/.emacs.d/elpa/org-9.5.2/ob-js hides /usr/share/emacs/27.2/lisp/org/ob-js /home/user/.emacs.d/elpa/org-contrib-0.3/ob-J hides /usr/share/emacs/27.2/lisp/org/ob-J /home/user/.emacs.d/elpa/org-contrib-0.3/ob-coq hides /usr/share/emacs/27.2/lisp/org/ob-coq /home/user/.emacs.d/elpa/org-9.5.2/ox-ascii hides /usr/share/emacs/27.2/lisp/org/ox-ascii /home/user/.emacs.d/elpa/org-9.5.2/ob-forth hides /usr/share/emacs/27.2/lisp/org/ob-forth /home/user/.emacs.d/elpa/org-9.5.2/ol-irc hides /usr/share/emacs/27.2/lisp/org/ol-irc /home/user/.emacs.d/elpa/org-9.5.2/org-id hides /usr/share/emacs/27.2/lisp/org/org-id /home/user/.emacs.d/elpa/org-9.5.2/ol-bibtex hides /usr/share/emacs/27.2/lisp/org/ol-bibtex /home/user/.emacs.d/elpa/org-9.5.2/ob-ruby hides /usr/share/emacs/27.2/lisp/org/ob-ruby /home/user/.emacs.d/elpa/org-9.5.2/org-archive hides /usr/share/emacs/27.2/lisp/org/org-archive /home/user/.emacs.d/elpa/org-9.5.2/ob-haskell hides /usr/share/emacs/27.2/lisp/org/ob-haskell /home/user/.emacs.d/elpa/org-contrib-0.3/ob-abc hides /usr/share/emacs/27.2/lisp/org/ob-abc /home/user/.emacs.d/elpa/org-9.5.2/org-pcomplete hides /usr/share/emacs/27.2/lisp/org/org-pcomplete /home/user/.emacs.d/elpa/org-9.5.2/org-macs hides /usr/share/emacs/27.2/lisp/org/org-macs /home/user/.emacs.d/elpa/org-9.5.2/org-capture hides /usr/share/emacs/27.2/lisp/org/org-capture /home/user/.emacs.d/elpa/org-9.5.2/ob-eshell hides /usr/share/emacs/27.2/lisp/org/ob-eshell /home/user/.emacs.d/elpa/org-9.5.2/org-mobile hides /usr/share/emacs/27.2/lisp/org/org-mobile /home/user/.emacs.d/elpa/org-9.5.2/ox-beamer hides /usr/share/emacs/27.2/lisp/org/ox-beamer /home/user/.emacs.d/elpa/org-9.5.2/org-loaddefs hides /usr/share/emacs/27.2/lisp/org/org-loaddefs /home/user/.emacs.d/elpa/org-9.5.2/org-list hides /usr/share/emacs/27.2/lisp/org/org-list /home/user/.emacs.d/elpa/org-9.5.2/ox-man hides /usr/share/emacs/27.2/lisp/org/ox-man /home/user/.emacs.d/elpa/org-9.5.2/org-crypt hides /usr/share/emacs/27.2/lisp/org/org-crypt /home/user/.emacs.d/elpa/org-9.5.2/ob-org hides /usr/share/emacs/27.2/lisp/org/ob-org /home/user/.emacs.d/elpa/org-9.5.2/ol-info hides /usr/share/emacs/27.2/lisp/org/ol-info /home/user/.emacs.d/elpa/org-9.5.2/ob-dot hides /usr/share/emacs/27.2/lisp/org/ob-dot /home/user/.emacs.d/elpa/org-9.5.2/ob-gnuplot hides /usr/share/emacs/27.2/lisp/org/ob-gnuplot /home/user/.emacs.d/elpa/org-9.5.2/org-refile hides /usr/share/emacs/27.2/lisp/org/org-refile /home/user/.emacs.d/elpa/org-9.5.2/ol-rmail hides /usr/share/emacs/27.2/lisp/org/ol-rmail /home/user/.emacs.d/elpa/org-9.5.2/ol-docview hides /usr/share/emacs/27.2/lisp/org/ol-docview /home/user/.emacs.d/elpa/org-9.5.2/org-ctags hides /usr/share/emacs/27.2/lisp/org/org-ctags /home/user/.emacs.d/elpa/org-9.5.2/ob-lilypond hides /usr/share/emacs/27.2/lisp/org/ob-lilypond /home/user/.emacs.d/elpa/org-9.5.2/org-faces hides /usr/share/emacs/27.2/lisp/org/org-faces /home/user/.emacs.d/elpa/org-9.5.2/org-compat hides /usr/share/emacs/27.2/lisp/org/org-compat /home/user/.emacs.d/elpa/org-contrib-0.3/ob-hledger hides /usr/share/emacs/27.2/lisp/org/ob-hledger /home/user/.emacs.d/elpa/org-9.5.2/ox-md hides /usr/share/emacs/27.2/lisp/org/ox-md /home/user/.emacs.d/elpa/org-9.5.2/org-feed hides /usr/share/emacs/27.2/lisp/org/org-feed /home/user/.emacs.d/elpa/org-9.5.2/ob-C hides /usr/share/emacs/27.2/lisp/org/ob-C /home/user/.emacs.d/elpa/org-9.5.2/org-src hides /usr/share/emacs/27.2/lisp/org/org-src /home/user/.emacs.d/elpa/org-9.5.2/org-version hides /usr/share/emacs/27.2/lisp/org/org-version /home/user/.emacs.d/elpa/org-9.5.2/org-indent hides /usr/share/emacs/27.2/lisp/org/org-indent /home/user/.emacs.d/elpa/org-9.5.2/ox-odt hides /usr/share/emacs/27.2/lisp/org/ox-odt /home/user/.emacs.d/elpa/org-9.5.2/org-goto hides /usr/share/emacs/27.2/lisp/org/org-goto Study the output of `M-x list-load-path-shadows`. ## `ox-hugo` defcustoms