SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Generador de páginas estáticas
●
●

Github: https://github.com/yosymfony/Spress
Twitter: @spress_cms

Sobre mí: Víctor Puertas
●
●

@yosymfony, @victorpuertas
http://yosymfony.com
¿Qué es?
Generador de páginas estáticas escrito en PHP.
Convierte ficheros Markdown, templates Twig y
HTML en un sitio estático.
Útil para crear blogs, landing pages, páginas de
eventos, “about me” etc...
¿Por qué?
Templates: Código reutilizable. Potencian del
motor de plantillas Twig.
Extensible: Cada sitio puede tener plugins que
extienden la funcionalidad de Spress.
Blogs: Crear post en Markdown.
Ventajas
100% escalable.
● Velocidad.
● Bajo coste mantenimiento.
● Mínimos requisitos para el hosting.
● Deploy sencillo.
● Temas totalmente personalizables.
● Plugins escritos en PHP.
●
Requisitos

Unix, Linux o Mac OS X
● PHP >= 5.4
● Composer
●
Estructura de un sitio

.
|- config.yml
|- composer.json
|- _includes/
|- _layouts/
| |- default.html
| |- post.html
|- _posts/
| |- 2013-12-23-example-post.md
|- _plugins/
|- _site/
|- index.html
Estructura de un sitio
Crear un sitio. Comando site:new
site:new [path[="./"]]
[template[="blank"]] [--force] [-all]
spress site:new /directorio
o
spress site:new /directorio spresso
Estructura de un sitio
Construir un sitio. Comando site:build
site:build [-s|--source[="./"]]
[--timezone[="..."]] [--drafts]
[--safe]
spress site:build
Resultados generados en _site/
config.yml

Fichero de configuración del sitio.
Formato YAML.
Cambiar el comportamiento por defecto Spress.
● Definir variables propias.
●
config.yml
author:
name: Your Name
twitter: spress_cms
# Page menus
menu:
- { name: Home, url: / }
Paginate: 5
permalink: pretty
config.yml
Desde una plantilla Twig:
<ul>
{% for link in site.menu %}
<li>
<a href="{{ link.url }}">
{{ link.name }}
</a>
</li>
{% endfor %}
</ul>
Posts
Se almacenan en _posts/
● Formato: Markdown (extensible a otros)
● El nombre de cada post tiene un formato:
●

year-month-day-title.md
Ej: 2014-01-21-mi-primer-post.md
Posts
--layout: default
Draft: true
--This is a post. You can mixing text
and HTML like this:
<a href="{{ site.url }}"/about/>About
me</a>.
Uses variables in Markdown link:
[Home](<{{ site.url }}>)
Posts: Front-matter
Configurar el post + variables propias.
–-layout: default
title: Curso de PHP
categories: [eventos]
tags: [noticias, novedades]
draft: false
date: 2014-01-01
miVariable: Hola
–--
Posts: categorías
Configurables en el Front-matter o deducibles de
la estructura de directorios:
_posts/
|-eventos/
| |- 2014-01-21-mi-primer-post.md
|-programacion/
| |-php/
| | |- 2014-01-21-hello-world.md
Paginación de posts
Es posible paginar los posts y accedera ellos con
URLs del tipo:
Página 1: http://misitio.com/blog/
Página 2: http://misitio.com/blog/pagina2/
Mostraría la lista de posts correspondientes a la
página.
Paginación de posts
Configuración: config.yml del sitio
paginate: 5
paginate_path: 'blog/page:num'
El fichero index.html del directorio /blog se
toma como template para montar cada página.
/blog/index.html
Paginación de post

Ficheros generados:
/blog/index.html
● /blog/pagina2/index.html
● /blog/pagina3/index.html
● ...
●
Posts: permalinks
Formato de los enlaces a cada post.
Configuración: config.yml
permalink: "/:year/:title"
Generaría enlaces del tipo:
http://miblog.com/blog/2014-mi-primer-post/
Posts: permalinks
year: Año del post
● month: Mes del post.
● i_month: Mes del post en número sin ceros
delante.
● day: Día del post.
● i_day: Día del post en número sin ceros delante.
● title: Título del post.
● categories: Categorías del post.
●
Posts: permalinks

Existen algunos templates predefinidos:
pretty: /:categories/:year/:month/:day/:title/
● ordinal: /:categories/:year/:i_day/:title.html
● date: /:year/:month/:day/:title.html
●
Posts: permalinks

http://misitio.com/blog/noticias/2014/01/21/php55/
http://misitio.com/blog/noticias/31/php-55.html
http://misitio.com/2013/12/31/php-55.html
Páginas

Formato: plantilla Twig, HTML, Markdown.
Layout: herencia de plantillas.
Includes: partes reutilizables.
Layout
Determinan la forma en la que se distribuye el
contenido.
Permite herencia en cascada.
Directorio: _layouts/
–-Layout: default
–-Busca default.html dentro de _layouts/
Layout: ejemplo
Usa la etiqueta block de Twig:
Includes
Permiten reutilizar partes del código.
Se encuentran en _includes/
Usa la etiqueta include de Twig:
Temas
Tema = sitio.
Puedes subir temas a Github a instalarlos con
Composer o descargarlos manualmente.
Instalar con Composer:
Directorio de instalación de Spress.
● Edita composer.json y añade el tema en los
requires.
●
Temas: instalación con
Composer

