-- Leo's gemini proxy

-- Connecting to gmi.osiux.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=es_AR

bullet journal vim `cal-bash-utils`


AUTHOR: Osiris Alejandro Gomez

EMAIL: osiux@osiux.com

DATE: 2023-06-21 17:15


Yendo del texto plano al papel


Hace años que pruebo diferentes metodologías para registrar tareas, si bien existen diferentes aplicaciones y probé varias, siempre me resultó más fácil recordarlas y tener una visión global al manejarlas en papel.


Si bien durante varios años usé `org-mode` ^1[1], hace tiempo que estoy registrando los eventos y tareas que tienen fecha en un archivo de texto plano `~/.calendar` ^2[2] y luego mediante algunos *scripts* y el uso de `pcal` los puedo convertir a papel para usar en esos momentos *offline* mientras disfruto de un café y despejo mi mente.


*Bullet Journal*


Tuve varios intentos de implementar `Bullet Journal` ^3[3] en papel, creo que se debe a que no tengo tanto tiempo libre para garabatear, un poco de inconstancia y que en parte me cuesta despegar del teclado.


Hace unos días descubrí `Plain Text Journaling` ^4[4], una implementación en texto plano usando `vim` ^5[5] y quedé maravillado.


*PoC*


Mirando un poco el *post* vi que podía aprovechar la estructura de directorio que ya uso en mi `jrnl` ^6[6] *journal*


# tree -L 1 -d ~/.jrnl
/home/osiris/.jrnl
├── 2017
├── 2018
├── 2019
├── 2020
├── 2021
├── 2022
└── 2023

8 directories

Para probar el concepto, abrí el archivo de este mes, `vi ~/.jrnl/2023/06.jrnl` y e ingresé el calendario mediante el comando `r! cal`


     June 2023
Su Mo Tu We Th Fr Sa
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30


WEEK 1 ---------------

× done test
· todo test
→ move test
∘ event test
‐ note test

*highlight syntax*


El siguiente paso era contar con resaltado de sintaxis, definiendo en `~/.vimrc` la siguiente configuración:


augroup JournalSyntax
  autocmd!
  autocmd BufReadPost *.jrnl set filetype=journal
  autocmd BufReadPost *.jrnl syntax match JournalAll /.*/
  autocmd BufReadPost *.jrnl syntax match JournalDone /^× .*/
  autocmd BufReadPost *.jrnl syntax match JournalTodo /^· .*/
  autocmd BufReadPost *.jrnl syntax match JournalEvent /^∘ .*/
  autocmd BufReadPost *.jrnl syntax match JournalNote /^‐ .*/
  autocmd BufReadPost *.jrnl syntax match JournalMoved /^> .*/
  autocmd BufReadPost *.jrnl syntax match JournalHeader /^\<\u\+\>.*/
  autocmd BufReadPost *.jrnl highlight JournalAll    ctermfg=7
  autocmd BufReadPost *.jrnl highlight JournalTodo   ctermfg=1
  autocmd BufReadPost *.jrnl highlight JournalHeader ctermfg=2
  autocmd BufReadPost *.jrnl highlight JournalDone   ctermfg=8
  autocmd BufReadPost *.jrnl highlight JournalEvent  ctermfg=3
  autocmd BufReadPost *.jrnl highlight JournalMoved  ctermfg=5
  autocmd BufReadPost *.jrnl highlight JournalNote   ctermfg=5
  autocmd BufReadPost *.jrnl highlight VertSplit     ctermfg=0 ctermbg=0
augroup END

*snippet to bullets*


Y para agilizar el ingreso de los diferentes *bullets* adapté mis *snippets* agregand a `~/.vim/snippets/_.snippets`


snippet todo
    ·
snippet done
    ×
snippet note
    ‐
snippet event
    ∘
snippet move
    →

Entonces basta con tipear `done` y presionar `TAB` para obtener `×` `:)` Ahora al editar con `vim` un archivo `*.jrnl` tiene toda la onda!


[IMG]

[7]


*automate bullet journal from calendar*


Se me ocurrió aprovechar que ya tengo registradas las tareas y eventos en `~/.calendar`, solo debía agregar los *bullets* y escribir algún *script* que se ocupe de automatizar la escritura de cada mes en formato *Bullet Journal* `;)`


*month*


El primer *script* fue `caljmonth` ^7[8] que se ocupa de obtener las tareas y eventos del mes actual y también acepta el número de cualquier otro mes guardando un archivo `~/.jrnl/YYYY/MM.jrnl` y para visualizar este archivo el comando es `calvmonth` ^8[9].


[IMG]

[10]


*months*


En muchas ocasiones conviene visualizar más de un mes, es decir el actual y algunos más y para esto esta el comando `calvmonths`.


[IMG]

[11]


*year*


Finalmente si necesito visualizar el mes actual hasta que termine el año, el comando que se ocupa de generar los archivos de cada mes es `caljyear` ^9[12] y para visualizar usar `calvyear` ^10[13]


[IMG]

[14]


texto plano


Una vez más, utilizar archivos de texto plano es una gran solución, ya que es fácil de integrar y convertir, rápido de adaptar a cualquier situación, me tomó menos de 1 día crear los *scripts* y ya estoy disfrutando la solución y seguramente con el tiempo iré incorporando mejoras en `cal-bash-utils` ^11[15]


Calendario de Terminal versus Calendario en Papel[16]

Reemplazando **Org-mode** por `txt-bash-jrnl`[17]

Capturar ideas en papel: de moleskine, hispterpda, pocketmod y libreta artesanal[18]


ChangeLog


`2023-06-24 20:00`[19] agregar footnotes a caljmonth, calvmonth, caljyear y calvyear en *bullet journal vim `cal-bash-utils`*

`2023-06-22 00:58`[20] agregar bullet journal vim `cal-bash-utils`


1: https://orgmode.gmi/

2: file:2023-02-16-terminal-calendar-versus-paper-calendar.gmi

3: https://bulletjournal.com/

4: https://peppe.rs/posts/plain_text_journaling/

5: https://www.vim.gmi/

6: https://gitlab.com/osiux/txt-bash-jrnl/

7: file:img/cal2jrnl/cal2jrnl-highlight.png

8: https://gitlab.com/osiux/cal-bash-utils/-/raw/develop/caljmonth

9: https://gitlab.com/osiux/cal-bash-utils/-/raw/develop/calvmonth

10: file:img/cal2jrnl/cal2jrnl-calvmonth.png

11: file:img/cal2jrnl/cal2jrnl-calvmonths.png

12: https://gitlab.com/osiux/cal-bash-utils/-/raw/develop/caljyear

13: https://gitlab.com/osiux/cal-bash-utils/-/raw/develop/calvyear

14: file:img/cal2jrnl/cal2jrnl-calvyear.png

15: https://gitlab.com/osiux/cal-bash-utils/

16: 2023-02-16-terminal-calendar-versus-paper-calendar.gmi

17: 2018-01-01-reemplazando-orgmode-por-txt-bash-jrnl.gmi

18: capturar-ideas-en-papel-de-moleskine-hispterpda-pocketmod-y-libreta-artesanal.gmi

19: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/1a587e60462eaecdc5efb0405b944235e93fd208

20: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/6e127b03c988bf86062ab77e41899bd9d7dcee03

-- Response ended

-- Page fetched on Thu May 2 12:09:30 2024