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 ajustabaseenvite.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.ymlbuildará 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 devinicia entorno de desarrollo.npm run buildbuild producción.npm run previewsirve build.npm run testejecuta 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.jsonexamples/full-25-fields.jsonexamples/media.jsonexamples/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).