Cecil, mon générateur de site statique

A presentation at JAMStack Paris #5 in November 2019 in Paris, France by Arnaud Ligny

Slide 1

Slide 1

Pourquoi & comment ?

Slide 2

Slide 2

Consultant tech Web, Mobile & eCom chez ADFAB Contributeur Open Source sur github.com/Narno Avant ? Développeur PHP 4 / ASP 3 Lead Dev Magento 1 @ArnaudLigny arnaudligny.fr github.com/Narno Chef de projet tech e-commerce

Slide 3

Slide 3

Slide 4

Slide 4

un générateur de site statique (ou Static Site Generator) une application PHP en ligne de commande : cecil.phar

Slide 5

Slide 5

Contenu Site Web Templates Configuration cecil.phar

Slide 6

Slide 6

Slide 7

Slide 7

Slide 8

Slide 8

Slide 9

Slide 9

Frank Taillandier : “[…] les gestionnaires de contenu statique […] sont partout et sont devenus le choix de la raison […]. Leurs usages évoluent et de nouveaux services dédiés viennent enrichir et faciliter l’expérience utilisateur des contributeurs et des développeurs.” https://frank.taillandier.me/2016/03/08/les-gestionnaires-de-contenu-statique/

Slide 10

Slide 10

Slide 11

Slide 11

😃

Slide 12

Slide 12

Plaisir de concevoir et de développer une application Rattraper mon “retard” en développement (PHP 5 puis 7) Terrain d’expérimentation sur le sujet des SSG Satisfaction personnelle :-)

Slide 13

Slide 13

Slide 14

Slide 14

Slide 15

Slide 15

Idée Prototype Industrialisation Produit

Slide 16

Slide 16

💡 Prise en main rapide Moteur de template intuitif Contenu et mise en forme séparés

Slide 17

Slide 17

Idée Prototype Industrialisation Produit

Slide 18

Slide 18

Septembre 2013 : 1 unique script PHP

Slide 19

Slide 19

Jekyll 1.0.0 : mai 2013 Hugo first release : juillet 2013

Slide 20

Slide 20

Idée Prototype Industrialisation Produit

Slide 21

Slide 21

Slide 22

Slide 22

Cycle de vie d’un build protected $steps = [ ‘Cecil\Step\ConfigImport’, ‘Cecil\Step\ContentLoad’, Générateurs de pages virtuelles ‘generators’ => [ 10 => ‘Cecil\Generator\Section’, ‘Cecil\Step\PagesCreate’, 20 => ‘Cecil\Generator\Taxonomy’, ‘Cecil\Step\PagesConvert’, 30 => ‘Cecil\Generator\Homepage’, ‘Cecil\Step\TaxonomiesCreate’, 40 => ‘Cecil\Generator\Pagination’, ‘Cecil\Step\PagesGenerate’, 50 => ‘Cecil\Generator\Alias’, ‘Cecil\Step\MenusCreate’, 35 => ‘Cecil\Generator\ExternalBody’, ‘Cecil\Step\StaticCopy’, 36 => ‘Cecil\Generator\VirtualPages’, ‘Cecil\Step\PagesRender’, ‘Cecil\Step\PagesSave’, ]; 60 => ‘Cecil\Generator\Redirect’, ],

Slide 23

Slide 23

Slide 24

Slide 24

Slide 25

Slide 25

Travis CI StyleCI Scrutinizer Automatise l’ensemble des traitements Vérifie le check style + propose une PR Contrôle la qualité du code

Slide 26

Slide 26

  • stage: deploy php: “7.1” if: tag IS present script: composer box deploy: # dist files - provider: script script: bash scripts/deploy-dist.sh skip_cleanup: true overwrite: true on: branch: master tags: true

Slide 27

Slide 27

Slide 28

Slide 28

Idée Prototype Industrialisation Produit

Slide 29

Slide 29

Slide 30

Slide 30

Deploy to Netlify Import to Forestry

Slide 31

Slide 31

Slide 32

Slide 32

🎉

Slide 33

Slide 33

Slide 34

Slide 34

Dépôt GitHub Rédaction en Markdown Déploiement Netlify

Slide 35

Slide 35

🎁 6 ans de prises de tête… positives ! J’ai énormément appris (conception, tech, produit, open-source) Je me sers de mon propre outil (une dizaine de sites) Cecil commence à être utilisé par d’autres (via Netlify et Forestry) Je suis très fier du résultat ! ☺

Slide 36

Slide 36

😊 cecil.app @ArnaudLigny arnaudligny.fr