Sobre el proyecto
nfuwari es el repositorio fuente para el Blog de Lucius7 (blog.lucius7.cn), un sitio personal construido sobre el tema Fuwari para Astro y desplegado en GitHub Pages.
El contenido en chino e inglés se mantiene separado. Las publicaciones residen en src/content/posts/zh/ y src/content/posts/en/, cada una con sus propias listas, recuentos de categorías y etiquetas, navegación de publicaciones, feed RSS e índice de búsqueda, y la URL raíz redirige a /zh/. Las cadenas de la interfaz están en src/i18n/, las páginas 'About' por idioma están en src/content/spec/, y las traducciones pueden coincidir mediante rutas relativas idénticas o vincularse mediante una translationKey, con el selector de idioma regresando a la página de inicio del idioma de destino en caso de error.
La escritura se basa en Markdown. Un script generador (pnpm new-post zh/name o pnpm new-post en/name) crea un borrador con valores predeterminados de frontmatter que incluyen lang: zh_CN o lang: en; las publicaciones tienen por defecto draft: true y son visibles solo en el desarrollo local, ya que las compilaciones de producción excluyen los borradores. Los campos de frontmatter y la validación se definen en src/content/config.ts. Las matemáticas son compatibles a través de remark-math y rehype-katex, con estilos y fuentes suministrados por el sitio.
Los lectores disponen de temas claro y oscuro, categorías, etiquetas, búsqueda Pagefind, y salida de RSS y sitemap. La identidad del sitio, el tono del tema, el perfil, la navegación, los enlaces sociales y la licencia de las publicaciones se configuran en src/config.ts, mientras que la imagen del banner, el avatar (un endpoint de avatar de Tencent QQ), el icono del sitio y el enlace de registro del pie de página también son configurables allí o a través de public/ y src/assets/.
Dos funciones opcionales del tablero leen la API pública de OJFlare del autor: un widget de barra lateral que muestra las últimas tres entregas aceptadas de Codeforces/AtCoder, y un calendario de contribuciones AC en las páginas 'About' que elimina duplicados del historial aceptado por problemId, utiliza fechas de Asia/Taipei (UTC+8) y ofrece filtros por año y plataforma. Ambos comparten un bucle de sondeo, se actualizan cada cinco minutos mientras la página es visible, conservan los registros cargados previamente si falla una actualización y pueden desactivarse en la configuración; la compilación del blog no depende de que la API esté accesible.
El conjunto de herramientas incluye pnpm dev para una vista previa que incluye borradores, pnpm lint, pnpm check para la verificación de Astro/Svelte/TypeScript, pnpm build (que también produce el índice de Pagefind) y pnpm preview para el sitio compilado. Los scripts de prueba ejercitan el enrutamiento de idiomas, el widget de actividad MacFlare y el análisis de OJFlare sin contactar con servicios en vivo. GitHub Actions ejecuta comprobaciones de estilo, comprobaciones de tipos, compilación y despliegue al actualizar main, publicando en GitHub Pages, con un dominio personalizado servido a través de Alibaba Cloud ESA y registrado en el archivo CNAME. Dependabot revisa npm y GitHub Actions semanalmente. Las guías para escribir, contenido bilingüe, LaTeX, despliegue y revisión de dependencias se encuentran en docs/, y el código del proyecto conserva la licencia MIT y la atribución original.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.