From: Nick Daly <firstname.lastname@example.org> To: email@example.com Subject: Re: [PATCH] ob-plantuml: Add PlantUML block post-processing. Date: Tue, 13 Apr 2021 21:24:36 -0500 [thread overview] Message-ID: <875z0p1u3f.fsf@europa> (raw) In-Reply-To: <87r1jl35eo.fsf@europa> [-- Attachment #1: Type: text/plain, Size: 782 bytes --] Nick Daly writes: > Please see the attached patch that allows for post-processing of > PlantUML diagrams based on the exported file extension. If the above patch was too generic and heavy-weight for consideration, please see this alternative, simpler, patch. It just adds a flag that, when enabled, runs for SVG images exported via PlantUML. The motivation behind these patches should be fairly clear from the attached image below demonstrating the unreadability of SVG-text images when embedded in PDFs as viewed in one of my local PDFs produced with OrgMode when viewed through Evince on Debian Stable. Fortunately, Inkscape is kind enough to keep the original text in the SVG, so the images should be mostly human-readable after the conversion. Thanks for your time, Nick [-- Attachment #2: SVGs with paths vs text as seen in Evince on Debian Stable --] [-- Type: image/png, Size: 39209 bytes --] [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: Smaller text-to-path patch. --] [-- Type: text/x-diff, Size: 1748 bytes --] From 75035915a9722920e2194bcd8f07ec5cf2f97bf7 Mon Sep 17 00:00:00 2001 From: Nick Daly <nick+orgmode-org> Date: Tue, 13 Apr 2021 21:18:41 -0500 Subject: [PATCH] Add PlantUML SVG to Path. * lisp/ob-plantuml.el (org-babel-execute:plantuml): Add SVG-specific post-export step that, when enabled, runs inkscape text-to-path replacement over the output file. Enabled with new custom variable `org-babel-plantuml-svg-text-to-path'. --- lisp/ob-plantuml.el | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lisp/ob-plantuml.el b/lisp/ob-plantuml.el index 93c653870..ee781290c 100644 --- a/lisp/ob-plantuml.el +++ b/lisp/ob-plantuml.el @@ -71,6 +71,12 @@ You can also configure extra arguments via `org-plantuml-executable-args'." :package-version '(Org . "9.4") :type '(repeat string)) +(defcustom org-babel-plantuml-svg-text-to-path 'nil + "When set, export text in SVG images to paths using Inkscape." + :group 'org-babel + :version "24.1" + :type 'boolean) + (defun org-babel-variable-assignments:plantuml (params) "Return a list of PlantUML statements assigning the block's variables. PARAMS is a property list of source block parameters, which may @@ -145,6 +151,10 @@ This function is called by `org-babel-execute-src-block'." " "))) (with-temp-file in-file (insert full-body)) (message "%s" cmd) (org-babel-eval cmd "") + (org-babel-plantuml-post-process out-file) + (if (and (string= (file-name-extension out-file) "svg") + org-babel-plantuml-svg-text-to-path) + (org-babel-eval (format "inkscape %s -T -l %s" out-file out-file) "")) nil)) ;; signal that output has already been written to file (defun org-babel-prep-session:plantuml (_session _params) -- 2.20.1
next prev parent reply other threads:[~2021-04-14 2:25 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-08 1:56 Nick Daly 2021-04-14 2:24 ` Nick Daly [this message] 2021-05-01 9:03 ` Bastien 2021-05-01 10:51 ` Bastien 2021-05-02 15:14 ` Nick Daly 2021-05-02 17:31 ` Bastien
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://www.orgmode.org/ * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=875z0p1u3f.fsf@europa \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [PATCH] ob-plantuml: Add PlantUML block post-processing.' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://git.savannah.gnu.org/cgit/emacs/org-mode.git 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 read-only IMAP folder(s) and NNTP newsgroup(s).