FOX Website
Simple Node.js project for develop
your static website
FOX Website est un framework simple d'utilisation vous permettant de créer des sites WEB statiques rapidement.
Ce dernier utilise NodeJS et est couplé avec l'utilisation de GULP pour la gestion de tâches automatisées, Nunjucks afin de gérer vos pages via des templates et UIKit en SCSS pour la partie front-end.
Node.js
Node.js is a JavaScript runtime
built on Chrome's V8 JavaScript engine
Vous devez au préalable installer NodeJS sur votre machine : https://nodejs.org
Installation
Via la console, il vous suffit de simplement cloner le repository de FOX Website, de changer le remote GIT sur votre propre repository, de lancer la commande d'installation des packages NodeJS et d'exécuter la commande gulp !
git clone https://github.com/de-sign/fox-website my-project
cd my-project
git remote set-url origin git@your.git.repo.example.com:user/my-project.git
npm i
gulp
Structure
Voici la structure proposé par FOX Website :
Celle ci est modulable mais n'oubliez pas de modifier le fichier de configuration gulp en conséquence !
Gulp
A toolkit to automate
& enhance your workflow
FOX Website utilise Gulp afin d'automatiser les tâches de génération de votre site statique final : https://gulpjs.com
Afin de facilité le développement, FOX Website couple Gulp avec le module browser-sync vous permettant de visualiser en temps réel vos modifications : https://browsersync.io
Fonctionnement
Le fichier gulpfile.js inclus 3 fichiers : un fichier de configuration gulp/config.js, un fichier regroupant les tâches gulp/_builds.js et un fichier dédié aux services gulp/_serves.js.
Vous pouvez utiliser n'importe quel module gulp-* pour générer une nouvelle tâche, il faut pour cela ajouter cette dernière dans le fichier gulp/_builds.js et modifier le fichier de configuration gulp/config.js en conséquence !
Lignes de commandes
FOX Website mets à votre disposition plusieurs lignes de commandes :
// Permet de visualiser votre site en temps réel
gulp
// -- Pour Windows
npm run fw-win-test
npm run fw-win-prod
// -- Pour UNIX
npm run fw-unix-test
npm run fw-unix-prod
// Permet de générer votre site
// -- Pour Windows
npm run fw-win-build-dev
npm run fw-win-build-test
npm run fw-win-build-prod
// -- Pour UNIX
npm run fw-unix-build-dev
npm run fw-unix-build-test
npm run fw-unix-build-prod
Libre à vous d'en ajouter dans le fichier packages.json !
Nunjucks
A rich and powerful
templating language for JavaScript
FOX Website utilise l'outils de templating Nunjucks afin de générer vos pages statiques : https://mozilla.github.io/nunjucks/
Templates
La tâche Gulp appellée njk génère chaque templates présents dans un dossier qui lui est propre situé dans pages/_templates/.
Pour créer votre propre template, il est recommandé de suivre les consignes suivantes :
Structure :
template.njk :
<!doctype {{FW.doctype}}>
<html lang="{{FW.lang}}">
<head>
//=include ../_head.njk
</head>
<body>
//=include _part.njk
</body>
</html>
_part.njk :
{% block part %}
// Contenu générique du bloc part
{% endblock %}
Dans ce cas, la tâche va générer un fichier my-template.njk dans le dossier pages/_templates/. C'est ce dernier que vous devrez utiliser comme template de référence pour vos pages statiques.
Si vous souhaitez modifier cette logique, n'oubliez pas de modifier le fichier gulp/config.js en conséquence !
Pages
La tâche Gulp appellée html génère chaques pages page.html présentes dans un dossier qui lui est propre situé dans pages/ à l'emplacement indiqué dans son fichier de configuration page.json.
Les informations présentes dans votre page sont restituées avec l'aide du fichier de configuration global data/website.json, étendue avec le fichier de configuration page.json propre à cette dernière si existant.
Pour créer votre propre page, il est recommandé de suivre les consignes suivantes :
page.html :
<!-- Extension du Layout -->
{% extends '_templates/' + FW.template.name + '.njk' %}
<!-- Extension des Blocks -->
{% block part %}
<p>
{{ FW.content.text | safe }}
</p>
{% endblock %}
page.json :
{
"url": {
"path": "my-page.html"
},
"meta": {
"title": "My Page",
"description": "Un page statique"
},
"template": {
"name": "my-template",
},
"content": {
"text": "Ceci est le contenu de <b>part</b>"
}
}
Dans ce cas, la tâche va générer un fichier my-page.html à la racine de votre site statique.
Si vous souhaitez modifier cette logique, n'oubliez pas de modifier le fichier gulp/config.js en conséquence !
UIKit
A lightweight and modular front-end framework
for developing fast and powerful web interfaces
FOX Website utilise UIKit afin de définir un thème pour votre site : https://getuikit.com
Pour ce faire, FOX Website compile vos fichiers de style via la synthaxe SCSS en utilisant la structure de fichier proposée par Hugo Giraudel : https://sass-guidelin.es/fr/#architecture
La tâche Gulp appellée scss compile les fichiers présents dans assets/scss/.
Libre à vous d'utiliser un autre framework voir même de gérer vous-mêmes vos feuilles de style mais n'oubliez pas de modifier le fichier de configuration gulp en conséquence !
JavaScript
JavaScript is a programming language
that conforms to the ECMAScript specification
FOX Website utilise Javascript Vanilla afin de créer vos propres scripts : http://vanilla-js.com
La tâche Gulp appellée js unifie les fichiers présents dans un dossier qui lui est propre situé dans assets/js/.
Pour créer vos fichiers de scripts, il est recommandé de suivre les consignes suivantes :
script.js :
//=require ../require.js
//=include _part.js
window.eddEventListener(
'load',
my_function,
false
);
_part.js :
function my_function() {
console.log('my_function');
}
Libre à vous d'utiliser TypeScript ou de modifier cette logique mais n'oubliez pas de modifier le fichier de configuration gulp en conséquence !