# recall Sistema de notas personal con captura rápida, búsqueda inteligente y conexiones entre notas. ## Uso ### Quick Add (Captura Rápida) Crea notas al instante con el shortcut `Ctrl+N` o desde el botón de captura rápida en el header. Sintaxis: ``` [tipo:][título] #tag1 #tag2 ``` **Tipos disponibles:** - `cmd:` - Comando - `snip:` - Snippet de código - `dec:` - Decisión - `rec:` - Receta - `proc:` - Procedimiento - `inv:` - Inventario **Ejemplos:** ``` cmd: git commit -m 'fix: bug' #git #version-control snip: useState hook #react #hooks dec: usar PostgreSQL #backend #database rec: Pasta carbonara #cocina #italiana ``` ### Tipos de Notas | Tipo | Descripción | Campos | |------|-------------|--------| | `command` | Comandos CLI | Comando, Descripción, Ejemplo | | `snippet` | Código reutilizable | Lenguaje, Código, Descripción | | `decision` | Decisiones importantes | Contexto, Decisión, Alternativas, Consecuencias | | `recipe` | Recetas | Ingredientes, Pasos, Tiempo | | `procedure` | Procedimientos | Objetivo, Pasos, Requisitos | | `inventory` | Inventario | Item, Cantidad, Ubicación | | `note` | Nota libre | Contenido | ### Dashboard (Página Principal) El dashboard muestra diferentes secciones según tu actividad: - **Recientes** - Últimas notas modificadas - **Más usadas** - Notas que consultas frecuentemente - **Comandos recientes** - Notas de tipo comando - **Snippets recientes** - Notas de código - **Según tu actividad** - Notas relacionadas con tu historial de navegación ### Modo Trabajo El botón de **Modo Trabajo** en el header (icono de monitor/ojo) es un toggle que indica cuando estás en modo de trabajo activo. Cuando está activado, el sistema: - Puede influir en el ranking de búsqueda priorizando notas de trabajo - Refleja visualmente que estás enfocado en una tarea Se puede activar/desactivar desde el header o desde Configuración. ### Command Palette Accede rápidamente a cualquier sección o acción con `Ctrl+K` (Windows) o `Cmd+K` (Mac): - Navegación rápida a cualquier página - Crear nueva nota - Acceso directo a Configuración ### Links entre Notas Crea links a otras notas usando `[[nombre-de-nota]]`: ``` Ver también: [[Configuración de Docker]] ``` Los **backlinks** (notas que referencian la nota actual) se muestran automáticamente en la vista de detalle. ### Conexiones de Notas Cada nota muestra diferentes tipos de conexiones: - **Notas relacionadas** - Basadas en tags compartidos, tipo y contenido similar - **Backlinks** - Notas que linkean a esta nota - **Outgoing links** - Links salientes de esta nota hacia otras - **Co-usadas** - Notas que sueles ver juntas ### Búsqueda - Búsqueda por título y contenido - Búsqueda fuzzy (tolerante a errores) - Filtros por tipo y tags - Favoritos y notas pinned influyen en el ranking ### Captura Externa (Bookmarklet) Desde Configuración > Capturar web, puedes crear un marcador que permite capturar contenido de cualquier página web: 1. Arrastra el botón "Capturar a Recall" a tu barra de marcadores 2. Cuando estés en una página web, haz clic en el marcador 3. Confirma y guarda directamente en tus notas El marcador captura: título de la página, URL y texto seleccionado. ### Drafts (Borradores) El sistema guarda automáticamente borradores de tus notas mientras escribes. Si cierras accidentalmente la página, al volver se te ofrecer recuperar el borrador. ### Historial de Versiones Cada nota mantiene un historial de versiones. Accede desde el botón de historial en la vista de detalle para ver y restaurar versiones anteriores. ### Backups y Restauración En Configuración > Backups: - **Backup automático** - Se crean backups al cerrar o cambiar de nota (configurable) - **Retención** - Los backups se mantienen por el período indicado (por defecto 30 días) - **Backup manual** - Exporta en cualquier momento ### Exportar e Importar Desde Configuración > Exportar: - **JSON** - Backup completo (recomendado para restaurar) - **Markdown** - Notas en formato MD (ideal para compartir) - **HTML** - Notas en formato HTML (para visualización) **Importar:** - JSON - Restauración de backup - Markdown - Importación de archivos MD ### Atajos de Teclado | Atajo | Acción | |-------|--------| | `Ctrl+N` | Nueva nota rápida | | `Ctrl+K` / `Cmd+K` | Command Palette | | `n` | Nueva nota (desde dashboard) | | `g h` | Ir al Dashboard | | `g n` | Ir a Notas | | `/` | Enfocar búsqueda | | `?` | Mostrar atajos de teclado | ## Development ```bash npm install npx prisma db push npm run dev ``` ## Docker ### Requisitos - Docker - Docker Compose ### Instalación con Docker 1. **Crear la carpeta para la base de datos:** ```bash mkdir -p data ``` 2. **Iniciar la aplicación:** ```bash docker-compose up -d ``` La aplicación estará disponible en `http://localhost:3000` ### Datos - La base de datos SQLite se guarda en `./data/dev.db` - Los datos persisten entre reinicios - Para hacer backup, copia la carpeta `data/` ### Comandos útiles ```bash # Ver logs docker-compose logs -f # Reiniciar docker-compose restart # Detener docker-compose down # Reconstruir (después de cambios) docker-compose up -d --build ``` ## API ### Quick Add ```bash POST /api/notes/quick Content-Type: text/plain cmd: mi comando #tag ``` ### Buscar ```bash GET /api/search?q=docker&type=command ``` ### Tags ```bash GET /api/tags # Listar todos GET /api/tags?q=python # Filtrar GET /api/tags/suggest?title=...&content=... # Sugerencias ``` ## Estructura del Proyecto ``` src/ ├── app/ │ ├── page.tsx # Dashboard │ ├── notes/ │ │ ├── page.tsx # Lista de notas │ │ └── [id]/page.tsx # Detalle de nota │ ├── new/page.tsx # Crear nota │ ├── edit/[id]/page.tsx # Editar nota │ ├── settings/page.tsx # Configuración │ ├── capture/page.tsx # Captura externa │ └── api/ # Rutas API ├── components/ │ ├── dashboard.tsx │ ├── note-list.tsx │ ├── command-palette.tsx │ ├── work-mode-toggle.tsx │ ├── quick-add.tsx │ └── ... ├── lib/ │ ├── work-mode.ts │ ├── search.ts │ ├── related.ts │ ├── backlinks.ts │ ├── usage.ts │ ├── drafts.ts │ ├── backup.ts │ └── ... └── types/ └── note.ts ``` nueva prueba