Website logo

FOX Website

Github
logo logo

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 :

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 !