Repository navigation
Documentación
English · Español
Proxy Builder es una aplicación de escritorio (Tauri 2 + Rust + React/TypeScript) para montar decks proxy de Magic: The Gathering y exportarlos a un PDF listo para imprimir. Este wiki es la referencia para entender, ampliar, depurar y rehacer la app. La presentación para usuarios es el README.md del repositorio.
Cada página describe el código tal como está ahora, con rutas y símbolos reales, e intenta explicar por qué las cosas están hechas así. Lo que no se ha comprobado en el código va marcado como Deducido:.
| Si quieres… | Lee |
|---|---|
| Usar la app | Guía de usuario |
| Compilarla y ejecutarla | Preparación del entorno de desarrollo |
| Entender todo el sistema en diez minutos | Arquitectura |
| Conocer las reglas que debe cumplir todo cambio | Convenciones |
| Buscar un término | Glosario |
| Saber qué hace cada fichero | Índice de ficheros |
- Preparación del entorno de desarrollo: requisitos, política de pnpm, comandos, bindings, hooks.
-
Tests y CI: vitest, tests de cargo, tests dorados, cada puerta
pnpm check*, los workflows del CI. - Versiones y actualizaciones automáticas: el script de release, el modelo de firma, el actualizador de la app.
- Convenciones: reglas de arquitectura, diseño, i18n y código, con su razón.
- Arquitectura: capas, límites de proceso, ubicación de los datos, diagramas.
-
IPC y manejo de errores: todos los comandos,
AppError, bindings, trabajos largos y eventos. -
Capa de aplicación Rust: arranque,
AppState, el protocolopbimg://, miniaturas, configuración de Tauri.
-
Modelo del mazo:
Deck,DeckCard, orígenes, marcas, ajustes de impresión. - Almacenamiento y blobs: esquema SQLite y migraciones, almacén de blobs, caché, carpetas de datos.
-
Formato del paquete de mazo: el fichero
.pbdeck. - Biblioteca de mazos: etiquetas, favoritos, notas, portadas y detalles sin conexión.
- Parseo de la lista del mazo: formatos aceptados, el parser, el exportador de listas, importación de Archidekt.
- Integración con Scryfall: cliente, resolución, idiomas, búsqueda, detección de fichas.
- Fuentes externas: las fuentes permitidas que no son Scryfall (Cockatrice, magicthegathering.io, MTGJSON).
- Identificación de cartas y OCR: vincular imágenes propias con la carta real, OCR, vinculación en bloque.
-
Motor de maquetación:
PagePlan, la geometría única de pantalla y papel. - Imagen y PDF: encuadre, sangrado, esquinas, el escritor de PDF.
- Exportación: el trabajo de exportación, presets, exportación de la lista.
- Vista previa en vivo: las hojas, las casillas, arrastrar y soltar, desmontaje de imágenes.
- Estadísticas: estadísticas del deck, precios, probabilidades.
- Visión general del diseñador: conceptos y encaje en la app.
-
Motor del diseñador: el motor de pintado (
proxy-core::diseno). - Composición del diseñador: cartas de varias caras, layouts, habilidades, cuerpos.
- Packs de marcos: el formato de pack, packs integrado, Original y descargables, letras libres.
- Capa de aplicación del diseñador: la parte de Tauri.
- Interfaz del diseñador: la vista «Diseñar».
- Diálogo Editar carta: «Editar carta».
-
Motor de la mesa: el motor puro de la mesa de juego (
crates/mesa): modelo, acciones, azar, visibilidad, deshacer y repetición, equipos, orden de turnos, muertes, encuentros al mejor de y el resumen de una partida. - Mesa de juego: la pestaña «Jugar»: la sesión alrededor del motor, la preparación de imágenes, guardar y seguir, el tapete, el tablero, varios jugadores (partida local, disposiciones, equipos, formatos, muertes), el arrastre, los menús, los atajos, el registro y el chat, el resumen del final, el historial y la repetición, los sonidos y los ajustes.
- Juego en línea: las partidas en red: P2P con iroh con un host e invitados, el código directo, el servidor de salas (identidad sin cuentas, playgroups, salas, elección y migración del host), las imágenes por la red, ausentes y expulsiones, el relé propio y el despliegue.
- Arquitectura del frontend: estructura, componentes compartidos, configuración de compilación.
- Stores de estado: los stores de zustand y su flujo de datos.
-
Internacionalización:
t(), diccionarios, los tres tipos de idioma. - Temas y skins: temas, skins, materiales, temas de tweakcn.
- Ajustes y shell: el shell de la app y el diálogo de ajustes.
- Tutoriales: el recorrido guiado de cada pantalla y el botón de ayuda.
- Panel de la lista del mazo, Añadir carta y variantes, Explorador de sets: los paneles y diálogos para conseguir cartas.
El inglés es el idioma de referencia. Cada página tiene su versión en español, con su título en español como nombre de página (sin prefijos), y una barra con el enlace al otro idioma justo bajo el título. GitHub no tiene selector de idioma para los wikis, así que el cambio se hace con esa barra y con el enlace de la barra lateral.
El wiki forma parte de lo que significa «terminado»: cualquier cambio que añada, modifique o quite una función, comando, ajuste, formato, migración, regla de arquitectura o paso de la release actualiza las páginas afectadas en todos los idiomas en el mismo trabajo. Convenciones:
- Ficheros planos
Nombre-Pagina.md; enlaces[Texto](Nombre-Pagina)sin.md; el nombre de la versión en español es su título traducido, con guiones (Guía-de-usuario). - Cada página empieza con un resumen de una a tres frases y acaba con una lista «Véase también».
- Rutas y símbolos entre comillas invertidas, comprobados contra el código; lo dudoso va marcado como Deducido: (en inglés, Inferred:).
- Mermaid para los diagramas. Sin secretos, sin rutas absolutas locales, sin fechas ni nombres de persona.
- Las páginas nuevas se enlazan desde Documentation, desde Documentación y desde la barra lateral (con el enlace de cada idioma en la misma línea).
Use and build · Uso y desarrollo
- User-Guide · Guía de usuario
- Development-Setup · Preparación del entorno de desarrollo
- Testing-and-CI · Tests y CI
- Releases-and-Auto-Updates · Versiones y actualizaciones automáticas
- Conventions · Convenciones
Architecture · Arquitectura
- Architecture · Arquitectura
- IPC-and-Error-Handling · IPC y manejo de errores
- Rust-App-Layer · Capa de aplicación Rust
Data · Datos
- Deck-Model · Modelo del mazo
- Storage-and-Blobs · Almacenamiento y blobs
- Deck-Package-Format · Formato del paquete de mazo
- Deck-Library · Biblioteca de mazos
Getting cards · Conseguir cartas
- Decklist-Parsing · Parseo de la lista del mazo
- Scryfall-Integration · Integración con Scryfall
- External-Sources · Fuentes externas
- Card-Identification-and-OCR · Identificación de cartas y OCR
Layout, images, PDF · Maquetación, imagen y PDF
- Layout-Engine · Motor de maquetación
- Imaging-and-PDF · Imagen y PDF
- Export · Exportación
- Live-Preview · Vista previa en vivo
- Statistics · Estadísticas
Card designer · Diseñador de cartas
- Designer-Overview · Visión general del diseñador
- Designer-Engine · Motor del diseñador
- Designer-Composition · Composición del diseñador
- Frame-Packs · Packs de marcos
- Designer-App-Layer · Capa de aplicación del diseñador
- Designer-UI · Interfaz del diseñador
- Card-Editor-Dialog · Diálogo Editar carta
Game table · Mesa de juego
Frontend · Frontend
- Frontend-Architecture · Arquitectura del frontend
- State-Stores · Stores de estado
- Internationalization · Internacionalización
- Themes-and-Skins · Temas y skins
- Settings-and-Shell · Ajustes y shell
- Tutorials · Tutoriales
- Decklist-Panel · Panel de la lista del mazo
- Add-Card-and-Variants · Añadir carta y variantes
- Set-Browser · Explorador de sets
Reference · Referencia