# V2AL4 INSPIRE Blog, manual completo de instalação e gestão

Este manual é para publicar e manter o blog no Cloudflare Pages, usando o subdomínio:

https://blog.v2al4.com/

O pacote desta versão é:

v38-sub-v396.zip

## 1. O que existe neste pacote

O blog é estático. Ele roda com HTML, CSS e JavaScript.

Principais pastas:

- `index.html`, página inicial do blog.
- `post/`, páginas individuais de artigos.
- `book/`, páginas de livros.
- `author/`, páginas de autores.
- `category/`, páginas de categorias.
- `library/`, biblioteca geral.
- `page/`, páginas legais e institucionais.
- `admin/`, painel editorial local.
- `content/posts.json`, base principal de conteúdo.
- `assets/posts.js`, mesma base em JavaScript.
- `content/editor-users.json`, usuários e nomes públicos de autores.
- `content/admin-users.json`, logins autorizados.
- `tools/build-blog.mjs`, gerador das páginas estáticas.

## 2. Publicação no Cloudflare Pages

Crie um repositório no GitHub para o blog.

Extraia o ZIP na raiz desse repositório. O arquivo `index.html` precisa ficar na raiz.

No Cloudflare:

1. Abra Cloudflare Dashboard.
2. Vá em Workers and Pages.
3. Clique em Create.
4. Escolha Pages.
5. Conecte o repositório GitHub.
6. Framework preset: None.
7. Build command: deixe vazio, ou use `node tools/build-blog.mjs` se quiser gerar tudo no deploy.
8. Output directory: `/`
9. Salve e publique.

## 3. Configurar o subdomínio

No Cloudflare Pages, abra o projeto do blog.

Vá em Custom domains.

Adicione:

blog.v2al4.com

Se o DNS estiver na Cloudflare, o registro será criado automaticamente. Se não for criado, use:

Tipo: CNAME
Nome: blog
Destino: o domínio pages.dev do projeto

Depois aguarde a ativação do SSL.

## 4. Arquivos importantes de configuração

O pacote já inclui arquivos úteis para Cloudflare:

- `_headers`
- `_redirects`

Use esses arquivos na raiz do projeto.

Eles ajudam com segurança, cache, redirecionamentos e headers básicos.

## 5. Proteger o admin

O admin em HTML tem login local, mas isso não substitui proteção real.

Para proteger de verdade:

1. Abra Cloudflare Zero Trust.
2. Vá em Access.
3. Crie uma aplicação.
4. Tipo: Self-hosted.
5. Domínio: `blog.v2al4.com/admin/*`
6. Permita apenas os e-mails autorizados.
7. Salve.

Repita para:

blog.v2al4.com/admin

Assim, qualquer página do admin exige acesso antes de abrir.

## 6. Logins iniciais

Usuários disponíveis:

- v2al4
- inspire
- valmor
- leandro
- luis
- taires
- wanderley

Senha inicial:

Global@V2AL4.com

Cada usuário pode alterar a própria senha em:

/admin/perfil/

As alterações de senha são locais no navegador. Para mudar a base inicial, edite:

content/admin-users.json
assets/admin-users.js

## 7. Autores e nomes públicos

Abra:

/admin/autores/

Ali você pode ver e editar:

- usuários editoriais
- logins
- nomes públicos de autores
- imagens
- descrições
- séries
- donos de cada nome público

Esta versão corrige o autor Wanderley Alino para aparecer junto com os outros autores.

Também foi adicionado o botão:

Sincronizar autores base

Use esse botão quando o navegador estiver mostrando uma lista antiga salva em localStorage.

## 8. Criar posts pelo admin, sem mexer no código

Fluxo recomendado para autores:

1. Entre em `/admin/`.
2. Use seu login.
3. Clique em `Criar post agora`.
4. Preencha título, slug, resumo e autor.
5. Escolha categoria e livro.
6. Escreva o conteúdo.
7. Preencha CTA e SEO.
8. Gere o HTML e JSON.
9. Baixe o pacote.
10. Publique os arquivos no GitHub.

O guia interno fica em:

/admin/guia-autores/

Ele foi criado para autores que precisam de um passo a passo simples.

## 9. Criar posts manualmente pelo JSON

Use este fluxo quando quiser editar direto no repositório:

1. Abra `content/posts.json`.
2. Adicione um novo item dentro de `posts`.
3. Use um slug único.
4. Use o `authorId` correto.
5. Salve o arquivo.
6. Gere `assets/posts.js` com o mesmo conteúdo.
7. Rode:

node tools/build-blog.mjs

8. Confira se a página apareceu em:

