* Org Publish HTML and PDF With GPG Files @ 2022-08-24 0:08 lehi 2022-08-27 3:15 ` Tim Cross 0 siblings, 1 reply; 14+ messages in thread From: lehi @ 2022-08-24 0:08 UTC (permalink / raw) To: emacs-orgmode@gnu.org [-- Attachment #1: Type: text/plain, Size: 839 bytes --] Good Afternoon, I have my org directory filled with encrypted files ending in ".org.gpg". The publish documentation says that org-mode will automatically replace references to ".org" files with ".html", but this is not an automatic action if the files are ".org.gpg". The resulting HTML files must then be edited (in batch with a call to sed) for the page links to work like expected. This happens when exporting to PDF as well. I have been looking over the org-mode documentation and I have found no real answer to this problem other than looking at the publishing source code and modifying it to additionally catch ".org.gpg" files. Is there some customization setting within Emacs that I could edit that would allow for this to work the way I expect? Or would this require changing the way the publishing works? v/r, MR. Lehi Toskin [-- Attachment #2: Type: text/html, Size: 1723 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-08-24 0:08 Org Publish HTML and PDF With GPG Files lehi @ 2022-08-27 3:15 ` Tim Cross 2022-09-01 7:03 ` Ihor Radchenko 0 siblings, 1 reply; 14+ messages in thread From: Tim Cross @ 2022-08-27 3:15 UTC (permalink / raw) To: lehi; +Cc: emacs-orgmode lehi@tosk.in writes: > Good Afternoon, > > I have my org directory filled with encrypted files ending in ".org.gpg". The publish documentation says that org-mode will > automatically replace references to ".org" files with ".html", but this is not an automatic action if the files are ".org.gpg". The > resulting HTML files must then be edited (in batch with a call to sed) for the page links to work like expected. This happens > when exporting to PDF as well. I have been looking over the org-mode documentation and I have found no real answer to > this problem other than looking at the publishing source code and modifying it to additionally catch ".org.gpg" files. > > Is there some customization setting within Emacs that I could edit that would allow for this to work the way I expect? Or > would this require changing the way the publishing works? > I was hoping someone who was more informed than me would respond here. I don't think there is an 'out of the box' solution for this issue. Part of the problem is likely because the handling of the gpg decryption is an Emacs function done outside of org mode i.e. org-mode is not really aware the original file was an encrypted gpg file, it only see the decrypted version. This makes it hard for org to know which links ending in .gpg should be translated and which ones should not (for example, a link to an encrypted gpg file to be served by the web server rather than a link to another org file). This makes it a little challenging to come up with a solution which will work for all use cases. The good news is that org-mode does support the ability to modify what happens during an export (publishing is really exporting as html). Have a look in the org manual at the "Advanced Export Configuration" section of the manual (under the Exporting section). In particular, you might be able to achieve the translation of links such that the .gpg are stripped using export filters. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-08-27 3:15 ` Tim Cross @ 2022-09-01 7:03 ` Ihor Radchenko 2022-09-04 5:59 ` lehi 0 siblings, 1 reply; 14+ messages in thread From: Ihor Radchenko @ 2022-09-01 7:03 UTC (permalink / raw) To: Tim Cross; +Cc: lehi, emacs-orgmode Tim Cross <theophilusx@gmail.com> writes: > I don't think there is an 'out of the box' solution for this issue. Part > of the problem is likely because the handling of the gpg decryption is > an Emacs function done outside of org mode i.e. org-mode is not really > aware the original file was an encrypted gpg file, it only see the > decrypted version. This makes it hard for org to know which links ending > in .gpg should be translated and which ones should not (for example, a > link to an encrypted gpg file to be served by the web server rather than > a link to another org file). This makes it a little challenging to come > up with a solution which will work for all use cases. I do not think that things are that difficult. org->html link conversion assumes that the linked .org file is also exported generating the .html file. If I understand correctly, .org.gpg files are also exported during publishing process. (Lehi Toskin, could you kindly confirm this?) Thus, we may simply extend `org-html-link' to work on .org.gpg files in addition to .org files. -- Ihor Radchenko, Org mode contributor, Learn more about Org mode at https://orgmode.org/. Support Org development at https://liberapay.com/org-mode, or support my work at https://liberapay.com/yantar92 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-09-01 7:03 ` Ihor Radchenko @ 2022-09-04 5:59 ` lehi 2022-09-05 0:15 ` David Masterson 2022-09-05 11:44 ` [PATCH] " Ihor Radchenko 0 siblings, 2 replies; 14+ messages in thread From: lehi @ 2022-09-04 5:59 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Tim Cross, emacs-orgmode > Tim Cross theophilusx@gmail.com writes: > I do not think that things are that difficult. org->html link conversion > > assumes that the linked .org file is also exported generating the > .html file. If I understand correctly, .org.gpg files are also exported > during publishing process. (Lehi Toskin, could you kindly confirm this?) > > Thus, we may simply extend `org-html-link' to work on .org.gpg files in > addition to .org files. Yes, this is it exactly. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-09-04 5:59 ` lehi @ 2022-09-05 0:15 ` David Masterson 2022-09-05 11:46 ` Ihor Radchenko 2022-09-05 11:44 ` [PATCH] " Ihor Radchenko 1 sibling, 1 reply; 14+ messages in thread From: David Masterson @ 2022-09-05 0:15 UTC (permalink / raw) To: lehi; +Cc: Ihor Radchenko, Tim Cross, emacs-orgmode lehi@tosk.in writes: >> Tim Cross theophilusx@gmail.com writes: >> I do not think that things are that difficult. org->html link conversion >> >> assumes that the linked .org file is also exported generating the >> .html file. If I understand correctly, .org.gpg files are also exported >> during publishing process. (Lehi Toskin, could you kindly confirm this?) >> >> Thus, we may simply extend `org-html-link' to work on .org.gpg files in >> addition to .org files. > > Yes, this is it exactly. > Does org-publish have options for files with org-crypt entries? -- David Masterson ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-09-05 0:15 ` David Masterson @ 2022-09-05 11:46 ` Ihor Radchenko 2022-09-05 20:29 ` David Masterson 0 siblings, 1 reply; 14+ messages in thread From: Ihor Radchenko @ 2022-09-05 11:46 UTC (permalink / raw) To: David Masterson; +Cc: lehi, Tim Cross, emacs-orgmode David Masterson <dsmasterson@gmail.com> writes: > Does org-publish have options for files with org-crypt entries? We do not have an explicit option, but you can add org-decrypt-entries to your org-export-before-processing-hook. -- Ihor Radchenko, Org mode contributor, Learn more about Org mode at https://orgmode.org/. Support Org development at https://liberapay.com/org-mode, or support my work at https://liberapay.com/yantar92 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-09-05 11:46 ` Ihor Radchenko @ 2022-09-05 20:29 ` David Masterson 2022-09-06 0:44 ` lehi 0 siblings, 1 reply; 14+ messages in thread From: David Masterson @ 2022-09-05 20:29 UTC (permalink / raw) To: Ihor Radchenko; +Cc: lehi, Tim Cross, emacs-orgmode Ihor Radchenko <yantar92@gmail.com> writes: > David Masterson <dsmasterson@gmail.com> writes: > >> Does org-publish have options for files with org-crypt entries? > > We do not have an explicit option, but you can add org-decrypt-entries > to your org-export-before-processing-hook. Thanks -- David Masterson ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-09-05 20:29 ` David Masterson @ 2022-09-06 0:44 ` lehi 2022-09-06 4:08 ` David Masterson 2022-09-06 13:47 ` Ihor Radchenko 0 siblings, 2 replies; 14+ messages in thread From: lehi @ 2022-09-06 0:44 UTC (permalink / raw) To: David Masterson; +Cc: Ihor Radchenko, Tim Cross, emacs-orgmode Ihor Radchenko yantar92@gmail.com writes: > > > David Masterson dsmasterson@gmail.com writes: > > > > > Does org-publish have options for files with org-crypt entries? > > > > We do not have an explicit option, but you can add org-decrypt-entries > > to your org-export-before-processing-hook. > > > Thanks > > -- > David Masterson Is there a specific way of setting this in the config? I tried adding `(add-hook 'org-export-before-processing-hook #'org-decrypt-entries)` to my init.el, but publishing fails with the error "run-hook-with-args: Wrong number of arguments: (0 . 0), 1" ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-09-06 0:44 ` lehi @ 2022-09-06 4:08 ` David Masterson 2022-09-06 4:37 ` tomas 2022-09-06 13:47 ` Ihor Radchenko 1 sibling, 1 reply; 14+ messages in thread From: David Masterson @ 2022-09-06 4:08 UTC (permalink / raw) To: lehi; +Cc: Ihor Radchenko, Tim Cross, emacs-orgmode lehi@tosk.in writes: > Ihor Radchenko yantar92@gmail.com writes: >> >> > David Masterson dsmasterson@gmail.com writes: >> > >> > > Does org-publish have options for files with org-crypt entries? >> > >> > We do not have an explicit option, but you can add org-decrypt-entries >> > to your org-export-before-processing-hook. >> >> Thanks > Is there a specific way of setting this in the config? > I tried adding `(add-hook 'org-export-before-processing-hook > #'org-decrypt-entries)` to my init.el, but publishing fails with the > error "run-hook-with-args: Wrong number of arguments: (0 . 0), 1" Been awhile -- what's the purpose of the '#' character? -- David Masterson ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-09-06 4:08 ` David Masterson @ 2022-09-06 4:37 ` tomas 2022-09-10 2:51 ` David Masterson 0 siblings, 1 reply; 14+ messages in thread From: tomas @ 2022-09-06 4:37 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1256 bytes --] On Mon, Sep 05, 2022 at 09:08:13PM -0700, David Masterson wrote: > lehi@tosk.in writes: > > > Ihor Radchenko yantar92@gmail.com writes: > >> > >> > David Masterson dsmasterson@gmail.com writes: > >> > > >> > > Does org-publish have options for files with org-crypt entries? > >> > > >> > We do not have an explicit option, but you can add org-decrypt-entries > >> > to your org-export-before-processing-hook. > >> > >> Thanks > > > Is there a specific way of setting this in the config? > > I tried adding `(add-hook 'org-export-before-processing-hook > > #'org-decrypt-entries)` to my init.el, but publishing fails with the > > error "run-hook-with-args: Wrong number of arguments: (0 . 0), 1" > > Been awhile -- what's the purpose of the '#' character? Its nickname is "sharp-quote" (actually the whole #' thingy is called like that). As ' is just a shorthand for 'quote' (i.e. 'foo is a shorthand for (quote foo), #' is a shorthand for 'function, i.e. #'foo stands for (function foo), meaning "the function the symbol foo refers to". Being Emacs Lisp, you could just have said 'foo, but this has quite a few downsides, one of them being that you blindside your compiler (And your human readers). Cheers -- t [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-09-06 4:37 ` tomas @ 2022-09-10 2:51 ` David Masterson 0 siblings, 0 replies; 14+ messages in thread From: David Masterson @ 2022-09-10 2:51 UTC (permalink / raw) To: tomas; +Cc: emacs-orgmode <tomas@tuxteam.de> writes: > On Mon, Sep 05, 2022 at 09:08:13PM -0700, David Masterson wrote: >> lehi@tosk.in writes: >> >> > Ihor Radchenko yantar92@gmail.com writes: >> >> >> >> > David Masterson dsmasterson@gmail.com writes: >> >> > >> >> > > Does org-publish have options for files with org-crypt entries? >> >> > >> >> > We do not have an explicit option, but you can add org-decrypt-entries >> >> > to your org-export-before-processing-hook. >> >> >> >> Thanks >> >> > Is there a specific way of setting this in the config? >> > I tried adding `(add-hook 'org-export-before-processing-hook >> > #'org-decrypt-entries)` to my init.el, but publishing fails with the >> > error "run-hook-with-args: Wrong number of arguments: (0 . 0), 1" >> >> Been awhile -- what's the purpose of the '#' character? > > Its nickname is "sharp-quote" (actually the whole #' thingy is called > like that). As ' is just a shorthand for 'quote' (i.e. 'foo is a > shorthand for (quote foo), #' is a shorthand for 'function, i.e. > #'foo stands for (function foo), meaning "the function the symbol > foo refers to". > > Being Emacs Lisp, you could just have said 'foo, but this has quite > a few downsides, one of them being that you blindside your compiler > (And your human readers). > > Cheers Ah ha! Thanks -- David Masterson ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Org Publish HTML and PDF With GPG Files 2022-09-06 0:44 ` lehi 2022-09-06 4:08 ` David Masterson @ 2022-09-06 13:47 ` Ihor Radchenko 1 sibling, 0 replies; 14+ messages in thread From: Ihor Radchenko @ 2022-09-06 13:47 UTC (permalink / raw) To: lehi; +Cc: David Masterson, Tim Cross, emacs-orgmode lehi@tosk.in writes: > Is there a specific way of setting this in the config? > I tried adding `(add-hook 'org-export-before-processing-hook #'org-decrypt-entries)` to my init.el, but publishing fails with the error "run-hook-with-args: Wrong number of arguments: (0 . 0), 1" This is abnormal hook and the added functions must accept a single argument - the export backend symbol (see the docstring). It is indeed confusing. On main, I changed `org-export-before-processing-hook' to `org-export-before-processing-functions' to indicate that it is abnormal hook. https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=fe90cab9564bd6fa08c9abe0882e0e06cc5626f9 -- Ihor Radchenko, Org mode contributor, Learn more about Org mode at https://orgmode.org/. Support Org development at https://liberapay.com/org-mode, or support my work at https://liberapay.com/yantar92 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] Re: Org Publish HTML and PDF With GPG Files 2022-09-04 5:59 ` lehi 2022-09-05 0:15 ` David Masterson @ 2022-09-05 11:44 ` Ihor Radchenko 2022-09-25 8:37 ` Ihor Radchenko 1 sibling, 1 reply; 14+ messages in thread From: Ihor Radchenko @ 2022-09-05 11:44 UTC (permalink / raw) To: lehi; +Cc: Tim Cross, emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 393 bytes --] lehi@tosk.in writes: >> Thus, we may simply extend `org-html-link' to work on .org.gpg files in >> addition to .org files. > > Yes, this is it exactly. Can you try the attached patch? -- Ihor Radchenko, Org mode contributor, Learn more about Org mode at https://orgmode.org/. Support Org development at https://liberapay.com/org-mode, or support my work at https://liberapay.com/yantar92 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-ox-publish-Allow-linking-to-encrypted-Org-files.patch --] [-- Type: text/x-patch, Size: 4298 bytes --] From dcbda721705ed54c378bcefa0ec9116b8203ecc8 Mon Sep 17 00:00:00 2001 Message-Id: <dcbda721705ed54c378bcefa0ec9116b8203ecc8.1662378219.git.yantar92@gmail.com> From: Ihor Radchenko <yantar92@gmail.com> Date: Mon, 5 Sep 2022 19:40:13 +0800 Subject: [PATCH] ox-publish: Allow linking to encrypted Org files * lisp/ox-html.el (org-html-link): Convert .org.gpg file links to .html, in addition to previously performed .org -> .html convertion. (org-html-link-org-files-as-html): Update the docstring. * doc/org-manual.org (Publishing links): * etc/ORG-NEWS (Publishing now supports links to encrypted Org files): Document the new feature. --- doc/org-manual.org | 17 ++++++++++------- etc/ORG-NEWS | 6 ++++++ lisp/ox-html.el | 15 +++++++++------ 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/doc/org-manual.org b/doc/org-manual.org index 794682b49..fbd88aa68 100644 --- a/doc/org-manual.org +++ b/doc/org-manual.org @@ -16454,13 +16454,16 @@ *** Publishing links #+cindex: links, publishing To create a link from one Org file to another, you would use something -like =[[file:foo.org][The foo]]= or simply =[[file:foo.org]]= (see [[*External Links]]). When -published, this link becomes a link to =foo.html=. You can thus -interlink the pages of your "Org web" project and the links will work -as expected when you publish them to HTML. If you also publish the -Org source file and want to link to it, use an =http= link instead of -a =file:= link, because =file= links are converted to link to the -corresponding =.html= file. +like =[[file:foo.org][The foo]]= or simply =[[file:foo.org]]= (see +[[*External Links]]). When published, this link becomes a link to +=foo.html=. You can thus interlink the pages of your "Org web" +project and the links will work as expected when you publish them to +HTML. If you also publish the Org source file and want to link to it, +use an =http= link instead of a =file:= link, because =file= links are +converted to link to the corresponding =.html= file. + +Links to encrypted Org files, like =[[file:foo.org.gpg]]= are also +supported. You may also link to related files, such as images. Provided you are careful with relative file names, and provided you have also diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 713a850f6..3f1c8f4c7 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -140,6 +140,12 @@ backend. From now on, using =outline-*= functions is strongly discouraged when working with Org files. ** New features +*** Publishing now supports links to encrypted Org files + +Links to other published Org files are automatically converted to the +corresponding html links. Now, this feature is also available when +links point to encrypted Org files, like +=[[file:foo.org.gpg::Heading]]=. *** Interactive commands now support escaping text inside comment blocks diff --git a/lisp/ox-html.el b/lisp/ox-html.el index b5aa868fe..8da180034 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -839,6 +839,8 @@ (defcustom org-html-link-org-files-as-html t (recognized by the extension \".org\") should become links to the corresponding HTML file, assuming that the linked Org file will also be converted to HTML. +Links to \"file.org.gpg\" are also converted. + When nil, the links still point to the plain \".org\" file." :group 'org-export-html :type 'boolean) @@ -3066,12 +3068,13 @@ (defun org-html-link (link desc info) (lambda (raw-path info) ;; Treat links to `file.org' as links to `file.html', if ;; needed. See `org-html-link-org-files-as-html'. - (cond - ((and (plist-get info :html-link-org-files-as-html) - (string= ".org" - (downcase (file-name-extension raw-path ".")))) - (concat (file-name-sans-extension raw-path) dot html-ext)) - (t raw-path)))) + (save-match-data + (cond + ((and (plist-get info :html-link-org-files-as-html) + (let ((case-fold-search t)) + (string-match "\\(.+\\)\\.org\\(?:\\.gpg\\)?$" raw-path))) + (concat (match-string 1 raw-path) dot html-ext)) + (t raw-path))))) (type (org-element-property :type link)) (raw-path (org-element-property :path link)) ;; Ensure DESC really exists, or set it to nil. -- 2.35.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] Re: Org Publish HTML and PDF With GPG Files 2022-09-05 11:44 ` [PATCH] " Ihor Radchenko @ 2022-09-25 8:37 ` Ihor Radchenko 0 siblings, 0 replies; 14+ messages in thread From: Ihor Radchenko @ 2022-09-25 8:37 UTC (permalink / raw) To: lehi; +Cc: Tim Cross, emacs-orgmode Ihor Radchenko <yantar92@gmail.com> writes: > Subject: [PATCH] ox-publish: Allow linking to encrypted Org files > Applied onto main. https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=f99902ecdfa4357035fb04f44b3baa8cec260530 -- Ihor Radchenko, Org mode contributor, Learn more about Org mode at https://orgmode.org/. Support Org development at https://liberapay.com/org-mode, or support my work at https://liberapay.com/yantar92 ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2022-09-25 8:37 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-08-24 0:08 Org Publish HTML and PDF With GPG Files lehi 2022-08-27 3:15 ` Tim Cross 2022-09-01 7:03 ` Ihor Radchenko 2022-09-04 5:59 ` lehi 2022-09-05 0:15 ` David Masterson 2022-09-05 11:46 ` Ihor Radchenko 2022-09-05 20:29 ` David Masterson 2022-09-06 0:44 ` lehi 2022-09-06 4:08 ` David Masterson 2022-09-06 4:37 ` tomas 2022-09-10 2:51 ` David Masterson 2022-09-06 13:47 ` Ihor Radchenko 2022-09-05 11:44 ` [PATCH] " Ihor Radchenko 2022-09-25 8:37 ` Ihor Radchenko
Code repositories for project(s) associated with this public 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).