Skip to content

Commit

Permalink
Merge pull request #20 from YannisDelmas/experimental/grunt
Browse files Browse the repository at this point in the history
Modularisation et templating #14 #19
  • Loading branch information
YannisDelmas committed Mar 30, 2022
2 parents 7e8b7b9 + 3c136b5 commit 107f989
Show file tree
Hide file tree
Showing 35 changed files with 2,584 additions and 274 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
vendor
node_modules
package-lock.json
.vscode
62 changes: 62 additions & 0 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
module.exports = function(grunt) {
const chalk = require('chalk');
const publicFolder = 'docs';
const traceFile = function(f) {
if ( grunt.file.isFile(f) ) {
console.log(chalk.cyan(f), '→', chalk.cyan(grunt.task.current.data.dest));
}
return true;
}

grunt.initConfig({
copy: {
main: {
expand: true,
src: '{assets/**,*.html}',
dest: publicFolder+'/',
filter: traceFile,
},
JSLibs: {
expand: true,
flatten: true,
src: 'node_modules/leader-line/leader-line.min.js',
dest: publicFolder+'/assets/js/',
filter: traceFile,
},
licence: {
src: 'LICENSE',
dest: publicFolder+'/LICENSE.txt',
filter: traceFile,
},
},
twigRender: {
options: {
functions: {
asset: function(arg) {
return grunt.file.expand({cwd: publicFolder}, 'assets/**/'+ arg)[0];
},
},
filters: {
glob: function(arg) { return grunt.file.expand(arg); },
},
},
main: {
files: [
{
data: {},
expand: true,
src: ["*.twig", "!*-+([0-9])?(-*).twig", "!_*.twig"],
// tous les modèles TWIG, hormis les composants et les partiels
dest: publicFolder+'/',
ext: ".html"
}
]
}
}
});

grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-twig-render');

grunt.registerTask('default', ['copy', 'twigRender']);
};
24 changes: 21 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,25 @@
# Le beau code web

Table des matières : [`index.html`](index.html)
## Documents et dossiers

Les principes sont dans [`principes.html`](principes.html).
Les fichiers destinés à la publication sont dans [`/docs`](docs). Ils sont mis à jour à l’aide de la commance `make` (cf. ci-dessous).

Les recommandations actées sont dans la branche `main`. Les propositions à discuter sont à placer dans des branches de développement spécifiques.
Table des matières : [`index.html`](docs/index.html)

Les principes sont dans [`principes.html`](docs/principes.html).

## Branches

Les éléments actés sont dans la branche `main`. Les propositions à discuter sont à placer dans des branches de développement spécifiques.

## Installation et mise en œuvre

Ce dépôt utilise [NPM](https://www.npmjs.org/), le gestionnaire de paquets de [Node.js](https://nodejs.org/). Ces deux logiciels doivent être préalablement installés pour pouvoir mettre à jour les fichiers HTML publiés.

La commande `npm install` permet d’installer et mettre à jour les éléments suivants:

- [Grunt](https://gruntjs.com/) pour la gestion et la mise en œuvre des mises à jour.
- Plugin [grunt-contrib-copy](https://www.npmjs.com/package/grunt-contrib-copy) de Grunt pour la copie en l’état de fichiers.
- Plugin [grunt-twig-render](https://www.npmjs.com/package/grunt-twig-render) de Grunt, utilisant la bibliothèque [Twig.js](https://github.com/twigjs/twig.js), pour le rendu des modèles TWIG ([Wiki](https://github.com/twigjs/twig.js/wiki)).

Pour fabriquer les fichiers publiables, entrer la commande `grunt` ou `npm run build`. Pour que les fichiers soient automatiquement fabriqués à chaque enregistrement de fichiers sources, utiliser la commande `npm run watch`.
Loading

0 comments on commit 107f989

Please sign in to comment.