Cómo Usar Script para Convertir OneNote a Obsidian

CONTENIDO

  1. Historia (Opcional)
  2. Descargar Script desde GitHub
  3. Trabajar con Copias de seguridad si usamos macOS
  4. Abrir copias de seguridad de OneNote en Windows
  5. Ejecutar el script ConvertOneNote2Markdown
  6. Resultado de la Ejecución
  7. Verificar resultados
  8. Ahora solo falta abrir estas carpetas en obsidian

En esta oportunidad vamos a explicar un sencillo procedimiento para poder migrar notas desde la herramienta Microsoft OneNote a Obsidian. La version para macOS tiene cierta limitante y diferencias comparada con la version para Windows y es la razón principal por la que muchas veces necesitamos un sustituto para gestionar nuestras notas.

Historia (Opcional)

La razón de hacer esto fue debido a que OneNote limita el tamaño de nuestras notas y cuando tenemos muchas imágenes, puede llegar a ser un dolor de cabeza. Todo comenzó el día que tuve una falla en mi Mac y tuve que cerrar la sesión de mi OneNote, que estaba abierta hacía mas de 2 años. Gran sorpresa al percatarme que gran parte del contenido, no había sido sincronizado en OneDrive pese que éste contaba con espacio suficiente y el check de sincronización online se mostraba activo en el Microsoft OneNote.

Al verificar en el OneNote Online fue cuando realmente me preocupé, la notas sincronizadas estaban incompletas y muchas nisiquiera habían iniciado su sincronización. ¿Que hubiera pasado si pierdo el laptop? me hubiese quedado sin muchas de mis notas que han sido de gran apoyo durante mi vida profesional. Si bien algunas de estas las comparto en mi blog nachoaprendevirtualizacion.com, muchas otras no son para tal fin.

En resumen, ese fue una alerta para sacar mi información de esa herramienta lo mas pronto posible. Como moraleja, NO confíen su información valiosa a Microsoft OneNote!

En la búsqueda de un sustituto para mis notas encontré Obsidian, que básicamente es un gestor de notas que aprovecha características de Markdown. Hay mucha información en la web sobre esta herramienta, así que no nos detendremos a hablar de ella y vamos al grano. ¿Como hice para migrar mis notas de Microsoft OneNote a Obsidian? A continuación te lo explico.

Descargar Script desde GitHub

Lo primero que debemos hacer es descargar un script desde GitHub que hace toda la magia, y después de haber probado varios desarrollos, este fue el que a mi parecer funciona mejor.
Vamos entonces aquí para descargar el ConvertOneNote2MarkDown.

Para descargar el contenido del repositorio solo debemos hacer click en Code -> Download ZIP

Pasted image 20240106132540.png

Al descomprimir el contenido del .zip deberíamos ver algo como lo siguiente

Pasted image 20240106133244.png

Nota: Si estamos usando dispositivo Mac como en mi caso, recomiendo descargar el .zip en otro equipo con Sistema Operativo Windows, utilizar un VMware Fusion o VirtualBOX para ejecutar una VM windows si es que no tenemos otro dispositivo. Para este caso utilizaré VMware Fusion.

Trabajar con Copias de seguridad si usamos macOS

Debido a que nuestro objetivo es migrar nuestras notas de Microsoft OneNote (macOS) a Obsidian (macOS), debemos sacar una copia de la carpeta que contiene las copias de seguridad de Microsoft OneNote en nuestro Mac.

(Si usamos macOS) Vamos a la aplicación Microsoft OneNote -> OneNote -> Preferences…

Pasted image 20240106130238.png

Click en Backup

Pasted image 20240106130256.png

Click en Open Backup Folder

Pasted image 20240106130337.png

Dentro de esta carpeta podemos ver todas las Secciones que tenemos dentro de nuestro notebook. En este caso el notebook que me interesa migrar es el que dice bloc de notas de diego Felipe.

En este punto debemos sacar una copia de toda la carpeta o de los archivos con extension .one que deseamos migrar con el script.

Nota: Ten presente esta carpeta si vas a utilizar un hipervisor dentro de tu mac, o copia este contenido a una Memoria Externa si vas a usar otro dispositivo Windows para ejecutar el script. Para este caso he creado una carpeta compartida con la VM y así poder leerla desde el OS Windows.

Abrir copias de seguridad de OneNote en Windows

El script que vamos a utilizar funciona en Windows de manera que para poder migrar las Notas de OneNote a Obsidian vamos a tener que usar una maquina virtual windows, como lo comenté anteriormente.

Verificar la ruta de instalación de OneNote en Windows

