Created: 2021-12-25 sab 02:05
Org-mode può essere visto da due punti di vista diversi:
I file .org sono plaintext files che possono essere processati in modo dinamico tramite Emacs.
Plaintext
Org-mode (in emacs)
Detto questo, non è necessario utilizzare Emacs per scrivere/leggere i files in org-mode. Esistono anche supporti in altri tools/librerie, come ad esempio in python.
# This function takes a node of an org-file
# and returns the content of all the headings
# in the org file as a formatted string.
def create_toc_body(node, depth):
if len(node.children) == 0:
return ""
res = ""
spaces = " " * depth * 2
for child in node.children:
# remove bold characters *
heading = child.get_heading().replace("*", "")
res = res + spaces + "- " + heading + "\n"
res = res + create_toc_body(child, depth+1)
return res
Source: orgparse
La particolare sintassi utilizzata è detta Org-Mode Markup Language, e rappresenta la parte più importante di org-mode.
* This Is A Heading ** This Is A Sub-Heading *** And A Sub-Sub-Heading Paragraphs are separated by at least one empty line. *bold* /italic/ _underlined_ +strikethrough+ =monospaced= [[http://Karl-Voit.at][Link description]] http://Karl-Voit.at → link without description - list item - sub-item 1. also enumerated - [ ] yet to be done - [X] item which is done : Simple pre-formatted text such as for source code.
Source: karl-voit - Org Mode Is One of the Most Reasonable Markup Languages to Use for Text
Org-mode nasce nel 2003 da Carsten Dominik.
Source: Carsten Dominik blog
Dalle parole di Dominik:
Org was born in 2003, out of frustration over the user interface of the Emacs Outline mode. I was trying to organize my notes and projects, and using Emacs seemed to be the natural way to go […]
Source: orgmode manual
[…] Visibility cycling and structure editing were originally implemented in the package ‘outline-magic.el’, but quickly moved to the more general ‘org.el’ […]
Source: orgmode manual
[…] These areas highlighted the two main goals that Org still has today: to be a new, outline-based, plain text mode with innovative and intuitive editing features, and to incorporate project planning functionality directly into a notes file.
Source: orgmode manual
A partire del 2006 org-mode è strato introdotto come major-mode all'interno di Emacs.
Bastien Guerry è il maintainer corrente di org-mode.
Org-mode può essere principalmente utilizzato per:
Ma questo è solo l'inizio. Sono tanti gli altri possibili use-cases per org-mode…
Tramite le headlines siamo in grado di
Utilizzo dinamico delle headlines in org-mode
La semplicità e flessibilità di org-mode permettono di gestire:
e in generale tutti i task che necessitano di prendere appunti.
Per settare i file da cui prendere i dati bisogna eseguire il seguente codice elisp
(setq org-agenda-files (list "~/agenda.org"
"~/work.org"))
Una volta fatto questo possiamo editare il file agenda.org
aggiungendo vari TODOs, a seconda dei nostri impegni.
Per avere una overview di tutti i nostri impegni (presenti anche
in vari files), possiamo eseguire il comando (org-agenda)
.
Ciascuna headline può contenere vari attributi, che possono essere utilizzati, ad esempio, per memorizzare le informazioni dei contatti.
Uno degli utilizzi più complessi di org-mode riguarda la creazione di basi di conoscenza personali.
Tramite la componente org-babel di org-mode si è in grado di inserire del codice eseguibile in mezzo a del testo normale.
Sono vari i linguaggi supportati da org-babel.
I file org-mode possono poi essere esportati in altri formati. Tra i formati di esportazione troviamo:
il comando per fare questo è
(org-export-dispatch)
bindato al keybind C-c C-e
.
Ad esempio,
file .org
\[\longrightarrow\]
file .html
Questa stessa presentazione è stata ottenuta esportando un file .org tramite il pacchetto ox-reveal.
\[\longrightarrow\]
Personalmente utilizzo org-mode per un sacco di cose. Tra queste le più importanti attualmente sono:
Per ogni materia che studio ho uno o più files .org.
Il file principale di ogni materia contiene i puntatori ai files che contengono gli appunti delle lezioni.
In singoli file vengono poi esportati in formato .html
per poterli
condividere e per poter leggere meglio le formule matematiche
tramite il pacchetto ox-twbs.
Source: leonardotamiano.xyz
Durante la lettura ogni tanto mi segno degli appunti in un file
.org
appropriato.
La parte principale del mio blog la gestisco tramite un singolo
file .org
tramite il pacchetto ox-hugo.
Le presentazioni le scrivo tutte in file .org
e le esporto in
.html
tramite il pacchetto ox-reveal.
Per gestire i vari video del canale ho un file .org
apposito
Per gestire gli appunti delle varie macchine su Hack The Box ho
vari .org
files.
Main org-file
Org-file per macchina
Gli elementi principali che formano la org-mode markup language sono molto semplici, e possono essere visualizzati a seguire
* This Is A Heading ** This Is A Sub-Heading *** And A Sub-Sub-Heading Paragraphs are separated by at least one empty line. *bold* /italic/ _underlined_ +strikethrough+ =monospaced= [[http://Karl-Voit.at][Link description]] http://Karl-Voit.at → link without description - list item - sub-item 1. also enumerated - [ ] yet to be done - [X] item which is done : Simple pre-formatted text such as for source code.
Source: karl-voit - Org Mode Is One of the Most Reasonable Markup Languages to Use for Text