Maquette générique pour l'affichage des sites de revues avec Lodel 1.0.
La maquette Nova est compatible avec le modèle éditorial d'OpenEdition Journals et utilise les filtres Lodel développés par Edinum.
En plus des champs habituellement supportés par le le modèle éditorial d'OpenEdition Journals, la maquette Nova permet l'affichage (optionnel) des données suivantes pour les articles :
- Le champ [#CHAPO]
- Les liens vers les fiches des auteurs dans les bases de données suivantes : IdRef, BNF, Orcid, HAL, Isni
- Le courriel des auteurs (déjà supporté par le ME OEJ mais non affiché).
- La mise en valeur d'un fichier TEI attaché à l'article.
- Prérequis
- Installation de lodel-textfunc: voir les instructions dans la branche outils de ce dépôt.
- Optionnellement installer lessphp pour compiler le CSS (aussi présent dans la branche outils), ou bien utiliser la méthode node.js décrite plus loin.
- Installation
- Créer un nouveau site depuis l'interface de lodel
- Installer le template nova dans un dossier nommé tpl/ à l'intérieur du dossier du nouveau site
- Compiler le CSS
- Traductions
- Utiliser les fichiers translations/translation-{fr,en}.xml fournis dans ce dépôt et les importer depuis l'interface du site lodel.
- Script d'ajout des champs au ME (optionnel)
- Voir la branche outils
- Options "extra" (optionnel) utilisées pour configurer l'affichage des DOI et du lien vers le portail
- Voir le dépôt lodel-options-extra
Les instructions ci-dessous vous permettent de personnaliser votre site tout en conservant la possibilité de mettre à niveau la maquette Nova facilement à posteriori. La maquette est conçue pour vous permettre d'isoler vos modifications du reste du code.
macros_custom.html
et less/custom.less
et de ne jamais modifier les autres fichiers de la maquette.
Les deux fichiers macros_custom.html
et less/custom.less
(en plus des éventuelles images, scripts JavaScript ou fichiers CSS qu'il est possible d'ajouter) permettent de surcharger tous les templates et tous les styles sans jamais toucher au code source de la maquette Nova. Respecter cette méthode facilite grandement la mise à jour future de la Nova et facilite donc la maintenance de votre site.
Les paragraphes suivants expliquent comment procéder.
À 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.
Chacun des fichiers macro contient une macro NOMDUTEMPLATE_INIT
qui appelle les éventuelles dépendances du fichier template (= autres fichiers macros) et créé les variables nécessaires à son exécution.
Par exemple, dans macros_base.html
la variable [%SIDE_MAX_ACTUALITES]
:
<DEFMACRO NAME="BASE_INIT">
<!--[ Option : nombre maximum d'actualités présentées dans la colonne de droite ]-->
<LET VAR="side_max_actualites" GLOBAL="1">5</LET>
</DEFMACRO>
peut être modifiée dans macros_custom.html
avec une simple redéclaration dans la macro CUSTOM_INIT
:
<DEFMACRO NAME="CUSTOM_INIT">
<!--[ On change la valeur pour 10 ]-->
<LET VAR="side_max_actualites" GLOBAL="1">10</LET>
</DEFMACRO>
Pour personnaliser les CSS d'un site, créer custom.less
dans le répertoire less
et lancer le préprocesseur LESS (voir partie "Installation" plus haut). Toutes les surcharges CSS ou modification de variables doivent être faites dans le fichier custom.less
.
Il est ainsi possible de modifier une variable de couleur utilisée dans site.less
:
@color-1: #c00;
de modifier un mixin ou encore d'ajouter des déclarations CSS qui seront ajoutées à la suite des styles par défaut de la maquette Nova.
Pendant l'intégration CSS, il est possible d'exécuter LESS directement dans le navigateur pour éviter l'étape de compilation sur le serveur. Il faut pour cela ajouter la déclaration de variable suivante dans la macro CUSTOM_INIT
:
<LET VAR="dev_mode" GLOBAL="1">1</LET>
Il est alors possible 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.
Il est possible d'appeler un script en plus du script par défaut en indiquant le chemin relatif dans la globale Lodelscript [%CUSTOM_SCRIPT_PATH]
.
Le script par défaut public/js/nova.js
stocke les fonctions dans un objet window.fnLoader.fns
, 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, on insère sa déclaration dans l'objet.
Les fonctions sont exécutées après tous les appels javascript.
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"
- 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 les options "Nom du portail" et "URL du portail"
Le bloc ne sera affiché dans la maquette que si ces deux options sont définies.
- É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.
- Dans une collection à la racine du site, 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 mettre à jour la maquette Nova sur un site :
- Créer une sauvegarde du contenu de dossier
tpl/
. - Remplacer le contenu du dossier
tpl/
du site avec la nouvelle maquette Nova à jour. - Copier dans cette nouvelle maquette les fichiers de personnalisation du site sauvegardés en 1 :
macros_custom.html
,less/custom.less
ainsi que toutes les ressources externes ajoutées lors de la personnalisation (images, scripts, webfonts, etc.).
Les scripts optionnels suivants sont disponibles pour permettre le développement avec NodeJS :
- Installation du projet avec NPM :
npm install
- Compiler les CSS (avec LESS) :
npm run css
- Surveiller les fichiers LESS et compiler les CSS à chaque changement :
npm run watch:css
- Mettre à jour les dépendances dans le dossier
public/vendor
:npm run copy:vendor
- Tout ceci en même temps :
npm run build
Remarque : la tâche gulp
déclarée dans package.json
est un alias mis en place pour des raisons de compatibilité avec la maquette Prima.
Ce projet a été développé par le collectif Edinum pour les Bibliothèques universitaires de l'Université Jean Moulin Lyon 3. Il a été financé par l'Université Jean Moulin Lyon 3.
Le collectif Edinum a accepté de publier son code source sous licence libre GPL3 sans contrepartie, affirmant ainsi son engagement en faveur du logiciel libre.
- Webdesign, graphisme et CSS : Yolaine de Villeneuve
- Programmation PHP et Lodel : Arnaud Cordier
- HTML, LodelScript et JavaScript : Thomas Brouard
2019, Edinum.org
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.