Re: [O] getting access to a self-invented option?

2019-08-02 Thread Thibault Marin
Hi,

I am not sure where you are trying to get to the value (in the
publishing function?), but I use something like the following to handle
custom keywords:

,
| #+MWP_EXPORT_TYPE: slides
|
| #+name: elt
| #+begin_src emacs-lisp :results silent :exports none
| (let ((tree (org-element-parse-buffer)))
|   (org-element-map
|   tree 'keyword
| (lambda (r)
|   (let ((key (org-element-property :key r))
| (value (org-element-property :value r)))
| (when (string= key "MWP_EXPORT_TYPE")
|   value))) ;; Return the keyword value
| nil t))
| #+end_src
`

If you have access to the parsed tree or the buffer filename, you may be
able to use this or something similar (maybe wrapped in a function).

Hope it helps.

On 2019-08-02T12:10:18-0400, Matt Price wrote:

  I'm trying to streamline some veyr ad-hoc workflows I have. One thing I do
  a lot during the school year is make some changes to an org source file,
  and then export to hugo markdown with ox-hugo, and finally commit to git
  (after that I have a git hook that generates the website & uploads the
  changed pages to the appropriate location, usually a github-pages branch or
  separate repo).

  So I have this code:

  (defun mwp-hugo-export-and-release ()
"Make it faster and easier to put my lectures up on the website."
(interactive)

(let* ((modfile (org-hugo-export-wim-to-md))
   (basedir (plist-get  (org-export-get-environment 'hugo)
  ':hugo-base-dir ))
   (default-directory (expand-file-name basedir)))
  (magit-stage-file modfile)
  ;; (magit-status)
  (magit-commit-create)
  )  )

  It works great, I'm very happy. HOWEVER: in my websites I have two kinds of
  outputs:

  - regular pages -- these get exported to .md files and turned into html by
  hugo
  - lecture notes -- these get exported to reveal.js HTML pages by
  org-re-reveal and my hugo theme treats them differently .

  I would really like to set a switch somewhere in the file, something like:

  #+MWP_EXPORT_TYPE: slides

  And then something like

  let* ((modfile (if (eq :mwp-export-type "slides")
  (mwp-hugo-reveal-custom-export-function)
 (org-hugo-export-wim-to-md)))
   etc)
  do stuff)


  But I'm not sure how to get access to a totally non-standard option like
  the kind I just invented in that last bit of pseudo-code. Anyone have a
  good suggestion?

  Thank you as always!

  Matt




Re: [O] [Feature proposal] Add :description function to org-link-parameters

2019-08-02 Thread Ihor Radchenko
Oops. Indeed, :desk should be replaced with :description. I used :desk
property in my personal config, but it may be confusing for others.

Best,
Ihor


John Kitchin  writes:

> This sounds reasonable. I was a little confused with the mixture of
> of description and desk in the code below. If you replace desk with
> description everywhere in your code is that what you mean?
>
> Ihor Radchenko  writes:
>
>> Hi,
>>
>> Wondering if anyone is interested in adding a new org-link property to
>> customise generating the link description.
>>
>> For now, there is global org-link-make-description-function, which is
>> shared among all the link types. If would be more convenient if the
>> description function can be set independently for different link types.
>>
>> I propose to use :description property in org-link-parameters. A sample
>> implementation working with current org version is below:
>>
>> #+begin_src emacs-lisp
>> (defun yant/org-make-link-description-function (link desk)
>>   "Return description of the link LINK according to :description link 
>> property.
>> Return DESK if :desk is not set."
>>   (let ((fun (org-link-get-parameter (car (split-string link ":")) 
>> :description)))
>> (if (functionp fun)
>>  (funcall fun link desk)
>>   desk)))
>>
>> (setq org-make-link-description-function 
>> #'yant/org-make-link-description-function)
>> #+end_src
>>
>> Example usage:
>>
>> #+begin_src emacs-lisp
>> (defun org-id-link-desk (link desk)
>>   "Description function for id: link."
>>   (let ((id (cadr (split-string link ":"
>> (org-with-point-at (org-id-find id 'marker)
>>   (s-replace "||" "/" (yant/task-fulltitle)
>>
>> (org-link-set-parameters "id"
>>  :desk #'org-id-link-desk)
>> #+end_src
>>
>> Best,
>> Ihor
>
>
> --
> Professor John Kitchin
> Doherty Hall A207F
> Department of Chemical Engineering
> Carnegie Mellon University
> Pittsburgh, PA 15213
> 412-268-7803
> @johnkitchin
> http://kitchingroup.cheme.cmu.edu
>

-- 
Ihor Radchenko,
PhD,
Center for Advancing Materials Performance from the Nanoscale (CAMP-nano)
State Key Laboratory for Mechanical Behavior of Materials, Xi'an Jiaotong 
University, Xi'an, China
Email: yanta...@gmail.com, ihor_radche...@alumni.sutd.edu.sg



Re: [O] exported contacts problem

2019-08-02 Thread Eric Abrahamsen
Jean Louis  writes:

> * Eric Abrahamsen  [2019-08-02 23:11]:
>> > Neither bbdb nor Org is suitable for any serious collection of
>> > contacts. I have 192,000+ contacts, and when they are in database and
>> > I am using PostgreSQL, it gives me most of benefits, I can sort people
>> > into lists, groups, I can contact them, count interactions, open up
>> > their files, emails with a fast command, edit their data, add notes,
>> > send them faxes and SMS, maintain relations.
>> 
>> That sounds pretty intense. Have you written a separate package for
>> interacting with the database?
>
> I wrote few generic functions and use it with helm, it works for
> me. It is not ready for public. Web interface works based on Gedafe[1]
> and then I wrote access to it through console Common Lisp and then
> also through Emacs Lisp.
>
> I am using Emacs module `emacs-libpq'[2] to interact with PostgreSQL.
>
> Let's say I am looking for somebody, Hyper-C asks me for query, I
> enter something, then I can choose to open Org file relating to the
> person. When dealing with various companies, things related to a
> company shall be in the directory related to company. Things related
> to person, for example assignments related to one person shall be in
> the file belonging to that person.
>
> That way full file can be sent to the person for review, it becomes
> clear what has been done, and what is yet to be done.
>
> Mixing assignments, TODO, agendas from all subjects, groups and
> persons into one file would give me terrible confusion.

