* Org Mode TOOD two way sync tool @ 2012-06-22 6:40 Sriram Karra 2012-06-22 12:03 ` Christopher J. White 2012-10-07 19:48 ` Jonathan BISSON 0 siblings, 2 replies; 12+ messages in thread From: Sriram Karra @ 2012-06-22 6:40 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1323 bytes --] I am the author of ASynK (http://karra-asynk.appspot.com), a PIM sync tool and framework written in python that works across a variety of PIM providers such as Outlook, Google and BBDB. I am considering extending ASynK to do a bi-directional sync of Outlook tasks to Org Mode tasks. To be able to do this I need a working read/write API for reading and creating TODOs in org mode. *"Offline parsers"* My first preference is to be able to parser org files without required Emacs - this is the approach that I have implemented for BBDB sync. I considered PyOrgMode (https://github.com/bjonnh/PyOrgMode/network), but it appears unable to process TODOs, or even recurring events. To be able to extend PyOrgMode so I can read and write TODOs, I needed a full description of the format of TODO entries in all its forms. The Org manual itself has this information, I'm sure but scattered all over the place, given its real audience. Can someone point me to some sort of a concise representation, if any, of the org file format grammar? *org-protocol* * * By quickly reading the documentation I figured that org-protocol can be used to create entries, but is there a way to use it to do generic queries like "list all TODOs in a specified file, with a particular property value" and such? Any help is much appreciated. -Karra [-- Attachment #2: Type: text/html, Size: 1615 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-22 6:40 Org Mode TOOD two way sync tool Sriram Karra @ 2012-06-22 12:03 ` Christopher J. White 2012-06-22 12:33 ` Sriram Karra 2012-10-07 19:48 ` Jonathan BISSON 1 sibling, 1 reply; 12+ messages in thread From: Christopher J. White @ 2012-06-22 12:03 UTC (permalink / raw) To: emacs-orgmode Hi Karra, I've been working on org-toodledo.el to perform bi-directional sync of TODO items with the Toodledo server, and faced many of the same issues you raise about figuring out the exact format and grammar of a TODO item. You may find looking at my source useful, either as inspiration, integration, or just understanding what fields are what. The general approach was to build an object that represents a parsed TODO item, and fill that in from either the org-buffer TODO items, or from items retrieved from the server. That object can then be compared to others (one from the server and one from the local buffer), converted to a new org TODO, sent to the server as a new TODO, etc. The components of the TODO item are obviously targeted to what makes sense for Toodledo, but I think they are fairly generic. You might also look at org-element.el which I recently learned about which may also help. I have it on my TODO list to learn more about it to see if I can't refactor org-toodledo to leverage it. It is more geared toward generic org items as opposed to specifically TODO items. ...cj On 6/22/12 2:40 AM, Sriram Karra wrote: > I am the author of ASynK (http://karra-asynk.appspot.com), a PIM sync > tool and framework written in python that works across a variety of PIM > providers such as Outlook, Google and BBDB. I am considering extending > ASynK to do a bi-directional sync of Outlook tasks to Org Mode tasks. To > be able to do this I need a working read/write API for reading and > creating TODOs in org mode. > > *"Offline parsers"* > > My first preference is to be able to parser org files without required > Emacs - this is the approach that I have implemented for BBDB sync. I > considered PyOrgMode (https://github.com/bjonnh/PyOrgMode/network), but > it appears unable to process TODOs, or even recurring events. To be able > to extend PyOrgMode so I can read and write TODOs, I needed a full > description of the format of TODO entries in all its forms. The Org > manual itself has this information, I'm sure but scattered all over the > place, given its real audience. Can someone point me to some sort of a > concise representation, if any, of the org file format grammar? > > *org-protocol* > * > * > By quickly reading the documentation I figured that org-protocol can be > used to create entries, but is there a way to use it to do generic > queries like "list all TODOs in a specified file, with a particular > property value" and such? > > Any help is much appreciated. > > -Karra ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-22 12:03 ` Christopher J. White @ 2012-06-22 12:33 ` Sriram Karra 2012-06-22 14:05 ` Christopher J. White 0 siblings, 1 reply; 12+ messages in thread From: Sriram Karra @ 2012-06-22 12:33 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 3022 bytes --] Chris, thanks for the pointer to org-toodledo. Does org-toodledo's handle all the options and formats of possible TODOs supported by org mode? Are you yet to implement support for anything that is parsed by the Emacs org-mode? On Fri, Jun 22, 2012 at 5:33 PM, Christopher J. White < orgmode@grierwhite.com> wrote: > Hi Karra, > > I've been working on org-toodledo.el to perform bi-directional sync of > TODO items with the Toodledo server, and faced many of the same issues you > raise about figuring out the exact format and grammar of a TODO item. > > You may find looking at my source useful, either as inspiration, > integration, or just understanding what fields are what. > > The general approach was to build an object that represents a parsed TODO > item, and fill that in from either the org-buffer TODO items, or from items > retrieved from the server. That object can then be compared to others (one > from the server and one from the local buffer), converted to a new org > TODO, sent to the server as a new TODO, etc. The components of the TODO > item are obviously targeted to what makes sense for Toodledo, but I think > they are fairly generic. > > You might also look at org-element.el which I recently learned about which > may also help. I have it on my TODO list to learn more about it to see if > I can't refactor org-toodledo to leverage it. It is more geared toward > generic org items as opposed to specifically TODO items. > > ...cj > > > On 6/22/12 2:40 AM, Sriram Karra wrote: > >> I am the author of ASynK (http://karra-asynk.appspot.**com<http://karra-asynk.appspot.com>), >> a PIM sync >> tool and framework written in python that works across a variety of PIM >> providers such as Outlook, Google and BBDB. I am considering extending >> ASynK to do a bi-directional sync of Outlook tasks to Org Mode tasks. To >> be able to do this I need a working read/write API for reading and >> creating TODOs in org mode. >> >> *"Offline parsers"* >> >> >> My first preference is to be able to parser org files without required >> Emacs - this is the approach that I have implemented for BBDB sync. I >> considered PyOrgMode (https://github.com/bjonnh/**PyOrgMode/network<https://github.com/bjonnh/PyOrgMode/network>), >> but >> it appears unable to process TODOs, or even recurring events. To be able >> to extend PyOrgMode so I can read and write TODOs, I needed a full >> description of the format of TODO entries in all its forms. The Org >> manual itself has this information, I'm sure but scattered all over the >> place, given its real audience. Can someone point me to some sort of a >> concise representation, if any, of the org file format grammar? >> >> *org-protocol* >> * >> >> * >> By quickly reading the documentation I figured that org-protocol can be >> used to create entries, but is there a way to use it to do generic >> queries like "list all TODOs in a specified file, with a particular >> property value" and such? >> >> Any help is much appreciated. >> >> -Karra >> > > > [-- Attachment #2: Type: text/html, Size: 3679 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-22 12:33 ` Sriram Karra @ 2012-06-22 14:05 ` Christopher J. White 2012-06-24 13:15 ` Aurélien Aptel 0 siblings, 1 reply; 12+ messages in thread From: Christopher J. White @ 2012-06-22 14:05 UTC (permalink / raw) To: emacs-orgmode Hi Karra, On 6/22/12 8:33 AM, Sriram Karra wrote: > Chris, thanks for the pointer to org-toodledo. Does org-toodledo's > handle all the options and formats of possible TODOs supported by org > mode? That's a loaded question ;-) I'd have to say probably not, but it so far supports all of my TODOs. Brief list of properties handled: * TODO state * DEADLINE / SCHEDULED with repeaters * CLOSED * tags * Effort * hierarchy * folder (toodledo folders, that is) - map to a heading I'd say extending support to other properties wouldn't be too hard if it's a direct mapping that doesn't involve too much logic. > Are you yet to implement support for anything that is parsed by > the Emacs org-mode? I'm not sure what you mean -- are you referring to org-element? If not, can you clarify? ...cj ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-22 14:05 ` Christopher J. White @ 2012-06-24 13:15 ` Aurélien Aptel 2012-06-24 13:17 ` Aurélien Aptel 2012-06-24 17:07 ` Christopher Allan Webber 0 siblings, 2 replies; 12+ messages in thread From: Aurélien Aptel @ 2012-06-24 13:15 UTC (permalink / raw) To: orgmode; +Cc: emacs-orgmode Hi, I'm working on a bugtracker sync tool for org-mode [1]. I'm using org-element to parse org files, it does everything I need. It turns this * TODO blah <2012-06-25> :PROPERTIES: :foo: bar :END: Foo bar into this: (org-data nil (headline (:raw-value "blah <2012-06-25>" :title ("blah " (timestamp (:type active :value "<2012-06-25>"))) :level 1 :todo-keyword "TODO" :todo-type todo :timestamp "2012-06-25" :foo "bar" :category "???") (section () (property-drawer (:properties (("foo" . "bar")))) (paragraph () "Foo bar")))) I've removed irrelevant stuff for the example but you can get get the start/end point of each element from this structure. Just call org-element-parse-buffer. 1: http://orgmode.org/w/org-sync.git ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-24 13:15 ` Aurélien Aptel @ 2012-06-24 13:17 ` Aurélien Aptel 2012-06-24 17:07 ` Christopher Allan Webber 1 sibling, 0 replies; 12+ messages in thread From: Aurélien Aptel @ 2012-06-24 13:17 UTC (permalink / raw) To: orgmode; +Cc: emacs-orgmode On Sun, Jun 24, 2012 at 3:15 PM, Aurélien Aptel <aurelien.aptel@gmail.com> wrote: > Just call org-element-parse-buffer. See also org-element-interpret-data, which lets you write back the structure. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-24 13:15 ` Aurélien Aptel 2012-06-24 13:17 ` Aurélien Aptel @ 2012-06-24 17:07 ` Christopher Allan Webber 2012-06-25 12:32 ` Aurélien Aptel 2012-06-25 13:51 ` Sriram Karra 1 sibling, 2 replies; 12+ messages in thread From: Christopher Allan Webber @ 2012-06-24 17:07 UTC (permalink / raw) To: Aurélien Aptel; +Cc: orgmode, emacs-orgmode Hey Aurélien, This is great. I formerly worked on something similar: http://labs.creativecommons.org/2010/11/10/bridging-public-bugtrackers-and-local-tasklists/ However... my solution was pretty hacky. I'd be interested to see if you come up with a generic solution that could have mapppings for multiple bugtrackers, and that could sync with bugtracking states so if the bug gets closed, the TODO does also, or at least that it warns as such, etc. Aurélien Aptel <aurelien.aptel@gmail.com> writes: > Hi, > > I'm working on a bugtracker sync tool for org-mode [1]. I'm using > org-element to parse org files, it does everything I need. > > It turns this > > > * TODO blah <2012-06-25> > :PROPERTIES: > :foo: bar > :END: > Foo bar > > into this: > > (org-data nil > (headline > (:raw-value "blah <2012-06-25>" :title > ("blah " > (timestamp > (:type active :value "<2012-06-25>"))) > :level 1 > :todo-keyword "TODO" > :todo-type todo > :timestamp "2012-06-25" > :foo "bar" :category "???") > (section > () > (property-drawer > (:properties (("foo" . "bar")))) > (paragraph > () > "Foo bar")))) > > > I've removed irrelevant stuff for the example but you can get get the > start/end point of each element from this structure. > Just call org-element-parse-buffer. > > 1: http://orgmode.org/w/org-sync.git ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-24 17:07 ` Christopher Allan Webber @ 2012-06-25 12:32 ` Aurélien Aptel 2012-06-25 13:51 ` Sriram Karra 1 sibling, 0 replies; 12+ messages in thread From: Aurélien Aptel @ 2012-06-25 12:32 UTC (permalink / raw) To: Christopher Allan Webber; +Cc: orgmode, emacs-orgmode On Sun, Jun 24, 2012 at 7:07 PM, Christopher Allan Webber <cwebber@dustycloud.org> wrote: > http://labs.creativecommons.org/2010/11/10/bridging-public-bugtrackers-and-local-tasklists/ Yes I've already read your post while researching for my project :) > I'd be interested to see if you come up with a generic solution that > could have mapppings for multiple bugtrackers, and that could sync with > bugtracking states so if the bug gets closed, the TODO does also, or at > least that it warns as such, etc. You'll be pleased to know that org-sync already does 2-way sync and works with Github and bitbucket atm. There is a generic library/multiple backend system in place. You might be interested in my project page on worg [1] or this announcement I made some time ago (which has a small tutorial) [2]. 1: http://orgmode.org/worg/org-contrib/gsoc2012/student-projects/org-sync/backends.html 2: http://lists.gnu.org/archive/html/emacs-orgmode/2012-06/msg00169.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-24 17:07 ` Christopher Allan Webber 2012-06-25 12:32 ` Aurélien Aptel @ 2012-06-25 13:51 ` Sriram Karra 2012-06-25 14:41 ` Christopher Allan Webber 1 sibling, 1 reply; 12+ messages in thread From: Sriram Karra @ 2012-06-25 13:51 UTC (permalink / raw) To: Christopher Allan Webber, emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 394 bytes --] On Sun, Jun 24, 2012 at 10:37 PM, Christopher Allan Webber < cwebber@dustycloud.org> wrote: > Hey Aurélien, > > This is great. I formerly worked on something similar: > > > http://labs.creativecommons.org/2010/11/10/bridging-public-bugtrackers-and-local-tasklists/ Nice color-theme, there. If you use color-theme.el, can you share it? Otherwise, what's your config? -Karra [-- Attachment #2: Type: text/html, Size: 803 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-25 13:51 ` Sriram Karra @ 2012-06-25 14:41 ` Christopher Allan Webber 2012-06-25 15:29 ` Christopher Allan Webber 0 siblings, 1 reply; 12+ messages in thread From: Christopher Allan Webber @ 2012-06-25 14:41 UTC (permalink / raw) To: Sriram Karra; +Cc: emacs-orgmode Sriram Karra <karra.etc@gmail.com> writes: > On Sun, Jun 24, 2012 at 10:37 PM, Christopher Allan Webber <cwebber@dustycloud.org> wrote: > > Hey Aurélien, > > This is great. I formerly worked on something similar: > > http://labs.creativecommons.org/2010/11/10/bridging-public-bugtrackers-and-local-tasklists/ > > Nice color-theme, there. If you use color-theme.el, can you share it? > Otherwise, what's your config? > > -Karra Ah, I've stopped using that theme! But it was a small extension to color-theme-snow. Here it is. :) #+begin_src emacs-lisp ;; This software is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. (defun color-theme-snow-better () "Because `color-theme-snow' is so awesome, except for when it isn't." (interactive) (color-theme-snow) (let ((color-theme-is-cumulative t)) (color-theme-install '(color-theme-snow-better ((background-color . "snow2") (background-mode . light) (border-color . "black") (cursor-color . "cadet blue") (foreground-color . "black") (mouse-color . "black")) (emacs-wiki-link-face ((t (:bold t :underline "BlueViolet" :foreground "BlueViolet")))) (muse-link-face ((t (:bold t :underline "BlueViolet" :foreground "BlueViolet")))) (info-xref ((t (:bold t :foreground "BlueViolet")))) (region ((t (:background "light steel blue")))) (cursor ((t (:background "cadet blue")))) (fringe ((t (:background "white")))) (planner-high-priority-task-face ((t (:foreground "red")))) (planner-medium-priority-task-face ((t (:foreground "green")))) (planner-low-priority-task-face ((t (:foreground "blue")))) (planner-canceled-task-face ((t (:foreground "gray" :strike-through t)))) (org-todo ((t (:foreground "red2" :bold t)))) (org-done ((t (:foreground "SpringGreen3" :bold t)))) (org-special-keyword ((t (:foreground "sienna")))) (org-column ((t (:background "gray85")))) (erc-input-face ((t (:foreground "brown")))) (erc-notice-face ((t (:foreground "SlateBlue" :bold t)))) (erc-current-nick-face ((t (:foreground "DarkTurquoise" :bold t)))) (erc-prompt-face ((t (:foreground "Black" :bold t :background "lightBlue2")))) (planner-note-headline-face ((t (:bold t :foreground "azure3")))))))) #+end_src ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-25 14:41 ` Christopher Allan Webber @ 2012-06-25 15:29 ` Christopher Allan Webber 0 siblings, 0 replies; 12+ messages in thread From: Christopher Allan Webber @ 2012-06-25 15:29 UTC (permalink / raw) To: Sriram Karra; +Cc: emacs-orgmode Christopher Allan Webber <cwebber@dustycloud.org> writes: > Ah, I've stopped using that theme! But it was a small extension to > color-theme-snow. Here it is. :) FYI, the theme I use now is naquadah-theme, which I *highly* recommend. http://git.naquadah.org/?p=naquadah-theme.git;a=summary ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Org Mode TOOD two way sync tool 2012-06-22 6:40 Org Mode TOOD two way sync tool Sriram Karra 2012-06-22 12:03 ` Christopher J. White @ 2012-10-07 19:48 ` Jonathan BISSON 1 sibling, 0 replies; 12+ messages in thread From: Jonathan BISSON @ 2012-10-07 19:48 UTC (permalink / raw) To: emacs-orgmode Sriram Karra <karra.etc <at> gmail.com> writes: > > > I am the author of ASynK (http://karra-asynk.appspot.com), a PIM sync tool and framework written in python that works across a variety of PIM providers such as Outlook, Google and BBDB. I am considering extending ASynK to do a bi-directional sync of Outlook tasks to Org Mode tasks. To be able to do this I need a working read/write API for reading and creating TODOs in org mode. > > > > "Offline parsers" > > My first preference is to be able to parser org files without required Emacs - this is the approach that I have implemented for BBDB sync. I considered PyOrgMode (https://github.com/bjonnh/PyOrgMode/network), but it appears unable to process TODOs, or even recurring events. To be able to extend PyOrgMode so I can read and write TODOs, I needed a full description of the format of TODO entries in all its forms. The Org manual itself has this information, I'm sure but scattered all over the place, given its real audience. Can someone point me to some sort of a concise representation, if any, of the org file format grammar? > Hi, I'm the maintener and creator of PyOrgMode, some contributors (that I can't thanks enough there), added many TODO related enhancements to it. If you want to give it a try, we may be able to work together in getting your needs included in PyOrgMode. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-10-07 19:49 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-06-22 6:40 Org Mode TOOD two way sync tool Sriram Karra 2012-06-22 12:03 ` Christopher J. White 2012-06-22 12:33 ` Sriram Karra 2012-06-22 14:05 ` Christopher J. White 2012-06-24 13:15 ` Aurélien Aptel 2012-06-24 13:17 ` Aurélien Aptel 2012-06-24 17:07 ` Christopher Allan Webber 2012-06-25 12:32 ` Aurélien Aptel 2012-06-25 13:51 ` Sriram Karra 2012-06-25 14:41 ` Christopher Allan Webber 2012-06-25 15:29 ` Christopher Allan Webber 2012-10-07 19:48 ` Jonathan BISSON
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).