4 ms·
Apologies for my imprecise answer before. I mainly intended to say I think Org is much more standardized than Markdown because there is at least a unique refer
by nextos 8y ago
Apologies for my imprecise answer before.
I mainly intended to say I think Org is much more standardized than Markdown because there is at least a unique reference implementation and a unique reference document describing the format. Whereas for Markdown, you do have many slightly different implementations and attempts at standardization, despite Markdown being an order of magnitude simpler.
In places like GitLab, people are taking advantage of this by running Emacs in batch mode inside a container to effectively use the reference implementation for export-to-other-formats purposes.
It's not an ideal situation, though. And I hope someone creates a truly independent library. There is a Ruby parser employed by GitHub and GitLab which covers a decent subset of Org. Furthermore, Orgzly and vim-orgmode are pretty much closer to implementing a much bigger subset of Org.
- sachdevap 8y agoI think the solution is not just an implementation, but rather a language description independent of an implementation. A reference description would allow org mode format to be usable in perpetuity. As a side-note: As a regular emacs and org-mode user, not a fan of the date format and lack of flexibility in picking repeating schedules.
- jolmg 8y ago> not a fan of the date format and lack of flexibility in picking repeating schedules. I haven't used repeaters that much, but I was under the impression that they were very, very flexible. At least much more flexible than a typical todo app. What don't you like about them? For reference, here's some documentation about them: https://orgmode.org/manual/Repeated-tasks.html https://orgmode.org/manual/Repeated-tasks.html https://orgmode.org/manual/Timestamps.html#Timestamps https://orgmode.org/manual/Timestamps.html#Timestamps https://www.gnu.org/software/emacs/manual/html_node/org/Timestamps.html https://www.gnu.org/software/emacs/manual/html_node/org/Time... https://www.gnu.org/software/emacs/manual/html_node/emacs/Sexp-Diary-Entries.html#Sexp-Diary-Entries https://www.gnu.org/software/emacs/manual/html_node/emacs/Se...
- sachdevap 8y agoI am quite familiar with the available options for repeated entries. But Something as usual as 2nd Thursday of every month requires me to write a diary-float sexp, which is not intuitive to edit. If it is difficult to use for a programmer like me, I can only imagine how complicated it is for other people. Moreover, diary-float sexp expressions are most definitely not helping the argument of usability outside emacs.
- jolmg 8y ago> But Something as usual as 2nd Thursday of every month requires me to write a diary-float sexp, which is not intuitive to edit. I agree that it could be better, but I'd be surprised if it was something that was typically expressible in other programs. So the fact that it's doable at all seems great, and does indicate that it's flexible. Since you said it lacked flexibility, I was wondering if you had an example of something that was not expressible in Emacs org-mode but that was expressible elsewhere. > Moreover, diary-float sexp expressions are most definitely not helping the argument of usability outside emacs. Well, it's not elisp, is it? It's just sexps. It may as well be JSON, but more concise.
- sachdevap 8y agoActually, Google Calendar does provide the choice of repeating every 2nd Thursday of every month. But it has its own limitation. For example, Google calendar does not let me do every 2nd and 4th Thursday of the month. Just to clarify, I am not criticizing org-mode for not implementing in comparison to others. The lack of flexibility I suggest is the date format itself, which does not even allow specifying 2nd Thursday of the month for example. diary-float allows it, but is not intuitive. I intend to write an interactive scheduling tool for org-mode when I can spare the time. Like regex-builder, but for dates.
- jolmg 8y agoI was wondering just a while ago if it those diary syntaxes were really limited to sexps and wouldn't also evaluate arbitrary elisp and I saw this[1]: &%%(let ((dayname (calendar-day-of-week date)) (day (cadr date))) (or (and (= day 21) (memq dayname '(1 2 3 4 5))) (and (memq day '(19 20)) (= dayname 5))) ) Pay check deposited I don't know if this is doable from org-mode but it seems to me like this could be a viable, more readable alternative to diary-float. For your example of 2nd Thursday from every month, instead of: %%(dairy-float t 4 2) you could have: &%%(let ((day-of-week (calendar-day-name date)) (day (cadr date))) (and (= day-of-week "Thursday") (> day 7) (<= day 14))) That's seems more readable to someone that hasn't read what the parameters of dairy-float mean. For your second example of every 2nd and 4th Thursday: &%%(let ((day-of-week (calendar-day-name date)) (day (cadr date))) (and (= day-of-week "Thursday") (or (and (> day 7) (<= day 14)) (and (> day 21) (<= day 28))))) It being a programming language might make it unintuitive to use by a non-programmer, but I don't think you can get anymore flexible than this. Also, org-mode's attractiveness being that everything is in plain text, I'm not sure there is a syntax that would be more readable than properly written code. [1] https://www.gnu.org/software/emacs/manual/html_node/emacs/Sexp-Diary-Entries.html#Sexp-Diary-Entries https://www.gnu.org/software/emacs/manual/html_node/emacs/Se...
- nextos 8y agoI'm not a super big fan of Org timestamps for dates, either. Flexibility is OK. But I wish we had something like Remind [1] where you can define events based on e.g. Easter dates, skip recurring events if they fall into a holiday or move them according to a rule. In particular, I hate I have to change all bank holidays every year. Remind got this right. There's some added complexity, though. A nice thing about Org is the pragmatic way it deals with recurring events. You clone them and adjust at will, manually. So you can deal with really odd ways of re-scheduling meetings. [1] https://www.roaringpenguin.com/wiki/index.php/Remind https://www.roaringpenguin.com/wiki/index.php/Remind
- sachdevap 8y agoOh, that's an interesting point. Actually, for Easter [0], you could technically write a piece of code to figure out when Easter is. But on a more practical note, maybe Org-mode should have event based entries, which in my opinion also speaks to a lack of flexibility. It should be possible to anchor dates on other events, so you can have one annual calendar file to replace at once, which may be automatically generated. Like wanting to plan something a week before Easter? [0] https://www.timeanddate.com/calendar/determining-easter-date.html https://www.timeanddate.com/calendar/determining-easter-date...
- nextos 8y agoActually there's been an Elisp function posted to the Org mailing list to calculate Easter dates that has made it into the Org FAQ [1]. However, I'd prefer if all these things were merged into mainline. [1] https://orgmode.org/worg/org-faq.html https://orgmode.org/worg/org-faq.html
- pwinnski 8y agoThere was a unique reference implementation for Markdown, too. It was ignored and extended by various popular services. If anybody fully implemented Org-mode outside of Emacs, it would likely have run into the same issue.
- lilyball 8y agoA reference implementation isn't standardization. Markdown had a reference implementation and yet subsequent implementations still diverged. The reference implementation also had bugs, which were fixed over time, thus changing the de-facto standard. At this point, Markdown does have a real standard, CommonMark. GitHub-Flavored Markdown was modified to become an extension to CommonMark (it's literally just a few extra features on top of CommonMark at this point). There are of course non-CommonMark-based implementations still (such as MultiMarkdown) but at this point anyone adding Markdown support to a project should be using CommonMark or GFM.