emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Feng Shu <tumashu@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: phone links...
Date: Sat, 13 Apr 2013 22:12:45 +0800	[thread overview]
Message-ID: <87d2tya59e.fsf@news.tumashu-localhost.org> (raw)
In-Reply-To: <20130409073140.GJ659@strey.biz> (Michael Strey's message of "Tue, 9 Apr 2013 09:31:40 +0200")

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

Michael Strey <mstrey@strey.biz> writes:

> Robert,
>
> On Mo, Apr 08, 2013 at 09:44:12 -0500, Robert Goldman wrote:
>> Michael Strey wrote:
>> > Currently org-phone.el as well as my org-dial.el are incompatible with
>> > org-contacts.  The only idea behind my proposal was to make the contributors
>> > of both packages aware of each other.
>> 
>> Can you explain what makes org-phone incompatible with org-contacts?
>> Maybe my naming of some function?
>
> The problem is on the side of org-contacts.  Org-contacts does not
> support links in its properties.  Thus, currently the only solution to
> use the advantages of org-contacts and org-phone is to give the
> information twice, like in the following example.
> #+BEGIN_SRC org
> * Strey, Michael
> :PROPERTIES:
> :EMAIL:    mstrey@strey.biz foo@bar.com
> :PHONE:    +493514129535 +491263213
> :END:
>
> [[mailto:mstrey@strey.biz]]
> [[mailto:foo@bar.com]]
> [[phone:+49 (0)351 41295-35]]
> [[phone:+49 126 3213]]
> #+END_SRC

I use a export function which can export all contacts to the format:
#+begin_example

    * NAME
    ** EMAIL: [[mailto:n1@n.com]]
    ** EMAIL: [[mailto:n2@n.com]]
    ** PHONE: [[tel:123456789]]
    ** PHONE: [[tel:123456789]]

#+end_example

It it only a temporary solution, may be someone will need it ,but  adding it to the master may
be not a good idea.



[-- Attachment #2: 0001-org-contacts.el-export-contacts-to-outline-format.patch --]
[-- Type: text/x-diff, Size: 4510 bytes --]

From 2c73cdfdf54fe4c882a3bc0d3ce3cd268555100e Mon Sep 17 00:00:00 2001
From: Feng Shu <tumashu@gmail.com>
Date: Sat, 13 Apr 2013 22:00:03 +0800
Subject: [PATCH] org-contacts.el, export contacts to outline-format

* contrib/lisp/org-contacts.el (org-contacts-outline-file): new
  variable
(org-contacts-outline-format): new function which formats a contact to
outline-format
(org-contacts-export-as-outline-format): new function, formats all
contacts to outline-format

* NAME
 :PROPERTIES:
 :EMAIL: n1@n.com n2@n.com
 :PHONE: 123456789
 :END:

export as:

* NAME
** EMAIL: [[mailto:n1@n.com]]
** EMAIL: [[mailto:n2@n.com]]
** PHONE: [[tel:123456789]]
** PHONE: [[tel:123456789]]
---
 contrib/lisp/org-contacts.el |   69 ++++++++++++++++++++++++++++++++++++++++++
 1 个文件被修改,插入 69 行(+)

diff --git a/contrib/lisp/org-contacts.el b/contrib/lisp/org-contacts.el
index a3c4aed..dd89251 100644
--- a/contrib/lisp/org-contacts.el
+++ b/contrib/lisp/org-contacts.el
@@ -156,6 +156,12 @@ This overrides `org-email-link-description-format' if set."
   :group 'org-contacts
   :type 'file)
 
+(defcustom org-contacts-outline-file "contacts-outline.org"
+  "Default file for outline-format export."
+  :group 'org-contacts
+  :type 'file)
+
+
 (defcustom org-contacts-enable-completion t
   "Enable or not the completion in `message-mode' with `org-contacts'."
   :group 'org-contacts
@@ -896,6 +902,69 @@ is created and the VCard is written into that buffer."
 	(current-buffer)
       (progn (save-buffer) (kill-buffer)))))
 
