Proyecto SPA (frontend only) para crear y visualizar un embed de Discord y exportar/ importar JSON compatible.
El proyecto está configurado para desplegarse automáticamente a GitHub Pages cuando haces push a main
.
Pasos:
- Asegúrate de que el repositorio en GitHub se llama
discord-embed-editor
(o ajustabase
envite.config.ts
). - Habilita GitHub Pages en Settings > Pages seleccionando "GitHub Actions" como fuente (la primera vez puede tardar unos minutos tras el primer build).
- Haz push inicial (
git add .
,git commit -m "init"
,git push origin main
). - El workflow
.github/workflows/deploy.yml
buildará y publicará la carpetadist
.
URL esperada: https://<tu-usuario>.github.io/discord-embed-editor/
.
Si cambias el nombre del repo, actualiza la opción base
en vite.config.ts
para que los assets se resuelvan correctamente en Pages.
npm run dev
inicia entorno de desarrollo.npm run build
build producción.npm run preview
sirve build.npm run test
ejecuta tests (vitest).
src/
components/
state/
utils/
styles/
examples/
Utiliza zustand
para exponer métodos: addField, updateField, removeField, reorderField, updateEmbed, importJSON, exportJSON.
Función toDiscordPayload(embed)
devuelve:
{
"embeds": [
{
"title": "...",
"description": "...",
"url": "https://...",
"timestamp": "2025-09-01T12:00:00.000Z",
"color": 16711680,
"footer": { "text": "texto", "icon_url": "https://..." },
"image": { "url": "https://..." },
"thumbnail": { "url": "https://..." },
"author": { "name": "Autor", "url": "https://...", "icon_url": "https://..." },
"fields": [ { "name": "Campo 1", "value": "Valor", "inline": true } ]
}
]
}
description
permanece como markdown crudo.
examples/simple.json
examples/full-25-fields.json
examples/media.json
examples/markdown.json
- Edición inline con doble clic, markdown básico, spoilers clicables.
- Atajos: Ctrl/Cmd+B/I/U.
- Drag & Drop para reordenar fields y añadir bloques desde la paleta.
- Color picker en la barra lateral del embed.
- Validaciones y contadores globales + por bloque/field (resaltado en rojo si excede).
- Export / Import JSON, autosave localStorage, reset.
- Más atajos (code, spoiler toggle, underline dedicados, code block).
- Chips visuales para @everyone y @here editables.
- Mejora ARIA y accesibilidad.
- Tests adicionales (markdown avanzado, drag & drop, export/import roundtrip).