💡 Cette documentation concerne la version 2 de la maquette Nova pour Lodel. Pour la documentation concernant la version 1, lire le fichier README.md de la branche v1
.
Prérequis sur le serveur :
- Une instance de Lodel 1.0 opérationnelle.
- La dernière version des filtres lodel-textfunc installés avec Lodel.
- Un site Lodel avec le modèle éditorial OEJ.EM.
Prérequis sur le poste du développeur :
- Git.
- NodeJS (version 10 ou supérieure).
Remarque : il est possible de lancer les scripts de développement directement sur le serveur auquel cas il faudra au préalable y installer tous les prérequis. Cette documentation suppose toutefois que la personnalisation de maquette est réalisée sur une machine à part.
- Importer les fichiers
translations/translation-xx.xml
depuis l'interface du site Lodel : onglet "Administration" > "Administrer les traductions du site" > "Importer une traduction". Les langues ajoutées apparaîtront dans le sélecteur de langues de navigation du site. - Optionnel : ajouter le champ
chapo
et les identifiants auteurs ME. Placer le scriptnova_me_upgrade.php
(fourni dans le répertoirescripts/
) à la racine de l'installation Lodel et lancer la commandephp nova_me_upgrade.php nom_du_site
. - Optionnel : installer les options extra, utilisées pour configurer l'affichage des DOI et du lien vers le portail. Voir le dépôt dédié : lodel-options-extra.
- Cloner la branche
master
de ce dépôt :git clone [email protected]:chapitreneuf/nova.git
- Dans le dossier cloné, installer les dépendances avec la commande
npm install
- Suivre la méthode ci-après pour effectuer les personnalisations de maquette.
- Transpiler les CSS :
npm run css
- Copier tous les fichiers du dépôt dans le dossier
tpl/
du site.
Seuls les sous-dossiers tpl
et tpl/public
nécessitent d'être accessibles sur le serveur. Il est conseillé de bloquer l'accès aux autres sous-dossiers (less
, node_modules
, scripts
, translations
) ou de les supprimer du serveur.
Les instructions ci-dessous expliquent comment personnaliser un site tout en conservant la possibilité de mettre à niveau la maquette Nova facilement à posteriori. La maquette est conçue pour permettre d'isoler les modifications du code source de la maquette de base. C'est la méthode recommandée.
macros_custom.html
et less/custom.less
et de ne jamais modifier les autres fichiers de la maquette.
La personnalisation est réalisée en modifiant les fichiers suivants :
macros_custom.html
contient toutes les modifications du code LodelScript des templates. Ce fichier est créé automatiquement lors de l'installation des dépendances avecnpm install
.less/custom.less
contient les modifications des styles CSS.- Il est possible d'ajouter de nouveaux scripts, images et polices dans le répertoire
public/
.
Le dépôt nova-starter propose un modèle de site vierge à personnaliser.
À chaque template correspond un fichier macros nommé macros_nomdutemplate.html
.
Toutes les macros contenues dans ce fichier sont préfixées par NOMDUTEMPLATE_
.
Il est possible de personnaliser une macro (ou une fonction) NOMDUTEMPLATE_MA_MACRO
en la redéclarant simplement dans le fichier macros_custom.html
:
<DEFMACRO NAME="NOMDUTEMPLATE_MA_MACRO">
<!--[ Ici le code de la macro d'origine avec les modifications voulues... ]-->
</DEFMACRO>
La macro redéclarée dans macros_custom.html
remplacera la macro initiale lors de l'affichage.
Le fichier macros_custom.html
peut aussi contenir de nouvelles macros nommées avec le préfixe CUSTOM_
.
Il est possible de modifier les options de la maquette en les redéclarant dans la macro CUSTOM_INIT
de macros_custom.html
:
<DEFMACRO NAME="CUSTOM_INIT">
<!--[ Nombre de numéros par page. On change la valeur pour 5. ]-->
<LET VAR="issues_per_page" GLOBAL="1">5</LET>
</DEFMACRO>
La liste des options disponibles et de leurs valeurs par défaut se trouve dans le fichier default_options.html
.
Pour personnaliser les styles CSS d'un site, créer un fichier custom.less
dans le répertoire less/
. Toutes les surcharges CSS ou modifications de variables doivent être faites dans ce fichier.
Il est ainsi possible de modifier les variables LESS définies dans less/inc/vars/less
, de surcharger les déclarations de site.less
ou encore d'ajouter des déclarations CSS qui seront ajoutées à la suite des styles par défaut de la maquette Nova.
Par défaut la maquette Nova 2 n'intègre aucune webfont dans sa feuille de style, mais il est possible d'en ajouter lors de la personnalisation.
La variable LESS webfontsDir
contient le chemin vers le répertoire des polices (par défaut : public/fonts/
) pour une utilisation avec la propriété src
de @font-face
. Il est recommandé d'utiliser cette variable dans la feuille de style pour permettre le fonctionnement de LESS en mode de développement.
Il est possible d'appeler un script dans la macro HEAD_CUSTOM_JS
, à déclarer dans macros_custom.html
.
<DEFMACRO NAME="HEAD_CUSTOM_JS">
<script src="tpl/public/js/mon-script.js"></script>
</DEFMACRO>
Le script par défaut public/js/nova.js
stocke les fonctions dans un objet window.fnLoader.fns
. Celles-ci ne sont exécutées qu'après le chargement complet de la page. Il est donc possible de surcharger n'importe laquelle de ces fonctions en modifiant directement cet objet. De la même façon, pour ajouter une fonction il suffit d'insérer sa déclaration dans l'objet.
Pendant l'intégration CSS, il est possible d'exécuter LESS directement dans le navigateur pour prévisualiser plus rapidement les modifications.
Par défaut le mode de développement sera activé si aucun fichier CSS compilé public/css/site.css
n'existe dans les templates.
Il est également possible de forcer l'activation du mode de développement en ajoutant la déclaration suivante dans CUSTOM_INIT
:
<LET VAR="dev_mode" GLOBAL="1">1</LET>
Le mode de développement permet d'utiliser l'API LESS dans la console du navigateur :
less.refresh()
: rafraîchir les CSS (sans recharger toute la page),less.watch()
: mettre à jour les CSS à chaque modification du fichier LESS.
La maquette Nova détecte les problèmes de contraste entre le texte et son arrière-plan et affiche un message d'erreur si le contraste n'est pas conforme aux critères du RGAA 4.1. Par défaut le message n'apparaît que pour les visiteurs identifiés.
Les contrastes des couleurs des images, icônes et médias embarqués ne sont pas vérifiés par la Nova.
Élément | Type de document | Parent |
---|---|---|
Billet de présentation | "billet" | Racine du site |
Icônes réseaux sociaux (barre supérieure) | "noticedesite" | Collection "reseaux-sociaux" |
Logos des partenaires (menu principal) | "noticedesite" | Collection "partenaires" |
Actualités (barre latérale) | "actualite" | Rubrique d'actualités |
Flux RSS (barre latérale) | "fluxdesyndication" | Collection "flux" |
Fil Twitter (barre latérale) | "fluxdesyndication" | Collection "flux" |
Liens d'informations générales (footer) | "information" | Collection "informations" |
Définir les champs portail_nom
et portail_url
dans les options-extra.
Ajouter un document de type "noticedesite" dans une collection avec l'identifiant "reseaux-sociaux" à la racine du site.
L'icône affichée est déterminée par l'identifiant de la notice de site. Les icônes supportées par défaut sont consultables dans le répertoire public/icons/
. Elles sont obligatoirement au format SVG.
Pour utiliser une icône personnalisée, deux méthodes sont possibles :
- La méthode recommandée consiste à ajouter l'icône au format SVG dans le répertoire
public/icons/
et de renseigner l'identifiant correspondant (sans l'extension SVG) dans la notice. - Il est également possible de renseigner le champ "vignette" de la notice avec une icône au format PNG.
- Dans une collection à la racine du site avec l'identifiant "flux", créer une entité de type "Flux de syndication".
- Remplir le formulaire d'édition de l'entité comme habituellement pour les flux RSS.
- Dans le champ "URL du fil de syndication du site" renseigner l'URL complète de la timeline Twitter, sans oublier le protocole
https://
. Exemple :https://twitter.com/EdinumOrg
- Le champ "Nombre maximum d’items du flux" détermine le nombre de tweets affichés (par défaut : 3).
- Enregistrer et publier.
Pour afficher le DOI des articles, il faut définir le préfixe du DOI, c'est-à-dire la chaîne de caractères qui doit préfixer l'identifiant numérique de l'article pour former le DOI.
- Installer le groupe d'options "extra" avec le script distribué ici : lodel-options-extra
- Dans l'espace privé, naviguer jusqu'à l'onglet "Administration" > Section "Configuration" > Options du site > Sélectionner "Extra" dans le menu déroulant
- Compléter l'option "Préfixe des DOI"
À partir de la Nova 2.4, il est possible d'afficher les DOI des numéros en utilisant la dernière version de lodel-options-extra et en renseignant "article,numero" dans l'option "Types présentant des DOI".
La maquette Nova n'assure pas le dépôt automatique des DOI. Cela doit faire l'objet d'une intervention manuelle de la part des rédacteurs du site.
- Éditer l'article,
- Dans le menu "Documents annexes", sélectionner "Ajouter :" > "Fichiers" > "Fichier placé en annexe",
- Renseigner le titre : "TEI",
- Uploader le fichier TEI via le champ "Document",
- (Important) Renseigner l'identifiant en bas du formulaire : "tei",
- Enregistrer le formulaire avec le bouton "Terminer",
- Ne pas oublier que le document doit être "publié" pour qu'il soit visible en ligne.
À partir de la Nova 2.3 il est possible d'ajouter un favicon personnalisé en indiquant dans l'option favicon_dir
le dossier contenant les icônes. Il est conseillé de placer les icônes directement à la racine du domaine (/
).
Les fichiers appelés sont les suivants :
- favicon.ico (32x32)
- icon.svg
- apple-touch-icon.png (180x180)
- icon-192.png (192x192)
- icon-512.png (512x512)
On peut trouver un exemple de favicons dans public/icons/
.
La méthode d'inclusion utilisée est tirée de ce billet.
La maquette Nova est compatible avec PDFgen, le générateur automatique de PDF développé par Chapitre neuf.
À partir de la Nova 2.4 et de PDFgen 1.3, la génération est disponible pour les numéros de revues et pour les documents en attente de publication. Référez-vous à la documentation de PDFgen pour davantage d'informations.
Pour mettre à jour la maquette Nova sur un site :
- Par prévention, créer une sauvegarde des templates d'origine.
- Écraser les fichiers de l'ancienne Nova avec ceux de la dernière version stable.
- Lancer la commande de transpilation des CSS.
La Nova 2.0 rompt la compatibilité avec les versions précédentes. Par conséquent la mise à niveau nécessitera dans la plupart des cas une réécriture des fichiers de personnalisation custom.less
et macros_custom.html
pour prendre en compte les spécificités de cette nouvelle version.
Voici une liste non-exhaustive de changements à prendre en compte :
- Les filtres lodel-textfunc doivent être mis à jour vers leur version la plus récente.
- Toute la feuille de styles
site.less
a été réécrite, il est donc probable que les surcharges de styles doivent être revues au cas par cas et réécrites si nécessaire. - Plusieurs macros ont été renommées et le markup a ponctuellement été modifié. Il est donc conseillé de vérifier la compatibilité de toutes les macros dans
macros_custom.html
. - Les variables de traductions doivent impérativement être mises à jour avec les nouveaux fichiers distribués.
- Les options ont été déplacées dans
default_options.html
et de nombreuses options ont été ajoutées. - Plusieurs interfaces et comportements anciens qui ont été supprimés peuvent être rétablis à l'aide d'options dédiées.
- Le dossier de polices par défaut a été déplacé de
public/webfonts
verspublic/fonts
. - L'option
custom_script_path
de la Nova 1 a été remplacé par un hook avec la macroHEAD_CUSTOM_JS
(voir explications plus haut).