[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le site d'une Websérie

Clément OUDOT
Clément OUDOTFree software consultant, Infrastructure and security expert en Savoir-faire Linux
Templer, Git, Bootstrap, PHP : des outilsTempler, Git, Bootstrap, PHP : des outils
libres pour concevoir le site d’une Websérielibres pour concevoir le site d’une Websérie
2
Casting
Clément OUDOT
Webmaster du site
DonJon Legacy
Libriste
Premier site web en 1997
3
La série : DonJon Legacy
Bande annonce : https://www.youtube.com/watch?v=1CxIoWWrUnY
4
Chapitres
●
Pourquoi faire un site statique HTML ?
●
Présentation de Templer
●
Mise en page avec Bootstrap et CSS
●
Envoi d’un mail par script PHP
●
Gestion du code dans Git
5
Pourquoi faire
un site
statique ?
6
Sécurité
●
Pas de script coté serveur
●
Pas d'injection de formulaire
●
Pas de mot de passe ni de données bancaires
7
Performances
●
Pas de calcul côté serveur
●
Big data / cluster
●
No SQL, et rien d'autre non plus
●
Utilisation optimale du cache HTTP
8
Accessibilité
●
Utilisation des dernières normes du Web
●
Framework CSS et JS
●
Référencement naturel
9
Hébergement
●
« Host everywhere »
●
Fichiers dans un répertoire
●
Serveur web basique
●
Environnement de développement local simple
●
Fonctionne même sur des systèmes d'exploitation
propriétaires !
10
PrésentationPrésentation
de Templerde Templer
11
Templer
●
Logiciel libre de génération de sites statiques
●
Écrit en Perl
●
Utilisation de HTML::Template
●
Support de Markdown, Redis, Flux RSS, …
●
https://github.com/skx/templer
12
mon-site/
├── include
├── input
│ ├── about.wgn
│ ├── index.wgn
│ └── robots.txt
├── layouts
│ └── default.layout
├── output
└── templer.cfg
Structure du site
●
Génération d’une
structure de base :
– Include : fchiers
communs
– Input : les fchiers qui
seront convertis
– Layout : les modèles
– Output : site généré
13
Gestion multilingue
●
Création de dossiers fr/ et en/
●
Utilisation des variables de page
●
Corps de la page dans des documents inclus
●
Variables « fr-link » et « en-link » pour changer de
langue
●
Confguration Apache pour redirection selon la langue
du navigateur
14
title: Accueil
en-link: /en/index.html
text_menu_hall: Hall
text_menu_dungeon: Donjon
----
<!-- tmpl_include name="head.inc"-->
<!-- tmpl_include name="menu.inc"-->
<!-- tmpl_include name="home.inc"-->
<!-- tmpl_include name="menu_foot.inc"--
>
<!-- tmpl_include name="banner_fr.inc"-->
<!-- tmpl_include name="foot.inc"-->
Code Templer
<ul class="nav navbar-nav navbar-right">
<!-- tmpl_if name="fr-link" -->
<li><a href="<!-- tmpl_var name="fr-link" -->"><img
src="/images/fr.png" alt="fr" /></a></li>
<!-- /tmpl_if -->
<!-- tmpl_if name="en-link" -->
<li><a href="<!-- tmpl_var name="en-link" -->"><img
src="/images/en.png" alt="en" /></a></li>
<!-- /tmpl_if -->
</ul>
15
Redirection Apache
       RewriteEngine On
       RewriteCond %{HTTP:Accept-Language} ^en [NC]
       RewriteRule ^/$ /en/ [L,R=301]
       RewriteCond %{HTTP:Accept-Language} ^fr [NC]
       RewriteRule ^/$ /fr/ [L,R=301]
16
Mise en page avecMise en page avec
Bootstrap et CSSBootstrap et CSS
17
Bootstrap
●
Framework CSS et JS (base sur JQuery)
●
Système de grille (grid) avec gestion des media
queries (responsive design)
●
Composants graphiques (boutons, tableaux,
panneaux)
●
Modifcation du thème possible (Less)
●
Voir http://getbootstrap.com et
https://bootswatch.com/
18
Exemple
<div class="text-center">
 <div class="alert alert-djl">
   <tmpl_var name="text_watch_channels" />
   <a class="btn btn-default" href="https://www.youtube.com/channel/UCVO3scwrW2QEyxiVcBbEbtw"><i
class="fa fa-youtube"></i></a>
   <a class="btn btn-default" href="http://www.dailymotion.com/donjonlegacy"><i class="fa fa-video-
camera"></i></a>
 </div>
</div>
19
Autres frameworks
●
Font Awesome :
– Galerie d’icônes
– http://fontawesome.io/
●
Hover :
– Animations
– http://ianlunn.github.io/Hover/
20
Animations personnalisées
h1 {
 animation: djl-text 1s;
}
@keyframes djl-text {
 0% {
   text-shadow: 0px 0px 10px #000;
   margin-left: 100px;
   color: #32728a;
 }
 100% {
   text-shadow: 0px 0px 5px #32728a;
 }
}
21
EnvoiEnvoi
d’un maild’un mail
en PHPen PHP
22
Du code PHP ?
●
Pour certaines fonctionnalités, comme formulaire de
contact avec envoi de mail, un script est nécessaire
●
PHP est un langage simple et présent sur la plupart des
serveurs Web
●
Formulaire HTML dans une page statique
●
Réception du POST dans le script PHP, qui renvoie vers
une page statique après traitement
23
Formulaire
   <form action="/mail.php" method="post">
     <select name="subject" class="form-control">
       <option value="<!-- tmpl_var name="text_contact_team" -->"><!-- tmpl_var
name="text_contact_team" --></option>
       <option value="<!-- tmpl_var name="text_contact_help" -->"><!-- tmpl_var
name="text_contact_help" --></option>
     </select>
     <input type="text" name="mail" placeholder="<!-- tmpl_var name="text_contact_mailinput" -->"
class="form-control" />
     <textarea name="message" class="form-control" rows="5"></textarea>
     <input type="hidden" name="returnlink" value="<!-- tmpl_var name="returnlink" -->" />
     <input type="submit" class="form-control" />
   </form>
24
Code PHP
   $subject = $_POST["subject"];
   $message = $_POST["message"];
   $mail = $_POST["mail"];
   $returnlink = $_POST["returnlink"];
   if (!$returnlink) {
       $returnlink = "http://www.donjonlegacy.com";
   }
   if (!$subject or !$message) {
       header("Location: " . $returnlink);
       exit;
   }
25
GestionGestion
du codedu code
dans Gitdans Git
26
Utilisation de Git
●
Gestion des versions et visualisation des modifcations
●
Sauvegardes
●
Branches pour tests
●
Collaboration
27
Du développement à la mise en ligne
●
Sur le poste de travail :
– git commit
– git push
●
Sur le serveur :
– git pull
– templer -f
28
GitHub
●
Service Git en ligne le plus populaire
●
Mais des alternatives existent :
– https://about.gitlab.com/
– https://framagit.org/
●
Code du site Donjon Legacy disponible sur
https://github.com/coudot/donjonlegacy
29
Questions ?
30
http://www.donjonlegacy.comhttp://www.donjonlegacy.com
https://github.com/coudot/donjonlegacyhttps://github.com/coudot/donjonlegacy
1 de 30

Recomendados

RMLL 2014 - Site statique avec Templer, Bootstrap et Git por
RMLL 2014 - Site statique avec Templer, Bootstrap et GitRMLL 2014 - Site statique avec Templer, Bootstrap et Git
RMLL 2014 - Site statique avec Templer, Bootstrap et GitClément OUDOT
1.5K vistas26 diapositivas
Drupal - La puissance de Drush por
Drupal - La puissance de DrushDrupal - La puissance de Drush
Drupal - La puissance de DrushAlexandre Marie
1.8K vistas17 diapositivas
Créez votre site web vous-même 2/2 por
Créez votre site web vous-même 2/2Créez votre site web vous-même 2/2
Créez votre site web vous-même 2/2pro-info.be
948 vistas146 diapositivas
Créez votre site web vous-même 1/2 por
Créez votre site web vous-même 1/2Créez votre site web vous-même 1/2
Créez votre site web vous-même 1/2pro-info.be
677 vistas315 diapositivas
Tout ce que le getting started mongodb ne vous dira pas por
Tout ce que le getting started mongodb ne vous dira pasTout ce que le getting started mongodb ne vous dira pas
Tout ce que le getting started mongodb ne vous dira pasBruno Bonnin
804 vistas115 diapositivas
Haxe, le graal du développeur touche-à-tout por
Haxe, le graal du développeur touche-à-toutHaxe, le graal du développeur touche-à-tout
Haxe, le graal du développeur touche-à-toutFrançois Barbut
646 vistas16 diapositivas

Más contenido relacionado

La actualidad más candente

Mongodb introduction por
Mongodb introductionMongodb introduction
Mongodb introductioneric German
1.4K vistas10 diapositivas
Tout ce que le getting started mongo db ne vous dira pas por
Tout ce que le getting started mongo db ne vous dira pasTout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasPierre-Alban DEWITTE
1.9K vistas107 diapositivas
[RMLL2017] Des logiciels libres pour la gestion des identités ! por
[RMLL2017] Des logiciels libres pour la gestion des identités ![RMLL2017] Des logiciels libres pour la gestion des identités !
[RMLL2017] Des logiciels libres pour la gestion des identités !Clément OUDOT
430 vistas37 diapositivas
Application web php5 html5 css3 bootstrap por
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapBassem ABCHA
4.6K vistas83 diapositivas
Cours php & Mysql - 1ére partie por
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partiekadzaki
5.2K vistas44 diapositivas
Beautiful CSS : Structurer, documenter, maintenir por
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirYves Van Goethem
1.9K vistas21 diapositivas

La actualidad más candente(20)

Mongodb introduction por eric German
Mongodb introductionMongodb introduction
Mongodb introduction
eric German1.4K vistas
Tout ce que le getting started mongo db ne vous dira pas por Pierre-Alban DEWITTE
Tout ce que le getting started mongo db ne vous dira pasTout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pas
Pierre-Alban DEWITTE1.9K vistas
[RMLL2017] Des logiciels libres pour la gestion des identités ! por Clément OUDOT
[RMLL2017] Des logiciels libres pour la gestion des identités ![RMLL2017] Des logiciels libres pour la gestion des identités !
[RMLL2017] Des logiciels libres pour la gestion des identités !
Clément OUDOT430 vistas
Application web php5 html5 css3 bootstrap por Bassem ABCHA
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Bassem ABCHA4.6K vistas
Cours php & Mysql - 1ére partie por kadzaki
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
kadzaki5.2K vistas
Beautiful CSS : Structurer, documenter, maintenir por Yves Van Goethem
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
Yves Van Goethem1.9K vistas
[#1] Qu’est ce que php? por opentuto
[#1] Qu’est ce que php?[#1] Qu’est ce que php?
[#1] Qu’est ce que php?
opentuto 218 vistas
Drupal7 - Bonnes Pratiques (Partie 1) por Alexandre Marie
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
Alexandre Marie1.9K vistas
PHP et Performances - AFUP 2005 por Eric D.
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
Eric D.1.9K vistas
Utilisation de node.js avec mongoDB por 13p
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
13p1.6K vistas
Créer, Pousser et Lancer un serveur RESTful en 10 min. por Anthony Faucogney
Créer, Pousser et Lancer un serveur RESTful en 10 min.Créer, Pousser et Lancer un serveur RESTful en 10 min.
Créer, Pousser et Lancer un serveur RESTful en 10 min.
Anthony Faucogney1.5K vistas
10 Slides à lire avant de commencer le développement Android por Anthony Faucogney
10 Slides à lire avant de commencer le développement Android10 Slides à lire avant de commencer le développement Android
10 Slides à lire avant de commencer le développement Android
Anthony Faucogney533 vistas
Donner un turbo seo pour joomla. Conférence au JoomlaDay 2019 por Laurent Tulpan
Donner un turbo seo pour joomla. Conférence au JoomlaDay 2019Donner un turbo seo pour joomla. Conférence au JoomlaDay 2019
Donner un turbo seo pour joomla. Conférence au JoomlaDay 2019
Laurent Tulpan439 vistas
Node.js et les nouvelles technologies javascript por Khalid Jebbari
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
Khalid Jebbari2.7K vistas

Similar a [JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le site d'une Websérie

ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter... por
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...Horacio Gonzalez
416 vistas45 diapositivas
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte... por
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...Horacio Gonzalez
1K vistas45 diapositivas
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2 por
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2Horacio Gonzalez
1.2K vistas39 diapositivas
Morning tech #2 - Démarche performance slides por
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesOxalide
1.3K vistas60 diapositivas
Oxalide Morning tech #2 - démarche performance por
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceLudovic Piot
363 vistas60 diapositivas
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS por
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSHoracio Gonzalez
2.8K vistas52 diapositivas

Similar a [JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le site d'une Websérie(20)

ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter... por Horacio Gonzalez
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
Horacio Gonzalez416 vistas
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte... por Horacio Gonzalez
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
Horacio Gonzalez1K vistas
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2 por Horacio Gonzalez
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Horacio Gonzalez1.2K vistas
Morning tech #2 - Démarche performance slides por Oxalide
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
Oxalide1.3K vistas
Oxalide Morning tech #2 - démarche performance por Ludovic Piot
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
Ludovic Piot363 vistas
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS por Horacio Gonzalez
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
Horacio Gonzalez2.8K vistas
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1 por Horacio Gonzalez
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Horacio Gonzalez4.3K vistas
Développement Web - HTML5, CSS3, APIs Web por Yoann Gotthilf
Développement Web - HTML5, CSS3, APIs WebDéveloppement Web - HTML5, CSS3, APIs Web
Développement Web - HTML5, CSS3, APIs Web
Yoann Gotthilf1.4K vistas
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS por Horacio Gonzalez
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
Horacio Gonzalez495 vistas
Alteca - les bonnes pratiques du développement Web - avril 2014 por François CRETON
Alteca - les bonnes pratiques du développement Web - avril 2014Alteca - les bonnes pratiques du développement Web - avril 2014
Alteca - les bonnes pratiques du développement Web - avril 2014
François CRETON684 vistas
Les bonnes pratiques du developpement web - Alteca - avril 2014 por François CRETON
Les bonnes pratiques du developpement web - Alteca - avril 2014Les bonnes pratiques du developpement web - Alteca - avril 2014
Les bonnes pratiques du developpement web - Alteca - avril 2014
François CRETON867 vistas
Les bonnes pratiques du developpement Web - Alteca - avril 2014 por François CRETON
Les bonnes pratiques du developpement Web - Alteca - avril 2014Les bonnes pratiques du developpement Web - Alteca - avril 2014
Les bonnes pratiques du developpement Web - Alteca - avril 2014
François CRETON336 vistas
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3 por Horacio Gonzalez
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
Horacio Gonzalez4.4K vistas
Améliorer la rapidité de son site web por Emmanuel Gautier
Améliorer la rapidité de son site webAméliorer la rapidité de son site web
Améliorer la rapidité de son site web
Emmanuel Gautier864 vistas
Initiation Webperf : Comprendre, analyser et optimiser les performances web F... por Kenny Dits
Initiation Webperf : Comprendre, analyser et optimiser les performances web F...Initiation Webperf : Comprendre, analyser et optimiser les performances web F...
Initiation Webperf : Comprendre, analyser et optimiser les performances web F...
Kenny Dits4.8K vistas

Más de Clément OUDOT

[FOSDEM 2019] LemonLDAP::NG 2.0 por
[FOSDEM 2019] LemonLDAP::NG 2.0[FOSDEM 2019] LemonLDAP::NG 2.0
[FOSDEM 2019] LemonLDAP::NG 2.0Clément OUDOT
404 vistas29 diapositivas
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG... por
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...Clément OUDOT
215 vistas28 diapositivas
[OW2Con 2018] The FusionIAM project por
[OW2Con 2018] The FusionIAM project[OW2Con 2018] The FusionIAM project
[OW2Con 2018] The FusionIAM projectClément OUDOT
984 vistas13 diapositivas
[OSSPARIS17] Le guide du connard du logiciel libre por
[OSSPARIS17] Le guide du connard du logiciel libre[OSSPARIS17] Le guide du connard du logiciel libre
[OSSPARIS17] Le guide du connard du logiciel libreClément OUDOT
1.1K vistas25 diapositivas
[OSSPARIS17] Des logiciels libres pour la gestion des identités ! por
[OSSPARIS17] Des logiciels libres pour la gestion des identités ![OSSPARIS17] Des logiciels libres pour la gestion des identités !
[OSSPARIS17] Des logiciels libres pour la gestion des identités !Clément OUDOT
844 vistas39 diapositivas
[RMLL2017] le guide du connard du logiciel libre por
[RMLL2017] le guide du connard du logiciel libre[RMLL2017] le guide du connard du logiciel libre
[RMLL2017] le guide du connard du logiciel libreClément OUDOT
1.5K vistas29 diapositivas

Más de Clément OUDOT(20)

[FOSDEM 2019] LemonLDAP::NG 2.0 por Clément OUDOT
[FOSDEM 2019] LemonLDAP::NG 2.0[FOSDEM 2019] LemonLDAP::NG 2.0
[FOSDEM 2019] LemonLDAP::NG 2.0
Clément OUDOT404 vistas
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG... por Clément OUDOT
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
Clément OUDOT215 vistas
[OW2Con 2018] The FusionIAM project por Clément OUDOT
[OW2Con 2018] The FusionIAM project[OW2Con 2018] The FusionIAM project
[OW2Con 2018] The FusionIAM project
Clément OUDOT984 vistas
[OSSPARIS17] Le guide du connard du logiciel libre por Clément OUDOT
[OSSPARIS17] Le guide du connard du logiciel libre[OSSPARIS17] Le guide du connard du logiciel libre
[OSSPARIS17] Le guide du connard du logiciel libre
Clément OUDOT1.1K vistas
[OSSPARIS17] Des logiciels libres pour la gestion des identités ! por Clément OUDOT
[OSSPARIS17] Des logiciels libres pour la gestion des identités ![OSSPARIS17] Des logiciels libres pour la gestion des identités !
[OSSPARIS17] Des logiciels libres pour la gestion des identités !
Clément OUDOT844 vistas
[RMLL2017] le guide du connard du logiciel libre por Clément OUDOT
[RMLL2017] le guide du connard du logiciel libre[RMLL2017] le guide du connard du logiciel libre
[RMLL2017] le guide du connard du logiciel libre
Clément OUDOT1.5K vistas
[OW2Con 2017] News from LemonLDAP::NG por Clément OUDOT
[OW2Con 2017] News from LemonLDAP::NG[OW2Con 2017] News from LemonLDAP::NG
[OW2Con 2017] News from LemonLDAP::NG
Clément OUDOT1.3K vistas
[JDLL 2017] Le Guide du Connard du Logiciel Libre por Clément OUDOT
[JDLL 2017] Le Guide du Connard du Logiciel Libre[JDLL 2017] Le Guide du Connard du Logiciel Libre
[JDLL 2017] Le Guide du Connard du Logiciel Libre
Clément OUDOT745 vistas
KR2016 The Free Software Bastard Guide por Clément OUDOT
KR2016 The Free Software Bastard GuideKR2016 The Free Software Bastard Guide
KR2016 The Free Software Bastard Guide
Clément OUDOT2.1K vistas
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG por Clément OUDOT
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NGS2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
Clément OUDOT1.3K vistas
The wonderful story of Web Authentication and Single-Sign On por Clément OUDOT
The wonderful story of Web Authentication and Single-Sign OnThe wonderful story of Web Authentication and Single-Sign On
The wonderful story of Web Authentication and Single-Sign On
Clément OUDOT2K vistas
Présentation de LemonLDAP::NG aux Journées Perl 2016 por Clément OUDOT
Présentation de LemonLDAP::NG aux Journées Perl 2016Présentation de LemonLDAP::NG aux Journées Perl 2016
Présentation de LemonLDAP::NG aux Journées Perl 2016
Clément OUDOT1.1K vistas
[JDLL 2016] OpenID Connect et FranceConnect por Clément OUDOT
[JDLL 2016] OpenID Connect et FranceConnect[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect
Clément OUDOT3.1K vistas
[OSSParis 2015] The OpenID Connect Protocol por Clément OUDOT
[OSSParis 2015] The OpenID Connect Protocol[OSSParis 2015] The OpenID Connect Protocol
[OSSParis 2015] The OpenID Connect Protocol
Clément OUDOT1.3K vistas
[OW2Con 2015] LemonLDAP::NG 2.0 overview por Clément OUDOT
[OW2Con 2015] LemonLDAP::NG 2.0 overview[OW2Con 2015] LemonLDAP::NG 2.0 overview
[OW2Con 2015] LemonLDAP::NG 2.0 overview
Clément OUDOT1.5K vistas
[LDAPCon 2015] The OpenID Connect Protocol por Clément OUDOT
[LDAPCon 2015] The OpenID Connect Protocol[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol
Clément OUDOT1.6K vistas
Analyse OpenLDAP logs with ELK por Clément OUDOT
Analyse OpenLDAP logs with ELKAnalyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELK
Clément OUDOT7.1K vistas
Le Guide du Connard du Logiciel Libre por Clément OUDOT
Le Guide du Connard du Logiciel LibreLe Guide du Connard du Logiciel Libre
Le Guide du Connard du Logiciel Libre
Clément OUDOT27.3K vistas

[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le site d'une Websérie

  • 1. Templer, Git, Bootstrap, PHP : des outilsTempler, Git, Bootstrap, PHP : des outils libres pour concevoir le site d’une Websérielibres pour concevoir le site d’une Websérie
  • 2. 2 Casting Clément OUDOT Webmaster du site DonJon Legacy Libriste Premier site web en 1997
  • 3. 3 La série : DonJon Legacy Bande annonce : https://www.youtube.com/watch?v=1CxIoWWrUnY
  • 4. 4 Chapitres ● Pourquoi faire un site statique HTML ? ● Présentation de Templer ● Mise en page avec Bootstrap et CSS ● Envoi d’un mail par script PHP ● Gestion du code dans Git
  • 6. 6 Sécurité ● Pas de script coté serveur ● Pas d'injection de formulaire ● Pas de mot de passe ni de données bancaires
  • 7. 7 Performances ● Pas de calcul côté serveur ● Big data / cluster ● No SQL, et rien d'autre non plus ● Utilisation optimale du cache HTTP
  • 8. 8 Accessibilité ● Utilisation des dernières normes du Web ● Framework CSS et JS ● Référencement naturel
  • 9. 9 Hébergement ● « Host everywhere » ● Fichiers dans un répertoire ● Serveur web basique ● Environnement de développement local simple ● Fonctionne même sur des systèmes d'exploitation propriétaires !
  • 11. 11 Templer ● Logiciel libre de génération de sites statiques ● Écrit en Perl ● Utilisation de HTML::Template ● Support de Markdown, Redis, Flux RSS, … ● https://github.com/skx/templer
  • 12. 12 mon-site/ ├── include ├── input │ ├── about.wgn │ ├── index.wgn │ └── robots.txt ├── layouts │ └── default.layout ├── output └── templer.cfg Structure du site ● Génération d’une structure de base : – Include : fchiers communs – Input : les fchiers qui seront convertis – Layout : les modèles – Output : site généré
  • 13. 13 Gestion multilingue ● Création de dossiers fr/ et en/ ● Utilisation des variables de page ● Corps de la page dans des documents inclus ● Variables « fr-link » et « en-link » pour changer de langue ● Confguration Apache pour redirection selon la langue du navigateur
  • 14. 14 title: Accueil en-link: /en/index.html text_menu_hall: Hall text_menu_dungeon: Donjon ---- <!-- tmpl_include name="head.inc"--> <!-- tmpl_include name="menu.inc"--> <!-- tmpl_include name="home.inc"--> <!-- tmpl_include name="menu_foot.inc"-- > <!-- tmpl_include name="banner_fr.inc"--> <!-- tmpl_include name="foot.inc"--> Code Templer <ul class="nav navbar-nav navbar-right"> <!-- tmpl_if name="fr-link" --> <li><a href="<!-- tmpl_var name="fr-link" -->"><img src="/images/fr.png" alt="fr" /></a></li> <!-- /tmpl_if --> <!-- tmpl_if name="en-link" --> <li><a href="<!-- tmpl_var name="en-link" -->"><img src="/images/en.png" alt="en" /></a></li> <!-- /tmpl_if --> </ul>
  • 15. 15 Redirection Apache        RewriteEngine On        RewriteCond %{HTTP:Accept-Language} ^en [NC]        RewriteRule ^/$ /en/ [L,R=301]        RewriteCond %{HTTP:Accept-Language} ^fr [NC]        RewriteRule ^/$ /fr/ [L,R=301]
  • 16. 16 Mise en page avecMise en page avec Bootstrap et CSSBootstrap et CSS
  • 17. 17 Bootstrap ● Framework CSS et JS (base sur JQuery) ● Système de grille (grid) avec gestion des media queries (responsive design) ● Composants graphiques (boutons, tableaux, panneaux) ● Modifcation du thème possible (Less) ● Voir http://getbootstrap.com et https://bootswatch.com/
  • 18. 18 Exemple <div class="text-center">  <div class="alert alert-djl">    <tmpl_var name="text_watch_channels" />    <a class="btn btn-default" href="https://www.youtube.com/channel/UCVO3scwrW2QEyxiVcBbEbtw"><i class="fa fa-youtube"></i></a>    <a class="btn btn-default" href="http://www.dailymotion.com/donjonlegacy"><i class="fa fa-video- camera"></i></a>  </div> </div>
  • 19. 19 Autres frameworks ● Font Awesome : – Galerie d’icônes – http://fontawesome.io/ ● Hover : – Animations – http://ianlunn.github.io/Hover/
  • 20. 20 Animations personnalisées h1 {  animation: djl-text 1s; } @keyframes djl-text {  0% {    text-shadow: 0px 0px 10px #000;    margin-left: 100px;    color: #32728a;  }  100% {    text-shadow: 0px 0px 5px #32728a;  } }
  • 22. 22 Du code PHP ? ● Pour certaines fonctionnalités, comme formulaire de contact avec envoi de mail, un script est nécessaire ● PHP est un langage simple et présent sur la plupart des serveurs Web ● Formulaire HTML dans une page statique ● Réception du POST dans le script PHP, qui renvoie vers une page statique après traitement
  • 23. 23 Formulaire    <form action="/mail.php" method="post">      <select name="subject" class="form-control">        <option value="<!-- tmpl_var name="text_contact_team" -->"><!-- tmpl_var name="text_contact_team" --></option>        <option value="<!-- tmpl_var name="text_contact_help" -->"><!-- tmpl_var name="text_contact_help" --></option>      </select>      <input type="text" name="mail" placeholder="<!-- tmpl_var name="text_contact_mailinput" -->" class="form-control" />      <textarea name="message" class="form-control" rows="5"></textarea>      <input type="hidden" name="returnlink" value="<!-- tmpl_var name="returnlink" -->" />      <input type="submit" class="form-control" />    </form>
  • 24. 24 Code PHP    $subject = $_POST["subject"];    $message = $_POST["message"];    $mail = $_POST["mail"];    $returnlink = $_POST["returnlink"];    if (!$returnlink) {        $returnlink = "http://www.donjonlegacy.com";    }    if (!$subject or !$message) {        header("Location: " . $returnlink);        exit;    }
  • 26. 26 Utilisation de Git ● Gestion des versions et visualisation des modifcations ● Sauvegardes ● Branches pour tests ● Collaboration
  • 27. 27 Du développement à la mise en ligne ● Sur le poste de travail : – git commit – git push ● Sur le serveur : – git pull – templer -f
  • 28. 28 GitHub ● Service Git en ligne le plus populaire ● Mais des alternatives existent : – https://about.gitlab.com/ – https://framagit.org/ ● Code du site Donjon Legacy disponible sur https://github.com/coudot/donjonlegacy