Con el comando spress site:new miSitio
spresso podemos crear sitios usando el tema.
Plugins
Extienden la funcionalidad de Spress.
Usa mecanismo de eventos.
Composer para actualizar los plugins de un tema.
Converters: permiten añadir nuevos tipos de
contenido: Textile (markup language).
Estructura de un plugin

MiPlugin/
|- composer.json
|- MiPlugin.php
Plugins: eventos

spress.start
● spress.before_convert
● spress.after_convert
● spress.after_convert_posts
● spress.before_render
● spress.after_render
● spress.finish
●
Gracias

Weitere ähnliche Inhalte

Ähnlich wie Spress

Wordpress, características y guía de uso
Wordpress, características y guía de usoWordpress, características y guía de uso
Wordpress, características y guía de usoguestdad27e
 
Wordpress, características y guía de uso
Wordpress, características y guía de usoWordpress, características y guía de uso
Wordpress, características y guía de usoguestdad27e
 
Que es un child theme y como está relacionado con WordPress
Que es un child theme y como está relacionado con WordPressQue es un child theme y como está relacionado con WordPress
Que es un child theme y como está relacionado con WordPressLuis Miguel Delgado
 
Sesion3 curso avanzado SPIPEDU
Sesion3 curso avanzado SPIPEDUSesion3 curso avanzado SPIPEDU
Sesion3 curso avanzado SPIPEDUspipedu
 
Presentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuroPresentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuroCLEFormación
 
WordPress para periodistas que van por libre
WordPress para periodistas que van por libreWordPress para periodistas que van por libre
WordPress para periodistas que van por libreidibay
 
Usando la flexibilidad y el poder de wordpress
Usando la flexibilidad y el poder de wordpressUsando la flexibilidad y el poder de wordpress
Usando la flexibilidad y el poder de wordpressMartin Beas Nuñez
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCarlos Huamaní
 
Tp 4 alvaro
Tp 4 alvaroTp 4 alvaro
Tp 4 alvaromausheng
 
Wordpress: De un Blog a un CMS
Wordpress: De un Blog a un CMSWordpress: De un Blog a un CMS
Wordpress: De un Blog a un CMSJoselyn Anfossi
 
Móntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horasMóntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horasIñaki Arenaza
 
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009ferranbonas
 

Ähnlich wie Spress (20)

Wordpress, características y guía de uso
Wordpress, características y guía de usoWordpress, características y guía de uso
Wordpress, características y guía de uso
 
Wordpress, características y guía de uso
Wordpress, características y guía de usoWordpress, características y guía de uso
Wordpress, características y guía de uso
 
Joomla
JoomlaJoomla
Joomla
 
Manual frontpage 2000
Manual frontpage 2000Manual frontpage 2000
Manual frontpage 2000
 
Manual frontpage 2000
Manual frontpage 2000Manual frontpage 2000
Manual frontpage 2000
 
Que es un child theme y como está relacionado con WordPress
Que es un child theme y como está relacionado con WordPressQue es un child theme y como está relacionado con WordPress
Que es un child theme y como está relacionado con WordPress
 
Wix clase 6
Wix  clase 6Wix  clase 6
Wix clase 6
 
Sesion3 curso avanzado SPIPEDU
Sesion3 curso avanzado SPIPEDUSesion3 curso avanzado SPIPEDU
Sesion3 curso avanzado SPIPEDU
 
Presentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuroPresentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuro
 
WordPress para periodistas que van por libre
WordPress para periodistas que van por libreWordPress para periodistas que van por libre
WordPress para periodistas que van por libre
 
Usando la flexibilidad y el poder de wordpress
Usando la flexibilidad y el poder de wordpressUsando la flexibilidad y el poder de wordpress
Usando la flexibilidad y el poder de wordpress
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
 
Tp 4 alvaro
Tp 4 alvaroTp 4 alvaro
Tp 4 alvaro
 
Presentación TE: CMS y en especial joomla.
Presentación TE: CMS y en especial joomla.Presentación TE: CMS y en especial joomla.
Presentación TE: CMS y en especial joomla.
 
Protostar como framework
Protostar como frameworkProtostar como framework
Protostar como framework
 
Tercera evaluacion
Tercera evaluacionTercera evaluacion
Tercera evaluacion
 
Wordpress: De un Blog a un CMS
Wordpress: De un Blog a un CMSWordpress: De un Blog a un CMS
Wordpress: De un Blog a un CMS
 
Móntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horasMóntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horas
 
Trucos para blogger
Trucos para bloggerTrucos para blogger
Trucos para blogger
 
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
 

Kürzlich hochgeladen

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 

Kürzlich hochgeladen (12)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 

Spress