- CEO 200ok GmbH
- Lecturer at ZHAW
- Zen Monk, runs the Lambda Zen Temple
alain@200ok.ch
- I’m a tooling nut
- I even got the job interview as a lecturer by accident, because I gave a talk on GTD 9 years ago
- Over the last 15 years, I went over a great many tools
- Since 6 years, most of my work, reading and communications happen within Emacs
- Org mode is my daily driver for everything from
- Project Management
- Time Tracking
- Quotes
- Bookkeeping and Controlling
- Presentations
- Hence, I’m happily committed to Org Mode \(^_^)/
- It’s not really convenient to have a laptop/PC handy all the time.
- Not everyone is an Emacs user.
Are you a fan of Org mode? If so, you probably want to have access to your Org files at any time - even when away from your computer. Or maybe you want to collaborate with other people who are not Emacs users themselves.
organice is an implementation of Org mode without the dependency of Emacs. It is built for mobile and desktop browsers and syncs with Dropbox, Google Drive and WebDAV.
\center\includegraphics[height=0.9\textheight]{images/screenshot–overview.png}
- The project is free and open source software, of course
- It has an AGPL-3.0 license, a public code of conduct and contributing guidelines
- You can find the source code here: https://github.com/200ok-ch/organice
- organice is built using the popular front-end frameworks React and
Redux
- Enabling a wide range of contributors
- Optimized for mobile and desktop use
- https://organice.200ok.ch
- No back-end
- No storage of data on our servers
- We also don’t use analytics
- Let’s check some Org mode features in organice!
This header has a few TODO items as subheaders.
To advance the todo state of a header, swipe right on it until the background turns green.
Try advancing the todo state of this header a few times!
There’s also a setting once you’re signed in to enable tapping on the TODO label itself to advance the todo state. Its off by default because I thought the behavior would be confusing unless explained, but I recommend turning it on!
organice also supports custom todo states (if declared at the top of the file). Swipe right on this header a few times.
Note that when the cycle restarts, it defaults to the first set of todo states. Manually edit the header to get back to a different todo state cycle (more on editing headers below!)
When you select a header the “header action drawer” appears. The first two buttons in this drawer edit the header and description respectively. Try editing this header.
The next button in the header action drawer will bring up the tag editor.
This editor lets you add, modify, and reorder tags, as well as giving you easy access to all tags in the file.
Try it out on these headers:
The next button in the header action drawer “focuses” on a header, hiding all others and promoting it to the top level. Press the button again to “unfocus”.
This is purely visual - your org file isn’t affected under the hood.
I find this useful for focusing on my “Groceries” list when I go to the grocery store. Give it a shot on this grocery list:
- [ ] Mangoes
- [ ] Dark chocolate
- [ ] Carrots
To add a new header, press the + button in the header action drawer
To remove a header, swipe left on the header until the background turns red.
To move a header, click on the four-way arrows button at the bottom of the screen with a header selected. 6 buttons will appear for moving headers.
The center 4 move the header up, down, left, and right. The 2 outermost buttons move the header and its entire nested subtree.
Give them a try on these nested headers to get a feel for how they operate:
Dark chocolateMilk chocolateCrispy chocolateThe “cloud” button in the lower left hand corner syncs changes to your chosen sync service (Dropbox or Google Drive).
If there’s a newer version on the server and no local changes, it’ll pull.
If there’s no newer version on the server and there are local changes, it’ll push.
Otherwise, it’ll ask what you want to do.
This button isn’t enabled in this demo :)
If you’d like to automatically push changes as you make them, you can enable “Live sync” in settings.
When you’re signed in, you’ll have undo
and redo
buttons in the
headerbar.
organice has native support for viewing and editing tables.
Try playing around with this one by first clicking on a cell:
Dog name | Age | Weight (in lbs) | Parent | Score (1-10) |
---|---|---|---|---|
Eloise | 3 | 5.1 | Erin | 15 |
Starla | 15 | 40 | Sarah S | 15 |
Rex | 15 | 45 | Sarah S | 15 |
Maz | 1 | 55 | Brittany | 15 |
Clooney | 0.1 | 4.8 | Sarah R | 15 |
Murphy | 0.5 | 25 | Jordan | 15 |
When a table cell is selected, a table-specific action drawer appears.
The leftmost icon allows you to edit a cell.
On the right side, the top two icons let you add and remove rows. The bottom two icons let you add and remove columns.
When a table cell is selected, the four-way arrow button at the bottom of the screen changes to manipulate tables.
Press up and down to move rows, and left and right to move columns.
If this is an important feature to you, please let me know by upvoting the issue on GitHub
organice has native support for displaying plain lists and checkboxes
Plain:
- plain list item 1
- plain list item 2
- sub item 1
- plain list item 3
Ordered:
- Item 1
- Item 2
- Item 20
- Item 21
Checkboxes:
- [-] 1 [1/2]
- [ ] 1.1 [0%]
- [ ] 1.1.1
- [X] 1. 2
- [ ] 1.1 [0%]
- [X] 2
Currently, plain lists are mostly display only (except that you can check/uncheck checkboxes). If native support for manipulating plain lists is important to you, please let me know by upvoting the issue on Github
organice has native support for displaying and editing timestamps.
Try tapping on the timestamps below to get a feel for the editor:
<2018-09-17 Sun>
[2018-09-17 Sun]
[2018-09-17 Sun +1d]
[2018-09-17 Sun 10:00-11:30]
<2018-09-17 Sun>–<2018-09-25 Tue>
organice has native support for viewing and editing property lists. To bring up an editor, expand the PROPERTIES
drawer below and tap on any of the properties.
organice has native support for adding and editing DEADLINE and SCHEDULED items. It also supports repeaters and delays. Check out these examples:
organice supports something like org-capture in the form of customizable, quickly accessible buttons for creating new headers.
Click the button in the bottom right corner of the screen to see some examples. The first button, the lemon, will create a new entry in the “Groceries” list below this. The second button adds an entry to a more deeply nested header.
Once signed in, you can set up capture templates that specify header paths (and various other configurations). These capture templates can also sync between your devices (if you enable settings sync).
organice has a basic agenda view that you can access by tapping the calendar button at the bottom of the page.
Tap a header in this view to jump to it, and tap on the date to switch to a more readable relative date format.
These overdue items with deadlines should show up on today’s entry:
- organice has custom parser code for Org files
- It works quite fine and has unit tests to prove it
- However, writing a parser for a complex syntax like Org mode in custom code is hard
- We are also in the in the process of implementing a proper BNF based parser and a set of tests behind that written in Clojure / ClojureScript
- If you’re interested, please check it out: https://github.com/200ok-ch/org-parser
- https://200ok.ch/category/emacs.html
- https://200ok.ch/category/org-mode.html
- https://200ok.ch/atom.xml
- If you liked this talk, head over to https://github.com/200ok-ch/organice, and extend your range of Emacs!
- Ah, yes - and put a star on the repo, would ya?(;
\includegraphics[height=0.35\textheight]{images/organice.png}
\includegraphics[height=0.25\textheight]{images/heart.png}
\includegraphics[height=0.35\textheight]{images/emacs_logo.png}