emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Stacey Marshall" <stacey.marshall@gmail.com>
To: emacs-orgmode@gnu.org
Subject: patch for org-capture.el  to allow for no file extension on open-source, protocol
Date: Sat, 09 May 2020 21:55:58 +0100	[thread overview]
Message-ID: <A9FED912-9DD8-40AF-A7F5-DEEF33378A94@gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 3732 bytes --]

The issue was that the URL I was opening had the full filename as-is.  
No extension needed to be added or removed.  If no suffix is provided in 
the alist then the function failed.  The patch allows both online-suffix 
and working-suffix to not be required.


```
 From 213b7968199bebcf11d0bcf0bbc44d0843f19ecc Mon Sep 17 00:00:00 2001
 From: Stacey Marshall <stacey.marshall@gmail.com>
Date: Sat, 9 May 2020 21:31:04 +0100
Subject: [PATCH] org-capture.el: Allow for no file extension on 
open-source
  protocol

* lisp/org-capture.el (org-protocol-open-source): Remove requirement
to have :online-suffix and :working-suffix.

The problem here was that two assignments expected suffix's to be
provided in org-protocol-project-alist.  When they were missing an
error occurred.  With the changes source URLs that include the file
name as-is, such as those presented by openGrok, may be opened.

TINYCHANGE
---
  lisp/org-protocol.el | 26 ++++++++++++++++----------
  1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/lisp/org-protocol.el b/lisp/org-protocol.el
index 55a534d0d..35f58f490 100644
--- a/lisp/org-protocol.el
+++ b/lisp/org-protocol.el
@@ -191,7 +191,7 @@ Example:
            :working-suffix \".org\"
            :base-url \"https://orgmode.org/worg/\"
            :working-directory \"/home/user/org/Worg/\")
-         (\"http://localhost/org-notes/\"
+         (\"localhost org-notes/\"
            :online-suffix \".html\"
            :working-suffix \".org\"
            :base-url \"http://localhost/org/\"
@@ -202,12 +202,17 @@ Example:
            :working-directory \"~/site/content/post/\"
            :online-suffix \".html\"
            :working-suffix \".md\"
-          :rewrites ((\"\\(https://site.com/[0-9]+/[0-9]+/[0-9]+/\\)\" 
. \".md\")))))
-
-
-   The last line tells `org-protocol-open-source' to open
-   /home/user/org/index.php, if the URL cannot be mapped to an existing
-   file, and ends with either \"org\" or \"org/\".
+          :rewrites ((\"\\(https://site.com/[0-9]+/[0-9]+/[0-9]+/\\)\" 
. \".md\")))
+         (\"GNU emacs OpenGrok\"
+          :base-url 
\"https://opengrok.housegordon.com/source/xref/emacs/\"
+          :working-directory \"~/dev/gnu-emacs/\")))
+
+   The :rewrites line of \"localhost org-notes\" entry tells
+   `org-protocol-open-source' to open /home/user/org/index.php,
+   if the URL cannot be mapped to an existing file, and ends with
+   either \"org\" or \"org/\".  The \"GNU emacs OpenGrok\" entry
+   does not include any suffix properties, allowing local source
+   file to be opened as found by OpenGrok.

  Consider using the interactive functions `org-protocol-create' and
  `org-protocol-create-for-org' to help you filling this variable with 
valid contents."
@@ -545,11 +550,12 @@ The location for a browser's bookmark should look 
like this:
  		   ;; ending than strip-suffix here:
  		   (f1 (substring f 0 (string-match "\\([\\?#].*\\)?$" f)))
                     (start-pos (+ (string-match wsearch f1) (length 
base-url)))
-                   (end-pos (string-match
-			     (regexp-quote strip-suffix) f1))
+                   (end-pos (if strip-suffix
+			      (string-match (regexp-quote strip-suffix) f1)
+			      (length f1)))
  		   ;; We have to compare redirects without suffix below:
  		   (f2 (concat wdir (substring f1 start-pos end-pos)))
-                   (the-file (concat f2 add-suffix)))
+                   (the-file (if add-suffix (concat f2 add-suffix) 
f2)))

  	      ;; Note: the-file may still contain `%C3' et al here because 
browsers
  	      ;; tend to encode `&auml;' in URLs to `%25C3' - `%25' being 
`%'.
-- 
2.21.1 (Apple Git-122.3)

```


--
[Stacey](https://staceymarshall.wordpress.com/)

[-- Attachment #2: Type: text/html, Size: 4093 bytes --]

             reply	other threads:[~2020-05-09 20:56 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-09 20:55 Stacey Marshall [this message]
2020-05-10 12:57 ` Nicolas Goaziou
2020-05-11  0:05   ` Stacey Marshall
2020-05-12 14:46     ` Nicolas Goaziou
2020-05-12 15:05       ` Nicolas Goaziou
2020-05-12 17:02         ` Stacey Marshall
2020-05-13  8:02           ` Nicolas Goaziou
2020-08-01 13:18             ` Stacey Marshall

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=A9FED912-9DD8-40AF-A7F5-DEEF33378A94@gmail.com \
    --to=stacey.marshall@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --subject='Re: patch for org-capture.el  to allow for no file extension on open-source, protocol' \
    /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).