Blog pessoal de Luciano Júnior, construído com Astro e hospedado no Cloudflare Workers.
Site: https://blog.lucis.dev
Repositório: github.com/lucis/blog
- Português (padrão):
/,/blog/:slug - Inglês:
/en,/en/blog/:slug
Cada post MDX declara lang (pt | en) e translationKey para ligar as versões. A UI e as datas seguem o idioma da rota. O poema da sidebar permanece em português.
A home / redireciona para /en quando o Accept-Language do browser prioriza inglês (e não há cookie locale=pt). O seletor PT/EN grava essa preferência.
npm install
npm run devAbra http://localhost:4321.
npm run build
npm run preview:cf # wrangler dev com o build estáticoPosts ficam em src/content/blog/ como arquivos MDX.
Frontmatter mínimo de um post publicado:
title: Meu título
date: '2026-08-02'
lang: pt
translationKey: meu-titulo
draft: falseA tradução em inglês usa o mesmo translationKey, lang: en e um slug/arquivo próprio (ex.: my-title.mdx → /en/blog/my-title).
Posts com draft: true, ou título contendo Resumo: / Summary:, não aparecem na home nem nas rotas públicas.
Para reimportar do CMS Deco legado (JSONs em scripts/legacy-posts/):
npm run migrateTodo push em main (e disparos manuais via Actions → Deploy → Run workflow) faz build e publica no Worker lucispersonalblog, ligado a blog.lucis.dev.
Workflow: .github/workflows/deploy.yml
Secrets necessários no repositório (Settings → Secrets and variables → Actions):
| Secret | Valor |
|---|---|
CLOUDFLARE_ACCOUNT_ID |
ID da conta Cloudflare |
CLOUDFLARE_API_TOKEN |
API Token com permissão Edit Cloudflare Workers |
Crie o token em Account API tokens com o template Edit Cloudflare Workers, escopado à conta do blog.
npm run deployRequer Wrangler autenticado (wrangler login).
src/pages/— rotas (/,/blog/[slug],/en,/en/blog/[slug])src/content/blog/— posts MDX (PT e EN)src/lib/i18n.ts— strings e helpers de localesrc/lib/posts.ts— coleta, recomendações e links de traduçãosrc/components/— Sidebar, LanguageSwitcher, PostCard, Footersrc/layouts/— BaseLayout, BlogPostLayoutscripts/migrate-posts.mjs— conversão JSON → MDX (one-shot).github/workflows/deploy.yml— CI/CD para Cloudflare Workers