Ecrivez des ebooks âwebâ avec GitBook et GitHub
Il y a quelques temps je mâĂ©tais mis de cĂŽtĂ© le projet GitBook http://www.gitbook.io/ qui permet de gĂ©nĂ©rer Ă partir dâun ensemble de fichiers markdown structurĂ©s une site web statique qui se parcourt comme un livre. GitBook peut aussi gĂ©nĂ©rer des e-books (epub) ou du pdf mais ce nâest pas lĂ quâil est le meilleur, prĂ©fĂ©rez Pandoc pour le moment (GitBook est jeune, mais ça Ă©voluera certainement).
Je trouve que le site généré à partir de vos fichiers markdown est particuliÚrement réussi et se comporte à merveille sur mobile.
Il y a plusieurs façons de lâutiliser, je vais uniquement vous parler de âma chaĂźne dâĂ©ditionâ, pour le reste vous trouverez toutes les informations nĂ©cessaires sur https://github.com/GitbookIO/gitbook/.
Ma vie, mon Ćuvre
Je me suis servi de GitBook pour âconcatĂ©nerâ 3 articles de mon blog :
- Préparer son projet javascript
- Un peu dâinteractivitĂ© dans vos outils node
- Faites vos outils avec npm et node
Cela me permettra de regrouper des sujets sur le mĂȘme thĂšmes
GitBook a besoin dâune table des matiĂšres qui pointe sur les diffĂ©rents fichiers markdown de votre futur ouvrage. Cela mâa obligĂ© Ă dĂ©couper chacun de mes articles en plusieurs morceaux, pour avoir une TDM âĂ©quilibrĂ©eâ et ce nâest finalement pas plus mal, cela donne une autre dynamique de lecture, voire mĂȘme cela facilite la lecture.
Prérequis :
- node
- npm
- grunt
- un compte Github
# Installer GitBook
npm install gitbook -g
CrĂ©ation dâun repository Github, clonage et paramĂ©trages
Cette Ă©tape nâest pas obligatoire, mais dans ma chaĂźne dâĂ©dition câest important, mais vous nâĂȘtes pas obligĂ©.
Jâai donc crĂ©Ă© un repository ma-vie-mon-oeuvre
chez Github que jâai ensuite clonĂ© sur mon poste. Lâavantage dâutiliser Github, câest aussi de pouvoir faire des e-books collaboratifs.
Ensuite dans le rĂ©pertoire du projet jâajoute :
# Un fichier README.md
Ce fichier reprĂ©sente lâintroduction de votre livre avec du contenu au format markdown :
# TITRE DU LIVRE
Blablabla ...
## UN PARAGRAPHE
Blablabla ...
## UN AUTRE PARAGRAPHE
Etc. ...
# Un fichier SUMMARY.md
qui décrit la structure de votre ouvrage
# Summary
* [Chapitre 1](chap-01/README.md)
* [Partie 1](chap-01/01-mon-texte.md)
* [Partie 1](chap-01/02-mon-texte.md)
* [Chapitre 2](chap-02/README.md)
* [Partie 1](chap-02/01-mon-texte.md)
* [Partie 1](chap-02/02-mon-texte.md)
Donc lâarborescence de mon projet sera la suivante :
ma-vie-mon-oeuvre/
âââ chap-01/
| âââ README.md
| âââ 01-mon-texte.md
| âââ 02-mon-texte.md
âââ chap-02/
| âââ README.md
| âââ 01-mon-texte.md
| âââ 02-mon-texte.md
âââ README.md
âââ SUMMARY.md
Notez que chaque chapitre comme le dĂ©but de lâouvrage comporte un fichier README.md
# Un fichier package.json
avec le contenu suivant :
{
"name": "ma-vie-mon-oeuvre",
"version": "0.0.1",
"description": "",
"repository": {
"type": "git",
"url": "https://github.com/e-books/ma-vie-mon-oeuvre.git"
},
"author": "@k33g_org <https://twitter.com/k33g_org>",
"license": "MIT",
"dependencies": {},
"devDependencies": {
"grunt": "~0.4.1",
"grunt-gitbook": "0.4.2",
"grunt-gh-pages": "0.9.1",
"grunt-contrib-clean": "~0.5.0"
},
"peerDependencies": {
"grunt": "~0.4.1"
}
}
# Installation des dépendances
Dans votre répertoire, faites un npm install
# Création des tùches Grunt de publication : Gruntfile.js
Il est bien sĂ»r possible de tout faire Ă la main, mais Grunt vous permet dâautomatiser le processus de gĂ©nĂ©ration, mais aussi de publication vers une branche gh-pages
du repository (donc y avoir accĂšs façon âsite webâ).
Créez un fichier Gruntfile.js
Ă la racine de votre projet, avec le contenu suivant :
# Ajouter une couverture
Pour cela il suffit dâajouter Ă la racine du projet un fichier cover.png
ou cover.jpg
# Dernier petit réglage : .gitignore
Ajouter un fichier .gitignore
(toujours Ă la racine) avec le contenu
node_modules
.grunt
/_book/
Câest tout bon, vous ĂȘtes prĂȘts Ă gĂ©nĂ©rer votre e-book web et Ă le publier. (une fois que vous avez assez de contenu).
GĂ©nĂ©ration de lâe-book
Vous avez pour cela 2 possibilités:
- lancez
gitbook serve
, cela va gĂ©nĂ©rer lâe-book et vous pourrez le âvisionnerâ dans votre navigateur Ă cette adresse : http://localhost:4000/ - ou bien
gitbook build
qui gĂ©nĂšre lâe-book mais ne lance pas de serveur http
Lâe-book sera gĂ©nĂ©rĂ© dans le rĂ©pertoire _book
(celui que nous avons exclu dans .gitignore
).
Si vous ĂȘtes content de vous, vous pouvez dĂ©jĂ commiter et synchroniser votre projet.
Publication de lâe-book
Pour publier lâe-book sous gh-pages, il suffit de lancer la commande grunt-publish
qui va gĂ©nĂ©rer lâe-book et le publier dans la branche gh-pages
.
Câest tout!
- Vous trouverez le template projet ici : https://github.com/e-books/ma-vie-mon-oeuvre
- Le rendu html ici : http://e-books.github.io/ma-vie-mon-oeuvre/
- Et un exemple plus complet (en cours de rédaction) : http://e-books.github.io/preparer.son.projet.js/
A demain.
Tweet