Add french typography rules

This commit is contained in:
Simon 2020-02-26 17:20:38 +01:00
parent 28853145f2
commit 5c0ac24daf
6 changed files with 1068 additions and 16 deletions

View File

@ -10,10 +10,10 @@ weight: 3
<img src="./accueil/apropos.png" alt="Le livre" width="180"/> <img src="./accueil/apropos.png" alt="Le livre" width="180"/>
{{< /cell >}} {{< /cell >}}
{{< cell class="-8of12 " markdown="true" >}} {{< cell class="-8of12 " markdown="true" >}}
«&nbsp;Après des études de graphisme, je suis embauchée en tant que graphiste à lAgence «&nbsp;Five&nbsp;» une agence de communication specialisée dans le domaine de la beauté et lédition. Le 6 novembre 2008, jai du arrêter mon travail pendant plusieurs mois suite à lhistoire que je mapprête à vous raconter :). Je me suis alors noyée dans lillustration&nbsp;! Quel bonheur&nbsp;! Après des études de graphisme, je suis embauchée en tant que graphiste chez *Five*, une agence de communication spécialisée dans le domaine de la beauté et lédition. Le 6 novembre 2008, jai dû arrêter mon travail pendant plusieurs mois suite à lhistoire que je mapprête à vous raconter :). Je me suis alors noyée dans lillustration ! Quel bonheur !
Jai ensuite repris mon travail mais jai quitté rapidement mon agence pour devenir freelance et aujourdhui je suis toujours en free et ravie&nbsp;! Ce statut ma permis de quitter Paris avec mon compagnon. Jai ensuite repris mon travail mais jai quitté rapidement mon agence pour devenir freelance et aujourdhui je suis toujours en free et ravie ! Ce statut ma permis de quitter Paris avec mon compagnon.
Début 2016, nous sommes partis pour 2 ans de nomadisme, une incroyable expérience de voyager tout en travaillant&nbsp;! Aujourdhui je suis installée avec ma famille, dans un petit coin de paradis tout près de Roanne.&nbsp;» Début 2016, nous sommes partis pour 2 ans de nomadisme, une incroyable expérience de voyager tout en travaillant ! Aujourdhui je suis installée avec ma famille, dans un petit coin de paradis tout près de Roanne.
{{< /cell >}} {{< /cell >}}
{{< /grid >}} {{< /grid >}}

View File

@ -10,8 +10,8 @@
### Bienvenue ### Bienvenue
Je vous invite à sauter à pieds joints dans mon nouveau site «&nbsp;Histoire Je vous invite à sauter à pieds joints dans mon nouveau site "Histoire
dun pied&nbsp;» et à suivre laventure de l'édition de mes carnets. Au fil du dun pied" et à suivre laventure de l'édition de mes carnets. Au fil du
temps, je vous tiendrai au courant des actus et avancées de mon projet&nbsp;! temps, je vous tiendrai au courant des actus et avancées de mon projet !
{{< /cell >}} {{< /cell >}}
{{< /grid >}} {{< /grid >}}

View File

@ -5,5 +5,5 @@ image: img_aproposprojet.jpg
--- ---
Touchée par une terrible épreuve il y a 11 ans, jai mis à profit mes compétences de graphiste pour raconter en images deux ans de ma vie, concentrés en 20 carnets. Touchée par une terrible épreuve il y a 11 ans, jai mis à profit mes compétences de graphiste pour raconter en images deux ans de ma vie, concentrés en 20 carnets.
Au début, dessiner me permettait de passer le temps qui sest arrêté dun coup&nbsp;! Au début, dessiner me permettait de passer le temps qui sest arrêté dun coup !
Puis cela est devenu une véritable addiction et même une thérapie. Jy raconte mes journées, mes émotions, mes doutes, mes questionnements, et la découverte du milieu hospitalier. Puis cela est devenu une véritable addiction et même une thérapie. Jy raconte mes journées, mes émotions, mes doutes, mes questionnements, et la découverte du milieu hospitalier.

1022
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,12 +3,10 @@
"version": "0.1.0", "version": "0.1.0",
"description": "Source code of histoiredunpied.com", "description": "Source code of histoiredunpied.com",
"main": "index.js", "main": "index.js",
"dependencies": {
"spectre.css": "0.5.8"
},
"scripts": { "scripts": {
"start": "hugo server -D", "start": "hugo server -D",
"build": "rm -rf public && hugo -D --minify", "serve": "(cd public && python3 -m http.server 8080)",
"build": "rm -rf public && hugo -D --minify && node typo",
"favicon": "convert static/icon.png -resize 32x32 -colors 16 \\( -clone 0 -resize 16x16 -extent 16x16 \\) \\( -clone 0 -resize 32x32 -extent 32x32 \\) -delete 0 static/favicon.ico", "favicon": "convert static/icon.png -resize 32x32 -colors 16 \\( -clone 0 -resize 16x16 -extent 16x16 \\) \\( -clone 0 -resize 32x32 -extent 32x32 \\) -delete 0 static/favicon.ico",
"deploy": "docker-compose up -d --build", "deploy": "docker-compose up -d --build",
"ftp-deploy": "lftp -u $HISTOIREDUNPIED_FTP_USER,$HISTOIREDUNPIED_FTP_PASSWORD $HISTOIREDUNPIED_FTP_HOST -e 'mirror -e -R ./public /www ; quit'", "ftp-deploy": "lftp -u $HISTOIREDUNPIED_FTP_USER,$HISTOIREDUNPIED_FTP_PASSWORD $HISTOIREDUNPIED_FTP_HOST -e 'mirror -e -R ./public /www ; quit'",
@ -16,5 +14,11 @@
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"author": "Simon <simon@lamelio.fr>", "author": "Simon <simon@lamelio.fr>",
"license": "GPL-3.0" "license": "GPL-3.0",
"devDependencies": {
"fledermaus": "7.1.0",
"richtypo": "4.0.7",
"richtypo-rules-common": "4.0.2",
"richtypo-rules-fr": "4.0.2"
}
} }

34
typo.js Normal file
View File

@ -0,0 +1,34 @@
'use strict';
const path = require('path');
const { loadSourceFiles, savePages } = require('fledermaus');
const richtypo = require('richtypo');
const frRules = require('richtypo-rules-fr');
const { definitions } = require('richtypo-rules-common');
console.log('Prepares your texts to publication on web: applies typography rules.');
const openingQuote = '«';
const closingQuote = '»';
const quotes = text => text
.replace(
new RegExp(`${definitions.notInTag}(["“«]|&ldquo;)((${definitions.tag})?(${definitions.dash}${definitions.space})?${definitions.letter})`, 'gmi'),
`${openingQuote}$2`
)
.replace(
new RegExp(`${definitions.notInTag}(["”»]|&rdquo;)`, 'gmi'),
`${closingQuote}`
);
const rt = richtypo.default([frRules.default, quotes]);
let documents = loadSourceFiles(path.resolve(__dirname, 'public'), ['html'], {});
const pages = documents.map(doc => {
return {
pagePath: doc.sourcePath,
content: rt(doc.content),
};
});
savePages(pages, path.resolve(__dirname, 'public'));