NLO vs Chirpy : journal des différences
Une liste objective des différences entre le thème NLO et le thème jekyll-chirpy original. Le message est mis à jour au fur et à mesure de la progression de la migration et du développement du sujet.
Cet article documente les différences techniques spécifiques par rapport au thème original. Le format est simple : on ajoute un élément lorsqu’il est implémenté et vérifié.
Liste de contrôle des différences
- Graphique de contribution GitHub aux statistiques personnelles (accueil + barre latérale) avec mise à jour automatique via workflow
- Panneau d’administration local pour l’édition de contenu, basé sur
jekyll-admin, avec fork d’interface utilisateur à l’intérieur du projet - Connexion rapide au panneau d’administration local via un bouton séparé dans la barre latérale (développeur uniquement)
- Branding de la barre latérale étendue : différents avatars pour le clair/foncé + choix du style de cadre
- Mode multilingue en
langavec sélecteur de langue et drapeaux dans la barre latérale - Préfixes d’URL de paramètres régionaux courts (
/ru/,/fr/) au lieu de longs (/ru-RU/,/fr-FR/) - Filtrage du contenu par langue de publication (
language/langdans le front matter)
1) Statistiques personnelles des contributions GitHub
Ce qui est ajouté :
- Affichez le graphique de contribution GitHub à deux endroits : sur la page principale et dans la barre latérale.
- Séparez les SVG pour les thèmes clairs et sombres.
Où est-il configuré :
_config.yml->nlo.github_chart.- Clés :
home_imagehome_image_darksidebar_imagesidebar_image_dark
Comment il se met à jour automatiquement :
- Flux de travail :
.github/workflows/update-githubchart.yml - Lancement planifié :
0 3 * * *(quotidiennement) et manuellement viaworkflow_dispatch. - Génération :
tools/generate-githubchart.sh - Lorsque des modifications sont apportées, les fichiers suivants sont validés :
assets/img/githubchart.svgassets/img/githubchart-sidebar.svgassets/img/githubchart-dark.svgassets/img/githubchart-sidebar-dark.svg
2) Panneau d’administration local (pour le développement uniquement)
Sur quoi est-il basé :
- Fonctionnalité d’édition de base : gem
jekyll-admin. - L’interface utilisateur est forkée dans le dépôt, dans le dossier
admin/, pour les personnalisations NLO.
Comment cela marche-t-il:
- Le plugin
_plugins/jekyll-admin-fork.rbmonte :/admin-> UI locale à partir deadmin//_api-> API à partir deJekyllAdmin::Server
- Fichiers d’interface personnalisés :
admin/index.htmladmin/nlo-admin.cssadmin/nlo-admin.js
Lancement local :
1
bash tools/run.sh --admin
URL :
1
http://127.0.0.1:4000/admin
Pourquoi pas en production :
- La fonction admin est destinée au circuit de développement local.
- La gemme
jekyll-adminest connectée en tant que dépendance de développement (Gemfile, groupe:development). - Un site de production public ne doit rester qu’une couche de contenu sans boucle ouverte éditeur/API.
3) Améliorations UX de la barre latérale et de l’éditeur
Ce qui est ajouté :
sidebara ajouté un boutonADMINbien visible dans le bloc de navigation inférieur (affiché uniquement dansdevelopment).- Le bloc avatar dans la barre latérale a été augmenté d’environ 30 % pour un meilleur équilibre visuel.
- Pour l’avatar, des sources distinctes sont utilisées pour les thèmes clairs et sombres :
nlo.branding.avatar_lightnlo.branding.avatar_dark
- Le paramètre de cadre d’avatar est inclus dans la configuration (
nlo.branding.avatar_frame) et prend en charge les styles :rounddiscord
- Dans un thème sombre, le cadre de l’avatar est assombri pour correspondre au ton général de l’interface.
Ce qui a été modifié dans le panneau d’administration :
- Les paramètres
GitHub Chart PaletteetAvatar Framesont intégrés dans la pageConfigurationcomme des éléments normaux. - Les deux blocs de paramètres sont affichés sur une seule ligne sur le bureau (deux colonnes) et sur les écrans étroits, ils sont repliés sur une seule colonne.
- Une info-bulle explicative a été ajoutée pour le champ
author:- si vous spécifiez une clé de
_data/authors.yml, l’auteur est affiché sous forme de lien vers le profil ; - si la clé n’est pas trouvée, la valeur
authorest affichée en texte brut.
- si vous spécifiez une clé de
4) Changement multilingue et linguistique
Ce qui est ajouté :
langen_config.ymlprend désormais en charge plusieurs langues séparées par des virgules :- exemple :
lang: en, ru-RU, fr-FR
- exemple :
- Si une langue est spécifiée, le sélecteur de langue ne s’affiche pas.
- Si plusieurs langues sont spécifiées :
- jusqu’à 3 drapeaux de langues sont affichés ;
- si la quantité est supérieure, le compact
selects’affiche automatiquement.
- La signature du sélecteur est localisée (
Site version) via les fichiers de paramètres régionaux. - Les drapeaux sont stockés localement dans
assets/img/flags/. - En
title, les drapeaux affichent le nom lisible de la langue (plutôt qu’un code technique commeru-RU).
Techniquement:
- La normalisation des langues et la détection de la langue active sont implémentées dans
_includes/lang.html. - L’interface utilisateur du sélecteur est implémentée dans
_includes/lang-switch.htmlet est construite comme premier élément de la barre de navigation latérale (visuellement sous la formeHOME). - Ajout d’une transparence douce (
opacity: 0.7) et d’une mise en évidence de la langue active (survol/actif ->opacity: 1) aux drapeaux.
5) URL de langue et visibilité du contenu
Ce qui a changé dans l’URL :
- Le changement de langue utilise désormais des préfixes courts :
http://127.0.0.1:4000/ru/http://127.0.0.1:4000/fr/
- Pour les pages d’accueil localisées, des permaliens courts sont spécifiés :
ru-RU/index.md->/ru/fr-FR/index.md->/fr/
- Le détecteur de langue dans
_includes/lang.htmlcomprend désormais à la fois le code régional complet et l’alias du préfixe court.
Ce qui a changé dans le contenu :
- Ajout de
languageen avant-première aux publications (par exemplelanguage: en,language: ru-RU). - Les messages sont affichés uniquement pour la langue actuelle de l’interface.
- Les publications sans
language/langsont considérées comme du contenu àdefault_lang(rétrocompatible).
Où le filtrage fonctionne :
- Accueil (
home) - Archives (
archives) - Listes de catégories/tags (
categories,tags) - Pages d’une catégorie/balise spécifique
- Barre latérale : dernières mises à jour et balises de tendance
- Articles connexes dans l’article
Quelle est la prochaine étape
Nous ajouterons les différences suivantes au même message au fur et à mesure que nous les mettrons en œuvre afin de maintenir une liste transparente et vérifiable des modifications.