+(defun org-contacts-outline-format (contact)
+  "Formats CONTACT in outline format."
+  (let* ((properties (caddr contact))
+	 (name (org-contacts-vcard-escape (car contact)))
+	 (n (org-contacts-vcard-encode-name name))
+	 (email (cdr (assoc-string org-contacts-email-property properties)))
+	 (tel  (cdr (assoc-string org-contacts-tel-property properties)))
+	 (note (cdr (assoc-string org-contacts-note-property properties)))
+	 (bday (org-contacts-vcard-escape (cdr (assoc-string org-contacts-birthday-property properties))))
+	 (addr (cdr (assoc-string org-contacts-address-property properties)))
+	 (nick (org-contacts-vcard-escape (cdr (assoc-string org-contacts-nickname-property properties))))
+	 (head (format "* %s\n" name)))
+    (concat head
+	    (when email (progn
+			  (setq emails-list (split-string email "[,;: ]+"))
+			  (setq result "")
+			  (while emails-list
+			    (setq result (concat result  "** EMAIL: " (concat "[[mailto:" (car emails-list) "]]") "\n"))
+			    (setq emails-list (cdr emails-list)))
+			  result))
+	    (when addr
+	      (format "** ADRESS: " (replace-regexp-in-string "\\, ?" ";" addr)))
+	    (when tel (progn
+			(setq phones-list (split-string tel "[,;: ]+"))
+			(setq result "")
+			(while phones-list
+			  (setq result (concat result  "** TEL: " (concat "[[tel:" (car phones-list) "]]" ) "\n"))
+			  (setq phones-list (cdr phones-list)))
+			result))
+	    (when bday
+	      (let ((cal-bday (calendar-gregorian-from-absolute (org-time-string-to-absolute bday))))
+		(format "** BDAY:%04d-%02d-%02d\n"
+			(calendar-extract-year cal-bday)
+			(calendar-extract-month cal-bday)
+			(calendar-extract-day cal-bday))))
+	    (when nick (format "** NICKNAME: %s\n" nick))
+	    (when note (format "** NOTE: %s\n" note)))))
+
+
+
+(defun org-contacts-export-as-outline-format (&optional name file to-buffer)
+  "Export all contacts matching NAME as outline format
+If TO-BUFFER is nil, the content is written to FILE or
+`org-contacts-outline-file'.  If TO-BUFFER is non-nil, the buffer
+is created and the outlines is written into that buffer."
+  (interactive) ; TODO ask for name?
+  (let* ((filename (or file org-contacts-outline-file))
+	 (buffer (if to-buffer
+		     (get-buffer-create to-buffer)
+		   (find-file-noselect filename))))
+    (message "Exporting...")
+    (set-buffer buffer)
+    (let ((inhibit-read-only t)) (erase-buffer))
+    (fundamental-mode)
+    (when (fboundp 'set-buffer-file-coding-system)
+      (set-buffer-file-coding-system coding-system-for-write))
+    (loop for contact in (org-contacts-filter name)
+	  do (insert (org-contacts-outline-format contact)))
+    (if to-buffer
+	(current-buffer)
+      (progn (save-buffer) (kill-buffer)))))
+
+
 (defun org-contacts-show-map (&optional name)
   "Show contacts on a map.
 Requires google-maps-el."
-- 
1.7.10.4


[-- Attachment #3: Type: text/plain, Size: 101 bytes --]




>
> This shortcoming effects not only the phone links but email links as
> well.
>
> Regards

-- 

  parent reply	other threads:[~2013-04-13 14:38 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-29 23:23 phone links Robert Goldman
2013-03-30  9:12 ` Karl Voit
2013-04-01 13:30 ` Robert Goldman
2013-04-03 14:52 ` Michael Strey
2013-04-03 15:05   ` Robert Goldman
2013-04-04  8:26     ` Michael Strey
2013-04-04 13:55       ` Michael Strey
2013-04-04 12:15 ` Bastien
2013-04-04 20:38   ` Simon Thum
2013-04-05  3:04     ` Robert P. Goldman
2013-04-05  6:42     ` Bastien
2013-04-06 12:05       ` Simon Thum
2013-04-06 12:10       ` Simon Thum
2013-04-06 20:58         ` Bastien
2013-04-05  2:38   ` Robert P. Goldman
2013-04-08 10:38     ` Michael Strey
2013-04-08 12:47       ` Robert Goldman
2013-04-08 14:07         ` Michael Strey
2013-04-08 14:44           ` Robert Goldman
2013-04-09  7:31             ` Michael Strey
2013-04-09 12:19               ` Robert Goldman
2013-04-09 14:40                 ` Michael Strey
2013-04-13 14:12               ` Feng Shu [this message]
2013-04-13 14:43                 ` Feng Shu
2013-04-14  8:38                   ` Bastien
2013-04-14 14:31                     ` Feng Shu
2013-04-15 15:39                       ` Bastien
2013-04-15 23:37                         ` Feng Shu
2013-04-16 21:11                       ` Daimrod
2013-04-17  3:55                         ` Feng Shu
2013-04-17  6:10                           ` Daimrod
2013-04-14 20:49               ` Michael Strey
2013-04-16 22:22                 ` Daimrod
2013-04-17 10:28                   ` Michael Strey
2013-04-20 15:59                     ` Daimrod
2013-04-26 12:48                       ` [Patch] " Michael Strey
2013-04-30  9:09                         ` Daimrod
2013-05-31  0:04                         ` Daimrod
2013-04-09  9:57       ` Feng Shu
2013-04-10 14:17 ` Michael Strey
2013-04-11 10:27   ` Michael Strey
2013-04-16  7:57     ` Eric S Fraga
2013-04-16 12:25       ` Robert P. Goldman
2013-04-17  8:14         ` Michael Strey

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=87d2tya59e.fsf@news.tumashu-localhost.org \
    --to=tumashu@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /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).