Skip to content

Commit 65bcb4a

Browse files
author
Juan Andres Antoniuk
committed
Complete blog improvements: homepage styling, company blog integration, and metadata standardization
- Homepage improvements: * Fixed language notice styling (single line, small font) * Added consistent excerpt display for all posts * Added 'See all posts' link with proper translations * Improved post alignment and consistency - Company blog integration: * Added RSS sync script for jaab.tech/blog * Created GitHub Action for automated syncing * Added company blog section to homepage * Implemented theme-aware styling (dark/light) - Post metadata standardization: * Added excerpts to all English posts and key Spanish posts * Standardized category/tag formatting across all posts * Added toc and comments metadata to recent posts * Ensured all posts have proper translation_id values - Translation functionality: * Clean language notices on homepage (no translation links) * Full translation functionality on individual post pages * Google Translate integration working properly - Removed valor-patrimonial post and related files as requested
1 parent eea5474 commit 65bcb4a

19 files changed

+718
-58
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Sync Company Blog
2+
3+
on:
4+
schedule:
5+
# Run daily at 9 AM UTC (6 AM Uruguay time)
6+
- cron: '0 9 * * *'
7+
workflow_dispatch: # Allow manual trigger
8+
push:
9+
paths:
10+
- 'tools/sync_company_blog.py' # Trigger when sync script changes
11+
12+
jobs:
13+
sync-company-blog:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v4
19+
with:
20+
token: ${{ secrets.GITHUB_TOKEN }}
21+
22+
- name: Set up Python
23+
uses: actions/setup-python@v4
24+
with:
25+
python-version: '3.9'
26+
27+
- name: Install dependencies
28+
run: |
29+
python -m pip install --upgrade pip
30+
pip install feedparser pyyaml requests
31+
32+
- name: Sync company blog
33+
run: |
34+
python tools/sync_company_blog.py
35+
36+
- name: Check for changes
37+
id: verify-changed-files
38+
run: |
39+
if [ -n "$(git status --porcelain)" ]; then
40+
echo "changed=true" >> $GITHUB_OUTPUT
41+
else
42+
echo "changed=false" >> $GITHUB_OUTPUT
43+
fi
44+
45+
- name: Commit and push changes
46+
if: steps.verify-changed-files.outputs.changed == 'true'
47+
run: |
48+
git config --local user.email "action@github.com"
49+
git config --local user.name "GitHub Action"
50+
git add _data/company_blog.yml _data/company_blog.json
51+
git commit -m "Update company blog entries [automated]"
52+
git push
53+
54+
- name: No changes detected
55+
if: steps.verify-changed-files.outputs.changed == 'false'
56+
run: |
57+
echo "No changes detected in company blog entries"

_data/company_blog.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[
2+
{
3+
"title": "Valor patrimonial",
4+
"url": "https://jaab.tech/blog/valor-patrimonial",
5+
"date": "2025-10-13",
6+
"excerpt": "JAAB participó en la inauguración de la renovada Casa El Globo teniendo la firme convicción de que renovaremos muchas plataformas tecnológicas en América Latina...",
7+
"language": "es",
8+
"source": "JAAB Company Blog",
9+
"external": true,
10+
"image": "https://jaab.tech/assets/images/blog/jaab_casaelglobo.jpg"
11+
}
12+
]

