From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karl Voit Subject: org-contacts: how to manage contacts; structure of meta data (was: No completion in Gnus) Date: Wed, 5 Oct 2011 18:20:02 +0200 Message-ID: <2011-10-05T18-01-46@devnull.Karl-Voit.at> References: <86pqicblti.fsf@googlemail.com> Reply-To: news1142@Karl-Voit.at Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([140.186.70.92]:47581) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RBUCn-0000bo-7B for emacs-orgmode@gnu.org; Wed, 05 Oct 2011 12:20:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RBUCk-00038x-GI for emacs-orgmode@gnu.org; Wed, 05 Oct 2011 12:20:25 -0400 Received: from lo.gmane.org ([80.91.229.12]:36843) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RBUCk-00038J-2R for emacs-orgmode@gnu.org; Wed, 05 Oct 2011 12:20:22 -0400 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1RBUCj-000748-5s for emacs-orgmode@gnu.org; Wed, 05 Oct 2011 18:20:21 +0200 Received: from mail.michael-prokop.at ([88.198.6.110]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 05 Oct 2011 18:20:21 +0200 Received: from news1142 by mail.michael-prokop.at with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 05 Oct 2011 18:20:21 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org * Thorsten wrote: > > I have a org-contacts file with a few contacts with EMAIL property, > taken from gnus using org-capture as described in the org-contacts > manual. The contacts are tagged with some tags. [...] > PS > One further org-contacts related question: there is a predefined > property ADDRESS, without any inner structure. Am I supposed to write my own > org-capture template for that property? How would that look like - just > one single string? If I want something more structured (street, city, > zip-code etc), I have to define one property for each info-piece, or is > there something like a compound property? I moved all of my approx. 1000 contacts from jPilot contacts to org-contacts a few months ago. I faced the same questions you are mentioning since org-contacts[1] does only mention the :EMAIL: property. A short research with my favourite search engine did not result in any (ISO?) standard that relates to «how to define/describe contact meta data». Without describing further attempts, I ended up with following yasnippet[2] template for a new contact: ,---- | # name : Org-contacts template for a person or a company | # -- | ** $1 $2 :$1$2: | :PROPERTIES: | :TYPE: ${3:$$(yas/choose-value '("person" "company"))} | :TITLE: | :EMAIL: $4 | :URL: | :MOBILE: 0043/ | :HOMEPHONE: | :WORKPHONE: | :PHONE: | :COMPANY: | :STREET: | :POSTALCODE: | :CITY: | :COUNTRY: Österreich | :END: | | first contact: $0 `---- My current tags for contacts are defined in the header of my contacts.org: ,----[ first line of my contacts.org ] | #+TAGS: job(j) friends(f) health(e) hotels(o) restaurants_bars(r) \ | sport(s) students_TU(t) relatives(r) company(c) `---- ... but this is pretty much related to my previous system (jPilot/datebk6/PalmOS) which offered only one single category for each contact. I might re-think these tags in future. A very handy bonus feature is referencing my contacts. In my .emacs I do have following: ,----[ .emacs (excerpt) ] | (setq org-link-abbrev-alist | '( | ("contact" . "~/org/contacts.org::/\*.*%s/") | )) `---- Combined with following yasnippet template it results in very comfty contact handling: ,----[ contact yasnippet ] | # name : expand link to contact | # -- | [[contact:$1][${2:$$(unless yas/modified-p | (let ((field (nth 0 (yas/snippet-fields (first (yas/snippets-at-point)))))) | (concat (buffer-substring (yas/field-start field) (yas/field-end field)))))}]] $0 `---- Basically, you have to enter the name of the snippet, press «TAB» and then you type in the name (or anything of the heading line of a contact). Then it results in [[contact:foo bar][foo bar]] which is a clickable link to any contact which relates to «foo bar». Whenever I rename my contacts.org or put it in another folder, I just have to modify the line in my .emacs and not each link. I like this system. HTH 1. http://julien.danjou.info/org-contacts.html 2. http://code.google.com/p/yasnippet/ -- Karl Voit