/post/slug-do-post/index.html

9. Confira o sitemap.
10. Envie para o GitHub.

Modelo mínimo:

```json
{
  "slug": "titulo-do-post",
  "title": "Título do post",
  "excerpt": "Resumo curto para SEO e cards.",
  "categorySlug": "categoria",
  "categoryTitle": "Categoria",
  "sourceCategoryTitle": "Categoria",
  "authorId": "id-do-autor",
  "minutes": 7,
  "baseViews": 900,
  "baseRating": 4.8,
  "tags": ["tema", "livro"],
  "bookTitle": "Nome do livro",
  "bookUrl": "/book/slug-do-livro/",
  "body": ["Parágrafo 1.", "Parágrafo 2."],
  "takeaways": ["Ideia prática 1.", "Ideia prática 2."],
  "leadTitle": "Receba novos conteúdos",
  "leadText": "Entre na lista para acompanhar novos artigos.",
  "leadButton": "Quero receber",
  "ctaTitle": "Continue pela obra original",
  "ctaText": "Leia o livro que deu origem a este artigo.",
  "contentHtml": "",
  "translations": {}
}
```

## 10. IDs de autores atuais

Use estes IDs em `authorId`:

- v2al4, V. V. A. Almeida
- andreia, Andreia Dering
- valmor-jonatan, Valmor Jonatan
- romilav, ROMILAV
- luis-bispo, Luis Bispo
- leandro-souza, Leandro Souza
- taires-souza, Taires Souza
- wanderley-alino, Wanderley Alino

## 11. Recomendações para autores publicarem com regularidade

O jeito mais simples é ter um fluxo fixo.

Sugestão:

- Cada autor cria rascunhos em Google Docs.
- O responsável editorial revisa o texto.
- O texto aprovado entra no `/admin/`.
- O admin gera o pacote do post.
- O pacote vai para o GitHub.
- O Cloudflare Pages publica.

Para deixar ainda mais organizado:

- Crie uma pasta `drafts/autor/` no repositório.
- Crie um calendário simples em `/admin/calendario/`.
- Use status: rascunho, revisar, aprovado, publicado.
- Use uma branch por lote de posts.
- Publique em lotes semanais.
- Faça preview no Cloudflare Pages antes de enviar para produção.

## 12. Sugestões de melhoria para a próxima etapa

Estas melhorias podem deixar o processo mais fácil para muitos autores:

1. Criar um formulário simples de envio de rascunhos por autor.
2. Criar importação direta de Google Docs via cópia e cola limpa.
3. Criar um botão que salva o post direto como arquivo HTML no GitHub via Worker.
4. Criar uma fila editorial com aprovação por responsável.
5. Criar um painel que mostra posts sem SEO, posts sem CTA e posts sem imagem.
6. Criar um fluxo de revisão com comentários por item.
7. Criar templates de post por tipo: livro, reflexão, lista prática, estudo, VSL, lead magnet.
8. Criar uma tela de exportação apenas para o autor logado.

## 13. Atualizar páginas legais

Quando houver novo ZIP legal:

1. Extraia o ZIP.
2. Copie cada pasta para `/page/`.
3. Mantenha `index.html` dentro de cada pasta.
4. Rode a normalização do shell ou use o pacote atualizado entregue aqui.
5. Confira:
   - `/page/termos/`
   - `/page/privacidade/`
   - `/page/parceiros/`
   - `/page/contato/`

Nesta versão, os HTMLs legais foram substituídos pelo ZIP:

legal-pages-v2al4-pt-BR-v398-layout-corrigido (1).zip

## 14. Checklist antes de publicar

Antes de subir para produção:

- Abra `/`.
- Abra `/library/`.
- Abra `/author/wanderley-alino/`.
- Abra `/admin/`.
- Abra `/admin/autores/`.
- Abra `/admin/guia-autores/`.
- Confira o menu.
- Confira se Wanderley Alino aparece no menu.
- Confira se o GTranslate abre e fecha.
- Confira se o botão de tema funciona.
- Confira se cada página tem um rodapé.
- Rode `node --check` nos scripts principais.
- Publique no GitHub.

## 15. Arquivos alterados nesta versão

- `content/editor-users.json`
- `content/admin-users.json`
- `assets/editor-users.js`
- `assets/admin-users.js`
- `assets/v2al4-admin-login-bootstrap.js`
- `assets/v2al4-blog.js`
- `assets/v2al4-shell-v396.css`
- `assets/v2al4-shell-v396.js`
- `tools/build-blog.mjs`
- `admin/autores/index.html`
- `admin/index.html`
- `admin/guia-autores/index.html`
- `page/*`