_data/company_blog.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
- title: Valor patrimonial
2+
url: https://jaab.tech/blog/valor-patrimonial
3+
date: '2025-10-13'
4+
excerpt: JAAB participó en la inauguración de la renovada Casa El Globo teniendo
5+
la firme convicción de que renovaremos muchas plataformas tecnológicas en América
6+
Latina...
7+
language: es
8+
source: JAAB Company Blog
9+
external: true
10+
image: https://jaab.tech/assets/images/blog/jaab_casaelglobo.jpg
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<!-- Company Blog Section -->
2+
<section class="company-blog-section" id="company-blog">
3+
<div class="container">
4+
<div class="row">
5+
<div class="col-12">
6+
<div class="section-header">
7+
<h2 class="section-title">
8+
<i class="fas fa-building"></i>
9+
{% if page.url contains '/es/' %}
10+
JAAB Blog
11+
{% else %}
12+
JAAB Blog
13+
{% endif %}
14+
</h2>
15+
<p class="section-subtitle">
16+
{% if page.url contains '/es/' %}
17+
Últimos posts de <a href="https://jaab.tech/blog/" target="_blank" rel="noopener">mi empresa</a>
18+
{% else %}
19+
Latest posts from <a href="https://jaab.tech/blog/" target="_blank" rel="noopener">my company</a>
20+
{% endif %}
21+
</p>
22+
</div>
23+
</div>
24+
</div>
25+
26+
<div class="row">
27+
{% if site.data.company_blog %}
28+
{% for post in site.data.company_blog limit:3 %}
29+
<div class="col-lg-4 col-md-6 mb-4">
30+
<article class="company-post-card">
31+
{% if post.image %}
32+
<div class="post-image">
33+
<img src="{{ post.image }}" alt="{{ post.title }}" loading="lazy">
34+
</div>
35+
{% endif %}
36+
37+
<div class="post-header">
38+
<h3 class="post-title">
39+
<a href="{{ post.url }}" target="_blank" rel="noopener">
40+
{{ post.title }}
41+
</a>
42+
</h3>
43+
<div class="post-meta">
44+
<span class="post-date">
45+
<i class="fas fa-calendar-alt"></i>
46+
{{ post.date | date: "%d/%m/%Y" }}
47+
</span>
48+
<span class="post-source">
49+
<i class="fas fa-external-link-alt"></i>
50+
{{ post.source }}
51+
</span>
52+
</div>
53+
</div>
54+
55+
<div class="post-content">
56+
<p class="post-excerpt">{{ post.excerpt }}</p>
57+
</div>
58+
59+
<div class="post-footer">
60+
<a href="{{ post.url }}" target="_blank" rel="noopener" class="btn btn-outline-primary btn-sm">
61+
<i class="fas fa-external-link-alt"></i>
62+
{% if page.url contains '/es/' %}
63+
Leer en JAAB
64+
{% else %}
65+
Read on JAAB
66+
{% endif %}
67+
</a>
68+
{% if post.language == 'es' %}
69+
<span class="language-badge">ES</span>
70+
{% elsif post.language == 'en' %}
71+
<span class="language-badge">EN</span>
72+
{% endif %}
73+
</div>
74+
</article>
75+
</div>
76+
{% endfor %}
77+
{% else %}
78+
<div class="col-12">
79+
<div class="no-posts-message">
80+
<p>
81+
{% if page.url contains '/es/' %}
82+
No hay posts del blog de la empresa disponibles en este momento.
83+
{% else %}
84+
No company blog posts available at the moment.
85+
{% endif %}
86+
</p>
87+
<a href="https://jaab.tech/blog/" target="_blank" rel="noopener" class="btn btn-primary">
88+
{% if page.url contains '/es/' %}
89+
Visitar JAAB Blog
90+
{% else %}
91+
Visit JAAB Blog
92+
{% endif %}
93+
</a>
94+
</div>
95+
</div>
96+
{% endif %}
97+
</div>
98+
99+
<div class="row">
100+
<div class="col-12 text-center">
101+
<div class="company-blog-footer">
102+
<a href="https://jaab.tech/blog/" target="_blank" rel="noopener" class="btn btn-primary">
103+
<i class="fas fa-building"></i>
104+
{% if page.url contains '/es/' %}
105+
Ver todos los posts de JAAB
106+
{% else %}
107+
View All Company Posts
108+
{% endif %}
109+
</a>
110+
</div>
111+
</div>
112+
</div>
113+
</div>
114+
</section>

