Aplicación web para tomar notas utilizando Markdown.
services: silverbullet: image: zefhemel/silverbullet restart: unless-stopped environment: - SB_USER=admin:admin volumes: - ./space:/space ports: - 3000:3000
En SilverBullet, un espacio (space) es un directorio en nuestro disco con ficheros. Cada fichero representa una página.
Cada uno de los ficheros que creamos en SilverBullet es una página. Las páginas se almacenan dentro de un espacio.
Cada página se guarda en el sistema de ficheros como archivo .md (texto plano con formato Markdown).
En la parte inferior de cada página aparecerá un listado de páginas que la enlazan (Linked Mentions), es decir, si una página tiene un enlace a otra, en la otra aparecerá en este listado la primera página.
Las páginas se pueden etiquetar de dos maneras:
#recetas, #ejercicios, #programación.Si usamos la opción de frontmatter, escribiríamos:
--- tags: recetas, ejercicios, programación ---
Cuando estamos editando una página, podemos usar algunos atajos de teclado para dar formato…
| Combinación | Acción |
|---|---|
| Ctrl + I | Cursiva |
| Ctrl + B | Negrita |
| : + letras | Abre el selector de emoticonos. Ejemplo: :party_popper → 🎉 |
| Combinación | Acción |
|---|---|
| Ctrl + K | Abre el selector de páginas |
Los comandos “slash” son métodos rápidos de realizar algunas tareas repetitivas.
Durante la edición, cuando escribamos la barra (/, “slash” en inglés), se nos mostrará un menú contextual con posibles “comandos” para añadir formato Markdown o alguna otra cosa de forma rápida.
| Comando | Resultado |
|---|---|
/h1 | |
/h2 | |
/h3 | |
/h4 | |
/h4 | |
/today | Inserta la fecha actual (formato AAAA-MM-DD) |
/tomorrow | Inserta la fecha de mañana (formato AAAA-MM-DD) |
/yesterday | Inserta la fecha de ayer (formato AAAA-MM-DD) |
/table | |
/task | |
/code |
SilverBullet permite el uso de Lua (una versión adaptada por el propio desarrollador de SilverBullet llamada Space Lua) para operaciones avanzadas en nuestras páginas.
Podemos poner expresiones de Lua dentro de:
${}
Por ejemplo:
${10 + 2}
Cuando el cursor abandone esa expresión, se evaluará y la previsualización mostrará el resultado.
Podemos crear widgets. De hecho, con SilverBullet ya vienen algunos, como por ejemplo para incrustar vídeos de YouTube:
${embed.youtube "https://www.youtube.com/watch?v=mik1EbTshX4"}
Si queremos mostrar un listado de páginas con cierta etiqueta:
${query[[
from index.tag "book"
select {$title=_.name, author=_.author}
]]}
La expresión anterior mostrará en la página “index” una tabla con todas las páginas etiquetas con book y mostrará columnas con el título del libro y el autor. Para que esto funcione, las páginas con las etiquetas book deben tener un código de frontmatter con los atributos title, author y tags.
Cuando trabajamos con SilverBullet, el navegador descarga todo nuestro espacio, así que podemos seguir editando nuestras páginas sin conexión. Cuando se recupere la conexión con el servidor, se subirán los cambios. Este escenario es muy útil cuando estamos desde el móvil.
Sabemos que estamos sin conexión con el servidor porque la barra superior pasará de fondo gris a fondo amarillo.