Sobre o projeto
nfuwari é o repositório de origem do Blog do Lucius7 (blog.lucius7.cn), um site pessoal construído sobre o tema Fuwari para Astro e implantado no GitHub Pages.
Os conteúdos em chinês e inglês são mantidos separadamente. As postagens ficam em src/content/posts/zh/ e src/content/posts/en/, cada uma com suas próprias listas, contagens de categorias e tags, navegação de posts, feed RSS e índice de busca, e a URL raiz redireciona para /zh/. As strings de interface estão em src/i18n/, as páginas Sobre são por idioma em src/content/spec/, e as traduções podem ser correspondidas por caminhos relativos idênticos ou vinculadas por uma translationKey, com o alternador de idioma retornando à página inicial do idioma de destino.
A escrita é baseada em Markdown. Um script gerador (pnpm new-post zh/name ou pnpm new-post en/name) cria um rascunho com padrões de frontmatter, incluindo lang: zh_CN ou lang: en; as postagens assumem por padrão draft: true e são visíveis apenas no desenvolvimento local, já que as builds de produção excluem rascunhos. Os campos de frontmatter e a validação são definidos em src/content/config.ts. A matemática é suportada via remark-math e rehype-katex, com estilos e fontes fornecidos pelo site.
Os leitores contam com temas claro e escuro, categorias, tags, busca Pagefind, além de saída de RSS e sitemap. A identidade do site, matiz do tema, perfil, navegação, links sociais e licença de postagem são configurados em src/config.ts, enquanto a imagem do banner, avatar (um endpoint de avatar do Tencent QQ), ícone do site e link de registro do rodapé também são configuráveis ali ou através de public/ e src/assets/.
Dois recursos opcionais de dashboard leem a API pública do OJFlare do autor: um widget de barra lateral que mostra as três últimas submissões aceitas do Codeforces/AtCoder, e um calendário de contribuições AC nas páginas Sobre que remove duplicatas do histórico aceito por problemId, usa datas Asia/Taipei (UTC+8) e oferece filtros de ano e plataforma. Ambos compartilham um loop de consulta, atualizam a cada cinco minutos enquanto a página está visível, mantêm registros carregados anteriormente se uma atualização falhar e podem ser desativados na configuração; a build do blog não depende da acessibilidade da API.
O ferramental inclui pnpm dev para pré-visualização com rascunhos, pnpm lint, pnpm check para verificação de Astro/Svelte/TypeScript, pnpm build (que também produz o índice Pagefind) e pnpm preview para o site construído. Scripts de teste exercitam o roteamento de idioma, o widget de atividade MacFlare e o parsing do OJFlare sem contatar serviços ativos. O GitHub Actions executa verificações de estilo, verificações de tipo, build e deploy em atualizações na main, publicando no GitHub Pages, com um domínio personalizado servido via Alibaba Cloud ESA e registrado no arquivo CNAME. O Dependabot verifica npm e GitHub Actions semanalmente. Guias para escrita, conteúdo bilíngue, LaTeX, deploy e revisão de dependências ficam em docs/, e o código do projeto mantém a licença MIT e a atribuição upstream.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.