img_migration

Qué es buku

Stars Latest release

buku es, según los mismos desarrolladores, “un potente gestor de marcadores y una miniweb personal”. Uno de sus principales fuertes es que sus registros se guardan en una base de datos SQL por lo que la búsqueda es extremadamente rápida.

Qué es nb

Stars Latest release

nb es, según su descripción en GitHub, “una CLI para tomar notas, guardar marcadores, etiquetar archivos, filtrar, buscar, versionar y sincronizar con Git. También incluye conversión de archivos usando Pandoc, y mucho más, todo esto en un solo script”.

Para mí una clara ventaja de nb sobre buku es su multifuncionalidad, literalmente puedo usar una sola herramienta para manejar todas mis notas (desde todos hasta bookmarks). Es por eso que decidí pasarme por completo a nb. Y uno de los primeros retos que encontré fue cómo pasar los marcadores a archivos MD.

Usando Python

La solución que encontré fue usar un script de Python que se encargara de agregar uno a uno los archivos nb URL --tags TAG,TAG, para ello primero exporté mis marcadores de buku.

buku --export bookmarks.md

Ya después simplemente corrí el script.

import re
import subprocess

def run_command(url, tags):
    command = f"nb {url} --tags {','.join(tags)}"
    subprocess.run(command, shell=True)

def main(filename):
    with open(filename, "r") as file:
        lines = file.readlines()
        for line in lines:
            match = re.search(r"\[.*\]\((.*)\).*TAGS: (.*)", line)
            if match:
                url = match.group(1)
                tags = match.group(2).replace(" -->","").split(",")
                run_command(url, tags)

if __name__ == "__main__":
    main("bookmarks.md")

Y listo, ya estoy a un paso más de tener todos mis archivos en un solo lugar.

Eso es todo por hoy. Si tienes alguna inquietud no dudes en dejármela en los comentario.

¡Gracias por leer!