emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] org-contacts: how to manage contacts; structure of meta data (was: N


From: Karl Voit
Subject: [O] org-contacts: how to manage contacts; structure of meta data (was: No completion in Gnus)
Date: Wed, 5 Oct 2011 18:20:02 +0200
User-agent: slrn/0.9.9 (Linux)

* Thorsten <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]