Una vez dentro del equipo con Sistema Operativo Windows, sea este una maquina virtual u otro equipo físico, debemos por supuesto instalar el Microsoft OneNote si es que no lo tenemos ya instalado.

Lanzamos la aplicación y vamos a Archivo -> Información, para verificar la ruta default de la carpeta My Notebook, donde se almacenan los archivos .one.

Pasted image 20240106125921.png

Mover Copias de seguridad a la carpeta de My Notebook

para mover los archivos .one desde las copias de seguridad de Microsoft OneNote (macOS) a nuestro dispositivo físico o virtual basado en Windows, tenemos dos opciones:

Opción 1

Simplemente copiamos todas los archivos que vimos en las copias de seguridad de OneNote (macOS), a la ruta que acabamos de verificar para el OneNote (Windows). En la imagen anterior vemos que la ruta para este caso es C:\user\Administrator\Documents\OneNote Notebooks\My Notebook. Podría ser diferente de manera que recomiendo revisarla primero.

Pasted image 20240106125948.png

Opción 2

Dentro de OneNote (Windows) vamos a Archivo -> Información -> Abrir copias de seguridad

Pasted image 20240106131852.png

y seleccionamos desde nuestra Memoria Externa, o carpeta compartida, todos los archivos que queremos migrar a Obsidian.

Pasted image 20240106132021.png

Nota: La Opcion 1 y Opcion 2 generan el mismo resultado.

Abrir el OneNote Windows y verificar que vemos las secciones correctamente

Una vez hemos agregado los archivos .one que me interesan migrar, dentro de la carpeta My Notebook, podemos ver que dentro de la aplicación Microsoft OneNote aparecen cada una de las Secciones con sus correspondientes Paginas.

Pasted image 20230613004258.png

Nota: En este punto recomiendo, ordenar la paginas por orden de creación con el fin de tener una consistencia con el orden en el que serán migradas en Obsidian, para esto podríamos utilizar alguna de las macros de Onetastic, que es básicamente una extensión para OneNote que permite automatizar tareas.

Pasted image 20240106184701.png
Pasted image 20240106185155.png

Ejecutar el script ConvertOneNote2Markdown

Abrir una ventana de PowerShell y navegar hasta la ruta donde dejamos descargado el script desde GitHub utilizando el comando cd.

Para lanzar el script basta con ejecutar el comando .\ConvertOneNote2MarkDown-v2.ps1

Pasted image 20240106133426.png

Una vez ejecutado el script, debemos comenzar a responder a cada uno de los inputs con los siguientes datos que me han funcionado de manera correcta:

dryRun: 0
notesdestpath: c:\temp\notes
targetNotebook:
usedocx: 2
keepdocx: 2
docxNamingConvention: 2
prefixFolders: 1
mdFileNameAndFolderNameMaxLength: 200
medialocation: 2
conversion: gfm+pipe_tables-raw_html
headerTimestampEnabled: 1
keepspaces: 1
keepescape: 1
newlineCharacter: 1
exportPdf: 1

