Tabla de Contenidos
SilverBullet
Aplicación web para tomar notas utilizando Markdown.
Características
- Almacena las notas en formato Markdown dentro de una carpeta en tu servidor.
- Optimización para teclado: navega, ejecuta comandos o utiliza operaciones comunes de edición de texto.
- Previsualización en vivo.
- Enlaces entre páginas: SilverBullet soporta enlaces entre páginas al estilo wiki. Los enlaces entrantes se indexan y aparecen como menciones al final de las páginas enlazadas, proporcionando así enlaces bidireccionales.
- Acceso web: SilverBullet es una aplicación web y por tanto accesible desde cualquier lugar donde haya un navegador (moderno) disponible.
- Local First/PWA: SilverBullet está construida como una aplicación “Local First / PWA” que mantiene una copia de tu contenido en la base de datos local (IndexedDB) de tu navegador, sincronizándose con el servidor cuando hay conexión de red.
- Puede extenderse mediante Lua.
Instalación
Docker
services: silverbullet: image: zefhemel/silverbullet restart: unless-stopped environment: - SB_USER=admin:admin volumes: - ./space:/space ports: - 3000:3000
Terminología
Espacios
En SilverBullet, un espacio (space) es un directorio en nuestro disco con ficheros. Cada fichero representa una página.
Páginas
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).
Menciones enlazadas
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.
Etiquetas
Las páginas se pueden etiquetar de dos maneras:
- Añadir las etiquetas en la primera línea. Por ejemplo,
#recetas,#ejercicios,#programación. - Usar frontmatter, que permite añadir metadatos a las páginas.
Si usamos la opción de frontmatter, escribiríamos:
--- tags: recetas, ejercicios, programación ---
Atajos de teclado
Edició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 → 🎉 |
Navegación
| Combinación | Acción |
|---|---|
| Ctrl + K | Abre el selector de páginas |
Comandos slash
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 |
Extender funcionalidades con Lua
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.
Local first
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.

