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 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 [2020-10-28 Wed]
    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.