SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
Symfony Zgz
Generación de sitios estáticos con Sculpin
@symfony_zgz
Web dinámica
● Servidores
● Bases de datos
● Instalaciones
● Tiempo
● …
● $$$$$$$!!!!!!!!!!!!
Perfiles
Además…
¿Cuántos perfiles hacen falta?
Sysadmins
Backends
Frontends
Diseñadores
SEO/SEM/Marketing
Otros roles
Sinergia!!!
Valorañadido Forlayos derivables
Kill them all!!! (o casi)
● Sysadmin → Github pages
● Backend developers → Sculpin
● Frontend developers → Bootstrap
● Diseñadores → Themeforest
● SEO → Nibbler/Woorank
● Otros roles → Sentido común!!!
Github pages
● Por usuario/organización
○ Creando repositorio {{usuario}}.github.io
○ http://ericduran.github.io
● Por proyecto
○ Creando rama gh-pages
○ http://ericduran.github.io/drupalcores/
Github pages
● Permite dominio propio
○ Apuntando a 204.232.175.78
● Github lo verifica
○ Archivo “CNAME” en la raíz
del repositorio
Sculpin
● Generador de sitios estáticos
● https://sculpin.io/
● Utiliza:
○ YAML
○ Twig
○ Markdown
○ Archivos estáticos!!
○ Consola
YAML
Archivos de configuración
sculpin_content_types:
posts:
type: path
path: _posts
permalink: blog/:year/:month/:day/:filename/
taxonomies:
- tags
- categories
YAML
Metadatos en el propio archivo del post
---
title: Happy Birthday Sculpin!
tags:
- sculpin
- markdown
categories:
- personal
---
Twig
{% set year = '0' %}
<h2>Posts Archive</h2>
{% for post in page.pagination.items %}
{% set this_year %}{{ post.date | date("Y") }}{% endset %}
{% if year != this_year %}
{% set month = '0' %}
{% set year = this_year %}
{% endif %}
{% set this_month %}{{ post.date | date("F") }}{% endset %}
{% if month != this_month %}
{% set month = this_month %}
...
Markdown
Heading
=======
Sub-heading
-----------------
Paragraphs are separated
by a blank line.
Text attributes *italic*,
**bold**, `monospace`.
A [link](http://example.com).
<<< No space between ] and ( >>>
Shopping list:
* apples
* oranges
* pears
Numbered list:
1. apples
2. oranges
3. pears
The rain---not the reign---in Spain.
Reemplazo ASCII de código HTML
Archivos estáticos
● Todo archivo en la carpeta correspondiente es el
equivalente a una entrada en base de datos (entidad).
● Generators: Páginas “plantilla” para mostrar estas
entidades o listados de ellas.
○ { use: [posts_categories] }
■ { % for category,posts in data.posts_categories %}
○ { generator: pagination} ... { use: [posts] }
■ {% for post in page.pagination.items %}
Archivos estáticos
● Mejor rendimiento no se puede!!
● Sistema de layouts jerárquico gracias a Twig
---
layout: default
---
● Árbol de directorios sencillo
○ app/config → YAML’s de configuraciones
○ source → Código fuente
○ source/_posts → Entidades “dinámicas” (en el ejemplo: posts)
○ output_prod → Salida HTML para subir
Archivos estáticos
● Gran control del HTML generado
● SEO guy loves you!
Dear frontend...
...dedica tu tiempo a cosas más divertidas!!!
¿Todo bien hasta aquí?
Consola!!!!
Consola
Composer
● Sculpin incluye embebido composer
○ Archivo sculpin.json para gestión de dependencias
● No son necesarios muchos comandos
Comandos
● Instalar/actualizar dependencias
○ sculpin install
● Montar servidor de desarrollo
○ sculpin generate --watch --server
● Deploy
○ sculpin generate --env=prod
Facilísimo!!!
Pero...
Externaliza!
● Comentarios
○ https://developers.facebook.
com/docs/plugins/comments
● Formularios
○ http://webform.com
○ https://www.surveymonkey.com/
● Estadísticas
○ http://analytics.google.com
Backend guy is unhappy
También backend!!
● Sculpin utiliza el HTTP Kernel de Symfony.
● Sistema de eventos.
● Se pueden utilizar bundles de Symfony para
extender Sculpin con funcionalidades más
avanzadas!!!
Eventos
● SculpinCoreSculpin::EVENT_BEFORE_RUN
● SculpinCoreSculpin::EVENT_BEFORE_CONVERT
● SculpinCoreSculpin::EVENT_AFTER_CONVERT
● SculpinCoreSculpin::EVENT_BEFORE_FORMAT
● SculpinCoreSculpin::EVENT_AFTER_FORMAT
● SculpinCoreSculpin::EVENT_AFTER_RUN
Bundles de terceros
● Composer + Kernel… como en Symfony!!!
<?php
class SculpinKernel extends SculpinBundleSculpinBundleHttpKernelAbstractKernel
{
protected function getAdditionalSculpinBundles()
{
return array(
'MavimoSculpinBundleRedirectBundleSculpinRedirectBundle'
);
}
}
Que empiece la fiesta!!!
Sculpin

Contenu connexe

Similaire à Sculpin

Herramientas de lanzamiento. Nuestra web
Herramientas de lanzamiento. Nuestra webHerramientas de lanzamiento. Nuestra web
Herramientas de lanzamiento. Nuestra webLorena Fernández
 
#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!SergioIglesiasNET
 
MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!SergioIglesiasNET
 
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Martin Siniawski
 
Joomla!Day 2013 España - Taller de Desarrollo de Plantillas Joomla! - Sergio ...
Joomla!Day 2013 España - Taller de Desarrollo de Plantillas Joomla! - Sergio ...Joomla!Day 2013 España - Taller de Desarrollo de Plantillas Joomla! - Sergio ...
Joomla!Day 2013 España - Taller de Desarrollo de Plantillas Joomla! - Sergio ...SergioIglesiasNET
 
Taller de Screaming Frog con Rubén Merino
Taller de Screaming Frog con Rubén MerinoTaller de Screaming Frog con Rubén Merino
Taller de Screaming Frog con Rubén MerinoRubén Merino
 
El Ferrocarril Contra Los Arboles Muertos2
El Ferrocarril Contra Los Arboles Muertos2El Ferrocarril Contra Los Arboles Muertos2
El Ferrocarril Contra Los Arboles Muertos2ferdinand13
 
Charla C++
Charla C++Charla C++
Charla C++yiown
 
Metodologia de Trabajo en Proyectos con Drupal
Metodologia de Trabajo en Proyectos con DrupalMetodologia de Trabajo en Proyectos con Drupal
Metodologia de Trabajo en Proyectos con DrupalRuben Teijeiro
 
Metodologia de Trabajo en Proyectos con Drupal
Metodologia de Trabajo en Proyectos con DrupalMetodologia de Trabajo en Proyectos con Drupal
Metodologia de Trabajo en Proyectos con DrupalRojomorgan
 
Taller de Maquetacion web | Jorge Callalle Torres
Taller de Maquetacion web | Jorge Callalle TorresTaller de Maquetacion web | Jorge Callalle Torres
Taller de Maquetacion web | Jorge Callalle TorresJorge Luis Callalle Torres
 
Taller de Maquetación Web
Taller de Maquetación WebTaller de Maquetación Web
Taller de Maquetación WebBruno Garcia
 
Programación de videojuegos con Godot Engine
Programación de videojuegos con Godot EngineProgramación de videojuegos con Godot Engine
Programación de videojuegos con Godot Enginepythoncanarias
 
Como hacer una pagina web
Como hacer una pagina webComo hacer una pagina web
Como hacer una pagina webAyllen Sanchez
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonCodeSyntax
 

Similaire à Sculpin (20)

Herramientas de lanzamiento. Nuestra web
Herramientas de lanzamiento. Nuestra webHerramientas de lanzamiento. Nuestra web
Herramientas de lanzamiento. Nuestra web
 
#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!
 
Google Hacking
Google HackingGoogle Hacking
Google Hacking
 
MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!
 
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
 
Joomla!Day 2013 España - Taller de Desarrollo de Plantillas Joomla! - Sergio ...
Joomla!Day 2013 España - Taller de Desarrollo de Plantillas Joomla! - Sergio ...Joomla!Day 2013 España - Taller de Desarrollo de Plantillas Joomla! - Sergio ...
Joomla!Day 2013 España - Taller de Desarrollo de Plantillas Joomla! - Sergio ...
 
Taller de Screaming Frog con Rubén Merino
Taller de Screaming Frog con Rubén MerinoTaller de Screaming Frog con Rubén Merino
Taller de Screaming Frog con Rubén Merino
 
El Ferrocarril Contra Los Arboles Muertos2
El Ferrocarril Contra Los Arboles Muertos2El Ferrocarril Contra Los Arboles Muertos2
El Ferrocarril Contra Los Arboles Muertos2
 
Symfony parte 4
Symfony parte 4Symfony parte 4
Symfony parte 4
 
Charla C++
Charla C++Charla C++
Charla C++
 
Symfony Parte 5
Symfony Parte 5Symfony Parte 5
Symfony Parte 5
 
Metodologia de Trabajo en Proyectos con Drupal
Metodologia de Trabajo en Proyectos con DrupalMetodologia de Trabajo en Proyectos con Drupal
Metodologia de Trabajo en Proyectos con Drupal
 
Metodologia de Trabajo en Proyectos con Drupal
Metodologia de Trabajo en Proyectos con DrupalMetodologia de Trabajo en Proyectos con Drupal
Metodologia de Trabajo en Proyectos con Drupal
 
Django
DjangoDjango
Django
 
Taller de Maquetacion web | Jorge Callalle Torres
Taller de Maquetacion web | Jorge Callalle TorresTaller de Maquetacion web | Jorge Callalle Torres
Taller de Maquetacion web | Jorge Callalle Torres
 
Taller de Maquetación Web
Taller de Maquetación WebTaller de Maquetación Web
Taller de Maquetación Web
 
Programación de videojuegos con Godot Engine
Programación de videojuegos con Godot EngineProgramación de videojuegos con Godot Engine
Programación de videojuegos con Godot Engine
 
Como hacer una pagina web
Como hacer una pagina webComo hacer una pagina web
Como hacer una pagina web
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en Python
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 

Dernier

Taller grupal de electricidad y electrónica
Taller grupal de electricidad y electrónicaTaller grupal de electricidad y electrónica
Taller grupal de electricidad y electrónicasofiacardonasolanill
 
Taller Evaluativo Tecnologías Web 2.0.docx
Taller Evaluativo Tecnologías Web 2.0.docxTaller Evaluativo Tecnologías Web 2.0.docx
Taller Evaluativo Tecnologías Web 2.0.docxSANTIAGOREYES92
 
Charla eCommerce Day Bolivia 2024 - Comercio Electrónico en Bolivia 2024
Charla eCommerce Day Bolivia 2024 - Comercio Electrónico en Bolivia 2024Charla eCommerce Day Bolivia 2024 - Comercio Electrónico en Bolivia 2024
Charla eCommerce Day Bolivia 2024 - Comercio Electrónico en Bolivia 2024Mariano Cabrera Lanfranconi
 
PRESENTACION DE "CASO NOKIA" // PDF.EDU.
PRESENTACION DE "CASO NOKIA" // PDF.EDU.PRESENTACION DE "CASO NOKIA" // PDF.EDU.
PRESENTACION DE "CASO NOKIA" // PDF.EDU.SARA BUENDIA RIOJA
 
Cuadernillo de Comunicación 1. Primer grado de Primaria.pdf
Cuadernillo de Comunicación 1. Primer grado de Primaria.pdfCuadernillo de Comunicación 1. Primer grado de Primaria.pdf
Cuadernillo de Comunicación 1. Primer grado de Primaria.pdfRosaAmeliaLlacsahuan
 
La electricidad y la electrónica.pdf.iluw
La electricidad y la electrónica.pdf.iluwLa electricidad y la electrónica.pdf.iluw
La electricidad y la electrónica.pdf.iluwDanielaEspaa3
 
Violencia sexual a través de Internet [ICAS 2024]
Violencia sexual a través de Internet [ICAS 2024]Violencia sexual a través de Internet [ICAS 2024]
Violencia sexual a través de Internet [ICAS 2024]QuantiKa14
 

Dernier (7)

Taller grupal de electricidad y electrónica
Taller grupal de electricidad y electrónicaTaller grupal de electricidad y electrónica
Taller grupal de electricidad y electrónica
 
Taller Evaluativo Tecnologías Web 2.0.docx
Taller Evaluativo Tecnologías Web 2.0.docxTaller Evaluativo Tecnologías Web 2.0.docx
Taller Evaluativo Tecnologías Web 2.0.docx
 
Charla eCommerce Day Bolivia 2024 - Comercio Electrónico en Bolivia 2024
Charla eCommerce Day Bolivia 2024 - Comercio Electrónico en Bolivia 2024Charla eCommerce Day Bolivia 2024 - Comercio Electrónico en Bolivia 2024
Charla eCommerce Day Bolivia 2024 - Comercio Electrónico en Bolivia 2024
 
PRESENTACION DE "CASO NOKIA" // PDF.EDU.
PRESENTACION DE "CASO NOKIA" // PDF.EDU.PRESENTACION DE "CASO NOKIA" // PDF.EDU.
PRESENTACION DE "CASO NOKIA" // PDF.EDU.
 
Cuadernillo de Comunicación 1. Primer grado de Primaria.pdf
Cuadernillo de Comunicación 1. Primer grado de Primaria.pdfCuadernillo de Comunicación 1. Primer grado de Primaria.pdf
Cuadernillo de Comunicación 1. Primer grado de Primaria.pdf
 
La electricidad y la electrónica.pdf.iluw
La electricidad y la electrónica.pdf.iluwLa electricidad y la electrónica.pdf.iluw
La electricidad y la electrónica.pdf.iluw
 
Violencia sexual a través de Internet [ICAS 2024]
Violencia sexual a través de Internet [ICAS 2024]Violencia sexual a través de Internet [ICAS 2024]
Violencia sexual a través de Internet [ICAS 2024]
 

Sculpin