Okay, thanks for that run-down, pretty interesting. I've written a
package called EBDB[1] that's meant to be sort of an update to BBDB, and
while I think someone's using it with tens of thousands of contacts,
192k records would probably exhaust it. It has pluggable data stores,
however, one of which will (eventually) be a proper external database,
so I'm always interested in how people are using this stuff.

Eric

[1] https://github.com/girzel/ebdb





Re: [O] [Feature proposal] Add :description function to org-link-parameters

2019-08-02 Thread John Kitchin
This sounds reasonable. I was a little confused with the mixture of
of description and desk in the code below. If you replace desk with
description everywhere in your code is that what you mean?

Ihor Radchenko  writes:

> Hi,
>
> Wondering if anyone is interested in adding a new org-link property to
> customise generating the link description.
>
> For now, there is global org-link-make-description-function, which is
> shared among all the link types. If would be more convenient if the
> description function can be set independently for different link types.
>
> I propose to use :description property in org-link-parameters. A sample
> implementation working with current org version is below:
>
> #+begin_src emacs-lisp
> (defun yant/org-make-link-description-function (link desk)
>   "Return description of the link LINK according to :description link 
> property.
> Return DESK if :desk is not set."
>   (let ((fun (org-link-get-parameter (car (split-string link ":")) 
> :description)))
> (if (functionp fun)
>   (funcall fun link desk)
>   desk)))
>
> (setq org-make-link-description-function 
> #'yant/org-make-link-description-function)
> #+end_src
>
> Example usage:
>
> #+begin_src emacs-lisp
> (defun org-id-link-desk (link desk)
>   "Description function for id: link."
>   (let ((id (cadr (split-string link ":"
> (org-with-point-at (org-id-find id 'marker)
>   (s-replace "||" "/" (yant/task-fulltitle)
>
> (org-link-set-parameters "id"
>  :desk #'org-id-link-desk)
> #+end_src
>
> Best,
> Ihor


--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu



Re: [O] exported contacts problem

2019-08-02 Thread John Kitchin
There are a few options for contacts in org-mode that I have tried.

I agree for a lot of contacts (probably more than a hundred or so), then
native org-contacts might be too slow.

In scimax I have tried a few different approaches to deal with this. The
first is all org/elisp that uses a cache to speed up looking up
contacts. See
https://github.com/jkitchin/scimax/blob/master/contacts.el. The gist of
this is you define a list of files that contacts will be in, and as long
as they haven't changed since the cache was built the cache is used, and
if they have changed the cache for that file is rebuilt. For large
files, org parsing is not that fast in this, and I have not spent any
time optimizing this. There are lots of ways to speed it up, but it
hasn't been so slow to need solving yet. I use this
code regularly, but nothing critical depends on it working. The downside
of this is you have to maintain a list of files that serve as contact
sources. I am pretty sure everything in it is compatible with
org-contacts. This method is fine and I have about 5.8K contacts in this
cache. I use this approach very regularly and have made some nice
org-speedkeys for these contacts and other interesting ideas.

The second approach is also related to caching, and uses a sqlite
database as the cache.
https://github.com/jkitchin/scimax/blob/master/org-db.el This approach
uses a hook function to update the db any time the file is updated. I
can access about 7500 contacts pretty quickly this way (evidently I have
a lot of contacts outside the list of files designated as contacts in
the first approach). I don't use this approach as much for contacts as
for searching all headlines in all my org-files, but I built a contacts
feature because I could. This approach could be expanded to a server
based database but so far sqlite has served all my needs, and it has
about 72K headlines indexed into it right now. The main benefit of this
is mostly set it and forget it; contacts get updated as you make them or
update them.

The main benefit of both of these approaches is it lets you keep org as
the primary way of creating contacts, including keeping all manner of
notes associated with them in sub-headings. You can import contacts from
anywhere just by writing code that creates the headings in org-contacts
form. Since there is a cache, you could probably also write directly to
the cache instead of making intermediate org files. The downside in my
opinion is that I consider it acceptable for the cache to mostly work
most of the time and it is not hard for them to get out of sync (and
neither difficult for them to get resynced). For my work, there is very
little consequence if I can't find a contact. You can organize your
contacts as you see fit all over your file system, which is at times
convenient, and at times hard to deal with. Duplicates, for example, are
a challenge to deal with, and sometimes contacts seem to belong in more
than one place. This is a limitation of org at the moment, there is no
way to "transclude" a heading yet.

You can create groups, these are just headings with multiple emails in
the EMAIL property, as well as use todo states and tags on the contacts
to select them with ivy/helm.

I haven't converged on what the best way to do this kind of persistent
caching. I also use it in org-ref for very large (20K) bibtex databases
and it works fine there too.

I also use mu4e, which indexes everything into a xapian database. It has
about 9K contacts in it right now, and indexes about 100K messages. So
far this works for me. It is more complicated to setup than the previous
two options though.

I wouldn't claim any of these can scale to 192K contacts, but it seems
there are paths towards it. It would certainly take an eye and dedicated
effort towards performance though.


Jean Louis  writes:

> * Jude DaShiell  [2019-08-02 17:48]:
>> I have one email message with several .vcf file attachments.  Has orgmode
>> got any tool or tools I can use to import contacts from such a message
>> into an orgmode table?
>
> And by all means, I would never keep contact in Org file, that is for
> short list fine, but for any future planning, contacts shall be in a
> real database sorted by its lists.
>
> A list could be group of people, or account name, or company name, or
> organization, or interest lists.
>
> Neither bbdb nor Org is suitable for any serious collection of
> contacts. I have 192,000+ contacts, and when they are in database and
> I am using PostgreSQL, it gives me most of benefits, I can sort people
> into lists, groups, I can contact them, count interactions, open up
> their files, emails with a fast command, edit their data, add notes,
> send them faxes and SMS, maintain relations.
>
> Jean


--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu



Re: [O] exported contacts problem

2019-08-02 Thread Tim Cross


Maybe, but those are unusually high maildir numbers IMO. I have approx
8Gb of email messages, but only have a handful of maildirs - this is
primarily why I prefer mu4e and org as a powerful mail workflow.

I use to use the old model of sorting email into many different folders,
but it was just too time consuming. My inbox was always large and I
spent hours each week just sorting and refiling my messages.

Now I just have a couple of maildirs for each account - inbox, archived,
sent, draft and thats it. For messages I need to track, I create an
org-todo with a mu4e link and if I need to find an old message, mu
search works fine.

Now my inbox has approx 20 messages and I spend no time sorting and
refiling messages.

Mutt is OK, but does not integrate well with emacs. I live in emacs, so
I want my mail reader there as well.

Jean Louis  writes:

> * Tim Cross  [2019-08-02 23:26]:
>> I tried gnus some time ago and use to use it when I read
>> newsgroups. While I find it to be an extremely powerful and capable
>> package, I never got comfortable with using it for mail. I once used VM
>> and then mew, but now mu4e, which I think is fantastic. Part of what I
>> like about it is the nice workflow I have with org-mode.
>
> mu4e is good maybe for small usage, it does not scale up[1]. With
> 47783 maildir folders it cannot cope. It is unusable. 
>
> A concept to read maildirs from a database is not good one. Database
> index is for searching. Maildirs shall be read directly based upon the
> specification.
>
> Package `maildir' is much faster to read maildirs.
>
> A search with `mu' can symlink found emails into specific folder and
> `maildir' package can quickly read such folder. That is about the `mu'
> search.
>
> Nothing beats `mutt'[2] for reading emails.
>
> Jean
>
> Footnotes:
> [1]  https://github.com/djcb/mu/issues/1440
> [2]  https://www.mutt.org


-- 
Tim Cross



Re: [O] exported contacts problem

2019-08-02 Thread Jean Louis
* Tim Cross  [2019-08-02 23:26]:
> I tried gnus some time ago and use to use it when I read
> newsgroups. While I find it to be an extremely powerful and capable
> package, I never got comfortable with using it for mail. I once used VM
> and then mew, but now mu4e, which I think is fantastic. Part of what I
> like about it is the nice workflow I have with org-mode.

mu4e is good maybe for small usage, it does not scale up[1]. With
47783 maildir folders it cannot cope. It is unusable. 

A concept to read maildirs from a database is not good one. Database
index is for searching. Maildirs shall be read directly based upon the
specification.

Package `maildir' is much faster to read maildirs.

A search with `mu' can symlink found emails into specific folder and
`maildir' package can quickly read such folder. That is about the `mu'
search.

Nothing beats `mutt'[2] for reading emails.

Jean

Footnotes:
[1]  https://github.com/djcb/mu/issues/1440
[2]  https://www.mutt.org




Re: [O] exported contacts problem

2019-08-02 Thread Jean Louis
* Eric Abrahamsen  [2019-08-02 23:11]:
> > Neither bbdb nor Org is suitable for any serious collection of
> > contacts. I have 192,000+ contacts, and when they are in database and
> > I am using PostgreSQL, it gives me most of benefits, I can sort people
> > into lists, groups, I can contact them, count interactions, open up
> > their files, emails with a fast command, edit their data, add notes,
> > send them faxes and SMS, maintain relations.
> 
> That sounds pretty intense. Have you written a separate package for
> interacting with the database?

I wrote few generic functions and use it with helm, it works for
me. It is not ready for public. Web interface works based on Gedafe[1]
and then I wrote access to it through console Common Lisp and then
also through Emacs Lisp.

I am using Emacs module `emacs-libpq'[2] to interact with PostgreSQL.

Let's say I am looking for somebody, Hyper-C asks me for query, I
enter something, then I can choose to open Org file relating to the
person. When dealing with various companies, things related to a
company shall be in the directory related to company. Things related
to person, for example assignments related to one person shall be in
the file belonging to that person.

That way full file can be sent to the person for review, it becomes
clear what has been done, and what is yet to be done.

Mixing assignments, TODO, agendas from all subjects, groups and
persons into one file would give me terrible confusion.

Jean


Footnotes:
[1]  https://gedafe.github.io/index.en.html

[2]  https://github.com/anse1/emacs-libpq#start-of-content




Re: [O] exported contacts problem

2019-08-02 Thread Tim Cross


I tried gnus some time ago and use to use it when I read
newsgroups. While I find it to be an extremely powerful and capable
package, I never got comfortable with using it for mail. I once used VM
and then mew, but now mu4e, which I think is fantastic. Part of what I
like about it is the nice workflow I have with org-mode.

I've not yet worried too much about contact management though. Maybe I
don't have any friends! I do find the combination of org-mode, mu4e and
mbsync works well for my private and work email accounts (gmail, outlook
and exchange or office365). As I work on both Linux and OSX, I don't
worry about contacts and calendar invites too much as OSX just takes
care of that for me (I have apple mail configured for my accounts, but
rarely every use it). Mu4e has its own contact database built in, but it
can also be configured to use BBDB (though I've not done that). 

I did need to tweak mu4e a little to work well with emacspeak.

Tim

Jude DaShiell  writes:

> I'm using nothing for contacts management by now.  I don't use moo or
> gnus since I've had limited success setting up either one of them.  I
> may take anotheeer throw at gnus since I have a gmail and panix account
> and both accounts have usenet newsgroups capability.
>
> On Sat, 3 Aug 2019, Tim Cross wrote:
>
>> Date: Fri, 2 Aug 2019 16:33:37
>> From: Tim Cross 
>> To: emacs-orgmode@gnu.org
>> Subject: Re: [O] exported contacts problem
>>
>>
>> Are you using an emacs based email client like mu4e or gnus? What (if
>> anything) do you use to manage contact information now i.e. BBDB, Asking as
>> I am aware that some email clients have support for vcard processing and
>> some contact managers also have support for vcard (i.e. bbdb), so
>> initial processing may be easier from witin the mail client (new
>> versions of mu4e are moving to use gnus as the message view mode, which
>> has some advantced functions for dealing with vcard and ical
>> attachments).
>>
>> There is also an org-vcard module, but last time I tried using this, I
>> encountered some problems (can't remember what they were now - it was a
>> while back, but it may have only support older vcard versions).
>>
>> Jude DaShiell  writes:
>>
>> > I have one email message with several .vcf file attachments.  Has orgmode
>> > got any tool or tools I can use to import contacts from such a message
>> > into an orgmode table?
>>
>>
>>


-- 
Tim Cross



Re: [O] exported contacts problem

2019-08-02 Thread Eric Abrahamsen
Jean Louis  writes:

> * Jude DaShiell  [2019-08-02 17:48]:
>> I have one email message with several .vcf file attachments.  Has orgmode
>> got any tool or tools I can use to import contacts from such a message
>> into an orgmode table?
>
> And by all means, I would never keep contact in Org file, that is for
> short list fine, but for any future planning, contacts shall be in a
> real database sorted by its lists.
>
> A list could be group of people, or account name, or company name, or
> organization, or interest lists.
>
> Neither bbdb nor Org is suitable for any serious collection of
> contacts. I have 192,000+ contacts, and when they are in database and
> I am using PostgreSQL, it gives me most of benefits, I can sort people
> into lists, groups, I can contact them, count interactions, open up
> their files, emails with a fast command, edit their data, add notes,
> send them faxes and SMS, maintain relations.

That sounds pretty intense. Have you written a separate package for
interacting with the database?




Re: [O] exported contacts problem

2019-08-02 Thread Jean Louis
I would recommend the software named `abook'[1] as it can convert between
the vcard format and CSV format, LDIF, and other formats handy to read
them into the Emacs Lisp structure. It is available in many GNU/Linux
system distributions[2].

Jean

* Tim Cross  [2019-08-02 22:34]:
> 
> Are you using an emacs based email client like mu4e or gnus? What (if
> anything) do you use to manage contact information now i.e. BBDB, Asking as
> I am aware that some email clients have support for vcard processing and
> some contact managers also have support for vcard (i.e. bbdb), so
> initial processing may be easier from witin the mail client (new
> versions of mu4e are moving to use gnus as the message view mode, which
> has some advantced functions for dealing with vcard and ical
> attachments).
> 
> There is also an org-vcard module, but last time I tried using this, I
> encountered some problems (can't remember what they were now - it was a
> while back, but it may have only support older vcard versions).
> 
> Jude DaShiell  writes:
> 
> > I have one email message with several .vcf file attachments.  Has orgmode
> > got any tool or tools I can use to import contacts from such a message
> > into an orgmode table?

Footnotes:
[1]  http://abook.sourceforge.net/

[2]  https://www.gnu.org/distros/free-distros.html




Re: [O] exported contacts problem

2019-08-02 Thread Jude DaShiell
I'm using nothing for contacts management by now.  I don't use moo or
gnus since I've had limited success setting up either one of them.  I
may take anotheeer throw at gnus since I have a gmail and panix account
and both accounts have usenet newsgroups capability.

On Sat, 3 Aug 2019, Tim Cross wrote:

> Date: Fri, 2 Aug 2019 16:33:37
> From: Tim Cross 
> To: emacs-orgmode@gnu.org
> Subject: Re: [O] exported contacts problem
>
>
> Are you using an emacs based email client like mu4e or gnus? What (if
> anything) do you use to manage contact information now i.e. BBDB, Asking as
> I am aware that some email clients have support for vcard processing and
> some contact managers also have support for vcard (i.e. bbdb), so
> initial processing may be easier from witin the mail client (new
> versions of mu4e are moving to use gnus as the message view mode, which
> has some advantced functions for dealing with vcard and ical
> attachments).
>
> There is also an org-vcard module, but last time I tried using this, I
> encountered some problems (can't remember what they were now - it was a
> while back, but it may have only support older vcard versions).
>
> Jude DaShiell  writes:
>
> > I have one email message with several .vcf file attachments.  Has orgmode
> > got any tool or tools I can use to import contacts from such a message
> > into an orgmode table?
>
>
>

-- 




Re: [O] exported contacts problem

2019-08-02 Thread Tim Cross


Are you using an emacs based email client like mu4e or gnus? What (if
anything) do you use to manage contact information now i.e. BBDB, Asking as
I am aware that some email clients have support for vcard processing and
some contact managers also have support for vcard (i.e. bbdb), so
initial processing may be easier from witin the mail client (new
versions of mu4e are moving to use gnus as the message view mode, which
has some advantced functions for dealing with vcard and ical
attachments).

There is also an org-vcard module, but last time I tried using this, I
encountered some problems (can't remember what they were now - it was a
while back, but it may have only support older vcard versions).

Jude DaShiell  writes:

> I have one email message with several .vcf file attachments.  Has orgmode
> got any tool or tools I can use to import contacts from such a message
> into an orgmode table?


-- 
Tim Cross



Re: [O] getting access to a self-invented option?

2019-08-02 Thread Tim Cross


Could you just use a tag for this? My shallow thought is that if you
tagged headlines, over time you could use different tags for different
content type whereas if you use a new custom type, you would need to
repeat the definition process (whatever that might be) every time you
discovered a new required type. This would also enable you to benefit
from some of the other nice attributes of tags, such as inheritance.

Matt Price  writes:

> I'm trying to streamline some veyr ad-hoc workflows I have. One thing I do
> a lot during the school year is make some changes to an org source file,
> and then export to hugo markdown with ox-hugo, and finally commit to git
> (after that I have a git hook that generates the website & uploads the
> changed pages to the appropriate location, usually a github-pages branch or
> separate repo).
>
> So I have this code:
>
> (defun mwp-hugo-export-and-release ()
>   "Make it faster and easier to put my lectures up on the website."
>   (interactive)
>
>   (let* ((modfile (org-hugo-export-wim-to-md))
>  (basedir (plist-get  (org-export-get-environment 'hugo)
> ':hugo-base-dir ))
>  (default-directory (expand-file-name basedir)))
> (magit-stage-file modfile)
> ;; (magit-status)
> (magit-commit-create)
> )  )
>
> It works great, I'm very happy. HOWEVER: in my websites I have two kinds of
> outputs:
>
> - regular pages -- these get exported to .md files and turned into html by
> hugo
> - lecture notes -- these get exported to reveal.js HTML pages by
> org-re-reveal and my hugo theme treats them differently .
>
> I would really like to set a switch somewhere in the file, something like:
>
> #+MWP_EXPORT_TYPE: slides
>
> And then something like
>
> let* ((modfile (if (eq :mwp-export-type "slides")
> (mwp-hugo-reveal-custom-export-function)
>(org-hugo-export-wim-to-md)))
>  etc)
> do stuff)
>
>
> But I'm not sure how to get access to a totally non-standard option like
> the kind I just invented in that last bit of pseudo-code. Anyone have a
> good suggestion?
>
> Thank you as always!
>
> Matt


--
Tim Cross



[O] getting access to a self-invented option?

2019-08-02 Thread Matt Price
I'm trying to streamline some veyr ad-hoc workflows I have. One thing I do
a lot during the school year is make some changes to an org source file,
and then export to hugo markdown with ox-hugo, and finally commit to git
(after that I have a git hook that generates the website & uploads the
changed pages to the appropriate location, usually a github-pages branch or
separate repo).

So I have this code:

(defun mwp-hugo-export-and-release ()
  "Make it faster and easier to put my lectures up on the website."
  (interactive)

  (let* ((modfile (org-hugo-export-wim-to-md))
 (basedir (plist-get  (org-export-get-environment 'hugo)
':hugo-base-dir ))
 (default-directory (expand-file-name basedir)))
(magit-stage-file modfile)
;; (magit-status)
(magit-commit-create)
)  )

It works great, I'm very happy. HOWEVER: in my websites I have two kinds of
outputs:

- regular pages -- these get exported to .md files and turned into html by
hugo
- lecture notes -- these get exported to reveal.js HTML pages by
org-re-reveal and my hugo theme treats them differently .

I would really like to set a switch somewhere in the file, something like:

#+MWP_EXPORT_TYPE: slides

And then something like

let* ((modfile (if (eq :mwp-export-type "slides")
(mwp-hugo-reveal-custom-export-function)
   (org-hugo-export-wim-to-md)))
 etc)
do stuff)


But I'm not sure how to get access to a totally non-standard option like
the kind I just invented in that last bit of pseudo-code. Anyone have a
good suggestion?

Thank you as always!

Matt


Re: [O] exported contacts problem

2019-08-02 Thread Jude DaShiell
I have about 80 contacts so this is a personal contacts situation not a
business contacts situation.

On Fri, 2 Aug 2019, Jean Louis wrote:

> Date: Fri, 2 Aug 2019 12:02:36
> From: Jean Louis 
> To: Jude DaShiell 
> Cc: emacs-orgmode@gnu.org
> Subject: Re: [O] exported contacts problem
>
> * Jude DaShiell  [2019-08-02 17:48]:
> > I have one email message with several .vcf file attachments.  Has orgmode
> > got any tool or tools I can use to import contacts from such a message
> > into an orgmode table?
>
> And by all means, I would never keep contact in Org file, that is for
> short list fine, but for any future planning, contacts shall be in a
> real database sorted by its lists.
>
> A list could be group of people, or account name, or company name, or
> organization, or interest lists.
>
> Neither bbdb nor Org is suitable for any serious collection of
> contacts. I have 192,000+ contacts, and when they are in database and
> I am using PostgreSQL, it gives me most of benefits, I can sort people
> into lists, groups, I can contact them, count interactions, open up
> their files, emails with a fast command, edit their data, add notes,
> send them faxes and SMS, maintain relations.
>
> Jean
>

-- 




Re: [O] exported contacts problem

2019-08-02 Thread Jean Louis
* Jude DaShiell  [2019-08-02 17:48]:
> I have one email message with several .vcf file attachments.  Has orgmode
> got any tool or tools I can use to import contacts from such a message
> into an orgmode table?

And by all means, I would never keep contact in Org file, that is for
short list fine, but for any future planning, contacts shall be in a
real database sorted by its lists.

A list could be group of people, or account name, or company name, or
organization, or interest lists.

Neither bbdb nor Org is suitable for any serious collection of
contacts. I have 192,000+ contacts, and when they are in database and
I am using PostgreSQL, it gives me most of benefits, I can sort people
into lists, groups, I can contact them, count interactions, open up
their files, emails with a fast command, edit their data, add notes,
send them faxes and SMS, maintain relations.

Jean



[O] [Feature proposal] Add :description function to org-link-parameters

2019-08-02 Thread Ihor Radchenko
Hi,

Wondering if anyone is interested in adding a new org-link property to
customise generating the link description.

For now, there is global org-link-make-description-function, which is
shared among all the link types. If would be more convenient if the
description function can be set independently for different link types.

I propose to use :description property in org-link-parameters. A sample
implementation working with current org version is below:

#+begin_src emacs-lisp
(defun yant/org-make-link-description-function (link desk)
  "Return description of the link LINK according to :description link property.
Return DESK if :desk is not set."
  (let ((fun (org-link-get-parameter (car (split-string link ":")) 
:description)))
(if (functionp fun)
(funcall fun link desk)
  desk)))

(setq org-make-link-description-function 
#'yant/org-make-link-description-function)
#+end_src

Example usage:

#+begin_src emacs-lisp
(defun org-id-link-desk (link desk)
  "Description function for id: link."
  (let ((id (cadr (split-string link ":"
(org-with-point-at (org-id-find id 'marker)
  (s-replace "||" "/" (yant/task-fulltitle)

(org-link-set-parameters "id" 
 :desk #'org-id-link-desk)
#+end_src

Best,
Ihor


-- 
Ihor Radchenko,
PhD,
Center for Advancing Materials Performance from the Nanoscale (CAMP-nano)
State Key Laboratory for Mechanical Behavior of Materials, Xi'an Jiaotong 
University, Xi'an, China
Email: yanta...@gmail.com, ihor_radche...@alumni.sutd.edu.sg




Re: [O] exported contacts problem

2019-08-02 Thread Jean Louis
* Jude DaShiell  [2019-08-02 17:48]:
> I have one email message with several .vcf file attachments.  Has orgmode
> got any tool or tools I can use to import contacts from such a message
> into an orgmode table?

There is package `org-vcard' that you may use.

Other vcard related packages:

- bbdb-vcard to import into bbdb
- vdirel

I wish those package authors would have better and more generic
functions so that vcards can be imported first to Lisp structures,
like alists, etc. so that vcard functions can be reused. By looking
onto `org-card' it does not seem to be so, sadly.

Jean



[O] exported contacts problem

2019-08-02 Thread Jude DaShiell
I have one email message with several .vcf file attachments.  Has orgmode
got any tool or tools I can use to import contacts from such a message
into an orgmode table?



--




[O] org-id fixups and minor changes

2019-08-02 Thread Gustav Wikström
Hi!

I've pushed a couple of fixes and changes to master related to org-id.

First; a fix and a (major) speedup and method-change for how the
global caching works for ID's. The change in method is that providing
file's as arguments to org-id-update-id-locations no longer breaks the
existing id locations.

Second; I've added a customization so one can choose to cache the
id-locations as relative to the org-id-locations-file instead of as
absolute links. This helps a lot when running a system mirrored on
multiple machines where the absolute paths to ones documents might
differ, but where it's all the same relative to the
org-id-locations-file.

Third; I've added another ID generator method. The extremists might
say the new method is not unique enough but org-mode is a personal
system first and foremost, so I think there is merit to this new ID
method. It creates ID's based on current timestamp and doesn't try to
hide the timestamp from the user. One might call the ID's "natural"
since they are contain information in themselves. Certainly a good
thing for some. The new method will not be active unless explicitly
chosen by the user.

As a side note, if using ID's together with attachments, try this
new ID-generator out by setting org-id-method to ts (short for
timestamp) and change the org-attach-id-to-path-function to
something like "/MM/DDTHHMMSS" for more human readable
attachment folders.

Org-id is next to undocumented in the manual so I didn't find a good
place to add this. A few lines are added to org-news though.

This is the first push by me without first doing an RFC. So,
naturally, if anything is out of order mail back and/or make changes
directly in the repo if needed. Tests passed anyways.

Kind regards
Gustav



Re: [O] CUSTOM_ID vs ID

2019-08-02 Thread Nathan Neff
On Sun, Jul 28, 2019 at 3:10 AM Nicolas Goaziou 
wrote:

> Hello,
>
> Nathan Neff  writes:
>
> > I've often been confused why org-mode has both a CUSTOM_ID
> > and a ID property.  I mean, why not just use one or the other name?
>
> Custom ID are user-defined, and only meaningful in the scope of the
> document. Also, they may appear as-is when exported, e.g., as an anchor
> in HTML.
>
> ID are (or should be) generated by Org, and are valid across files,
> which means they need to be absolutely unique.
>
> Org keeps track of ID if `org-id-track-globally' is non-nil (the
> default). If this is nil, there is almost no difference between ID and
> custom ID.
>
> > When would I ever have both an ID and a CUSTOM_ID property for
> > a heading?
>
> You may want to refer to a heading from anywhere with id:... but need
> a clean anchor in HTML export, for example.
>
> FWIW, I never use ID property.
>

Hi Nicolas,

Ah yes, I remember when I was exporting to HTML and would have
both properties.  Thank you.

Also, I think I will stick with ID purely because I want links which
span multiple org mode files.

I also plan to learn some more Emacs Lisp to make this link creation
thing a bit easier.  I know there's been efforts to get org to behave a lot
like a Wiki (which I think it already does):
https://orgmode.org/worg/org-blog-wiki.html

I'd like to mess with Helm and get a custom helm source.  org-insert-link
can already use Helm, but it could be improved a bit.

* Show the IDs (*and* headings :-) of recently created links (because you
know,
the IDs are hash codes (grumble grumble).  Currently Helm just shows the
IDs :-(

* Show a second Helm list of headings (perhaps all headings in org-mode
files)
- If heading already has an ID, then simply use that ID.

* Provide a context menu, where you can choose to create an ID
- Provide a mini buffer to *specify* an ID (evil laugh).  Default action
will
create an ID

Thanks,
--Nate




>
> Regards,
>
> --
> Nicolas Goaziou
>