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 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 \ --subject='Re: [QUESTION] What'\''s the ":desk" link parameter?' \ /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).