Initial Import.
6
.eslintrc.js
Normal file
|
@ -0,0 +1,6 @@
|
|||
module.exports = {
|
||||
"extends": "standard",
|
||||
"plugins": [
|
||||
"standard"
|
||||
]
|
||||
};
|
57
apache.conf
Normal file
|
@ -0,0 +1,57 @@
|
|||
<VirtualHost *:80>
|
||||
DocumentRoot /var/www/scorfel.fr
|
||||
ServerName scorfel.fr
|
||||
ServerAlias www.scorfel.fr
|
||||
RewriteEngine On
|
||||
RewriteRule "^/(p/.*)" "http://scorfel.blogspot.fr/$1"
|
||||
RewriteRule "^/(\d{4}/\d{2}/.*)" "http://scorfel.blogspot.fr/$1"
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/scorfel.fr_error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/scorfel.fr_access.log combined
|
||||
|
||||
ErrorDocument 403 /403.html
|
||||
ErrorDocument 404 /404.html
|
||||
|
||||
<Directory /var/www/scorfel.fr>
|
||||
Options -Indexes
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
|
||||
<IfModule alias_module>
|
||||
Redirect permanent /index.html http://scorfel.blogspot.fr/index.html
|
||||
</IfModule>
|
||||
</VirtualHost>
|
||||
|
||||
<IfModule mod_ssl.c>
|
||||
<VirtualHost *:443>
|
||||
SSLCertificateFile /etc/letsencrypt/live/scorfel.fr/fullchain.pem
|
||||
SSLCertificateKeyFile /etc/letsencrypt/live/scorfel.fr/privkey.pem
|
||||
Include /etc/letsencrypt/options-ssl-apache.conf
|
||||
|
||||
DocumentRoot /var/www/scorfel.fr
|
||||
ServerName scorfel.fr
|
||||
ServerAlias www.scorfel.fr
|
||||
RewriteEngine On
|
||||
RewriteRule "^/(p/.*)" "http://scorfel.blogspot.fr/$1"
|
||||
RewriteRule "^/(\d{4}/\d{2}/.*)" "http://scorfel.blogspot.fr/$1"
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/scorfel.fr_error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/scorfel.fr_access.log combined
|
||||
|
||||
ErrorDocument 403 /403.html
|
||||
ErrorDocument 404 /404.html
|
||||
|
||||
<Directory /var/www/scorfel.fr>
|
||||
Options -Indexes
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
allow from all
|
||||
</Directory>
|
||||
|
||||
<IfModule alias_module>
|
||||
Redirect permanent /index.html http://scorfel.blogspot.fr/index.html
|
||||
</IfModule>
|
||||
</VirtualHost>
|
||||
</IfModule>
|
BIN
content/2013/images/affiche_2013.jpg
Normal file
After Width: | Height: | Size: 447 KiB |
BIN
content/2013/images/presse/cridelormeau_201310.jpg
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
content/2013/images/presse/lannionlannuon_201310.jpg
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
content/2013/images/presse/telegramme_20131014_1.png
Normal file
After Width: | Height: | Size: 1.8 MiB |
BIN
content/2013/images/presse/telegramme_20131014_2.png
Normal file
After Width: | Height: | Size: 2.5 MiB |
BIN
content/2013/images/presse/telegramme_20131021_2.jpg
Normal file
After Width: | Height: | Size: 2 MiB |
BIN
content/2013/images/presse/tregor_201307.jpg
Normal file
After Width: | Height: | Size: 99 KiB |
BIN
content/2013/images/presse/tregor_20130801.jpg
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
content/2013/images/presse/tregor_20130822.jpg
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
content/2013/images/presse/tregor_20131017.jpg
Normal file
After Width: | Height: | Size: 1 MiB |
BIN
content/2013/images/presse/tregor_20131021_1.jpg
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
content/2013/images/presse/tregor_20131021_2.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
content/2013/images/vignette_2013.jpg
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
content/2014/images/affiche_2014.jpg
Normal file
After Width: | Height: | Size: 616 KiB |
BIN
content/2014/images/vignette_2014.jpg
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
content/2015/Festival Scorfel à Lannion - vidéo dailymotion.mp4
Normal file
BIN
content/2015/images/affiche_2015.jpg
Normal file
After Width: | Height: | Size: 668 KiB |
BIN
content/2015/images/presse/OF 23 09.png
Normal file
After Width: | Height: | Size: 3.8 MiB |
BIN
content/2015/images/presse/OF 28 09.png
Normal file
After Width: | Height: | Size: 3.9 MiB |
BIN
content/2015/images/presse/Trégor 24 09.jpg
Normal file
After Width: | Height: | Size: 471 KiB |
BIN
content/2015/images/presse/Télégramme 26 09.pdf
Normal file
BIN
content/2015/images/presse/Télégramme 28 09.pdf
Normal file
BIN
content/2015/images/vignette_2015.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
content/2015/programme_2015.pdf
Normal file
399
content/2016/atelier.md
Normal file
|
@ -0,0 +1,399 @@
|
|||
---
|
||||
title: Une heure, un texte
|
||||
image_file: /2016/images/vignette_2016.jpg
|
||||
image_desc: L'affiche
|
||||
---
|
||||
|
||||
## Un atelier ludique d'écriture
|
||||
|
||||
L'atelier ludique d'écriture, animé par Philippe Ethuin, a lieu
|
||||
dimanche 23 octobre 2016 dans le cadre du festival Scorfel. Jouer avec
|
||||
des dés, des cartes, des pions certes… mais avec des mots c'est
|
||||
possible aussi !
|
||||
|
||||
Nous sommes dix, âgés de neuf à… le demi-siècle n'était pas loin mais
|
||||
chut !... nous avons tous gardé notre âme d'enfant, à participer à
|
||||
« Une heure – un texte » dans le partage et la bonne humeur.
|
||||
|
||||
La proposition d'écriture repose sur des mots choisis par les
|
||||
participants puis complétés par association d'idée(s).
|
||||
|
||||
<figure>
|
||||
<img class="photo" src="/2016/images/atelier/20161023_111635.jpg" alt="Liste de mots">
|
||||
<figcaption>Le début de l'histoire (Crédit : Philippe Ethuin)</figcaption>
|
||||
</figure>
|
||||
|
||||
Chaque participant retient ensuite dix mots pour écrire son histoire
|
||||
parmi tous ceux proposés par les participants… Nous allons pouvoir
|
||||
commencer à écrire… Mais patatras, le sadique animateur nous retire
|
||||
nos mots sélectionnés avec soin afin de les passer à notre voisin.
|
||||
Nous nous retrouvons donc avec une liste imposée.
|
||||
|
||||
Comme déclencheur, le début d'un roman de Charles Le Goffic intitulé
|
||||
*L'Erreur de Florence* (1904) réédité sous le titre de *Croc-d'argent*
|
||||
(1922) nous plonge au cœur de la Bretagne :
|
||||
|
||||
> « Kernéguez et Pontus suivaient en silence la petite voie
|
||||
> […] qui débouche […] sur l'ancienne toute de Carhaix à
|
||||
> Landerneau… Kernéguez - Croc d'argent, comme on l'appelait en
|
||||
> raison de l'étrange main artificielle qu'il s'était fait
|
||||
> adapter au poignet droit […] observait depuis quelques
|
||||
> minutes son compagnon : ... »
|
||||
|
||||
<figure>
|
||||
<img class="photo" src="/2016/images/atelier/20161023_111652.jpg" alt="Introduction">
|
||||
<figcaption>Les mots de l'atelier (Crédit : Philippe Ethuin)</figcaption>
|
||||
</figure>
|
||||
|
||||
Nous avons tous, animateur compris, produit une petite histoire (même
|
||||
si la règle des dix mots n'a pas été respectée par tout le monde… mais
|
||||
les règles sont faites pour être transgressés !).
|
||||
|
||||
Nous espérons que vous prendrez autant de plaisir à nous lire que nous
|
||||
en avons eu à les écrire !
|
||||
|
||||
## Catégorie enfants
|
||||
|
||||
### Le texte de Lila (9 ans)
|
||||
|
||||
Mots imposés : **tribu**, **cheval**
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau… Kernéguez -
|
||||
> Croc d'argent, comme on l'appelait en raison de l'étrange main
|
||||
> artificielle qu'il s'était fait adapter au poignet droit […] observait
|
||||
> depuis quelques minutes son compagnon :
|
||||
>
|
||||
> « On devrait se dépêcher de rejoindre la **tribu** avant qu'il fasse
|
||||
> nuit » lui lança-t-il soudain.
|
||||
>
|
||||
> Mais Pontus freina son **cheval**.
|
||||
>
|
||||
> « Qu'est-ce que tu as ? lui demanda-t-il en le rejoignant.
|
||||
>
|
||||
> — Viens voir Kernéguez ! » dit-il à voix basse.
|
||||
>
|
||||
> Kernéguez écarquilla les yeux…
|
||||
|
||||
### Le texte d'Elena (11 ans)
|
||||
|
||||
Mots imposés : **marée**, **grand**, **chêne**, **oiseau**, **nuit**,
|
||||
**galop**
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau…
|
||||
>
|
||||
> Kernéguez-Croc d'argent, comme on l'appelait en raison de l'étrange
|
||||
> main artificielle qu'il s'était fait adapter au poignet droit […]
|
||||
> observait depuis quelques minutes son compagnon : il commençait à
|
||||
> disparaître comme quand la mer descend à **marée** basse ! Pontus, en
|
||||
> voyant son compagnon le regarder se regarda aussi et poussa un
|
||||
> **grand** cri :
|
||||
>
|
||||
> « Au secours ! On disparaît !
|
||||
>
|
||||
> — Moi aussi ? »
|
||||
>
|
||||
> Les deux compagnons, remplis de peur, se mirent à courir tout droit
|
||||
> devant eux sans jamais s'arrêter. Au bout d'une demi-heure de course,
|
||||
> Kernéguez se cogna dans un **chêne**. Boum ! « Aïe, ma main ! Hé !
|
||||
> Pontus, on commence à reprendre des couleurs… »
|
||||
>
|
||||
> Une grande créature descendit d'un arbre et vint se poser juste à côté
|
||||
> des pieds de Kernéguez.
|
||||
>
|
||||
> « Qui a dérangé mon arbre et mon sommeil ? demanda un **oiseau** coloré.
|
||||
>
|
||||
> — C'… c'est moi, Kernéguez. C'est moi qui a dérangé ton arbre. Je suis
|
||||
> vraiment désolé.
|
||||
>
|
||||
> — Ce n'est rien…
|
||||
>
|
||||
> — Juste… où sommes-nous ? demanda Pontus.
|
||||
>
|
||||
> — Ah, ça c'est un secret… »
|
||||
>
|
||||
> La **nuit** commençait à tomber et Kernéguez et Pontus ne savaient
|
||||
> toujours pas jusqu'où ils avaient couru. Tout d'un coup, ils
|
||||
> entendirent des bruits de **galop** venus du fond de la forêt qu'il y
|
||||
> avait en face. Une sorte de licorne accourait, essouflée, elle demanda
|
||||
> à l'oiseau : « Que se passe-t-il chef ? Pourquoi l'alarme a
|
||||
> retenti ? »
|
||||
>
|
||||
> Elle aperçut Pontus et Kergnéguez et comprit.
|
||||
>
|
||||
> « C'est la faute de ces deux coquins, Kernéguez et Pontus, qui sont
|
||||
> entrés dans notre domaine.
|
||||
>
|
||||
> — Vous connaissez nos noms ? » demandèrent-ils en coeur.
|
||||
>
|
||||
> L'oiseau et la licorne se mirent à rire.
|
||||
|
||||
### Le texte d'Ana (12 ans)
|
||||
|
||||
Mots imposés : **cheval**, **crinière**, **forêt**, **arbre**,
|
||||
**lumière**
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau…
|
||||
> Kernéguez-Croc d'argent, comme on l'appelait en raison de l'étrange
|
||||
> main artificielle qu'il s'était fait adapter au poignet droit […]
|
||||
> observait depuis quelques minutes son compagnon : son **cheval**
|
||||
> Pontus boîtait et cela l'inquiétait.
|
||||
>
|
||||
> Le noir commença à s'emparer du sous-bois où ils se trouvaient ainsi
|
||||
> qu'un froid de loup qui fit frissonner les deux voyageurs. Pontus
|
||||
> s'essoufflait mais il continuait à avancer malgré sa patte folle et la
|
||||
> fatigue de cette longue journée de marche.
|
||||
>
|
||||
> « Arrêtons-nous pour nous reposer, déclara soudain Kernéguez, tu
|
||||
> tombes de fatigue, Pontus.
|
||||
>
|
||||
> — Mais… pas question, hennit l'animal en secouant sa longue
|
||||
> **crinière** argentée. Nous avons une mission, un but ! Nous ne
|
||||
> pouvons prendre le moindre retard ! Et je n'ai pas vraiment envie de
|
||||
> passer la nuit dans une **forêt** infestée de loups et de trolls !
|
||||
>
|
||||
> — Ah oui… les trolls, grommela Kernéguez. Bon, reste ici, je vais
|
||||
> monter dans un **arbre** et voir s'il y a une maison à proximité pour y
|
||||
> passer la nuit ! »
|
||||
>
|
||||
> Pontus acquiesça et son cavalier descendit de son dos. Kernéguez
|
||||
> choisit un grand sapin et, prudemment, monta au sommet. Rien. Que du
|
||||
> noir. Il guetta et aperçut enfin une **lumière** à l'horizon.
|
||||
|
||||
### Le texte de Gaëlan (14 ans)
|
||||
|
||||
Mots imposés : **noble**, **amour**, **forêt**, **automne**,
|
||||
**biche**, **elfe**, **symbole**
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau…
|
||||
> Kernéguez-Croc d'argent, comme on l'appelait en raison de l'étrange
|
||||
> main artificielle qu'il s'était fait adapter au poignet droit […]
|
||||
> observait depuis quelques minutes son compagnon : Pontus n'était autre
|
||||
> qu'un chevalier. Kernéguez et Pontus entretenaient un lien d'amitié
|
||||
> très fort.
|
||||
>
|
||||
> Kernéguez prit la parole : « Mon bon ami, je pense qu'il serait
|
||||
> judicieux de poursuivre notre escapade dans les bois, nous n'aurions
|
||||
> ainsi aucune chance d'être surpris par des bandits.
|
||||
>
|
||||
> — Si cela vous met en joie, je n'y vois pas d'inconvénient, rétorqua
|
||||
> Pontus d'un air **noble**.
|
||||
>
|
||||
> — Mon cher Pontus, je ne voudrais pas retarder notre voyage. Ce soir,
|
||||
> j'ai pour projet de déclarer mon **amour** à dame Lucrèce. Aujourd'hui
|
||||
> est un grand jour.
|
||||
>
|
||||
> — Bien, bien ! Faites donc mon ami ! Dépêchons-nous alors ! »
|
||||
> acquiesça Pontus.
|
||||
>
|
||||
> Ils empruntèrent donc le chemin de la **forêt**. C'était
|
||||
> l'**automne**, la saison préférée de Monseigneur Kernéguez.
|
||||
>
|
||||
> Ils observaient tous deux ces splendides paysages automnaux quand,
|
||||
> soudain, ils eurent la chance de croiser le chemin d'une **biche**.
|
||||
>
|
||||
> Kernéguez s'exclama : « Oh ! Quelle chance nous avons là ! »
|
||||
>
|
||||
> Mais notre bon vieux Pontus ne semblait pas être enthousiasmé par ce
|
||||
> qui se révélait être une licorne sur laquelle trônait une créature aux
|
||||
> oreilles pointues. C'était un **elfe** ! Le **symbole** des peuples
|
||||
> celtiques.
|
||||
|
||||
## Catégorie adultes
|
||||
|
||||
### Le texte d'Allan
|
||||
|
||||
Mots imposés : **licorne**, **elfe**, **cabane**, **ivresse**,
|
||||
**initiation**, **saule**, **galoper**, **étoile**, **verdoyant**
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau…
|
||||
> Kernéguez-Croc d'argent, comme on l'appelait en raison de l'étrange
|
||||
> main artificielle qu'il s'était fait adapter au poignet droit […]
|
||||
> observait depuis quelques minutes son compagnon : « Ton **ivresse**
|
||||
> va-t-elle donc finir par s'estomper ? demanda Kernéguez.
|
||||
>
|
||||
> — Oui, mais j'ai fait des rêves étranges, j'ai vu bien des
|
||||
> **licornes**, répondit Pontus.
|
||||
>
|
||||
> — Des licornes ?
|
||||
>
|
||||
> — Oui elles semblaient irréelles, galopant sous les **étoiles**,
|
||||
> chevauchées par des **elfes**.
|
||||
>
|
||||
> — Tu as fait un
|
||||
> *rêve-de-licornes-galopant-sous-les-étoiles-chevauchées-par-des-elfes*
|
||||
> (mot composé en breton) ? Le moment est venu pour toi d'être initié à
|
||||
> nos rites. »
|
||||
>
|
||||
> Le soir venu alors dans les ruines sacrées de Lannion, Kernéguez coupa
|
||||
> quelques **saules** et au creux d'un abribus bâtit une **cabane** au
|
||||
> milieu d'un parking qui avait verdoyé.
|
||||
>
|
||||
> « Ce n'était pas censé être une tente de sudation ? demanda Pontus.
|
||||
>
|
||||
> — Hélas ! Cette technologie est à jamais perdue, répondit Kernéguez en
|
||||
> allumant le feu avec son pistolet à plasma. »
|
||||
|
||||
### Le texte de Jack
|
||||
|
||||
Mots imposés : **irréel**, **maléfique**, **conte**, **sourire**,
|
||||
**ami**.
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau…
|
||||
> Kernéguez-Croc d'argent, comme on l'appelait en raison de l'étrange
|
||||
> main artificielle qu'il s'était fait adapter au poignet droit […]
|
||||
> observait depuis quelques minutes son compagnon : « Tu as l'air bien
|
||||
> soucieux ? dit-il.
|
||||
>
|
||||
> — Les oiseaux se sont tus. »
|
||||
>
|
||||
> Kernéguez eut l'air surpris. Il tourna la tête, et scruta le
|
||||
> sous-bois. « C'est étrange mais je ne vois rien de **maléfique**. Et
|
||||
> toi ? »
|
||||
>
|
||||
> Pontus lui intima le silence d'un geste sans équivoque. Kernéguez qui
|
||||
> était d'un naturel plutôt bavard et joyeux commença à se sentir mal à
|
||||
> l'aise. Pontus descendit souplement et sans bruit de son cheval, fit
|
||||
> quelques signes à son **ami** en lui remettant la longe et s'avança
|
||||
> discrètement dans les taillis.
|
||||
>
|
||||
> Quelques minutes s'écoulèrent puis, soudain,… il ne se passa rien.
|
||||
> Kernéguez commença à triturer son croc de nervosité. Il entendit alors
|
||||
> de vagues bruits de sabot puis Pontus réapparut accompagné d'une
|
||||
> magnifique licorne. Kernéguez se détendit et dit avec un **sourire** :
|
||||
> « Ma parole, c'est un vrai **conte** de fées ! Où as-tu déniché cette
|
||||
> créature **irréelle** ? ».
|
||||
|
||||
### Le texte d'Elisabeth
|
||||
|
||||
Mots imposés : **symbole**, **licorne**, **forêt**, **nature**,
|
||||
**amour**, **initié**, **astres**, **lune**
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau…
|
||||
> Kernéguez-Croc d'argent, comme on l'appelait en raison de l'étrange
|
||||
> main artificielle qu'il s'était fait adapter au poignet droit […]
|
||||
> observait depuis quelques minutes son compagnon : on lui avait mis une
|
||||
> sorte de **symbole** en forme de **licorne** car on lui avait tranché
|
||||
> le poignet dans une bataille. C'était pour son bien-être.
|
||||
>
|
||||
> C'était du rêve à l'époque car cela ne s'y prêtait guère. En plus, il
|
||||
> vivait loin et reclus danse une immense **forêt** dans de sombres
|
||||
> nuits nocturnes et étranges.
|
||||
>
|
||||
> L'**amour** de la **nature** lui était venu par son père, plus jeune.
|
||||
>
|
||||
> Il s'y était **initié** et en même temps à tous les **astres** et
|
||||
> appris les étoiles et la **lune**.
|
||||
|
||||
### Le texte de Gaëlle
|
||||
|
||||
Mots imposés : **joyeuse**, **automnale**, **lune**, **elfe**,
|
||||
**tribu**, **rêves**, **astre**, **racines**, **arbres**,
|
||||
**créatures**
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau…
|
||||
>
|
||||
> Kernéguez-Croc d'argent, comme on l'appelait en raison de l'étrange
|
||||
> main artificielle qu'il s'était fait adapter au poignet droit […]
|
||||
> observait depuis quelques minutes son compagnon : habituellement
|
||||
> bavard et d'humeur **joyeuse**, le jeune homme était étrangement
|
||||
> silencieux en cette fin de nuit **automnale**. La **lune** était
|
||||
> encore haute dans le ciel et sa lumière froide dessinait, sur le
|
||||
> visage de Kernéguez, des ombres singulières. L'initiation avait été
|
||||
> rude pour le jeune **elfe**. Arkos, le devin de la **tribu**, lui
|
||||
> avait prédit une quête fructueuse mais pleine d'embûches.
|
||||
>
|
||||
> Laissant son compagnon à ses **rêves** éveillés, Kernéguez observait
|
||||
> le chemin qu'ils suivaient au milieu de la forêt. L'**astre** nocturne
|
||||
> éclairait les **racines** des **arbres** centenaires qui ressemblaient
|
||||
> aux membres distordus de **créatures** maléfiques.
|
||||
|
||||
### Le texte de Dominique
|
||||
|
||||
Mots imposés : **chêne**, **cheval**, **forêt**, **tribu**,
|
||||
**banquet**, **conte**, **biche**, **elfe**, **lune**
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau…
|
||||
>
|
||||
> Kernéguez-Croc d'argent, comme on l'appelait en raison de l'étrange
|
||||
> main artificielle qu'il s'était fait adapter au poignet droit […]
|
||||
> observait depuis quelques minutes son compagnon : il n'avait pas lâché
|
||||
> un mot depuis trois heures qu'ils cheminaient et, dans les rares
|
||||
> instants où les **chênes** se faisaient silencieux, il pouvait
|
||||
> distinctement l'entendre grincer des dents.
|
||||
>
|
||||
> Il faut dire qu'il y avait de quoi : voyager paisiblement ainsi aux
|
||||
> côtés de celui à qui il avait fait la guerre depuis qu'il avait l'âge
|
||||
> de tenir sur un **cheval**. Oui mais voila, la paix avait été conclue
|
||||
> entre les peuples habitant la **forêt** de Brocéliande et Pontus
|
||||
> allait représenter sa **tribu** au **banquet** célébrant l'harmonie
|
||||
> retrouvée entre korrigans, **elfes**, humains et tous les autres. Un
|
||||
> vrai **conte** de fées !
|
||||
>
|
||||
> Soudain, du bruit dans les fourrés couvrant le talus à droite du
|
||||
> chemin. Les traîtres ! c'était un piège mais Kerneguez allait payer.
|
||||
> Pontus dégaina en un éclair sa fidèle épée et leva le bras pour
|
||||
> frapper lorsqu'une magnifique **biche** traversa le chemin dans le
|
||||
> clarté lunaire. Elle s'enfuit aussitôt d'un bond, presque aussi
|
||||
> effrayée que les deux voyageurs. Pontus haussa les épaules, laissa
|
||||
> tomber son épée au sol et poursuivit sa route.
|
||||
|
||||
### Le texte de Philippe
|
||||
|
||||
Mots imposés : **tribu**, **secret**, **palefrenier**, **bosquet**,
|
||||
**banquet**, **elfe**, **créature**, **maléfique**, **ivresse**
|
||||
|
||||
> Kernéguez et Pontus suivaient en silence la petite voie […] qui
|
||||
> débouche […] sur l'ancienne toute de Carhaix à Landerneau…
|
||||
>
|
||||
> Kernéguez-Croc d'argent, comme on l'appelait en raison de l'étrange
|
||||
> main artificielle qu'il s'était fait adapter au poignet droit […]
|
||||
> observait depuis quelques minutes son compagnon : que faisait un fils
|
||||
> de la louve sur le territoire antique de sa **tribu**. Depuis bien des
|
||||
> siècles la fédération armoricaine avait non seulement contenu mais
|
||||
> aussi repoussé les Romains vers le sud. Les Vénètes dominaient la
|
||||
> grande mer du couchant. Les Parisii et ses Nautes s'étaient ralliés à
|
||||
> la fédération plus par intérêt que par envie… normal pour des Parisii.
|
||||
> En échange, ils pouvaient partager le **secret** des routes
|
||||
> commerciales de l'ouest où se trouvaient de riches territoires.
|
||||
>
|
||||
> Mais ce Pontus, sénateur romain, ne pouvait s'être égaré si loin des
|
||||
> routes habituellement empruntées par les diplomates. Qui plus est
|
||||
> seul, sans même un **palefrenier**.
|
||||
>
|
||||
> Au détour d'un **bosquet**, Kernéguez tenta d'engager la conversation.
|
||||
> En vain. Pontus n'était manifestement pas bavard. Vraiment quelque
|
||||
> chose ne collait pas. Ils ne sont pas fous ces Romains. Leur
|
||||
> rationalité les a même perdus. Ils auraient pu conquérir tout le monde
|
||||
> connu. Ne pas croire aux **elfes**, aux dragons, aux sirènes,… les
|
||||
> avait empêchés, il y a bien longtemps, d'apprivoiser et d'utiliser ces
|
||||
> **créatures** qui composaient maintenant l'essentiel des forces armées
|
||||
> armoricaines. Rome avait raté sa chance de s'imposer au monde.
|
||||
>
|
||||
> Pour Kernéguez, une seule raison pouvait pousser Pontus à s'aventurer
|
||||
> si loin en territoire ennemi : découvrir Ker IS. A la pensée que de
|
||||
> **maléfiques** Latins puissent l'atteindre, de sa main artificielle,
|
||||
> il serra le pommeau de de épée. Les druides celtes, capables de toutes
|
||||
> les prouesses technologiques, pouvait réparer les êtres humains comme
|
||||
> les machines alors que les Romains végétaient depuis des siècles avec
|
||||
> des techniques obsolètes. Depuis son initiation, Kernéguez connaissait
|
||||
> une partie des pratiques druidiques et s'étonnait sans cesse de ce
|
||||
> qu'ils continuaient à inventer.
|
||||
>
|
||||
> Il savourait l'**ivresse** du combat à venir, celui lui vaudrait sans
|
||||
> doute un **banquet**. Supprimer Pontus serait facile mais ne valait-il
|
||||
> pas mieux d'abord découvrir ses réelles motivations ?...
|
||||
|
||||
|
||||
<figure>
|
||||
<img class="photo" src="/2016/images/atelier/20161023_111623.jpg" alt="Les auteurs">
|
||||
<figcaption>Photo souvenir (Crédit : Philippe Ethuin)</figcaption>
|
||||
</figure>
|
64
content/2016/cadavre_exquis.md
Normal file
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
title: Cadavre exquis
|
||||
image_file: /2016/images/vignette_2016.jpg
|
||||
image_desc: L'affiche
|
||||
---
|
||||
|
||||
En 2014 et de nouveau en 2016, l'association Pérégrine a présenté
|
||||
pendant le festival une machine à rédiger des
|
||||
[cadavres exquis][wp_cadavres]. Le texte ci-après est le résultat de
|
||||
la participation des invités et des visiteurs de la quatrième édition
|
||||
du festival. Les alternances de casse marquent le changement d'auteur.
|
||||
|
||||
<figure>
|
||||
<img class="photo" src="/2016/images/cadavrator.jpg" alt="La machine">
|
||||
<figcaption>La machine productrice de cadavres</figcaption>
|
||||
</figure>
|
||||
|
||||
> **Et les ombres couraient**, fuyant la lumière éblouissante,
|
||||
> inquisitrice et porteuse de mort. **Les héros se cachèrent dans la
|
||||
> grotte la plus proche. Il ne comprenaient pas vraiment ce qu'ils
|
||||
> devraient véritablement chercher, mais ils le trouveraient sûrement.**
|
||||
> Le doute s'insinuait dans leurs esprits de plus en plus, devraient-ils
|
||||
> se séparer pour augmenter leurs chances ou rester soudés pour
|
||||
> affronter les ombres qui approchaient et les bruits de plus en plus
|
||||
> étranges… **Une soudaine et malfaisante clameur de l'ouest, sans doute
|
||||
> possible. Les créatures de l'ouest dans leurs coquilles de bronze
|
||||
> étaient telles des monstres venues d'un autre monde. C'est alors qu'un
|
||||
> bruit assourdissant fit trembler le sol. C'était un dragon de bronze à
|
||||
> tête de poule qui d'une démarche (non) assurée s'avançait vers nous.**
|
||||
> Crachant des vers de terre, battant sauvagement des ailes, elle
|
||||
> s’apprêtait à nous picorer les pieds. Nombre d'entre nous manquèrent
|
||||
> d'y laisser des orteils. **Prenant nos jambes à notre cou, un prête
|
||||
> mesurant 3 mètres tenant un jouet nous barrait la route.** Armé de
|
||||
> votre sublime épée Excaliburne, vous tranchez le prêtre en deux avant
|
||||
> de reprendre votre route. Mais le prêtre n'était pas seul… **Il avait
|
||||
> à ses cotés Monsieur Spock qui leva les yeux** vers les ennemis. Trois
|
||||
> en tout. Un neurepunch et deux s'écroulèrent.
|
||||
>
|
||||
> **L'aube naissante laissa un paysage désolé sur le champ de
|
||||
> bataille.** Au loin, une silhouette pâle avança et son rire sinistre
|
||||
> retentit. **Elle semblait heureuse, à la limite de l’hystérie. Son
|
||||
> rire raisonnait chaud et glacé à la fois.** Il m'évoquait ce nougat
|
||||
> glacé, dont la texture givrée soulageait avec délice ma gorge
|
||||
> brûlante, les soirées aux palabres interminables. **Quelques secondes
|
||||
> plus tard, je les aperçus qui descendaient du premier étage, en se
|
||||
> murmurant de tendres secrets.**
|
||||
>
|
||||
> Il lui serra la main et ils entreprirent de passer en revue leurs
|
||||
> différents. Ce ne fut pas chose facile. **A ça non, il fut très
|
||||
> difficile de devoir avancer sans eux. Malgré la verdure du paysage
|
||||
> dont on ne pouvait détourner l’œil, les nuages verts, bruns et mauves
|
||||
> répandaient leurs lianes vaporeuses au dessus du vallon.**
|
||||
>
|
||||
> C'est alors que surgit de nulle part un dragon aux écailles d'or. Beau
|
||||
> et terrifiant à la fois, sa majesté ailée annonçait la mort… **La mort
|
||||
> d'un petit escargot qui avait décidé d’arrêter de manger de l'ail
|
||||
> parce qu'il avait l'intuition que c'était de mauvaise augure !** Il
|
||||
> s'était rappelé la fois ou son amie, la salamandre tachetée, l'avait
|
||||
> invité à un brunch festif en compagnie des copains de la forêt. Ce
|
||||
> jour là, leur gourmandise leur avait porté préjudice au concours du
|
||||
> plus glouton des mangeurs de condiments…
|
||||
|
||||
|
||||
[wp_cadavres]: https://fr.wikipedia.org/wiki/Cadavre_exquis_%28jeu%29
|
BIN
content/2016/images/2016_01.jpg
Normal file
After Width: | Height: | Size: 426 KiB |
BIN
content/2016/images/affiche_2016.jpg
Normal file
After Width: | Height: | Size: 488 KiB |
BIN
content/2016/images/atelier/20161023_111623.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
content/2016/images/atelier/20161023_111635.jpg
Normal file
After Width: | Height: | Size: 964 KiB |
BIN
content/2016/images/atelier/20161023_111652.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
content/2016/images/cadavrator.jpg
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
content/2016/images/presse/OF - dimanche 23.pdf
Normal file
BIN
content/2016/images/presse/OF - vendredi 21.pdf
Normal file
BIN
content/2016/images/presse/Tregor - jeudi 20.pdf
Normal file
BIN
content/2016/images/presse/Télégramme - dimanche 23.pdf
Normal file
BIN
content/2016/images/presse/Télégramme - lundi 24.pdf
Normal file
BIN
content/2016/images/presse/Télégramme - samedi 22.pdf
Normal file
BIN
content/2016/images/vignette_2016.jpg
Normal file
After Width: | Height: | Size: 63 KiB |
33
content/2016/index.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
title: 2016
|
||||
image_file: /2016/images/vignette_2016.jpg
|
||||
image_desc: L'affiche
|
||||
---
|
||||
|
||||
La quatrième édition du festival s'est tenue une nouvelle fois dans la
|
||||
salle des Ursulines à Lannion. Cette année, des élèves des écoles de
|
||||
Servel et du Rusquet ont illustré des extraits de romans de Syven et
|
||||
Edwige Louvet, invitées du festival. Des élèves du lycée Le Dantec ont
|
||||
créé un prototype de jeu et organisé l'accueil du public. Les
|
||||
associations [Les Diseurs de Contes][diseurs] et
|
||||
[Lire et Faire Lire][lire] sont venues apporter une dose d'imaginaire
|
||||
de plus aux plus jeunes. [Philippe Ethuin][archeosf] nous a proposé un
|
||||
[atelier ludique d'écriture][atelier], pour écrire sans se prendre
|
||||
trop au sérieux. [Les Pérégrins][peregrine] ont invité le public à
|
||||
raconter une histoire sous la forme d'un [cadavre exquis][cadavre]. Et
|
||||
les membres de [Parties-Civiles][pc] ont encore une fois emporté tout
|
||||
le monde au royaume des jeux...
|
||||
|
||||
<figure>
|
||||
<img class="photo" src="/2016/images/2016_01.jpg" alt="La salle">
|
||||
<figcaption>Dans les travées...</figcaption>
|
||||
</figure>
|
||||
|
||||
|
||||
[archeosf]: http://archeosf.publie.net
|
||||
[atelier]: atelier.html
|
||||
[cadavre]: cadavre_exquis.html
|
||||
[diseurs]: http://les-diseurs-de-contes.levillage.org
|
||||
[lire]: http://www.lireetfairelire.org/
|
||||
[pc]: http://parties-civiles-asso.fr/blog/
|
||||
[peregrine]: http://www.peregrine.asso.fr/
|
BIN
content/2016/programme_2016.pdf
Normal file
BIN
content/2017/CR/20170210.pdf
Normal file
BIN
content/2017/CR/20170302.pdf
Normal file
BIN
content/2017/CR/20170501.pdf
Normal file
BIN
content/2017/CR/20170607.pdf
Normal file
BIN
content/2017/CR/20170828.pdf
Normal file
BIN
content/2017/images/affiche_2017.jpg
Normal file
After Width: | Height: | Size: 524 KiB |
BIN
content/2017/images/vignette_2017.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
8
content/2017/index.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: 2017
|
||||
image_file: /2017/images/vignette_2017.jpg
|
||||
image_desc: L'affiche
|
||||
---
|
||||
|
||||
La cinquième édition du festival s'est tenue dans la salle des
|
||||
Ursulines à Lannion les 21 et 22 octobre 2017.
|
BIN
content/2017/règlement_scorfel_2017.pdf
Normal file
BIN
content/2018/CR/20180405.pdf
Normal file
BIN
content/2018/CR/20180524.pdf
Normal file
BIN
content/2018/CR/20180613.pdf
Normal file
BIN
content/2018/images/affiche_2018.jpg
Normal file
After Width: | Height: | Size: 335 KiB |
BIN
content/2018/images/vignette_2018.jpg
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
content/2018/règlement_scorfel_2018.pdf
Normal file
BIN
content/2019/règlement_scorfel_2019.pdf
Normal file
6
content/403.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Accès interdit
|
||||
image_file: /images/scorfel_sur_vache.png
|
||||
image_desc: Le dragon sur la vache
|
||||
layout: error.njk
|
||||
---
|
6
content/404.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Page inexistante
|
||||
image_file: /images/scorfel_sur_vache.png
|
||||
image_desc: Le dragon sur la vache
|
||||
layout: error.njk
|
||||
---
|
109
content/association/index.md
Normal file
|
@ -0,0 +1,109 @@
|
|||
---
|
||||
title: Association Scorfel
|
||||
image_file: /images/scorfel_pis_de_vache.png
|
||||
image_desc: Le dragon qui tète
|
||||
layout: with_colophon.njk
|
||||
---
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-6 col-lg-8">
|
||||
|
||||
Scorfel est une association type loi 1901 enregistrée à la sous
|
||||
préfecture de Lannion le 14 avril 2014. L'annonce de sa création est
|
||||
parue le samedi 26 avril 2014 au Journal Officiel (annonce n°353). Son
|
||||
objet est la planification, l'organisation et la promotion d'un
|
||||
événement récurrent consacré aux jeux et à la littérature de
|
||||
l'imaginaire, dans le périmètre de l'agglomération Lannion-Trégor
|
||||
Communauté.
|
||||
|
||||
Vous pouvez lire ici :
|
||||
|
||||
- la dernière révision des [statuts de l'association][statuts] ;
|
||||
- [le règlement intérieur][règlement] auquel doivent se conformer tous
|
||||
les adhérents.
|
||||
|
||||
</div>
|
||||
<aside class="col-sm">
|
||||
<h2>Pourquoi Scorfel ?</h2>
|
||||
|
||||
Sur la côte de Granit Rose, entre les deux vallées plus communément
|
||||
appelées "Traouïero", le paysage chaotique et magique cache bien plus
|
||||
d'une légende. Dans la vallée du Petit-Traouïero se cache une créature
|
||||
facétieuse, le "Scorfel", un dragon se cachant dans les herbes hautes
|
||||
des prairies pour venir téter par surprise le pis des vaches. Si ce
|
||||
dernier trait a tendance à amuser, je serais vous, je ne
|
||||
m'approcherais pas trop près du Karreg ar Ludu, le "Rocher des
|
||||
cendres", où on dit qu'il habite...
|
||||
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Historique
|
||||
|
||||
Les membres fondateurs de Scorfel sont issus des associations
|
||||
*[Parties-Civiles][]* et *Pérégrine* qui promeuvent respectivement
|
||||
l'expression ludique et la science-fiction dans la région de Lannion.
|
||||
Leur volonté était de faire connaître au plus large public possible
|
||||
les activités ludiques et les genres littéraires fantastiques souvent
|
||||
ignorés ou dénigrés par les courants d'opinion et les médias
|
||||
dominants.
|
||||
|
||||
Le festival Scorfel est l'expression de cet objectif. Il permet au
|
||||
public trégorrois de rencontrer des auteurs et des illustrateurs
|
||||
confidentiels ou reconnus, de découvrir et de s'essayer à des
|
||||
activités ludiques variées. Il permet aux joueurs plus aguerris de se
|
||||
rencontrer et d'élargir l'horizon des univers qu'il aime fréquenter
|
||||
dans le jeu.
|
||||
|
||||
<figure>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-md-4">
|
||||
<img class="poster" src="/2013/images/vignette_2013.jpg" alt="Affiche 2013">
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-4">
|
||||
<img class="poster" src="/2014/images/vignette_2014.jpg" alt="Affiche 2014">
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-4">
|
||||
<img class="poster" src="/2015/images/vignette_2015.jpg" alt="Affiche 2015">
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-4">
|
||||
<img class="poster" src="/2016/images/vignette_2016.jpg" alt="Affiche 2016">
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-4">
|
||||
<img class="poster" src="/2017/images/vignette_2017.jpg" alt="Affiche 2017">
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-4">
|
||||
<img class="poster" src="/2018/images/vignette_2018.jpg" alt="Affiche 2018">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption>Les éditions précédentes du festival</figcaption>
|
||||
</figure>
|
||||
|
||||
## Vie de l'association
|
||||
|
||||
L'association est ouverte à tous. Vous pouvez participer :
|
||||
|
||||
- en adhérant librement à l'association pour vous tenir au courant et
|
||||
apporter suggestions et aide ponctuelle ;
|
||||
- en rejoignant l'équipe d'organisation du festival ;
|
||||
- en parlant du festival et de l'association autour de vous, en nous
|
||||
aidant à trouver du support pour pérenniser le festival ;
|
||||
- envoyant un don à l'association.
|
||||
|
||||
Les membres de l'association communiquent par l'intermédiaire d'une
|
||||
liste de diffusion. Ils se rencontrent selon le besoin et leurs
|
||||
disponibilités lors de réunions afin de partager les informations
|
||||
quant à la préparation du festival annuel.
|
||||
|
||||
Vous pouvez nous contacter en vous rendant aux assemblées des
|
||||
associations *Scorfel*, *Parties Civiles* ou *Pérégrine*, ou bien par
|
||||
courriel ou téléphone.
|
||||
|
||||
|
||||
[statuts]: /association/pub/scorfel_statuts_revision_20181212.pdf
|
||||
[règlement]: /association/pub/scorfel_règlement.pdf
|
||||
[Parties-Civiles]: http://parties-civiles-asso.fr/
|
BIN
content/association/pub/scorfel_règlement.pdf
Normal file
BIN
content/association/pub/scorfel_statuts_revision_20150616.pdf
Normal file
BIN
content/association/pub/scorfel_statuts_revision_20181212.pdf
Normal file
1
content/css/mini-default.min.css
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../node_modules/mini.css/dist/mini-default.min.css
|
186
content/css/scorfel.css
Normal file
|
@ -0,0 +1,186 @@
|
|||
@media screen and (min-width: 480px) {
|
||||
h1 {
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
h1 {
|
||||
font-size: 3rem;
|
||||
margin-top: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1280px) {
|
||||
h1 {
|
||||
font-size: 4rem;
|
||||
margin-top: 80px;
|
||||
}
|
||||
}
|
||||
|
||||
article {
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
aside > h2 {
|
||||
font-family: Georgia, serif;
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 0px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
aside {
|
||||
border-radius: 4px;
|
||||
border-style: solid;
|
||||
border-width: 2px;
|
||||
margin-bottom: 0.4em;
|
||||
margin-left: 1em;
|
||||
margin-top: 0.4em;
|
||||
padding: 0.6em;
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
aside > p {
|
||||
margin: 0em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: 0em;
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left-width: 2px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
table {
|
||||
border-style: none;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
td {
|
||||
padding-left: 0.4em;
|
||||
}
|
||||
|
||||
.value {
|
||||
font-family: Courier, monospace;
|
||||
}
|
||||
|
||||
#validation {
|
||||
margin-top: 0.2em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
figcaption {
|
||||
font-style: italic;
|
||||
font-weight: lighter;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer {
|
||||
border-top: 1px solid black;
|
||||
background: #fff;
|
||||
padding: 0 0 0.3em 0;
|
||||
color: #000;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
footer * {
|
||||
font-size: 0.8rem;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* Larger than mobile */
|
||||
@media (min-width: 400px) {
|
||||
body {
|
||||
background-color: #FFF;
|
||||
font-family: Verdana, sans-serif;
|
||||
}
|
||||
}
|
||||
|
||||
/* Larger than phablet */
|
||||
@media (min-width: 550px) {
|
||||
body {
|
||||
background-color: #FFF;
|
||||
font-family: Verdana, sans-serif;
|
||||
}
|
||||
}
|
||||
|
||||
/* Larger than tablet */
|
||||
@media (min-width: 750px) {
|
||||
body {
|
||||
background-color: #FFF;
|
||||
font-family: Verdana, sans-serif;
|
||||
with: 750px;
|
||||
}
|
||||
|
||||
.photo {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
max-height: 400px;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
.poster {
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Larger than desktop */
|
||||
@media (min-width: 1000px) {
|
||||
body {
|
||||
background-color: #FFF;
|
||||
font-family: Verdana, sans-serif;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 900px;
|
||||
}
|
||||
|
||||
.photo {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
max-height: 400px;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
.poster {
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Larger than Desktop HD */
|
||||
@media (min-width: 1200px) {
|
||||
body {
|
||||
background-color: #FFF;
|
||||
font-family: Verdana, sans-serif;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 1200px;
|
||||
}
|
||||
|
||||
.photo {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
max-height: 600px;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
.poster {
|
||||
width: 280px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
}
|
BIN
content/images/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
content/images/scorfel_bidon_de_lait.png
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
content/images/scorfel_pis_de_vache.png
Normal file
After Width: | Height: | Size: 143 KiB |
BIN
content/images/scorfel_sur_vache.png
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
content/images/valid_css3.png
Normal file
After Width: | Height: | Size: 802 B |
BIN
content/images/valid_html50.png
Normal file
After Width: | Height: | Size: 817 B |
29
layouts/_colophon.njk
Normal file
|
@ -0,0 +1,29 @@
|
|||
<h2>Colophon</h2>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-lg-4">
|
||||
<h3>Association Scorfel</h3>
|
||||
<p class="value">Association SCORFEL<br/>
|
||||
36 Lotissement de Kergaradec<br/>
|
||||
22300 Ploulec'h</p>
|
||||
<p>Numéro d'enregistrement
|
||||
<span class="value">W223001627</span><br/>
|
||||
Numéro SIRET :
|
||||
<span class="value">803 809 912 00014</span></p>
|
||||
</div>
|
||||
<div class="col-sm-12 col-lg-4">
|
||||
<h3>Contacts :</h3>
|
||||
<p class="value">convention.scorfel[at]gmail.com</p>
|
||||
</div>
|
||||
<div class="col-sm-12 col-lg-4">
|
||||
<h3>Actualité et réseaux sociaux</h3>
|
||||
<ul>
|
||||
<li><a href="http://scorfel.fr">Le blog</a></li>
|
||||
<li><a href="https://www.facebook.com/Scorfel">Facebook</a></li>
|
||||
<li><a href="https://plus.google.com/101901564320372401720">Google+</a></li>
|
||||
<li><a href="https://twitter.com/festivalScorfel">Twitter</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
43
layouts/base.njk
Normal file
|
@ -0,0 +1,43 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<title>Scorfel - {{ title }}</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="author" content="David Soulayrol">
|
||||
<meta name="generator" content="Metalsmith">
|
||||
<meta name="copyright" content="Association Scorfel">
|
||||
<meta name="description" lang="fr" content="Le site de l'association Scorfel">
|
||||
<meta name="keywords" lang="fr" content="scorfel, lannion, association, jeux, JDR, SF, fantasy, fantastique">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<link rel="icon" type="image/png" href="/images/favicon.ico">
|
||||
<link rel="stylesheet" href="/css/mini-default.min.css" />
|
||||
<link rel="stylesheet" href="/css/scorfel.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% block main %}
|
||||
{% endblock %}
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<!-- <div id="validation" class="col-sm">
|
||||
<a href="http://validator.w3.org/check?uri=referer">
|
||||
<img src="/images/valid_html50.png" alt="Code HTML 5 valide" /></a>
|
||||
<a href="http://jigsaw.w3.org/css-validator/check/referer">
|
||||
<img src="/images/valid_css3.png" alt="Code CSS 3 valide" /></a>
|
||||
</div> -->
|
||||
<div class="col-sm">
|
||||
<p>Sauf mentions contraires, toutes les illustrations sont
|
||||
©2013-2018 <a href="http://animaupetitbonheur.fr/blog/">Gaboo</a>,<br/>
|
||||
les textes et autres documents ©2017,2018 Association
|
||||
Scorfel.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
20
layouts/default.njk
Normal file
|
@ -0,0 +1,20 @@
|
|||
{% extends "base.njk" %}
|
||||
|
||||
{% block main %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md">
|
||||
<img src="{{image_file}}" alt="{{image_desc}}"/>
|
||||
</div>
|
||||
<div class="col-sm">
|
||||
<h1>{{title}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="content">
|
||||
<article>
|
||||
{{contents | safe}}
|
||||
</article>
|
||||
</section>
|
||||
{% endblock %}
|
16
layouts/error.njk
Normal file
|
@ -0,0 +1,16 @@
|
|||
{% extends "base.njk" %}
|
||||
|
||||
{% block main %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md">
|
||||
<img src="{{image_file}}" alt="{{image_desc}}"/>
|
||||
</div>
|
||||
<div class="col-sm">
|
||||
<h1>{{title}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include "_colophon.njk" %}
|
||||
{% endblock %}
|
34
layouts/index.njk
Normal file
|
@ -0,0 +1,34 @@
|
|||
{% extends "base.njk" %}
|
||||
|
||||
{% block main %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md">
|
||||
<img src="/images/scorfel_bidon_de_lait.png" alt="Le dragon et le bidon"/>
|
||||
</div>
|
||||
<div class="col-sm">
|
||||
<h1>{{title}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<section id="content">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Document</th>
|
||||
<th>Date</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% set options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } %}
|
||||
{% for file in files %}
|
||||
<tr>
|
||||
<td data-label="Document"><a href="/{{ file.path }}">{{ file.name }}</a></td>
|
||||
<td data-label="Date">{{ file.date.toLocaleDateString('en-US', options) }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
21
layouts/with_colophon.njk
Normal file
|
@ -0,0 +1,21 @@
|
|||
{% extends "base.njk" %}
|
||||
|
||||
{% block main %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md">
|
||||
<img src="{{image_file}}" alt="{{image_desc}}"/>
|
||||
</div>
|
||||
<div class="col-sm">
|
||||
<h1>{{title}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="content">
|
||||
<article>
|
||||
{{contents | safe}}
|
||||
{% include "_colophon.njk" %}
|
||||
</article>
|
||||
</section>
|
||||
{% endblock %}
|
9821
package-lock.json
generated
Normal file
53
package.json
Normal file
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"name": "site-scorfel",
|
||||
"version": "2019.05.23",
|
||||
"private": true,
|
||||
"description": "The sources for <httpe://scorfel.fr>",
|
||||
"main": "",
|
||||
"scripts": {
|
||||
"build": "DEBUG=metalsmith* npm run clean && npm run build:metalsmith",
|
||||
"build:prod": "NODE_ENV=production npm run build",
|
||||
"build:metalsmith": "nodejs src/scripts/build-metalsmith.js",
|
||||
"clean": "rimraf dist",
|
||||
"dev": "npm run build && DEBUG=metalsmith* nodemon --watch src/scripts --exec node src/scripts/run-dev-server.js",
|
||||
"server": "npm run build && http-server dist",
|
||||
"deploy": "npm run build && cd dist && rsync -v -rlptz --relative * david@soulayrol.net:/var/www/tests.soulayrol.net",
|
||||
"deploy:prod": "npm run build:prod && cd dist && rsync -v -rlptz --relative * david@soulayrol.net:/var/www/scorfel.fr",
|
||||
"lint": "npm run lint:js && npm run lint:css",
|
||||
"lint:js": "eslint src test",
|
||||
"lint:css": "stylelint src/assets/css/**/*.css",
|
||||
"test": "npm run lint && npm run test:build-process",
|
||||
"test:build-process": "npm run build"
|
||||
},
|
||||
"author": "David Soulayrol <david.soulayrol@gmail.com>",
|
||||
"dependencies": {
|
||||
"mini.css": "^3.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"browser-sync": "^2.26.5",
|
||||
"bs-fullscreen-message": "^1.1.0",
|
||||
"clean-css": "^4.2.1",
|
||||
"cli-table2": "^0.2.0",
|
||||
"debug": "^3.2.6",
|
||||
"eslint": "^4.19.1",
|
||||
"eslint-config-standard": "^10.2.1",
|
||||
"eslint-plugin-import": "^2.17.2",
|
||||
"eslint-plugin-node": "^5.2.1",
|
||||
"eslint-plugin-promise": "^3.8.0",
|
||||
"eslint-plugin-standard": "3.0.1",
|
||||
"filesize": "^3.6.1",
|
||||
"http-server": "^0.10.0",
|
||||
"jstransformer-nunjucks": "^0.5.0",
|
||||
"metalsmith": "^2.2.0",
|
||||
"metalsmith-assets": "^0.1.0",
|
||||
"metalsmith-clean-css": "^6.0.0",
|
||||
"metalsmith-index": "^1.1.0",
|
||||
"metalsmith-layouts": "2.3.1",
|
||||
"metalsmith-markdownit": "^0.5.0",
|
||||
"metalsmith-rename": "^1.0.0",
|
||||
"nodemon": "^1.19.0",
|
||||
"rimraf": "^2.6.3",
|
||||
"stylelint": "^8.2.0",
|
||||
"stylelint-config-standard": "^17.0.0"
|
||||
}
|
||||
}
|
15
src/config/paths.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
const { resolve, join } = require('path')
|
||||
|
||||
const projectRoot = resolve(__dirname, '..', '..')
|
||||
const distribution = join(projectRoot, 'dist')
|
||||
|
||||
module.exports = {
|
||||
projectRoot,
|
||||
/* Nodes */
|
||||
miniCss: join(projectRoot, 'node_modules', 'mini.css'),
|
||||
/* Metalsmith */
|
||||
metalsmithSource: 'content',
|
||||
metalsmithDestination: distribution,
|
||||
/* Server */
|
||||
serverRoot: distribution
|
||||
}
|
12
src/scripts/build-metalsmith.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
const Debug = require('debug')
|
||||
const metalsmith = require('./metalsmith')
|
||||
|
||||
const debug = Debug('Metalsmith-TES')
|
||||
|
||||
metalsmith.build(function (err) {
|
||||
if (err) {
|
||||
debug(err)
|
||||
throw err
|
||||
}
|
||||
debug('Metalsmith build finished!')
|
||||
})
|
97
src/scripts/metalsmith-helpers.js
Normal file
|
@ -0,0 +1,97 @@
|
|||
const path = require('path')
|
||||
const Table = require('cli-table2')
|
||||
const filesize = require('filesize')
|
||||
|
||||
function generateFileMap (files) {
|
||||
return Object.keys(files).reduce((map, filename) => {
|
||||
const file = files[filename]
|
||||
const parsedFilename = path.parse(filename)
|
||||
const ext = parsedFilename.ext.substr(1)
|
||||
const extFiles = map[ext] || []
|
||||
return {
|
||||
...map,
|
||||
[ext]: [
|
||||
...extFiles,
|
||||
{
|
||||
file,
|
||||
filename
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {})
|
||||
}
|
||||
|
||||
export function StatisticsPlugin (options) {
|
||||
return (files, metalsmith, done) => {
|
||||
const fileMap = generateFileMap(files)
|
||||
const fileTypes = Object.keys(fileMap)
|
||||
|
||||
// File overview table
|
||||
fileTypes.forEach((filetype) => {
|
||||
const fileTypeFiles = fileMap[filetype]
|
||||
const count = fileTypeFiles.length
|
||||
const size = fileTypeFiles.reduce((totalsize, entry) => {
|
||||
return totalsize + entry.file.contents.byteLength
|
||||
}, 0)
|
||||
const filenamesTable = new Table({
|
||||
head: [`${count} ${filetype}-${count > 1 ? 'files' : 'file'} with total ${filesize(size)}`, 'File size'],
|
||||
wordWrap: true,
|
||||
colWidths: [process.stdout.columns - 16, 12]
|
||||
})
|
||||
fileTypeFiles.forEach((entry) => {
|
||||
const size = filesize(entry.file.contents.byteLength)
|
||||
filenamesTable.push([entry.filename, size])
|
||||
})
|
||||
console.log(filenamesTable.toString())
|
||||
})
|
||||
|
||||
done()
|
||||
}
|
||||
}
|
||||
|
||||
export function DebugPlugin (options) {
|
||||
function sanitizeTableContent (content) {
|
||||
const length = content.length
|
||||
content = content.replace(/\s+/g, ' ').slice(0, config.maxContentLength)
|
||||
if (length > config.maxContentLength) {
|
||||
content = content.trim() + '...'
|
||||
}
|
||||
return content
|
||||
}
|
||||
|
||||
const defaultOptions = {
|
||||
maxContentLength: 1000
|
||||
}
|
||||
|
||||
const config = {
|
||||
...defaultOptions,
|
||||
...options
|
||||
}
|
||||
|
||||
return (files, metalsmith, done) => {
|
||||
const fileMap = generateFileMap(files)
|
||||
const fileTypes = Object.keys(fileMap)
|
||||
|
||||
fileTypes.forEach((filetype) => {
|
||||
const fileTypeFiles = fileMap[filetype]
|
||||
fileTypeFiles.forEach((entry) => {
|
||||
const content = sanitizeTableContent(entry.file.contents.toString())
|
||||
const size = filesize(entry.file.contents.byteLength)
|
||||
const metadata = {
|
||||
...entry.file
|
||||
}
|
||||
delete metadata.contents
|
||||
const fileTable = new Table({
|
||||
head: [`${entry.filename} @ ${size}`],
|
||||
wordWrap: true,
|
||||
colWidths: [process.stdout.columns - 2]
|
||||
})
|
||||
fileTable.push([JSON.stringify(metadata, null, 2)])
|
||||
fileTable.push([content])
|
||||
console.log(fileTable.toString())
|
||||
})
|
||||
})
|
||||
|
||||
done()
|
||||
}
|
||||
}
|
63
src/scripts/metalsmith-statistics-plugin.js
Normal file
|
@ -0,0 +1,63 @@
|
|||
const path = require('path')
|
||||
const Table = require('cli-table2')
|
||||
const filesize = require('filesize')
|
||||
|
||||
module.exports = plugin
|
||||
|
||||
function generateFileMap (files) {
|
||||
return Object.keys(files).reduce((map, filename) => {
|
||||
const file = files[filename]
|
||||
const parsedFilename = path.parse(filename)
|
||||
const ext = parsedFilename.ext.substr(1)
|
||||
const extFiles = map[ext] || []
|
||||
return {
|
||||
...map,
|
||||
[ext]: [
|
||||
...extFiles,
|
||||
{
|
||||
file,
|
||||
filename
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {})
|
||||
}
|
||||
|
||||
function plugin () {
|
||||
return (files, metalsmith, done) => {
|
||||
const fileMap = generateFileMap(files)
|
||||
const fileTypes = Object.keys(fileMap)
|
||||
|
||||
// File overview table
|
||||
fileTypes.forEach((filetype) => {
|
||||
const fileTypeFiles = fileMap[filetype]
|
||||
const count = fileTypeFiles.length
|
||||
const size = fileTypeFiles.reduce((totalsize, entry) => {
|
||||
// Some plugins (eg. metalsmith-data-markdown) replace the Buffer by a string
|
||||
if (typeof entry.file.contents === 'string') {
|
||||
return totalsize + entry.file.contents.length
|
||||
} else {
|
||||
return totalsize + entry.file.contents.byteLength
|
||||
}
|
||||
}, 0)
|
||||
const filenamesTable = new Table({
|
||||
head: [`${count} ${filetype}-${count > 1 ? 'files' : 'file'} with total ${filesize(size)}`, 'File size'],
|
||||
wordWrap: true,
|
||||
colWidths: [process.stdout.columns - 16, 12]
|
||||
})
|
||||
fileTypeFiles.forEach((entry) => {
|
||||
var size = 0
|
||||
// Some plugins (eg. metalsmith-data-markdown) replace the Buffer by a string
|
||||
if (typeof entry.file.contents === 'string') {
|
||||
size = entry.file.contents.length
|
||||
} else {
|
||||
size = entry.file.contents.byteLength
|
||||
}
|
||||
filenamesTable.push([entry.filename, size])
|
||||
})
|
||||
console.log(filenamesTable.toString())
|
||||
})
|
||||
|
||||
done()
|
||||
}
|
||||
}
|
51
src/scripts/metalsmith.js
Normal file
|
@ -0,0 +1,51 @@
|
|||
// This is the actual metalsmith configuration script.
|
||||
const Metalsmith = require('metalsmith')
|
||||
const index = require('metalsmith-index')
|
||||
const cleanCSS = require('metalsmith-clean-css')
|
||||
const layouts = require('metalsmith-layouts')
|
||||
const markdown = require('metalsmith-markdownit')
|
||||
const rename = require('metalsmith-rename')
|
||||
const statistics = require('./metalsmith-statistics-plugin')
|
||||
|
||||
const paths = require('../config/paths')
|
||||
|
||||
const __PROD__ = process.env.NODE_ENV === 'production'
|
||||
|
||||
module.exports = new Metalsmith(paths.projectRoot)
|
||||
.clean(__PROD__)
|
||||
.source(paths.metalsmithSource)
|
||||
.destination(paths.metalsmithDestination)
|
||||
.use(cleanCSS({
|
||||
files: 'content/css/*.css',
|
||||
cleanCSS: {
|
||||
rebase: true
|
||||
}
|
||||
}))
|
||||
.use(index({
|
||||
'association/pub': { title: "Documents de l'association" },
|
||||
'2017/CR': { title: "Comptes-rendus de réunion" },
|
||||
'2018/CR': { title: "Comptes-rendus de réunion" }
|
||||
}))
|
||||
.use(markdown({
|
||||
html: true,
|
||||
typographer: true,
|
||||
// quotes: ['«\xA0', '\xA0»', '‹\xA0', '\xA0›']
|
||||
}))
|
||||
.use(layouts({
|
||||
'default': 'default.njk',
|
||||
pattern: '**/*.html',
|
||||
engineOptions: {
|
||||
globals: {
|
||||
production: __PROD__
|
||||
}
|
||||
}
|
||||
}))
|
||||
.use(layouts({
|
||||
'default': 'index.njk',
|
||||
pattern: '**/index.list'
|
||||
}))
|
||||
.use(rename([
|
||||
[/\.list$/, '.html']
|
||||
]))
|
||||
.use(statistics())
|
||||
// .use(DebugPlugin())
|
49
src/scripts/run-dev-server.js
Normal file
|
@ -0,0 +1,49 @@
|
|||
const bs = require('browser-sync').create('Scorfel')
|
||||
const path = require('path')
|
||||
const Debug = require('debug')
|
||||
const stripAnsi = require('strip-ansi')
|
||||
const metalsmith = require('./metalsmith')
|
||||
const paths = require('../config/paths')
|
||||
|
||||
const debug = Debug('Metalsmith-Scorfel')
|
||||
|
||||
function buildMetalsmith (rebuild) {
|
||||
debug('Building Metalsmith')
|
||||
|
||||
metalsmith.build((err) => {
|
||||
if (err) {
|
||||
debug('Metalsmith build error:')
|
||||
console.error(err)
|
||||
return bs.sockets.emit('fullscreen:message', {
|
||||
title: 'Metalsmith Error:',
|
||||
body: stripAnsi(`${err.message}\n\n${err.stack}`),
|
||||
timeout: 100000
|
||||
})
|
||||
}
|
||||
debug('Metalsmith build successfully finished! Reloading browsers.')
|
||||
bs.reload()
|
||||
})
|
||||
}
|
||||
|
||||
bs.init({
|
||||
server: paths.serverRoot,
|
||||
port: 8080,
|
||||
ui: {
|
||||
port: 9000
|
||||
},
|
||||
open: false,
|
||||
logLevel: 'debug',
|
||||
logPrefix: 'BrowserSync',
|
||||
logConnections: true,
|
||||
logFileChanges: true,
|
||||
notify: true,
|
||||
files: [{
|
||||
match: [
|
||||
path.resolve(paths.projectRoot, 'content', '**', '*'),
|
||||
path.resolve(paths.projectRoot, 'layouts', '**', '*.njk')
|
||||
],
|
||||
fn: function (event, file) {
|
||||
buildMetalsmith()
|
||||
}
|
||||
}]
|
||||
})
|
7
stylelint.config.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
module.exports = {
|
||||
extends: 'stylelint-config-standard',
|
||||
rules: {
|
||||
'selector-nested-pattern': /^&[^,\n\r]+(,\s*&[^,\n\r]+)*$/,
|
||||
'selector-type-no-unknown': null
|
||||
}
|
||||
}
|