12.06 - 📹 Obsidian y Anki - Anki Macrocurso
MÓDULO 12 - Integración de Anki con otras apps - Anki Macrocurso
Intro
- Posibles métodos:
- Manualmente.
- Obsidian_to_Anki (el que usaremos)
- anki sync+
- Obsankipy
- Sync to Obsidian (Fixed by Shige)
Como iré actualizando los métodos según haya alguno que supere a otro o, simplemente, porque habéis encontrado mejores alternativas y me las haréis llegar, haré más lecciones al respecto de la integración de Obsidian con Anki o, en una misma lección, las agruparé todas, ya veremos cómo se hará.
Crearé una bóveda nueva en Obsidian para que no me dé ningún tipo de problema, porque en mi bóveda principal se me crashea y congela la bóveda por el addon.
Conexión Anki-Obsidian manual
Archivos .md y .txt
Exportación desde Obsidian a Anki
- Crear una nota de Obsidian
- Cada fila será una nueva tarjeta
- Primero tendremos el anverso y, separado por un
;
, el reverso - Exportamos el archivo MarkDown (
.md
)- Podemos, simplemente, clicar en Mostrar en el explorador del sistema
- El archivo seleccionado es el que importaremos en Anki.
- Importamos a Anki y elegimos "Valores separados por comas" para ello en un tipo de nota
Básico
.- Si elegimos un tipo de nota con más campos, tendremos que crear más contenido separado por comas para que cada uno pertenezca a un campo. En la lección de Excel y Anki se explica esto con más detalle, así como en la lección referente a la importación en Anki.
Obsidian y Anki - Nota de ejemplo para conexión manual
Exportación desde Anki a Obsidian
- Exportar mazo de Anki como
Notas en texto plano (*.txt)
- No incluir ni referencias a HTML ni etiquetas (por lo menos, a mí no me interesaría)
- Colocar el nuevo archivo .txt en la bóveda de Obsidian
- O, directamente, abrir el archivo .txt, copiar y pegar todo el contenido en una nota de Obsidian
- Ya podemos observar estos archivos .txt desde Obsidian
Tablas markdown y CSV
- Edición con
Markdown Table Editor
en Obsidian- Instalar el plugin en Obsidian
Markdown Table Editor
- En la nota Obsidian y Anki - Nota de ejemplo para conexión manual podemos hacer clic en el nuevo icono que nos aparece en el menú lateral izquierdo
- Podemos modificar la nota usando este plugin
- Instalar el plugin en Obsidian
- Exportación con
Table to CSV Exporter
en Obsidian- Instalar el plugin
Table to CSV Exporter
- Paleta de comandos
Table to CSV Exporter: Export table to CSV file
- Buscarlo en el explorador de archivos de nuestro sistema (local)
- Instalar el plugin
- Importamos el archivo CSV a Anki
Obsidian_to_Anki (Export to Anki)
Instalación de los complementos
Con el complemento de Obsidian "Export to Anki", anteriormente llamado "Obsidian_to_Anki", conseguiremos exportar fragmentos de texto dentro de una nota de obsidian que posean el código específico que sirva como detonante para que dichos fragmentos de texto se exporten a Anki. La idea con este complemento sería el poder crear tarjetas más rápidamente y, además, tener la opción de pulsar un botón que nos abra la nota específica de Obsidian cuando estemos repasando una tarjeta, para poder ver su información contextual.
Para instalar Export to Anki: Ajustes
> Plugins de terceros
> Buscar
> Export to Anki
.
El intermediario entre Obsidian y Anki, es decir, la parte necesaria para poder sincronizar Obsidian con Anki es instalar un complemento de Anki llamado AnkiConnect.
Configurar AnkiConnect con el plugin de Obsidian
En Anki, ve a Herramientas
> Complementos
> AnkiConnect
> Configuración
, y cámbialo para que se vea así:
{
"apiKey": null,
"apiLogPath": null,
"webBindAddress": "127.0.0.1",
"webBindPort": 8765,
"webCorsOrigin": "http://localhost",
"webCorsOriginList": [
"http://localhost",
"app://obsidian.md"
]
}
Tras hacer esto, reiniciamos tanto Anki como Obsidian para asegurarnos que no haya ningún tipo de problema. De paso, tras reiniciarlo, os explico que existe ahora un nuevo icono en nuestro menú izquierdo referente a este plugin, con función de escanear nuestra bóveda para poder enviar las tarjetas de Obsidian a Anki.
De paso, comentar que tras reiniciar Obsidian la configuración de este complemento ya está disponible. Ajustes
> Obsidian_to_Anki
. Aquí vemos la nomenclatura y opciones a modificar.
Configuración del plugin de Obsidian
En la configuración del complemento, vemos la sección "Note type settings", que nos muestra los tipos de notas que tenemos en nuestro perfil activo de Anki, es formato tabla. Estos tipos de nota tendrán que escribirse de manera literal en el estilo predeterminado, así como sus campos, en la nota de Obsidian que usaremos como recipiente de nuestras futuras tarjetas. Si tu tipo de nota tiene un acento, como en la palabra "Básico", debes ponerlo en el texto de Obsidian. Cada vez que cambiéis de perfil en Anki, tendréis que regenerar de nuevo la tabla para que se actualicen los tipos de notas (Actions
> Regenerate Note Type Table
). Aunque esto dependerá del estilo que escojamos para crear nuestras tarjetas, pero yo por si acaso aviso.
En la sección "Folder settings" encontraremos todas las carpetas de nuestra bóveda de Obsidian y, además, podremos configurarlas de tal manera que cada carpeta de Obsidian en el que exista la nota de Obsidian creadora de tarjetas se vaya directamente a un mazo predeterminado de Anki, así como la creación de su tarjeta predeterminada (en la bóveda que compartió Luis Letona se ejemplifica esto mejor). Ejemplo en vídeo de cómo Luis Letona lo explicó.
En la sección Syntax Settings es donde encontramos la nomenclatura y sintaxis específica que tendremos que poner en nuestra nota de Obsidian para que ese intermediario que hemos instalado, AnkiConnect, sepa qué partes de texto tiene que coger y qué debe hacer con ellas.
De manera predeterminada están rellenados así estos campos:
- START:
- END:
- STARTI:
- ENDI:
- TARGET DECK: mazo de Anki de destino.
- FILE TAGS:
- DELETE: borrar una nota en Anki desde Obsidian.
- FROZEN: campos congelados.
Pero yo recomiendo este estilo más abreviado:
De paso, comento, que esto solo se utiliza con el estilo predeterminado, sin Regex, del plugin. Ya veremos en qué se diferencian.
En la sección de Defaults, encontramos:
- Tag - la etiqueta que van a poseer todas las tarjetas creadas desde Obsidian con el respecto complemento.
- Deck - el mazo por defecto en el que van todas las tarjetas producidas por este script. Sobreescrito por TARGET DECK, es decir, si nosotros en TARGET DECK no hemos especificado a dónde irán dichas tarjetas, irán a este mazo predeterminado para ello.
- CurlyCloze - solo se debe activar cuando se creen tarjetas con respuesta anidada.
- GUI - le permite activar/desactivar la GUI del script
- ID Comments - Alterna si los IDs de las tarjetas se envuelven o no en un comentario HTML
- Add file link: así cada tarjeta creada desde Obsidian tendrá un enlace a la sección de la nota donde se encuentra dicho código con el que se creó. Más adelante veremos que así podemos clicar en un botón dentro de dicha tarjeta y que se nos abra obsidian con la correspondiente nota.
Creación de flashcars y estilos
Intro
Vamos a crear una nota en Obsidian para que sirva como recipiente del texto que será usado para crear flascards en Anki.
Existen varios estilos con su sintaxis propia. Distinguimos los estilos en 2 grandes grupos.
- Estilo Predeterminado
- Marcos, del canal Emowe, hizo un vídeo tutorial solo explicando este método porque es el que más le gusta, gusto que comparte con Luis Letona, ya que este estilo permite crear tarjetas con varios campos. El método de regex te limita a dos campos prácticamente: anverso y reverso. Y yo trabajo y necesito usar varios campos actualmente. Y varios tipos de nota o flashcard. Además, puedes quitar versátilmente los campos que quieras en la tarjeta que vas a crear.
- Estilos con Regex ("Regular expression")
- Estilo RemNote
- Sintaxis (regex) ► https://github.com/Pseudonium/Obsidian_to_Anki/wiki/RemNote-single-line-style
- La ventaja es que usa el mínimo de caracteres intrusivos, solo usa doble dos puntos para separar pregunta y respuesta (similar a la forma como se usa en la app RemNote), lo cual lo hace práctico. La desventaja es que no permite hacer multilínea (a menos que se use un código HTML "br" como separador de líneas, ello lo vuelve menos práctico). Otro problema mayor, es que traería un conflicto con algunos plugins que usan los doble dos puntos para sus funcionalidades: Por ejemplo, el plugin Dataview, en el caso de usar campos inline, o con el plugin ExcaliBrain. Recomendación: usar
:::
en lugar de::
para evitar los problemas de incompatibilidad de los campos al usar OTA (se usa para los metadatos en las notas de Obsidian)
- Estilo Neuracache
- Sintaxis (regex) ► https://github.com/Pseudonium/Obsidian_to_Anki/wiki/Neuracache-flashcard-style
- La ventaja es que siempre hace uso de una etiqueta (#flashcard, pero puede modificarse) que también ayuda en la búsqueda de esa misma flashcard dentro de Obsidian. Otra ventaja es que permite multilínea, (varias filas de respuestas) y no trae conflicto con el uso de plugins como Dataview. La desventaja es que la etiqueta que elijas para este estilo ya no podrás usarla para otra cosa que no sea la creación de flashcards.
- Estilo Cloze Paragraph con habilitación de CurlyCloze
- Sintaxis (regex) ► https://github.com/Pseudonium/Obsidian_to_Anki/wiki/Cloze-Paragraph-style
- La ventaja, a diferencia de los otros estilos, es que puedes crear varias flashcards casi al mismo tiempo y dentro de su contexto. Es lo que llamamos "oraciones incompletas". Activar CurlyCloze lo hace más práctico, pues nos permitirá usar solo llaves ({}) para crear los clozes. La desventaja es que ya nunca más deberás usar las llaves para otra cosa que no sea la creación de flashcards tipo cloze.
- Estilo "Callout"
- Sintaxis (regex) ► https://github.com/Pseudonium/Obsidian_to_Anki/issues/332
- La ventaja es el uso de los callouts como herramientas de active recall coloridos (es el estilo con mejor resultado estético) mediante el uso de su contenido colapsable, plegable o "foldable" (es más interactivo). Otra ventaja es que permite multilínea, (varias filas de respuestas). Una pequeña desventaja es que se tiene que escribir un poco de código (> [!anki]-) para activar este estilo, pero es mínimo.
- Uso del plugin Multi-Column Markdown para separar en columnas
- Estilo RemNote
- Observaciones:
- Los estilos Neuracache y Callout pueden usarse con varios tipos de flashcards (con dos campos) si se modifica una parte de su sintaxis. El estilo RemNote teóricamente puede hacerlo también, pero modificar su sintaxis puede resultar más limitado.
- El estilo cloze admite los tipos de flashcards solo de este tipo o sus variantes, siempre que tengan la palabra "cloze" en el nombre del tipo de flashcard
- ¿Conflicto con otros plugins? Se reporta que, sea el estilo que se use, puede colgarse o demorarse mucho la sincronización si se usa el plugin Excalidraw, por lo que no recomiendo su uso junto con Obsidian to Anki ► https://github.com/Pseudonium/Obsidian_to_Anki/issues/350. Por deducción, ya no se recomendaría el uso de plugins que hacen uso de Excalidraw como Excalibrain.
Estilo Neuracache
El estilo Neuracache es que usaremos por su simpleza y naturalidad. Para ello, nos iremos a esta página y copiaremos el siguiente código en la sección Custom Regexp del tipo de nota básico:
((?:[^\n][\n]?)+) #flashcard ?\n*((?:\n(?:^.{1,3}$|^.{4}(?<!<!--).*))+)
Cabe destacar que si quieres poner otro tipo de etiqueta en vez de #flashcard
, solo que en la tabla con los tipos de notas del complemento lo debes reflejar así. Lo ideal sería poner subetiquetas a esta etiqueta madre para diferenciar entre tipos de nota, por ejemplo: flashcard/basica
o flashcard/reversa
.
Ahora conseguiremos crear tarjetas básicas y tarjetas básicas con respuesta invertida con este formato:
Pregunta 1 #flashcard/basico
Respuesta 1
Pregunta 2 #flashcard/reversa
Respuesta 2
Sincronizamos Obsidian con Anki (icono) y ya estaría.
Para el tipo de nota respuesta anidada o cloze debemos copiar el código ((?:.+\n)*(?:.*{.*)(?:\n(?:^.{1,3}$|^.{4}(?<!<!--).*))*)
y metemos dicho fragmento de código en la tabla de tipos de nota. Recordad ahora activar la función de CurlyCloze para que lea las respuestas anidadas. Con una llave {}
ahora creamos el hueco.
Por ejemplo:
Texto tipo respuesta {anidada}
Podemos crear tarjetas desde nuestras notas con texto a estudiar tarjetas Anki rompiendo un poco la estructura de dicha nota.
Estilo Callout
Regex line: (?:\> \[!anki\]-) ([^\n]+)\n(.+(?:\n(?:^.{1,3}$|^.{4}(?<!<!--).*))*)
Se pone en el tipo de nota que queramos. Luego, escribimos:
> [!anki]- Pregunta con callout
> Respuesta
Estilo Predeterminado
En mayo de 2024 Luis Letona me confesó que era el estilo que más usaba por no verse limitado a 2 campos, anverso y reverso, usando cualquier estilo con regex.
Se crean tarjetas simplemente escribiendo "START" y "END", o como hayamos configurado el plugin, pues, por ejemplo, Luis Letona me dio una gran idea y es que él usa en vez de "START" y "END" usa llaves: {{{
y }}}
.
Recordad que para saber si las tarjetas se han creado en Anki, veremos el identificador antes del activador END, esto, aunque me repita, es importante.
Mazos, etiquetas y archivos multimedia
Si en el YAML de nuestra nota de Obsidian escribimos los metadatos DECK
y TAGS
conseguiremos elegir el mazo y las etiquetas de las tarjeta de dicha nota de Obsidian. Recordad añadir ::
si queréis submazos o subetiquetas. Sobre todo para el estilo NeuraCache.
DECK:
TAGS:
Se soporta el formateo de las tarjetas y la adición de archivos multimedia.
Usar Dataview para ver las etiquetas
```dataview
list
FROM #flashcard
```
Etiquetas de Anki
¿Cómo hacer que Obsidian reconozca doble dos puntos dentro de su propio sistema de tags? Es un problema de Obsidian, no del plugin ni de Anki. La pregunta iría mejor en el foro de Obsidian. Yo no sé cómo resolverlo, por eso prefiero la forma "Tags: #Padre::hijo
" no en propiedades sino en las flashcads individuales. Ello reconoce la jerarquía en Anki, pero solo las tags de jerarquía superior en Obsidian, es la mejor posibilidad Luis Letona ha encontrado.
Enlaces desde Anki a Obsidian con botón
Añadir enlaces desde Anki a Obsidian
- Usaremos para ello el addon de Anki Add Hyperlink (318752047)
- Copiamos la URL de la nota de Obsidian
- Clic en el icono de Add Hyperlink en Anki y rellenar los campos pertienentes
- Se verá así:
- !500
Creación de un botón predeterminado
- En Anki:
<button>Abrir en {{Obsidian}}</button>
en el reverso- crear el campo
{{Obsidian}}
en nuestro tipo de nota para alojar ahí nuestra URL de la nota de Obsidian.
- En Obsidian:
- En el plugin Obsidian to Anki
- En el plugin Obsidian to Anki
Ankiweb, Custom Frames, Quick Add y Power Search
Vídeo de Luis Letona a partir del minuto pertinente.
Para atajos de teclado para crear nuestras tarjetas más rápidamente y buscar con power search nuestras flashcards.
- Uso de Ankiweb dentro de Obsidian
- Crear un acceso directo con Custom Frames
- Uso de Ankiweb dentro de Obsidian con Quick Add
- Colocar Quick Add en la cabecera del título con Customizable Page Header and Title Bar
- Acceso directo de Ankiweb con Quick Add
- ⭐ Abrir Ankiweb
- Macro Ankiweb
- Comandos
- Dividir verticalmente
- Custom Frames: Open Ankiweb
- Comandos
- Macro Ankiweb
- ⭐ Abrir Ankiweb
- Creación de flashcards con Quick Add
- Creación de flashcards para estilo Callout
- 🎴 Crear flashcard
- Macro Crear flashhcard en Anki
- Crear pregunta (captura)
- Formato: > [!anki]- {{VALUE}}
- Crear respuesta (captura)
- Formato: (un salto de línea) {{VALUE}} (un salto de línea)
- Crear pregunta (captura)
- Macro Crear flashhcard en Anki
- 🗑️ Eliminar flashcard de Anki
- Macro Eliminar flashcard de Anki
- Eliminar flashcard (captura)
- Formato: (dos saltos de línea) DELETE
- Eliminar flashcard (captura)
- Macro Eliminar flashcard de Anki
- 🎴 Crear flashcard
- Creación de flashcards para estilo Callout
- Búsqueda de flashcards dentro de Obsidian con Power Search
- Visualización en la barra lateral
Comentar, de paso, que si se te ocurre renombrar, aumentar o eliminar campos en un tipo de nota de Anki que se esté usando por el plugin Obsidian to Anki, suele existir el problema de que el enlace de Obsidian de la flaschard de Anki se te puede mover a otro campo o, directamente, no aparecer. Como me comentar Luis Letona, realizó varios intentos para solucionar este problema que en la lección os muestro, pero el problema persistía. A veces se resolvía después de varios intentos. Otras veces le pareció más práctico empezar de nuevo, esto es, desinstalar el plugin y luego con el plugin recién instalado sin modificación alguna volver a colocar el campo definido para el enlace de Obsidian y otro para los encabezados (context) obviamente después de ya haber definido todo en anki. Me comentó, además, que la modificaciones en la plantilla de las flashcards como html, javascript, css no me han dado problema alguno en lo absoluto y desde entonces vive en paz con el plugin. Y ya, si se ve veo en la necesidad de modificar campos, mejor creo un nuevo tipo de flashcard y luego lo invoco en obsidian, sin regex.
PD: muchas gracias a Luis Letona por su tiempo para ayudarme a crear esta lección.
MÓDULO 12 - Integración de Anki con otras apps - Anki Macrocurso
Recursos
- Bibliografía
- AnkiConnect - AnkiWeb
- Clean Anki flashcards you can flip in Obsidian! CSS + Obsidian to Anki + Admonition plugin y https://github.com/jeffchiou/obsidiflip
[[MÓDULO 12 - Integración de Anki con otras apps - Anki Macrocurso