Notas:

  • Por default la ruta de destino de la conversion sera c:\temp\notes pero podemos elegir una diferente
  • Cuando utilizamos el metodo de conversion por default podriamos experimentar que todas las imagenes migradas desde oneNote quedan con un caption similar al siguiente {width="12.072916666666666in" height="6.65625in"} para evitar esto ver aquí) o configurar el siguiente valor en el input `conversion = ‘gfm+pipe_tables-raw_html’
  • Para comprender mejor lo que significa cada opción podemos leer la documentación del script que se encuentra en el mismo link de descarga.
Pasted image 20240106133931.png
Pasted image 20240106134002.png

Una vez terminamos de responder a cada uno de los imputos, comienza el proceso de migración.

Pasted image 20240106134024.png

Resultado de la Ejecución

Como resultado de la ejecución vamos a tener una vista como la siguiente, donde podemos ver que el script se ha ejecutado de manera satisfactoria y sin errores. Si en este punto obtiene algunos errores por lo general estan asociados a la falta de memoria RAM del equipo Windows donde esta ejecutando el script.

Pasted image 20230613004313.png

Verificar resultados

En mi caso tenia demasiadas notas así que decidí hacer la migración en oleadas. Esto significa que copiaba a la carpeta de My Notebook en OneNote (Windows) no mas de 20 archivos .one, esto debido a que algunas de mis notas tenian demasiado contenido y podia tardar horas la migración y eventualmente generar un error por falta de memoria en la maquina virtual windows que estoy usando. Así que si tienes notas muy grandes, recomiendo migrar las notas por grupos.

El resultado de la migración, como lo comente anteriormente, aparece por default en c:\temp\notes. Sin embargo, esta ruta puede ser especificada cuando lanzamos el script e ingresamos el valor del input notesdestpath:

Pasted image 20240106134809.png
Nota: Es importante notar que antes de iniciar con un grupo nuevo, debemos eliminar las secciones que ya migramos desde la interface gráfica de One Note (windows) antes de pegar o importar los archivos del nuevo grupo. Esta operación aunque se puede tambien hacer simplemente eliminando los archivos de la carpeta My Notebook, aquí recomiendo hacerlo por la interface ya que del otro modo muchas veces el OneNote no actualiza el contenido y genera un error que nos hace tener que reiniciar todo el sistema operativo para que el OneNote (Windows) vuelva a funcionar.

Pasted image 20240106135216.png

Bueno, continuando la verificación, podemos ver dentro de la oleada 1 (grupo 1), la notas migradas a Obsidian tiene una estructura de carpetas, donde cada carpeta representa una sección en Microsoft OneNote.

Pasted image 20240106135617.png
Dentro de cada carpeta vamos a tener una carpeta que se llama media donde se almacenan las imágenes y unos archivos con extension .md que contienen la información de lo que serian Paginas en Microsoft OneNote.

Nota: La creación de la carpeta media, esta controlada por el input del script medialocation: 2

Pasted image 20240106135829.png

Ahora solo falta abrir estas carpetas en obsidian

Recordemos que hasta este punto estaba trabajando en una maquina virtual (VM) Windows, de manera que en este punto debo copiar todas las carpetas de cada oleada de migración a una única carpeta en macOS que contenga toda esa información y que sera el destino de mi Vault en la nueva herramienta Obsidian. En este caso he creado una carpeta llamada Obsidian – Personal Notes que contiene el resultado de cada una de las oleadas.

Pasted image 20240106140402.png

Ahora en Obsidian usaremos la opción Open Folder as Vault y le indicamos la carpeta donde tenemos todas nuestras notas migradas.

Pasted image 20240106140544.png

Voila!, tenemos todo nuestro contenido de OneNote (macOS) ahora en nuestro Obsidian (macOS)

Pasted image 20240106143201.png
Pasted image 20240106143251.png

Nota: Si su caso es migrar de Microsoft OneNote a Obisidan en un entorno basado en Windows, algunos de los pasos indicados exclusivamente para macOS pueden ser omitidos. Recordemos que al final quien hace la magia es el script y lo que necesitamos conseguir es la estructura de carpetas que se generan como resultado de la ejecución, para configurar nuestro Vault en Obsidian.

Verificar integridad de medios de instalación VMware (checksum)

Como ya sabemos, una suma de verificación o checksum, es el resultado de ejecutar una función hash criptográfica dentro de un archivo, que tiene como propósito principal detectar cambios en una secuencia de datos para proteger su integridad. La particularidad de esto es que un pequeño cambio en el archivo provoca una salida totalmente distinta.

Dicho esto, checksum nos permite verificar la integridad del medio de instalación y estar seguros que el contenido del mismo no ha sido alterado y es tal y como lo indica su fabricante.

Lo importante a tener en cuenta en este post es que el objetivo no es garantizar una procedencia confiable del medio de instalación, sino verificar la integridad del archivo descargado.

Dejando un lado la teoría vamos a lo que nos interesa…

PROCEDIMIENTO

Utilizando la línea de comando de Windows (CMD) y la herramienta CertUtil incluida en las versiones mas recientes del sistema operativo. Ejecute el siguiente comando.

CertUtil -hashfile "Ubicacion_y_nombre_del_archivo" MD5

Nota 1: Para no tener que escribir el nombre del archivo, podemos simplemente seleccionarlo y arrastrarlo dentro de la consola de CMD de Windows y de esta manera incluirá la ubicación completa del mismo.

El resultado del comando nos devuelve un número de verificación similar al siguiente. Selecciónelo y cópielo para el siguiente paso (el de su Command Prompt).

e05748cea32d60566f0738a5b811cfdc

Para verificar que el archivo no ha sufrido ninguna modificación durante la descarga o posterior a ella, vaya a la página de descargas de VMware, donde descargó el medio de instalación, utilice la función Buscar… (ctrl+f o command+f) y dentro del campo de búsqueda pegue el numero que devolvió la salida del comando anterior.

De esta manera podemos buscar rápidamente si el numero que nos devolvió la herramienta CertUtil corresponde con el numero de verificación (MD5SUM) publicado por el fabricante.

Nota 2: Sino puede ver los detalles del medio de instalación en pagina de descargas. Haga clic en el enlace Read more para visualizar la información publicada por VMware.

Si el numero es encontrado como en la imagen anterior, el medio de instalación es apto para ser usado. Sino es así, vuelva a descargar el medio de instalación porque seguramente esta corrupto.

Nota 3: Puede utilizar la herramienta CertUtil para la suma de verificación de otros algoritmos hash cambiando el parámetro MD5 en el comando por cualquiera de los siguientes. VMware en su página de descargas publica la información para MD5SUM, SHA1SUM y SHA256SUM.

  • MD2
  • MD4
  • MD5
  • SHA1
  • SHA256
  • SHA384
  • SHA512

Por ultimo y como recomendación, realice este procedimiento para evitar algunos dolores de cabeza y perder tiempo tratando de solucionar problemas que probablemente vienen del medio de instalación y no del proceso de instalación o actualización.

Aplicación Lanza PuTTY

Lanza Putty nació hace un par de años por la necesidad de tener que agregar un usuario con permisos específicos en más de doscientos blades distribuidos en aproximadamente veinte enclosures de la marca HP (Hewlett Packard) en la compañía para la cual me desempeñaba como administrador de infraestructura. Una tarea que por supuesto no tenía ningún sentido realizar manualmente en cada uno de los blades desde la interfaz de administración. Por esta razón, decidí desarrollar una herramienta que utiliza PuTTY.exe y Plink.exe para lanzar múltiples conexiones SSH, Telnet, Rlogin o RAW; y envía uno o varios comandos a una lista de instancias remotas desde una única interfaz.

clip_image001[5]

Lanza Putty es una herramienta desarrollada en lenguaje LabVIEW y aunque fue inicialmente pensada para facilitar la administración de chasis y bahías en la infraestructura, puede ser también útil para administrar cualquier sistema basado en Linux, incluso en ocasiones la utilizo para enviar comandos ESXCLI a múltiples hipervisores.

¿Por qué en LabVIEW?

La respuesta es muy simple, necesitaba resolver el problema rápidamente y el lenguaje de desarrollo que mejor manejaba en ese entonces por su ventajas en cuanto al tiempo de desarrollo era LabVIEW. Hoy en día aunque nos apoyamos con herramienta más especializadas como PowerShell y PowerCLI para la implementación y administración de vSphere, me sigue siendo de gran utilidad esta herramienta.

FUNCIONAMIENTO

1. Descargue el Run-Time Engine de LabVIEW (versión 2011) de la página oficial o desde aquí, e instálelo en su ordenador para poder ejecutar el .exe de la aplicación.

2. Descargue la aplicación desde el repositorio compartido haciendo click Aquí.

3. Cree un archivo *.txt con la lista de FQDNs o IPs de las instancias remotas que desea administrar, y guárdelo en la carpeta \Lanza_PuTTY_APP\Data

image

image

4. Ejecute la aplicación LanzaPuTTY.exe que se encuentra en el directorio raíz y seleccione el archivo creado anteriormente.

clip_image001

5. Ingrese usuario y contraseña de las instancias remotas

clip_image001[5]

6. Seleccione el protocolo a utilizar. El valor por defecto es el protocolo SSH

7. Ingrese los comandos que desea ejecutar en las instancias remotas. Por ejemplo si utilizamos la herramienta para verificar el driver, firmware o vendor ID de varios hipervisores podemos incluir los siguientes comandos en el campo “Comandos a Ejecutar”

#ESXi Hostname
hostname
#ESXi Version
vmware -v -l
#NICs
esxcli network nic list
#Drivers y firmware NICs
esxcli network nic get -n vmnic0
#Vendor ID NICs
for a in $(esxcfg-nics -l |awk '{print $1}' |grep [0-9]) ;do vmkchdev -l |grep $a; done

8. Haga click en Archivo->Ejecutar para realizar ejecución con salida en Command Prompt (cmd), se recomienda que la primera vez que se accede a la instancia remota a través de esta herramienta se realice con este modo de
ejecución debido a que la sesión solicita una confirmación de seguridad de PuTTY, que debe ser aceptada escribiendo Y y luego presionando Enter.

clip_image001[7]

image

9. La opción Archivo->Ejecutar sin CMD, realiza una ejecución con salida en el indicador “Salida de Comandos”, que automáticamente crea un fichero con el nombre Log_Putty.txt con estas salidas de comando. Este modo de ejecución se debe utilizar si ya se ha accedido a las instancias por lo menos una vez con PuTTY.exe, de lo contrario el programa se quedara esperando la confirmación de la alerta de seguridad de PuTTY, sin mostrar ninguna notificación debido a que el programa estará ejecutándose de manera oculta. Esta opción se recomienda para generar Logs después de haber realizado acciones con el modo indicado en el paso anterior.

clip_image001[9]

10. Verifique el contenido del Log_Putty.txt ubicado en la carpeta raíz de la aplicación

image

clip_image001[11]