Org-mode mailing list
 help / color / Atom feed
From: Karl Voit <devnull@Karl-Voit.at>
To: emacs-orgmode@gnu.org
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> (raw)
In-Reply-To: <86pqicblti.fsf@googlemail.com>

* Thorsten <quintfall@googlemail.com> 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

  parent reply index

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-04 19:26 [contacts] No completion in Gnus Thorsten
2011-10-04 20:03 ` Jambunathan K
2011-10-04 20:31   ` Thorsten
2011-10-05  7:20     ` Achim Gratz
2011-10-05 15:20       ` Thorsten
2011-10-05 14:44   ` Jason Dunsmore
2011-10-05 14:51     ` Julien Danjou
2011-10-05 15:03       ` jasondunsmore
2011-10-05 15:12         ` Julien Danjou
2011-10-05 15:35         ` Michael Markert
2011-10-05 16:20 ` Karl Voit [this message]
2011-10-05 20:48   ` org-contacts: how to manage contacts; structure of meta data (was: No completion in Gnus) Thorsten
2011-10-06  9:38     ` org-contacts: how to manage contacts; structure of meta data Karl Voit
2011-10-06 12:55       ` Thorsten
2011-10-06 14:20       ` Wes Hardaker
2011-10-06 14:53         ` Thorsten

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=2011-10-05T18-01-46@devnull.Karl-Voit.at \
    --to=devnull@karl-voit.at \
    --cc=emacs-orgmode@gnu.org \
    --cc=news1142@Karl-Voit.at \
    /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

Archives are clonable:
	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 \
		emacs-orgmode@gnu.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