From: Ihor Radchenko <yantar92@gmail.com>
To: numbchild@gmail.com, John Kitchin <jkitchin@andrew.cmu.edu>
Cc: Org Mode <emacs-orgmode@gnu.org>
Subject: Re: [QUESTION] What's the ":desk" link parameter?
Date: Sun, 24 May 2020 11:10:38 +0800 [thread overview]
Message-ID: <87pnauvxht.fsf@localhost> (raw)
In-Reply-To: <871rna5hvp.fsf@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 373 bytes --]
> I remember I found this code on emacs.stackexchange.com website.
>
> I did a Google search now, I found someone indeed proposed this feature. Here is
> the email archive:
>
> https://lists.gnu.org/archive/html/emacs-orgmode/2019-08/msg00013.html
>
> I saw this thread is stopped. Seems no patch provided. Does anyone want to implement it?
See the attached.
Best,
Ihor
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: org-link-description.patch --]
[-- Type: text/x-diff, Size: 4956 bytes --]
diff --git a/lisp/ol.el b/lisp/ol.el
index 0cb1b0a7e..32a80ee56 100644
--- a/lisp/ol.el
+++ b/lisp/ol.el
@@ -138,6 +138,13 @@ link.
Function that inserts a link with completion. The function
takes one optional prefix argument.
+`:description'
+
+ Function to use for generating link descriptions from links. This
+ function must take two parameters: the first one is the link, the
+ second one is the description generated by `org-insert-link'. The
+ function should return the description to use.
+
`:display'
Value for `invisible' text property on the hidden parts of the
@@ -193,16 +200,6 @@ You can interactively set the value of this variable by calling
:type 'boolean
:safe #'booleanp)
-(defcustom org-link-make-description-function nil
- "Function to use for generating link descriptions from links.
-This function must take two parameters: the first one is the
-link, the second one is the description generated by
-`org-insert-link'. The function should return the description to
-use."
- :group 'org-link
- :type '(choice (const nil) (function))
- :safe #'null)
-
(defcustom org-link-file-path-type 'adaptive
"How the path name in file links should be stored.
Valid values are:
@@ -1742,10 +1739,8 @@ If the LINK-LOCATION parameter is non-nil, this value will be used as
the link location instead of reading one interactively.
If the DESCRIPTION parameter is non-nil, this value will be used as the
-default description. Otherwise, if `org-link-make-description-function'
-is non-nil, this function will be called with the link target, and the
-result will be the default link description. When called non-interactively,
-don't allow to edit the default description."
+default description. When called non-interactively, don't allow to
+edit the default description."
(interactive "P")
(let* ((wcf (current-window-configuration))
(origbuf (current-buffer))
@@ -1890,17 +1885,27 @@ Use TAB to complete link prefixes, then RET for type-specific completion support
(setq desc path)))))
(unless auto-desc
- (let ((initial-input
- (cond
- (description)
- ((not org-link-make-description-function) desc)
- (t (condition-case nil
- (funcall org-link-make-description-function link desc)
- (error
- (message "Can't get link description from %S"
- (symbol-name org-link-make-description-function))
- (sit-for 2)
- nil))))))
+ (let* ((type (and (string-match "\\([^:]+\\):" link)
+ (match-string-no-properties 1 link)))
+ (initial-input
+ (cond
+ (description)
+ ((org-link-get-parameter type :description)
+ (condition-case nil
+ (funcall (org-link-get-parameter type :description) link desc)
+ (error
+ (message "Can't get link description from %S"
+ (symbol-name (org-link-get-parameter type :description)))
+ (sit-for 2)
+ nil)))
+ ((not org-link-make-description-function) desc)
+ (t (condition-case nil
+ (funcall org-link-make-description-function link desc)
+ (error
+ (message "Can't get link description from %S"
+ (symbol-name org-link-make-description-function))
+ (sit-for 2)
+ nil))))))
(setq desc (if (called-interactively-p 'any)
(read-string "Description: " initial-input)
initial-input))))
diff --git a/lisp/org-compat.el b/lisp/org-compat.el
index 635a38dcd..c17d888fc 100644
--- a/lisp/org-compat.el
+++ b/lisp/org-compat.el
@@ -376,6 +376,21 @@ See `org-link-parameters' for documentation on the other parameters."
(make-obsolete 'org-add-link-type "use `org-link-set-parameters' instead." "Org 9.0")
+(defcustom org-link-make-description-function nil
+ "Function to use for generating link descriptions from links.
+This function must take two parameters: the first one is the
+link, the second one is the description generated by
+`org-insert-link'. The function should return the description to
+use."
+ :group 'org-link
+ :type '(choice (const nil) (function))
+ :safe #'null)
+
+(make-obsolete-variable
+ 'org-link-make-description-function
+ "use `org-link-set-parameters' to set :description link parameter instead."
+ "Org 9.3.6")
+
;;;; Functions unused in Org core.
(defun org-table-recognize-table.el ()
"If there is a table.el table nearby, recognize it and move into it."
@@ -516,8 +531,10 @@ use of this function is for the stuck project list."
(define-obsolete-variable-alias 'org-email-link-description-format
'org-link-email-description-format "Org 9.3")
-(define-obsolete-variable-alias 'org-make-link-description-function
- 'org-link-make-description-function "Org 9.3")
+(make-obsolete-variable
+ 'org-make-link-description-function
+ "use `org-link-set-parameters' to set :description link parameter instead."
+ "Org 9.3.6")
(define-obsolete-variable-alias 'org-from-is-user-regexp
'org-link-from-user-regexp "Org 9.3")
[-- Attachment #3: Type: text/plain, Size: 3630 bytes --]
stardiviner <numbchild@gmail.com> writes:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
>
> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>
>> Where did you find that code? I recall this was some kind of prototype
>> code, and maybe it never got fully developed. I think desk was shorthand
>> for description.
>
> I remember I found this code on emacs.stackexchange.com website.
>
> I did a Google search now, I found someone indeed proposed this feature. Here is
> the email archive:
>
> https://lists.gnu.org/archive/html/emacs-orgmode/2019-08/msg00013.html
>
> I saw this thread is stopped. Seems no patch provided. Does anyone want to implement it?
>
>>
>> On Sat, May 23, 2020 at 8:24 AM stardiviner <numbchild@gmail.com> wrote:
>>
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA256
>>>
>>>
>>> I found some examples setting org-link-parameters with ":desk", like this:
>>>
>>> #+begin_src emacs-lisp
>>> (defun org-id-link-desk (link desk)
>>> "Description function for id: link."
>>> (let ((id (cadr (split-string link ":"))))
>>> (org-with-point-at (org-id-find id 'marker)
>>> (s-join "/" (org-get-outline-path 'with-self)))))
>>>
>>> (org-link-set-parameters "id" :desk #'org-id-link-desk)
>>> #+end_src
>>>
>>> But I have not found any mention in help of variable
>>> ~org-link-parameters~. Also I
>>> checked org mode source code by search, no matching of ":desk" found. Did
>>> I miss
>>> something?
>>>
>>> - --
>>> [ stardiviner ]
>>> I try to make every word tell the meaning that I want to express.
>>>
>>> Blog: https://stardiviner.github.io/
>>> IRC(freenode): stardiviner, Matrix: stardiviner
>>> GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
>>>
>>> -----BEGIN PGP SIGNATURE-----
>>>
>>> iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl7JFckUHG51bWJjaGls
>>> ZEBnbWFpbC5jb20ACgkQG13xyVromsONBggAy0z465LkTx1EYBo4GWZdObWXct8O
>>> Fjz24HGzin/ffISIhytm0r4w5GE2Rb2/m+BwAsfHEDDvLu1mwU3HvLugXmIk0OUA
>>> u9qRLHJ4Po1/Y1CRR0o/OHHnbTjhA/7ppljRcN0klwd6J0PDrSE3K/XOhV94xyfK
>>> k0fUBhtQeTdW/uzx49hs14QlNQ5i6+HJWd1g/viXI+v0EIYJDV3PLwS6CFJWnvo3
>>> Yi210RM87uKi8vWFcFP7fEW2dYDV5MRsKmQ8v9AKLcCW9+T6Zq3tI7Srxn7ZwFsQ
>>> mFxZdLFyDlQq0M4VG0WL/epwr0f4B2SUZ3BcOEYrwv7N+7sfMN2cCWI8jQ==
>>> =8aOD
>>> -----END PGP SIGNATURE-----
>>>
>>> --
>> John
>>
>> -----------------------------------
>> Professor John Kitchin
>> Doherty Hall A207F
>> Department of Chemical Engineering
>> Carnegie Mellon University
>> Pittsburgh, PA 15213
>> 412-268-7803
>> @johnkitchin
>> http://kitchingroup.cheme.cmu.edu
>
>
> - --
> [ stardiviner ]
> I try to make every word tell the meaning that I want to express.
>
> Blog: https://stardiviner.github.io/
> IRC(freenode): stardiviner, Matrix: stardiviner
> GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
>
> -----BEGIN PGP SIGNATURE-----
>
> iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl7JtzoUHG51bWJjaGls
> ZEBnbWFpbC5jb20ACgkQG13xyVromsMC4wf+Nzj7X+SDnSaYoFYWvdx/r0PtSbyJ
> u4fmiT5TlWYJvx6+S9HVxTSmvR7QEdxWFTLU0zkVFAmuhFIehIDoQpCzunwCGKfl
> Onn+TLwqm8UaeDS1GXs0yhRLRAgsDqM+jdd7+IKccljRonM1RVYDjFjfdXvh9U9h
> mDU78HGL/yGg6rzlIHlzh+s0bvkM0xgmivI7zWmk1BF8PQofXcVzdGn3aWFz3rNN
> clEgmCtOX/t7gRzn8H8Ydq+vg+J15OliNjWBRZ1Op26msaOYe+nly8tGAbfwqDgB
> SSC4vi42vUbvVNzpjYfR6byqQ4RDxI8th66NJ6yuk0hkCnTHe69h1gQuqw==
> =Q210
> -----END PGP SIGNATURE-----
>
--
Ihor Radchenko,
PhD,
Center for Advancing Materials Performance from the Nanoscale (CAMP-nano)
State Key Laboratory for Mechanical Behavior of Materials, Xi'an Jiaotong University, Xi'an, China
Email: yantar92@gmail.com, ihor_radchenko@alumni.sutd.edu.sg
next prev parent reply other threads:[~2020-05-24 3:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-23 12:23 [QUESTION] What's the ":desk" link parameter? stardiviner
2020-05-23 13:49 ` Bastien
2020-05-23 14:01 ` John Kitchin
2020-05-23 23:52 ` stardiviner
2020-05-24 3:10 ` Ihor Radchenko [this message]
2020-05-24 11:00 ` Bastien
2020-05-24 11:34 ` Ihor Radchenko
2020-06-02 12:29 ` Bastien
2020-06-02 13:22 ` Ihor Radchenko
2020-06-02 13:55 ` stardiviner
2020-05-24 11:12 ` stardiviner
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=87pnauvxht.fsf@localhost \
--to=yantar92@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=jkitchin@andrew.cmu.edu \
--cc=numbchild@gmail.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).