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. Un élément est ajouté une fois 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
Les nouvelles différences arrivent dans cet article au fil de leur implémentation, gardant la liste transparente et vérifiable.