Re: [O] org-contacts: how to manage contacts; structure of meta data (was: No completion in Gnus)
Karl Voit writes: >> 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: Do you think that yasnippet is superior to org-capture or is it just a casuality that you prefered it to org-capture? > , > | # 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 > ` Thats what I thought, that a single :ADDRESS: property is not very usefull or practical. So there is not something like a nested property, each piece of information needs its own property. I think your list is pretty complete and usable. > 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) > ` [how do you produce this nice insertions in your email?] > 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». Great, I'll give that a try too. Thanks for your help Cheers -- Thorsten
[O] org-contacts: how to manage contacts; structure of meta data (was: No completion in Gnus)
* 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