{"id":47977229,"url":"https://github.com/guibranco/blog","last_synced_at":"2026-04-04T10:57:35.853Z","repository":{"id":345742251,"uuid":"1187166172","full_name":"guibranco/blog","owner":"guibranco","description":"✈️🛠️ Blog sobre tecnologia, infraestrutura e automação para quem viaja e constrói — artigos em Markdown, publicados via Jekyll no GitHub Pages.","archived":false,"fork":false,"pushed_at":"2026-04-01T17:02:14.000Z","size":1993,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T10:57:33.474Z","etag":null,"topics":["blog","blogging","giscus","jekyll","personal","personal-blog","technologies","technology","travel"],"latest_commit_sha":null,"homepage":"https://guilherme.stracini.com.br/blog/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guibranco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-20T12:18:57.000Z","updated_at":"2026-04-01T17:43:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/guibranco/blog","commit_stats":null,"previous_names":["guibranco/blog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/guibranco/blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guibranco%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guibranco%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guibranco%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guibranco%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guibranco","download_url":"https://codeload.github.com/guibranco/blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guibranco%2Fblog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31397056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blog","blogging","giscus","jekyll","personal","personal-blog","technologies","technology","travel"],"created_at":"2026-04-04T10:57:35.057Z","updated_at":"2026-04-04T10:57:35.844Z","avatar_url":"https://github.com/guibranco.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# ✈️🛠️ Tecnologia \u0026 Viagens\n\n**Blog sobre tecnologia, infraestrutura e automação para quem viaja e constrói.**\n\nPublicado via [Jekyll](https://jekyllrb.com/) · Hospedado no [GitHub Pages](https://pages.github.com/) · Zero custo de servidor\n\n[![Deploy](https://github.com/guibranco/blog/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/guibranco/blog/actions)\n[![Jekyll](https://img.shields.io/badge/Jekyll-4.x-red?logo=jekyll\u0026logoColor=white)](https://jekyllrb.com/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\n---\n\n[🌐 Ver o blog](https://guibranco.github.io/blog) · [📡 RSS](https://guibranco.github.io/blog/feed.xml) · [🗺️ Sitemap](https://guibranco.github.io/blog/sitemap.xml)\n\n\u003c/div\u003e\n\n---\n\n## 📋 Sobre\n\nBlog pessoal construído com Jekyll e publicado gratuitamente via GitHub Pages. Cada artigo é um arquivo Markdown em `_posts/` — um `git push` para a branch `main` dispara o build e publica automaticamente em ~1 minuto.\n\nO design é totalmente customizado — sem temas de terceiros — com tipografia editorial (Playfair Display + Source Serif 4 + JetBrains Mono), sidebar fixa com avatar, ícones sociais e navegação por categorias.\n\n---\n\n## 🗂️ Estrutura do projeto\n\n```\nblog/                                # nome do repositório\n│\n├── _posts/                          # Artigos em Markdown\n│   └── 2026-03-20-envio-sms-internet.md\n│\n├── _layouts/\n│   ├── post.html                    # Template de artigo\n│   └── category.html                # Template de página de categoria\n│\n├── _data/\n│   └── quotes.yml                   # Lista de quotes da sidebar\n│\n├── categorias/                      # Uma página .md por categoria\n│   ├── infraestrutura.md\n│   └── telecomunicacoes.md\n│\n├── assets/\n│   ├── css/\n│   │   └── main.css                 # Estilos compartilhados\n│   └── img/\n│       ├── cover.jpg                # Imagem de fundo da sidebar\n│       └── avatar.jpg               # Foto de perfil circular\n│\n├── index.html                       # Página inicial\n├── _config.yml                      # Configurações do Jekyll\n├── Gemfile                          # Dependências Ruby\n└── README.md\n```\n\n---\n\n## 🗃️ Gerenciando categorias\n\nO Jekyll não gera páginas de categoria automaticamente. Para cada nova categoria usada nos posts, é preciso criar um arquivo `.md` correspondente em `categorias/`.\n\n**Criando uma nova categoria:**\n\n```bash\ncat \u003e categorias/devops.md \u003c\u003c 'FRONTMATTER'\n---\nlayout: category\ncategory: DevOps\npermalink: /categorias/devops/\n---\nFRONTMATTER\n```\n\nA categoria declarada no campo `category:` deve ser idêntica à usada no front matter dos posts (incluindo acentos e capitalização). O `permalink` usa a versão slugificada, sem acentos.\n\n**Categorias existentes:**\n\n| Categoria | Arquivo | URL |\n|---|---|---|\n| Infraestrutura | `categorias/infraestrutura.md` | `/categorias/infraestrutura/` |\n| Telecomunicações | `categorias/telecomunicacoes.md` | `/categorias/telecomunicacoes/` |\n| Career | `categorias/career.md` | `/categorias/career/` |\n| Coding | `categorias/coding.md` | `/categorias/coding/` |\n| DevOps | `categorias/devops.md` | `/categorias/devops/` |\n| Hobbies | `categorias/hobbies.md` | `/categorias/hobbies/` |\n| Investments | `categorias/investments.md` | `/categorias/investments/` |\n| Testing | `categorias/testing.md` | `/categorias/testing/` |\n\n\u003e Ao publicar um post com uma categoria nova, lembre-se sempre de criar o arquivo correspondente em `categorias/` — caso contrário o link na sidebar retornará 404.\n\n---\n\n## ✍️ Publicando um novo artigo\n\n**1.** Crie o arquivo em `_posts/` seguindo o padrão `AAAA-MM-DD-slug.md`:\n\n```bash\ntouch _posts/2026-04-10-meu-novo-artigo.md\n```\n\n**2.** Adicione o front matter no topo do arquivo:\n\n```yaml\n---\nlayout: post\ntitle: \"Título do artigo\"\ndescription: \"Resumo em uma linha para SEO e cards.\"\ndate: 2026-04-10\ncategories: [Infraestrutura]\ntags: [docker, linux, automação]\nreading_time: 8\nimage: /assets/img/posts/meu-artigo-cover.jpg   # opcional\n---\n```\n\n**3.** Escreva o conteúdo em Markdown. Componentes visuais customizados como callouts, blocos de código com syntax highlighting e cards podem ser usados diretamente com HTML inline.\n\n**4.** Publique:\n\n```bash\ngit add .\ngit commit -m \"feat: novo artigo sobre X\"\ngit push origin main\n```\n\nO GitHub Pages detecta o push, roda o build do Jekyll e publica em ~60 segundos.\n\n---\n\n## ⚙️ Configuração (`_config.yml`)\n\n```yaml\n# Identidade\ntitle: \"Tecnologia \u0026 Viagens\"\ndescription: \"Blog sobre tecnologia, infraestrutura e automação para quem viaja e constrói.\"\nauthor: \"Guilherme Branco Stracini\"\nauthor_bio: \"Software engineer. PHP, C#, JS, Rust. Integrações, APIs, seguros \u0026 logística.\"\nauthor_avatar: /assets/img/avatar.jpg    # foto circular na sidebar\nauthor_cover: /assets/img/cover.jpg     # imagem de fundo da sidebar\n\n# URLs\nurl: \"https://guibranco.github.io\"\nbaseurl: \"/blog\"\n\n# Redes sociais (todos opcionais)\nsocial:\n  github:        https://github.com/guibranco\n  linkedin:      https://www.linkedin.com/in/guilhermestracini/\n  instagram:     https://instagram.com/gui.stracini\n  facebook:      https://www.facebook.com/guilherme.stracini/\n  youtube:       https://www.youtube.com/@GuilhermeBrancoStracini\n  stackoverflow: https://stackoverflow.com/users/1890220/guilherme-branco-stracini\n  pinterest:     https://www.pinterest.com/guibranco/\n  whatsapp:      https://api.whatsapp.com/send/?phone=353871471762\n  website:       http://guilherme.stracini.com.br\n  website_image: assets/img/avatar.png\n  strava:        https://www.strava.com/athletes/171612487\n  soundcloud:    https://open.spotify.com/user/22x2qmq6hbuqyjy2emg6k4xiq\n  spotify:       https://soundcloud.com/guilherme-stracini\n  reddit:        https://www.reddit.com/user/SilverSport8845/\n  medium:        https://medium.com/@guilhermebrancostracini\n```\n\n---\n\n## 💬 Quotes da sidebar\n\nAs quotes são selecionadas dinamicamente a cada build a partir do arquivo `_data/quotes.yml`. O Jekyll usa os segundos do horário do build como seed — então cada `git push` exibe uma quote diferente.\n\n**Formato do arquivo:**\n\n```yaml\n- text: \"The best way to predict the future is to invent it.\"\n  author: \"Alan Kay\"\n\n- text: \"Not all those who wander are lost.\"\n  author: \"J.R.R. Tolkien\"\n```\n\nPara adicionar uma nova quote, basta incluir um novo item no final do arquivo. Não há limite de quantidade — quanto mais quotes, mais variação entre builds.\n\n---\n\n## 🖼️ Imagens da sidebar\n\nA sidebar suporta dois campos distintos:\n\n| Campo | Uso | Fallback |\n|---|---|---|\n| `author_cover` | Imagem de fundo (square/landscape) com `object-fit: cover` e opacidade reduzida | Padrão geométrico diagonal |\n| `author_avatar` | Foto circular em primeiro plano | Inicial do nome do autor |\n\n---\n\n## 🏷️ Front matter — referência completa\n\n| Campo | Tipo | Obrigatório | Descrição |\n|---|---|---|---|\n| `layout` | string | ✅ | Sempre `post` |\n| `title` | string | ✅ | Título do artigo |\n| `date` | date | ✅ | Data de publicação (`AAAA-MM-DD`) |\n| `description` | string | — | Subtítulo e meta description para SEO |\n| `categories` | list | — | Categorias (aparecem como pills e na nav) |\n| `tags` | list | — | Tags (aparecem no rodapé do artigo e na nuvem da home) |\n| `reading_time` | number | — | Tempo estimado de leitura em minutos |\n| `image` | path | — | Caminho da imagem de capa do artigo |\n\n---\n\n## 🧩 Componentes disponíveis nos artigos\n\nOs componentes abaixo são usados como HTML inline dentro do Markdown.\n\n### Callout\n\n```html\n\u003cdiv class=\"callout callout-tip\"\u003e\n  \u003cdiv class=\"callout-label\"\u003eDica\u003c/div\u003e\n  Texto do callout aqui.\n\u003c/div\u003e\n\n\u003cdiv class=\"callout callout-warn\"\u003e\n  \u003cdiv class=\"callout-label\"\u003eAtenção\u003c/div\u003e\n  Texto de aviso aqui.\n\u003c/div\u003e\n```\n\n### Bloco de código customizado\n\n```html\n\u003cdiv class=\"code-block\"\u003e\n  \u003cdiv class=\"code-header\"\u003e\n    \u003cdiv class=\"code-dots\"\u003e\u003cspan\u003e\u003c/span\u003e\u003cspan\u003e\u003c/span\u003e\u003cspan\u003e\u003c/span\u003e\u003c/div\u003e\n    \u003cdiv class=\"code-lang\"\u003ePHP 8.2+\u003c/div\u003e\n  \u003c/div\u003e\n  \u003cpre\u003e// seu código aqui\u003c/pre\u003e\n\u003c/div\u003e\n```\n\n### Parágrafo de destaque (lead)\n\n```html\n\u003cp class=\"lead\"\u003eTexto de abertura em destaque, levemente maior e em itálico.\u003c/p\u003e\n```\n\n### Divisor de seção\n\n```html\n\u003cdiv class=\"divider\"\u003e· · ·\u003c/div\u003e\n```\n\n---\n\n## 💻 Desenvolvimento local\n\n```bash\n# Pré-requisitos: Ruby 3.x + Bundler\ngem install bundler\n\n# Instalar dependências\nbundle install\n\n# Iniciar servidor local com live reload\nbundle exec jekyll serve\n\n# Acesse em: http://localhost:4000\n```\n\n### Plugins utilizados\n\n| Plugin | Função |\n|---|---|\n| `jekyll-feed` | Gera `/feed.xml` automaticamente |\n| `jekyll-seo-tag` | Meta tags Open Graph e Twitter Card |\n| `jekyll-sitemap` | Gera `/sitemap.xml` automaticamente |\n\n---\n\n## 🎨 Design system\n\n| Elemento | Valor |\n|---|---|\n| Fonte de display | Playfair Display (700 / italic) |\n| Fonte de corpo | Source Serif 4 (300 / 400 / 600) |\n| Fonte mono | JetBrains Mono (400 / 500) |\n| Cor principal | `#1a1714` (ink) |\n| Cor de acento | `#2d6a4f` (verde) |\n| Cor de acento quente | `#b85c00` (âmbar) |\n| Destaque verde | `#93c97a` |\n| Superfície | `#faf9f6` |\n\nTodos os tokens estão em `assets/css/main.css` como variáveis CSS em `:root`.\n\n---\n\n## 📄 Licença\n\nMIT © [Guilherme Branco Stracini](https://github.com/guibranco)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguibranco%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguibranco%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguibranco%2Fblog/lists"}