_layouts/home.html

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -87,38 +87,40 @@
8787
<div id="post-list" class="flex-grow-1 px-xl-1">
8888
{% for post in all_posts limit: site.paginate %}
8989
<article class="card-wrapper card">
90-
<a href="{{ post.url | relative_url }}" class="post-preview row g-0" style="text-align: left !important; direction: ltr !important; flex-direction: row !important;">
90+
<a href="{{ post.url | relative_url }}" class="post-preview row g-0">
9191
<div class="col-md-12">
92-
<div class="card-body d-flex flex-column" style="text-align: left !important; direction: ltr !important;">
93-
<h1 class="card-title my-2 mt-md-0 text-start" style="text-align: left !important; direction: ltr !important;">
92+
<div class="card-body d-flex flex-column">
93+
<h1 class="card-title my-2 mt-md-0">
9494
{% if post.collection == 'posts-es' %}
9595
🇪🇸 {{ post.title }}
9696
{% unless page.url contains '/es/' %}
97-
<small class="text-muted d-block mt-1 text-start" style="text-align: left !important; direction: ltr !important;">
98-
<i class="fas fa-language me-1"></i>
99-
Only available in Spanish -
100-
<a href="https://translate.google.com/translate?sl=es&tl=en&u={{ site.url }}{{ post.url }}"
101-
target="_blank" rel="noopener" class="text-decoration-none">
102-
Translate with Google Translate
103-
</a>
97+
<small class="language-notice-simple">
98+
<i class="fas fa-language me-1"></i>Only available in Spanish
10499
</small>
105100
{% endunless %}
106101
{% else %}
107102
🇬🇧 {{ post.title }}
108103
{% if page.url contains '/es/' %}
109-
<small class="text-muted d-block mt-1 text-start" style="text-align: left !important; direction: ltr !important;">
110-
<i class="fas fa-language me-1"></i>
111-
Solo disponible en inglés -
112-
<a href="https://translate.google.com/translate?sl=en&tl=es&u={{ site.url }}{{ post.url }}"
113-
target="_blank" rel="noopener" class="text-decoration-none">
114-
Traducir con Google Translate
115-
</a>
104+
<small class="language-notice-simple">
105+
<i class="fas fa-language me-1"></i>Solo disponible en inglés
116106
</small>
117107
{% endif %}
118108
{% endif %}
119109
</h1>
120110
<div class="card-text content mt-0 mb-3">
121-
<p>{{ post.excerpt | strip_html | truncate: 200 | escape }}</p>
111+
{% comment %} Simple approach: show excerpt if available, otherwise show fallback {% endcomment %}
112+
{% if post.excerpt and post.excerpt != blank and post.excerpt.size > 10 %}
113+
<p>{{ post.excerpt | strip_html | truncate: 200 | escape }}</p>
114+
{% else %}
115+
<p class="text-muted">
116+
<i class="fas fa-file-text me-1"></i>
117+
{% if page.url contains '/es/' %}
118+
Haz clic para leer el artículo completo
119+
{% else %}
120+
Click to read the full article
121+
{% endif %}
122+
</p>
123+
{% endif %}
122124
</div>
123125
<div class="post-meta flex-grow-1 d-flex align-items-end">
124126
<div class="me-auto">
@@ -156,5 +158,22 @@ <h1 class="card-title">
156158
</div>
157159
</div>
158160
{% endif %}
161+
162+
<!-- See All Posts Link -->
163+
{% if all_posts.size > site.paginate %}
164+
<div class="text-center mt-4 mb-5">
165+
<a href="{% if page.url contains '/es/' %}/es/archives/{% else %}/archives/{% endif %}" class="btn btn-outline-primary">
166+
<i class="fas fa-list me-2"></i>
167+
{% if page.url contains '/es/' %}
168+
Ver todas las entradas
169+
{% else %}
170+
See all posts
171+
{% endif %}
172+
</a>
173+
</div>
174+
{% endif %}
159175
</div>
160176
<!-- End Posts Section -->
177+
178+
<!-- Company Blog Section -->
179+
{% include company-blog-section.html %}

_posts-es/2025-02-04-fintech-10-anos.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ translation_id: fintech-10-anos
88
categories: ["career"]
99
tags: ["linkedin-import", "career", "fintech"]
1010
linkedin_url: https://www.linkedin.com/pulse/fintech-10-a%C3%B1os-juan-andr%C3%A9s-antoniuk-7tlkf
11+
excerpt: "Una reflexión sobre más de 10 años trabajando en fintech, desde los primeros pasos hasta las tendencias actuales en tecnología financiera."
12+
toc: true
13+
comments: true
1114
---
1215

1316
---

_posts-es/2025-08-03-nuevos-rumbos.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ translation_id: nuevos-rumbos
88
categories: ["career"]
99
tags: ["linkedin-import", "career", "fintech"]
1010
linkedin_url: https://www.linkedin.com/pulse/nuevos-rumbos-juan-andr%C3%A9s-antoniuk-u2qif
11+
excerpt: "Hace pocos meses terminaba un artículo con la pregunta: ¿Cómo serán los próximos 10 años? Y respondía: Difícil saberlo, pero no tengan duda que seguiré buscando y aceptando desafíos. Lo que ahora sé es que ya no serán en Totalnet Uruguay."
12+
toc: true
13+
comments: true
1114
---
1215

1316
---

_posts-es/2025-10-07-reviviendo-dinosaurios.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
---
22
title: "Reviviendo Dinosaurios"
33
date: 2025-10-07
4-
categories: [technology, career]
5-
tags: [technology, career, business, entrepreneurship]
4+
author: andresantoniuk
5+
categories: ["technology", "career"]
6+
tags: ["technology", "career", "business", "entrepreneurship"]
67
lang: es
8+
alt_lang: en
9+
translation_id: reviviendo-dinosaurios
710
toc: true
811
comments: true
912
---

_posts-es/2025-10-13-valor-patrimonial.md

Lines changed: 0 additions & 32 deletions
This file was deleted.

_posts/2014-09-28-tulatam.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ translation_id: tulatam
88
categories: ["automotive"]
99
tags: ["linkedin-import", "automotive", "telematics"]
1010
linkedin_url: https://www.linkedin.com/pulse/20140928004949-9925762--tulatam
11+
excerpt: "Exploring the future of automotive industry and telematics at Telematics Update LATAM conference, discussing whether carmakers will remain relevant in the age of technology-driven mobility."
12+
toc: true
13+
comments: true
1114
---
1215

1316
---

0 commit comments

Comments
 (0)