[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Re: Org Publish HTML and PDF With GPG Files
From: |
Ihor Radchenko |
Subject: |
[PATCH] Re: Org Publish HTML and PDF With GPG Files |
Date: |
Mon, 05 Sep 2022 19:44:33 +0800 |
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
>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
- Re: Org Publish HTML and PDF With GPG Files, Ihor Radchenko, 2022/09/01
- Re: Org Publish HTML and PDF With GPG Files, lehi, 2022/09/04
- Re: Org Publish HTML and PDF With GPG Files, David Masterson, 2022/09/04
- Re: Org Publish HTML and PDF With GPG Files, Ihor Radchenko, 2022/09/05
- Re: Org Publish HTML and PDF With GPG Files, David Masterson, 2022/09/05
- Re: Org Publish HTML and PDF With GPG Files, lehi, 2022/09/05
- Re: Org Publish HTML and PDF With GPG Files, David Masterson, 2022/09/06
- Re: Org Publish HTML and PDF With GPG Files, tomas, 2022/09/06
- Re: Org Publish HTML and PDF With GPG Files, David Masterson, 2022/09/09
- Re: Org Publish HTML and PDF With GPG Files, Ihor Radchenko, 2022/09/06
[PATCH] Re: Org Publish HTML and PDF With GPG Files,
Ihor Radchenko <=