explain org mode
Explain what is org mode, what it is, what is does, how it compares to other apps
From the website:
Org mode is for keeping notes, maintaining to-do lists, planning projects, authoring documents, computational notebooks, literate programming and more — in a fast and effective plain text system.
1 Keeping notes
1.1 Org mode uses plain text files
So you can organize them as you see fit, sync them, version them, etc. You can store all your notes in one big file, in different files under the same parent folder or spread them across your whole system. Anyhow, you can always link them together.
1.2 Org mode markup syntax
It uses a markup language akin to markdown, that you can edit using any editors. Emacs is of course the preferred editor, since it also provides helpers functions to insert content, links, tables, etc.
Org mode syntax is richer and more ergonomic than markdown within emacs though, with support for dates, tables, clickable links, etc.
Special content | How to |
---|---|
tables | use pipes to delimit the cells and TAB through ! |
links | insert a link to anything using C-c C-l or just use the [URL][text] notation |
images | same as links, can be displayed directly in emacs GUI |
… |
1.3 Org files outlining features
1.3.1 Hierarchical organisation
Org allows you to structure your content within a file hierarchically
1.3.1.1 with powerful outlining features
to move whole subtree along the whole tree of your document, using a simple shortcut meta+arrow keys
.
1.4 Org mode lets you add metadata to your content
Metadata are also known as properties and can be added to the whole document or a subtree
2 Maintaining TODO lists or planning projects
2.1 Backlog
2.1.1 TODO Demonstrate the usage of TODO, DOING, DONE keywords
Any node (also named outline entry or heading) can be prefixed with a keyword. By default, the keywords are "TODO" and "DONE", but you can add as many as you wish, for example "DOING" or "TEST", etc.
2.1.2 DOING Prioritize TODOs important
Org mode support setting tags, deadline or scheduled dates on your TODOs to prioritize them.
2.1.3 TEST View my TODOs
You can look for your TODO items across different org files, anywhere on your system, and display them using org-agenda
.
2.1.4 DONE Track your workflow & the time spent
Org mode features a task timer, that will output it's results in the tasks properties drawer.
It can also log all status changes to a TODO item, so you get a journal of your progress, per task.
2.2 Report
Here is a autogenerated report, using the "capturing column view" feature and some basic spreadsheet calculations.
Task | TODO | Est. | Done | % | DEADLINE |
---|---|---|---|---|---|
Maintaining TODO lists or planning projects | 3.0 | 1.500 | 50 | ||
Backlog | 3.0 | 1.500 | 50 | ||
Demonstrate the usage of TODO, DOING, DONE keywords | TODO | 1.0 | 0.000 | 0 | |
Prioritize TODOs | DOING | 1.0 | 0.500 | 50 | |
View my TODOs | TEST | 1.0 | 1.000 | 100 | |
Track your workflow & the time spent | DONE | 0.0 | 0.000 | 0 |
3 Authoring documents
3.1 Writing long documents and content organization
Org mode provides good features for writing long documents, such as thesis, book, documentation, etc.
As org mode doesn't push any organization on you, you are free to write everything in a single big document, or split it in multiples parts and then linking and even including, like you would do when coding.
As org mode is built on emacs, there are also numerous features to help you search, jump and navigate your content.
4 Computational notebooks and literate programming
Org mode allows you to add code snippets to your org file. OK, so far it looks like markdown. But …
4.2 You can use whatever language, not only python or JS
But also go, lua, plantuml, graphviz, emacs lisp obviously. Babel supports
4.3 You can get data to flow to and from these code blocks
Again, just like notebooks, but better, since you can switch languages between blocks
4.4 You are not limited to a text output
You can eventually get an image back into your file, or HTML, or JSON, or anything really.