一键导入
blog-a-google-slides
Convierte entradas de blog en presentaciones visuales sorprendentes para Google Slides
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Convierte entradas de blog en presentaciones visuales sorprendentes para Google Slides
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Central Super-Skill that orchestrates all Skill Cells of the Conglomerate. Acts as a single entry point and intelligent router to specialized groups.
Enlace A2A del Grupo Backend. Gestiona la comunicación con otros grupos del Conglomerado.
Líder del Grupo Backend. Planifica y delega tareas de APIs, bases de datos, y arquitectura servidor a los especialistas del grupo.
Enlace A2A del Grupo Frontend. Gestiona la comunicación con otros grupos del Conglomerado.
Líder del Grupo Frontend. Planifica y delega tareas de UI/UX, React, Next.js, y desarrollo cliente a los especialistas del grupo.
Especialista en diseño web responsive y rápido usando Bootstrap 5.x. Enfocado en utilidades, personalización SASS y componentes accesibles.
基于 SOC 职业分类
| name | Blog a Google Slides |
| description | Convierte entradas de blog en presentaciones visuales sorprendentes para Google Slides |
Esta habilidad transforma entradas de blog en presentaciones profesionales y visualmente impactantes para Google Slides. El resultado incluye un script de Google Apps Script listo para ejecutar que genera automáticamente las diapositivas.
Lee y analiza la entrada de blog identificando:
| Elemento | Uso en la Presentación |
|---|---|
| Título principal | Diapositiva de portada |
| Subtítulos/H2 | Diapositivas de sección |
| Párrafos clave | Puntos de contenido |
| Listas | Bullets visuales |
| Citas destacadas | Diapositivas de cita |
| Datos/estadísticas | Diapositivas de impacto visual |
| Conclusiones | Diapositiva de cierre |
Crea una estructura que siga este flujo:
[!IMPORTANT] Las presentaciones deben ser visualmente sorprendentes. Aplica estos principios:
Sugiere una paleta coherente basada en el tema del blog:
const PALETAS = {
tecnologia: {
primario: '#1a73e8', // Azul Google
secundario: '#34a853', // Verde éxito
acento: '#ea4335', // Rojo atención
fondo: '#f8f9fa', // Gris claro
texto: '#202124' // Negro suave
},
negocios: {
primario: '#1e3a5f', // Azul corporativo
secundario: '#c9a227', // Dorado
acento: '#e74c3c', // Rojo
fondo: '#ffffff',
texto: '#2c3e50'
},
creativo: {
primario: '#6c5ce7', // Púrpura vibrante
secundario: '#00cec9', // Turquesa
acento: '#fd79a8', // Rosa
fondo: '#dfe6e9',
texto: '#2d3436'
},
salud: {
primario: '#00b894', // Verde menta
secundario: '#0984e3', // Azul cielo
acento: '#fdcb6e', // Amarillo suave
fondo: '#ffffff',
texto: '#2d3436'
}
};
Genera un script completo que el usuario pueda ejecutar en Google Apps Script:
/**
* Script generado por la habilidad Blog a Slides
* Ejecuta la función crearPresentacion() para generar las diapositivas
*/
function crearPresentacion() {
// Crear nueva presentación
const presentacion = SlidesApp.create('Título de la Presentación');
// Configurar dimensiones (16:9)
const slides = presentacion.getSlides();
// Eliminar diapositiva en blanco inicial
if (slides.length > 0) {
slides[0].remove();
}
// Definir colores del tema
const COLORES = {
primario: '#1a73e8',
secundario: '#34a853',
fondo: '#ffffff',
texto: '#202124'
};
// === DIAPOSITIVA 1: PORTADA ===
agregarPortada(presentacion, COLORES);
// === DIAPOSITIVAS DE CONTENIDO ===
// [Agregar según el análisis del blog]
// === DIAPOSITIVA FINAL ===
agregarCierre(presentacion, COLORES);
Logger.log('Presentación creada: ' + presentacion.getUrl());
return presentacion.getUrl();
}
function agregarPortada(presentacion, colores) {
const slide = presentacion.appendSlide(SlidesApp.PredefinedLayout.BLANK);
// Fondo con gradiente o color sólido
slide.getBackground().setSolidFill(colores.primario);
// Título principal
const titulo = slide.insertTextBox('TÍTULO IMPACTANTE');
titulo.setTop(200).setLeft(50).setWidth(620).setHeight(100);
titulo.getText().getTextStyle()
.setFontFamily('Montserrat')
.setFontSize(48)
.setBold(true)
.setForegroundColor('#ffffff');
titulo.getText().getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
// Subtítulo
const subtitulo = slide.insertTextBox('Subtítulo descriptivo');
subtitulo.setTop(320).setLeft(50).setWidth(620).setHeight(60);
subtitulo.getText().getTextStyle()
.setFontFamily('Open Sans')
.setFontSize(24)
.setForegroundColor('#e8eaed');
subtitulo.getText().getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
}
function agregarDiapositiva(presentacion, titulo, puntos, colores) {
const slide = presentacion.appendSlide(SlidesApp.PredefinedLayout.BLANK);
slide.getBackground().setSolidFill(colores.fondo);
// Título de sección
const tituloBox = slide.insertTextBox(titulo);
tituloBox.setTop(40).setLeft(50).setWidth(620).setHeight(60);
tituloBox.getText().getTextStyle()
.setFontFamily('Montserrat')
.setFontSize(36)
.setBold(true)
.setForegroundColor(colores.primario);
// Puntos de contenido
let yPos = 130;
puntos.forEach((punto, index) => {
const puntoBox = slide.insertTextBox('• ' + punto);
puntoBox.setTop(yPos).setLeft(70).setWidth(580).setHeight(50);
puntoBox.getText().getTextStyle()
.setFontFamily('Open Sans')
.setFontSize(20)
.setForegroundColor(colores.texto);
yPos += 55;
});
}
function agregarCita(presentacion, cita, autor, colores) {
const slide = presentacion.appendSlide(SlidesApp.PredefinedLayout.BLANK);
slide.getBackground().setSolidFill(colores.secundario);
// Cita grande centrada
const citaBox = slide.insertTextBox('"' + cita + '"');
citaBox.setTop(150).setLeft(60).setWidth(600).setHeight(150);
citaBox.getText().getTextStyle()
.setFontFamily('Playfair Display')
.setFontSize(32)
.setItalic(true)
.setForegroundColor('#ffffff');
citaBox.getText().getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
// Autor
const autorBox = slide.insertTextBox('— ' + autor);
autorBox.setTop(320).setLeft(60).setWidth(600).setHeight(40);
autorBox.getText().getTextStyle()
.setFontFamily('Open Sans')
.setFontSize(18)
.setForegroundColor('#e8eaed');
autorBox.getText().getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
}
function agregarCierre(presentacion, colores) {
const slide = presentacion.appendSlide(SlidesApp.PredefinedLayout.BLANK);
slide.getBackground().setSolidFill(colores.primario);
const gracias = slide.insertTextBox('¡Gracias!');
gracias.setTop(180).setLeft(50).setWidth(620).setHeight(80);
gracias.getText().getTextStyle()
.setFontFamily('Montserrat')
.setFontSize(56)
.setBold(true)
.setForegroundColor('#ffffff');
gracias.getText().getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
const contacto = slide.insertTextBox('contacto@ejemplo.com | @usuario');
contacto.setTop(280).setLeft(50).setWidth(620).setHeight(40);
contacto.getText().getTextStyle()
.setFontFamily('Open Sans')
.setFontSize(20)
.setForegroundColor('#e8eaed');
contacto.getText().getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
}
Proporciona al usuario:
crearPresentacion[!TIP] Puedes modificar los colores en el objeto
COLORESpara personalizar la paleta.
[!WARNING] Google Slides tiene límites de API. Si el blog es muy largo, divide en múltiples presentaciones.
[!CAUTION] Las imágenes deben agregarse manualmente o mediante URLs públicas. El script solo crea la estructura.
Para presentaciones aún más impactantes, sugiere al usuario:
| Elemento | Recurso Gratuito |
|---|---|
| Iconos | Flaticon, Heroicons |
| Fotos | Unsplash, Pexels |
| Paletas | Coolors, ColorHunt |
| Mockups | Smartmockups |
| Problema | Solución |
|---|---|
| Error de permisos | Autoriza la app en la primera ejecución |
| Script no corre | Verifica que seleccionaste la función correcta |
| Colores no aparecen | Asegúrate de usar formato hexadecimal (#RRGGBB) |
| Texto cortado | Reduce el tamaño de fuente o el contenido |