Skip to content

Repository files navigation

blog.lucis.dev

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

Idiomas

  • 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.

Desenvolvimento

npm install
npm run dev

Abra http://localhost:4321.

Build e teste local

npm run build
npm run preview:cf   # wrangler dev com o build estático

Conteúdo

Posts 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: false

A 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 migrate

Deploy

Automático (GitHub Actions)

Todo 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.

Manual

npm run deploy

Requer Wrangler autenticado (wrangler login).

Estrutura

  • 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 locale
  • src/lib/posts.ts — coleta, recomendações e links de tradução
  • src/components/ — Sidebar, LanguageSwitcher, PostCard, Footer
  • src/layouts/ — BaseLayout, BlogPostLayout
  • scripts/migrate-posts.mjs — conversão JSON → MDX (one-shot)
  • .github/workflows/deploy.yml — CI/CD para Cloudflare Workers

About

My personal blog

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages