À propos du projet
nfuwari est le dépôt source du blog de Lucius7 (blog.lucius7.cn), un site personnel construit sur le thème Fuwari pour Astro et déployé sur GitHub Pages.
Les contenus chinois et anglais sont séparés. Les articles se trouvent sous src/content/posts/zh/ et src/content/posts/en/, chacun possédant ses propres listes, comptages de catégories et de tags, navigation entre articles, flux RSS et index de recherche, et l'URL racine redirige vers /zh/. Les chaînes de l'interface sont dans src/i18n/, les pages À propos sont par langue sous src/content/spec/, et les traductions peuvent être associées par des chemins relatifs identiques ou liées par une translationKey, le sélecteur de langue revenant par défaut à la page d'accueil de la langue cible.
L'écriture est basée sur Markdown. Un script générateur (pnpm new-post zh/name ou pnpm new-post en/name) crée un brouillon avec des valeurs par défaut dans le frontmatter, incluant lang: zh_CN ou lang: en ; les articles sont par défaut en draft: true et ne sont visibles qu'en développement local, car les builds de production excluent les brouillons. Les champs du frontmatter et leur validation sont définis dans src/content/config.ts. Les mathématiques sont supportées via remark-math et rehype-katex, avec les styles et polices fournis par le site.
Les lecteurs disposent de thèmes clair et sombre, de catégories, de tags, de la recherche Pagefind, ainsi que d'un flux RSS et d'un sitemap. L'identité du site, la teinte du thème, le profil, la navigation, les liens sociaux et la licence des articles sont configurés dans src/config.ts, tandis que l'image de bannière, l'avatar (un point de terminaison d'avatar Tencent QQ), l'icône du site et le lien d'enregistrement du pied de page sont également configurables là-bas ou via public/ et src/assets/.
Deux fonctionnalités de tableau de bord optionnelles lisent l'API publique OJFlare de l'auteur : un widget de barre latérale affichant les trois dernières soumissions acceptées sur Codeforces/AtCoder, et un calendrier de contributions AC sur les pages À propos qui déduplique l'historique des acceptations par problemId, utilise les dates Asia/Taipei (UTC+8) et propose des filtres par année et plateforme. Les deux partagent une seule boucle de sondage, s'actualisent toutes les cinq minutes lorsque la page est visible, conservent les enregistrements précédemment chargés en cas d'échec du rafraîchissement et peuvent être désactivées dans la configuration ; le build du blog ne dépend pas de l'accessibilité de l'API.
L'outillage comprend pnpm dev pour un aperçu incluant les brouillons, pnpm lint, pnpm check pour la vérification Astro/Svelte/TypeScript, pnpm build (qui produit également l'index Pagefind) et pnpm preview pour le site construit. Des scripts de test exercent le routage linguistique, le widget d'activité MacFlare et l'analyse OJFlare sans contacter les services en direct. GitHub Actions exécute les vérifications de style, les vérifications de type, le build et le déploiement lors des mises à jour de main, publiant sur GitHub Pages, avec un domaine personnalisé servi via Alibaba Cloud ESA et enregistré dans le fichier CNAME. Dependabot vérifie npm et GitHub Actions chaque semaine. Les guides pour l'écriture, le contenu bilingue, LaTeX, le déploiement et la revue des dépendances se trouvent sous docs/, et le code du projet conserve la licence MIT et l'attribution amont.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.