Sintaxis de MemoScript
Un lenguaje basado en YAML para escribir tarjetas de memoria de forma rápida y expresiva.
MemoScript es una sintaxis YAML simple para crear tarjetas de memoria. Cada archivo es un array YAML de objetos de tarjeta. MemoScript admite cuatro tipos de tarjeta:
- Básica — un par pregunta-respuesta con frente y dorso
- Reversible — una tarjeta básica que también genera una versión invertida
- Cloze — completar el espacio en blanco con
{{marcadores}} - Opción Múltiple (MCQ) — una pregunta con opciones seleccionables
Ejemplo rápido
¿Cuál es la capital de Francia?
París
Hola
Hello
La mitocondria es la central energética de la célula
mitocondria
¿Cuál es el planeta más grande?
Reglas generales
- Un archivo MemoScript debe ser un array YAML (cada elemento comienza con
-). - El tipo de tarjeta se detecta automáticamente a partir de los campos presentes.
- Prioridad de detección: campo
cloze→ campochoices→front/back(conreversibleopcional). - Todos los valores de cadena se recortan de espacios en blanco iniciales y finales.
- Los campos desconocidos se ignoran — solo los campos reconocidos afectan al tipo de tarjeta.
Tarjetas Básicas
Una tarjeta Básica es el tipo de tarjeta más simple — una pregunta en el frente y una respuesta en el dorso.
Sintaxis
- front: Tu pregunta o enunciado
back: Tu respuestaAlias abreviados
Puedes usar Q/A (o en minúsculas q/a) en lugar de front/back:
- Q: ¿Cuál es la capital de Francia?
A: París
- q: Define la fotosíntesis
a: El proceso por el cual las plantas convierten la luz en energía químicaCampos
| Campo | Tipo | Requerido | Alias |
|---|---|---|---|
front | string | Sí | Q, q |
back | string | Sí | A, a |
Qué crea
Una tarjeta Básica se representa como una tarjeta de dos caras. Durante el estudio, primero ves el lado frente y luego revelas el lado dorso para comprobar tu respuesta.
Reglas de validación
- Tanto
frontcomobackdeben estar presentes y no estar vacíos después del recorte de espacios. - Si
frontfalta o está vacío → error: "Front side cannot be empty" - Si
backfalta o está vacío → error: "Back side cannot be empty" - Si también se establece
reversible: true, la tarjeta se convierte en una tarjeta Reversible.
Pruébalo
¿Cuál es la capital de Francia?
París
Ejemplos
# Sintaxis completa
- front: ¿En qué año terminó la Segunda Guerra Mundial?
back: "1945"
# Abreviado
- Q: ¿Cuánto es 2 + 2?
A: "4"
# Valores de varias líneas
- front: >
Explica la diferencia entre
una pila y una cola.
back: >
Una pila es LIFO (último en entrar, primero en salir).
Una cola es FIFO (primero en entrar, primero en salir).Tarjetas Reversibles
Una tarjeta Reversible es como una tarjeta Básica, pero también crea una segunda tarjeta con el frente y el dorso intercambiados. Esto es útil para vocabulario, traducciones o cualquier par que quieras estudiar en ambas direcciones.
Sintaxis
- front: Término A
back: Término B
reversible: trueEl atajo Q/A también funciona aquí:
- Q: fotosíntesis
A: 6CO₂ + 6H₂O → C₆H₁₂O₆ + 6O₂
reversible: trueCampos
| Campo | Tipo | Requerido | Alias |
|---|---|---|---|
front | string | Sí | Q, q |
back | string | Sí | A, a |
reversible | boolean | Sí | — |
Qué crea
Una entrada YAML produce dos tarjetas de estudio:
- Directa — frente → dorso (igual que una tarjeta Básica)
- Invertida — dorso → frente
Esto significa que escribir una tarjeta reversible te da el doble de material de estudio.
Reglas de validación
- Las mismas reglas que las tarjetas Básicas — tanto
frontcomobackdeben estar rellenos. - El campo
reversibledebe estar establecido explícitamente atrue. - Si
reversibleestá ausente o esfalse, la tarjeta se trata como una tarjeta Básica.
Pruébalo
Hola
Hello
Ejemplos
# Vocabulario de idiomas
- front: Hola
back: Hello
reversible: true
# Capitales
- front: Berlín
back: Alemania
reversible: true
# Símbolos químicos
- Q: Fe
A: Hierro
reversible: trueTarjetas Cloze
Una tarjeta Cloze oculta una o más palabras dentro de {{dobles llaves}}. Durante el estudio ves la oración con espacios en blanco y debes recordar el texto oculto.
Sintaxis
- cloze: La {{mitocondria}} es la central energética de la célulaMúltiples espacios en blanco
Puedes tener tantos espacios en blanco como quieras en una sola tarjeta:
- cloze: "{{París}} es la capital de {{Francia}}"Con opciones (cloze de opción múltiple)
Opcionalmente puedes proporcionar opciones de respuesta para cada espacio en blanco. El primer elemento de cada array debe coincidir exactamente con el espacio en blanco:
- cloze: El {{sol}} es una {{estrella}}
options:
- [sol, luna, planeta]
- [estrella, planeta, asteroide]Campos
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
cloze | string | Sí | Texto con {{marcadores}} para los espacios en blanco |
options | string[][] | No | Opciones de respuesta por cada espacio en blanco |
Qué crea
Una tarjeta Cloze muestra la oración completa con las partes {{marcadas}} reemplazadas por espacios en blanco. Debes rellenar cada espacio en blanco para completar la tarjeta.
Cuando se proporcionan options, cada espacio en blanco se presenta como un selector de opción múltiple en lugar de un campo de texto libre.
Reglas de validación
- El texto de
clozedebe estar relleno después del recorte de espacios. - Debe contener al menos un
{{marcador}}— error: "Cloze card must have at least one {{hidden}} marker" - Si se proporcionan
options:- Deben ser un array de arrays (
string[][]). - El número de arrays de opciones debe coincidir exactamente con el número de espacios en blanco — error si no coinciden.
- Cada array de opciones debe tener al menos 2 elementos (la respuesta correcta más al menos un distractor).
- El primer elemento de cada array debe coincidir exactamente con el texto del espacio en blanco correspondiente.
- Deben ser un array de arrays (
Pruébalo
La mitocondria es la central energética de la célula
mitocondria
Ejemplos
# Un solo espacio en blanco
- cloze: La {{mitocondria}} es la central energética de la célula
# Múltiples espacios en blanco
- cloze: "{{Newton}} publicó los Principia en {{1687}}"
# Con opciones para cada espacio en blanco
- cloze: La {{mitocondria}} es la {{central energética}} de la célula
options:
- [mitocondria, cloroplasto, ribosoma]
- [central energética, fábrica, motor]
# Texto más largo
- cloze: >
En {{1969}}, {{Neil Armstrong}} se convirtió en la primera
persona en caminar sobre la {{Luna}}.Tarjetas de Opción Múltiple
Una tarjeta MCQ presenta una pregunta con una lista de opciones. Las respuestas correctas se marcan con [corchetes].
Sintaxis
- front: ¿Cuál es el planeta más grande?
choices:
- Tierra
- Marte
- [Júpiter]
- SaturnoMúltiples respuestas correctas
Encierra entre corchetes cada opción correcta:
- front: Selecciona todos los números primos
choices:
- [2]
- 4
- [5]
- 6
- [7]Campos
| Campo | Tipo | Requerido | Alias |
|---|---|---|---|
front | string | Sí | Q, q |
choices | string[] | Sí | — |
Cómo funcionan las respuestas correctas
- Una opción escrita como
[Jupiter]se marca como correcta. Los corchetes se eliminan del texto mostrado — el estudiante ve "Jupiter", no "[Jupiter]". - Cualquier opción no envuelta en corchetes es un distractor incorrecto.
- Puedes marcar una o varias opciones como correctas.
Qué crea
Una tarjeta MCQ muestra la pregunta en la parte superior y las opciones como elementos seleccionables. El estudiante elige una (o más) y la tarjeta revela qué respuestas son correctas.
Reglas de validación
front(oQ/q) debe estar relleno — error: "Front side cannot be empty"choicesdebe ser un array con al menos 2 elementos — error: "MCQ card must have at least 2 choices"- Al menos una opción debe estar envuelta en
[corchetes]— error: "MCQ card must have at least one correct answer marked with [brackets]"
Pruébalo
¿Cuál es el planeta más grande?
Ejemplos
# Una sola respuesta correcta
- front: ¿Cuál es el símbolo químico del agua?
choices:
- CO2
- [H2O]
- NaCl
- O2
# Múltiples respuestas correctas
- front: ¿Cuáles de estos son lenguajes de programación?
choices:
- HTML
- [Python]
- [JavaScript]
- CSS
# Con el atajo Q
- Q: ¿Quién pintó la Mona Lisa?
choices:
- Miguel Ángel
- [Leonardo da Vinci]
- Rafael
- Donatello