From: Jean Louis <firstname.lastname@example.org> To: stardiviner <email@example.com> Cc: Bastien <firstname.lastname@example.org>, email@example.com, Org-mode <firstname.lastname@example.org> Subject: Re: More on design of org-contacts.el - Re: [UPDATED PATCH] Re: add new link type "contact:" for org-contacts.el Date: Tue, 17 Nov 2020 09:34:01 +0300 Message-ID: <X7Nu2RzpyEgHi/Cg@protected.rcdrun.com> (raw) In-Reply-To: <email@example.com> * stardiviner <firstname.lastname@example.org> [2020-11-16 13:21]: :PROPERTIES: :ID: e2c30814-b983-4391-869a-3c700d041467 :END: > > First, thank your very much for suggestion. > > What really I have not found your email in my Gmail (in web > browser), Maybe because it went to Spam/Junk folder. For privacy and safety reasons I do not recommend using Gmail at all. I may recommend using your own email address, requires some money, or https://posteo.de/ https://tutanota.de/ or https://protonmail.ch/ > I found it in mu4e (Emacs). Which I can't reply because I'm in > China, sendmail to Gmail SMTP server is blocked. So I'm replying you > in mu4e. Don't know whether you can receive my message. I wish I could understand, mu4e is only local system that searches emails on your computer. How you send emails depends on your email provider. Maybe you fetch mailing list to search for emails? > Using unique ID is the only solution to identity contact. I already thought > about this. But integrating org-id is hard for me. Have not spent that time on > it yet. But I will, if I want to improve this org-contacts. If I may just give idea. I am using this below function to automatically get ID numbers for headings. Normally it is by saving. Maybe you can do something to automatically insert such number. I do not know if heading is contact, but if it is, it becomes all easier. (defun rcd-org-add-ids-to-headlines-in-file () "Add ID properties to all headlines in the current file which do not already have one." (interactive) (org-map-entries 'org-id-get-create)) > > Each hyperdocument (within or without Emacs) that allows back linking > > to its specifical parts should have a function or key binding to > > quickly obtain the link reference. Once you have decided how is contact referenced as now is referenced by query, I could maybe figure how to obtain the reference. It should not be that hard: - find the current heading - find current ID number - how link should look like could be customizable, maybe heading as visible part. That requires discussion. - prepare link into memory for pasting in other window or document. - it should also be possible to insert such into register. - the option to obtain link by query should be kept intact Maybe two keybindings or functions can be made: ** Proposal :PROPERTIES: :ID: a566d476-f478-44d8-8d91-53f6eccca10b :END: 1. One that finds the current heading and obtains the link (defun capture-contact-by-query-to-heading () (let* ((heading (org-get-heading)) (link (format "[[org-contact:query#%s][%s]]" heading heading))) (kill-new link))) (capture-contact-by-query-to-heading) => [[org-contact:query#Proposal][Proposal]] And such function should be expanded and be customizable: - maybe user wish to provide format string as maybe user wish to know visually that link leads to contact like: => [[org-contact:query#John Doe][Contact: John Doe]] 2. One that finds currentheading by its ID and obtains the link: (defun capture-contact-by-id-to-heading-1 () (let* ((heading (org-get-heading)) (id (org-id-get)) (link (format "[[org-contact:id#%s][%s]]" id heading))) link)) (defun capture-contact-by-id-to-heading () (kill-new (capture-contact-by-id-to-heading-1))) (capture-contact-by-id-to-heading) => [[org-contact:id#a566d476-f478-44d8-8d91-53f6eccca10b][Proposal]] These are design ideas only. You may expand and make checks on these functions that such work properly. Additional functions that may be very usable is to quickly send links to other window. User is collecting the database of contacts in one file and one window and wishes to insert links into other window that references such contacts. In that file where you need a link you would arrive with cursor. Then you go to database of contacts and invoke a key that sends the yanked org link into other window. (defun contact-yank-link-in-other-window () (let ((link (capture-contact-by-id-to-heading-1))) (kill-new link) (other-window 1) (yank) (other-window 1) (message "Yanked link: %s to other window" link))) It is up to you to expand or think on this as it is design proposal. Not finalized function or feature. When we wish to reference things we need it quick and fast. Org mode in general needs these types of functions: - to automatically obtain ANY link from Org mode to the heading and not just for users to write the link by hand. Examples are: - link to specific line - link to query, when text is marked, that link may be constructed, and also if necessary quickly inserted in other window (we use links to reference from same buffer to same buffer or from other buffer and file to other files). Such query could be automatically minimized that it does not carry all the marked words. Few words could be enough. - link to any heading or subheading by its name - link to any heading by its ID or CUSTOM_ID - and so on, there shall be various lists of links that can be quickly constructed and killed into memory or yanked into other window. - to automatically yank the link from one window to other window as that helps to user to construct references. Then in general, ALL programs that allow any kind of referencing such as opening PDF file by specific query, specific page, playing video at specific time, or for specific short period of time, should provide automated way of obtaining such structures to create hyperlinks.
next prev parent reply other threads:[~2020-11-17 6:59 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-30 7:35 [PATCH] " stardiviner 2020-10-30 7:44 ` stardiviner 2020-11-09 0:24 ` stardiviner 2020-11-09 6:14 ` Jean Louis 2020-11-10 1:15 ` [UPDATED PATCH] " stardiviner 2020-11-11 8:37 ` Bastien 2020-11-11 12:04 ` stardiviner 2020-11-11 13:57 ` More on design of org-contacts.el - " Jean Louis 2020-11-16 9:26 ` stardiviner 2020-11-17 6:34 ` Jean Louis [this message] 2020-12-15 8:46 ` stardiviner 2020-12-14 6:06 ` Bastien 2020-12-15 8:53 ` [final patch] " stardiviner 2020-12-15 9:56 ` Bastien 2020-12-15 14:13 ` stardiviner 2020-12-15 14:27 ` Bastien 2020-11-11 8:33 ` [PATCH] " Bastien
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://orgmode.org * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=X7Nu2RzpyEgHi/Cg@protected.rcdrun.com \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.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
Org-mode mailing list This inbox may be cloned and mirrored by anyone: git clone --mirror https://orgmode.org/list/0 list/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 list list/ https://orgmode.org/list \ firstname.lastname@example.org public-inbox-index list Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.yhetil.org/yhetil.emacs.orgmode nntp://news.gmane.io/gmane.emacs.orgmode AGPL code for this site: git clone https://public-inbox.org/public-inbox.git