Blog moved to homepage: search, 2 rows of 3, pagination. Dedicated blog page now redirects to /#blog.

This commit is contained in:
Hermes Agent
2026-08-07 20:42:56 +00:00
parent 52a4cdc47f
commit 2e2a9d98a9
2 changed files with 76 additions and 373 deletions
+7 -343
View File
@@ -3,350 +3,14 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blog — Odoo Expertos | Tutoriales, guías y análisis ERP</title> <title>Blog — Odoo Expertos</title>
<meta name="description" content="Blog de Odoo Expertos con tutoriales prácticos, guías de implementación, análisis de módulos y comparativas de software ERP. Contenido profesional en español."> <meta name="robots" content="noindex, follow">
<meta name="robots" content="index, follow"> <link rel="canonical" href="https://odoo-expertos.com/">
<link rel="canonical" href="https://odoo-expertos.com/blog/"> <meta http-equiv="refresh" content="0;url=https://odoo-expertos.com/#blog">
<link rel="icon" type="image/svg+xml" href="/favicon.svg?v=2">
<!-- Open Graph -->
<meta property="og:type" content="blog">
<meta property="og:url" content="https://odoo-expertos.com/blog/">
<meta property="og:title" content="Blog — Odoo Expertos">
<meta property="og:description" content="Tutoriales, guías y análisis sobre Odoo Community ERP en español.">
<meta property="og:locale" content="es_ES">
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image">
<!-- Schema: Blog -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Blog",
"name": "Blog de Odoo Expertos",
"description": "Tutoriales, guías y análisis sobre Odoo Community ERP en español.",
"url": "https://odoo-expertos.com/blog/",
"author": {
"@type": "Organization",
"name": "Odoo Expertos",
"url": "https://odoo-expertos.com"
}
}
</script>
<link rel="stylesheet" href="/css/style.css">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='4' fill='%233b8c5e'/%3E%3Ctext x='12' y='16' text-anchor='middle' font-family='Arial' font-weight='700' font-size='10' fill='%23fff'%3EOE%3C/text%3E%3C/svg%3E">
</head> </head>
<body> <body>
<p style="font-family:sans-serif;padding:40px;text-align:center;color:#64748b;">Redirigiendo al blog...</p>
<!-- === NAV === --> <script>window.location.href = '/#blog';</script>
<nav class="nav" role="navigation" aria-label="Navegacion principal">
<div class="nav__inner">
<a href="/" class="nav__logo">
<span class="nav__logo-mark">OE</span>
Odoo Expertos
</a>
<button id="navToggle" class="nav__toggle" aria-expanded="false" aria-label="Abrir menu">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<path d="M3 12h18M3 6h18M3 18h18"/>
</svg>
</button>
<div id="navLinks" class="nav__links">
<a href="/" class="nav__link">Inicio</a>
<a href="/blog/" class="nav__link nav__link--active">Blog</a>
<a href="/about.html" class="nav__link">Sobre Nosotros</a>
<a href="/contact.html" class="nav__link">Contacto</a>
</div>
</div>
</nav>
<!-- === BLOG HEADER === -->
<header class="blogs-header">
<div class="container">
<h1 class="blogs-header__title">Blog de Odoo Expertos</h1>
<p class="blogs-header__subtitle">
Tutoriales practicos, guias de implementacion, analisis de modulos y comparativas.
Contenido profesional creado por consultores con experiencia real en Odoo.
</p>
</div>
</header>
<!-- === SEARCH === -->
<div class="container" style="padding-bottom:24px;">
<div style="position:relative;max-width:480px;">
<svg style="position:absolute;left:16px;top:50%;transform:translateY(-50%);" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#94a3b8" stroke-width="2.5" stroke-linecap="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
<input type="text" id="blogSearch" placeholder="Buscar artículos..." oninput="filterBlogPosts(this.value)" style="width:100%;padding:12px 16px 12px 46px;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);font-size:0.9375rem;color:var(--text-primary);outline:none;" onfocus="this.style.borderColor='#3b8c5e'" onblur="this.style.borderColor='var(--border)'">
</div>
</div>
<!-- === BLOG LAYOUT === -->
<div class="blog-layout container" id="blogLayout">
<main>
<!-- New: OCA Apps Store -->
<article class="article-card">
<div class="article-card__image">OCA</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--news">Novedades</span>
<span>16 jul 2026</span>
<span>4 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/oca-lanza-nueva-tienda-apps.html">La OCA lanza su nueva tienda de apps Odoo</a>
</h2>
<p class="article-card__excerpt">La Odoo Community Association (OCA) lanza su nuevo Apps Store. Una plataforma para descubrir módulos, contribuidores y servicios del ecosistema Odoo open source.</p>
</div>
</article>
<!-- Article 1 -->
<article class="article-card">
<div class="article-card__image">Odoo vs Enterprise</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--comparison">Comparativas</span>
<span>6 ago 2026</span>
<span>12 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/odoo-community-vs-enterprise.html">Odoo Community vs Enterprise: diferencias reales</a>
</h2>
<p class="article-card__excerpt">Analisis detallado de las diferencias entre Odoo Community y Enterprise. Cubrimos funcionalidades, costes, modulos exclusivos y casos de uso para ayudarte a decidir que version necesitas.</p>
</div>
</article>
<!-- Article 2 -->
<article class="article-card">
<div class="article-card__image">Implementacion</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--guide">Guias</span>
<span>4 ago 2026</span>
<span>15 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/implementar-odoo-erp-pyme.html">Como implementar Odoo ERP en una pyme paso a paso</a>
</h2>
<p class="article-card__excerpt">Guia completa de implementacion de Odoo Community para pequenas y medianas empresas. Desde el analisis de requisitos hasta el despliegue en produccion.</p>
</div>
</article>
<!-- Article 3 -->
<article class="article-card">
<div class="article-card__image">Modulos</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--guide">Odoo Community</span>
<span>1 ago 2026</span>
<span>10 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/mejores-modulos-odoo-community.html">Los mejores modulos Odoo Community para empresas</a>
</h2>
<p class="article-card__excerpt">Seleccion de los modulos mas potentes de Odoo Community. Analisis de funcionalidades, casos de uso y recomendaciones para implementacion.</p>
</div>
</article>
<!-- Article 4 -->
<article class="article-card">
<div class="article-card__image">Inventario</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--tutorial">Tutoriales</span>
<span>28 jul 2026</span>
<span>8 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/odoo-inventory-gestion-almacenes.html">Odoo Inventory: guia completa para gestionar almacenes</a>
</h2>
<p class="article-card__excerpt">Aprende a configurar y utilizar el modulo de inventario de Odoo Community. Gestion de stocks, almacenes, movimientos internos y valoracion de inventario.</p>
</div>
</article>
<!-- Article 5 -->
<article class="article-card">
<div class="article-card__image">CRM</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--tutorial">Tutoriales</span>
<span>25 jul 2026</span>
<span>10 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/odoo-crm-guia-completa.html">Odoo CRM: guia completa para equipos comerciales</a>
</h2>
<p class="article-card__excerpt">Domina el modulo CRM de Odoo Community. Gestion de leads, pipeline de ventas, automatizaciones y reporting para equipos comerciales.</p>
</div>
</article>
<!-- Article 6 -->
<article class="article-card">
<div class="article-card__image">Contabilidad</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--guide">Accounting</span>
<span>21 jul 2026</span>
<span>12 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/odoo-contabilidad-modulo-financiero.html">Odoo Accounting: guia completa del modulo financiero</a>
</h2>
<p class="article-card__excerpt">Configuracion completa del modulo de contabilidad en Odoo Community. Plan contable, facturacion, conciliacion bancaria e informes financieros.</p>
</div>
</article>
<!-- Article 7 -->
<article class="article-card">
<div class="article-card__image">Open Source</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--comparison">Comparativas</span>
<span>18 jul 2026</span>
<span>10 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/odoo-erp-open-source-alternativa.html">Odoo ERP: la alternativa open source a SAP y Sage</a>
</h2>
<p class="article-card__excerpt">Comparativa exhaustiva de Odoo frente a SAP Business One, Sage 50 y Microsoft Dynamics. Costes, implementacion, funcionalidades y comunidad.</p>
</div>
</article>
<!-- Article 8 -->
<article class="article-card">
<div class="article-card__image">Fabricacion</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--guide">Manufacturing</span>
<span>14 jul 2026</span>
<span>11 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/modulos-fabricacion-odoo-erp.html">Modulos de fabricacion en Odoo ERP: guia practica</a>
</h2>
<p class="article-card__excerpt">Guia completa del modulo de fabricacion de Odoo Community. Ordenes de produccion, listas de materiales, planificacion y control de calidad.</p>
</div>
</article>
<!-- Article 9 -->
<article class="article-card">
<div class="article-card__image">Hosting</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--guide">Infraestructura</span>
<span>10 jul 2026</span>
<span>13 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/guia-hosting-odoo-servidores.html">Guia completa de hosting para Odoo: como elegir servidor</a>
</h2>
<p class="article-card__excerpt">Todo lo que necesitas saber sobre hosting para Odoo. Servidores dedicados, VPS, cloud hosting y como elegir la mejor opcion para tu proyecto.</p>
</div>
</article>
<!-- Article 10 -->
<article class="article-card">
<div class="article-card__image">ERP</div>
<div class="article-card__body">
<div class="article-card__meta">
<span class="category-badge category-badge--guide">Guias</span>
<span>7 jul 2026</span>
<span>9 min lectura</span>
</div>
<h2 class="article-card__title">
<a href="/blog/como-elegir-erp-pequena-empresa.html">Como elegir un ERP para tu pequena empresa</a>
</h2>
<p class="article-card__excerpt">Guia practica para seleccionar el ERP adecuado para tu pyme. Criterios de evaluacion, comparativa de opciones y recomendaciones segun el tipo de negocio.</p>
</div>
</article>
<!-- Pagination -->
<nav class="pagination" aria-label="Paginacion">
<span class="pagination__link pagination__link--active">1</span>
</nav>
</main>
<aside class="sidebar">
<div class="sidebar__widget">
<h3 class="sidebar__widget-title">Categorias</h3>
<a href="/blog/" class="sidebar__link">Odoo Community</a>
<a href="/blog/" class="sidebar__link">ERP Solutions</a>
<a href="/blog/" class="sidebar__link">Tutoriales</a>
<a href="/blog/" class="sidebar__link">Business Processes</a>
<a href="/blog/" class="sidebar__link">Manufacturing</a>
<a href="/blog/" class="sidebar__link">Accounting</a>
<a href="/blog/" class="sidebar__link">CRM</a>
<a href="/blog/" class="sidebar__link">Inventory</a>
<a href="/blog/" class="sidebar__link">Comparativas</a>
</div>
<div class="sidebar__widget">
<h3 class="sidebar__widget-title">Articulos populares</h3>
<a href="/blog/odoo-community-vs-enterprise.html" class="sidebar__link">Odoo Community vs Enterprise</a>
<a href="/blog/implementar-odoo-erp-pyme.html" class="sidebar__link">Implementar Odoo en una pyme</a>
<a href="/blog/mejores-modulos-odoo-community.html" class="sidebar__link">Mejores modulos Community</a>
<a href="/blog/odoo-crm-guia-completa.html" class="sidebar__link">Guia completa Odoo CRM</a>
<a href="/blog/guia-hosting-odoo-servidores.html" class="sidebar__link">Guia de hosting Odoo</a>
</div>
<div class="sidebar__widget">
<h3 class="sidebar__widget-title">Articulos relacionados</h3>
<a href="/blog/odoo-community-vs-enterprise.html" class="sidebar__link">Odoo Community vs Enterprise: diferencias</a>
<a href="/blog/mejores-modulos-odoo-community.html" class="sidebar__link">Mejores modulos Community para empresas</a>
<a href="/blog/odoo-erp-open-source-alternativa.html" class="sidebar__link">Odoo frente a SAP, Sage y Dynamics</a>
<a href="/blog/como-elegir-erp-pequena-empresa.html" class="sidebar__link">Como elegir ERP para tu pyme</a>
</div>
</aside>
</div>
<!-- === FOOTER === -->
<footer class="footer" role="contentinfo">
<div class="container">
<div class="footer__grid">
<div>
<div class="footer__brand">Odoo Expertos</div>
<p class="footer__description">
La referencia en espanol para Odoo Community ERP. Conocimiento practico creado por consultores con experiencia real en implementaciones ERP.
</p>
</div>
<div>
<h4 class="footer__heading">Secciones</h4>
<div class="footer__links">
<a href="/blog/" class="footer__link">Blog</a>
<a href="/blog/" class="footer__link">Tutoriales</a>
<a href="/blog/" class="footer__link">Comparativas</a>
</div>
</div>
<div>
<h4 class="footer__heading">Recursos</h4>
<div class="footer__links">
<a href="https://ODOO4projects.com/?utm_campaign=expertos" class="footer__link" rel="nofollow sponsored" target="_blank">Hosting Odoo</a>
<a href="https://www.odoo.com/documentation" class="footer__link" target="_blank" rel="noopener">Documentacion oficial</a>
<a href="https://github.com/odoo/odoo" class="footer__link" target="_blank" rel="noopener">Odoo en GitHub</a>
</div>
</div>
<div>
<h4 class="footer__heading">Empresa</h4>
<div class="footer__links">
<a href="/about.html" class="footer__link">Sobre nosotros</a>
<a href="/contact.html" class="footer__link">Contacto</a>
<a href="/privacy.html" class="footer__link">Politica de privacidad</a>
</div>
</div>
</div>
<div class="footer__bottom">
<span>&copy; 2026 Odoo Expertos. Independiente y no afiliado a Odoo S.A.</span>
<span>Odoo es una marca registrada de Odoo S.A.</span>
</div>
</div>
</footer>
<script>
function filterBlogPosts(query) {
const q = query.toLowerCase().trim();
document.querySelectorAll('#blogLayout .article-card').forEach(card => {
const text = card.textContent.toLowerCase();
card.style.display = (!q || text.includes(q)) ? '' : 'none';
});
}
</script>
<script src="/js/main.js" defer></script>
</body> </body>
</html> </html>
+69 -30
View File
@@ -170,45 +170,84 @@
<!-- ===== BLOG ===== --> <!-- ===== BLOG ===== -->
<section id="blog" style="padding:100px 0;"> <section id="blog" style="padding:100px 0;">
<div class="container"> <div class="container">
<div class="flex items-end justify-between flex-wrap gap-6 mb-16"> <div class="flex items-end justify-between flex-wrap gap-6 mb-8">
<div> <div>
<h2 style="font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700;line-height:1.1;letter-spacing:-0.03em;color:#0f172a;margin-bottom:12px;">Blog y noticias</h2> <h2 style="font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700;line-height:1.1;letter-spacing:-0.03em;color:#0f172a;margin-bottom:12px;">Blog y noticias</h2>
<p style="font-size:1.0625rem;color:#64748b;line-height:1.7;max-width:480px;">Conocimiento práctico sobre Odoo Community. Tutoriales, guías y novedades del ecosistema.</p> <p style="font-size:1.0625rem;color:#64748b;line-height:1.7;max-width:480px;">Conocimiento práctico sobre Odoo Community. Tutoriales, guías y novedades del ecosistema.</p>
</div> </div>
<a href="/blog/" class="btn-secondary" style="white-space:nowrap;">Ver todo el blog</a>
</div> </div>
<div class="grid md:grid-cols-3 gap-6">
<a href="/blog/implementar-odoo-erp-pyme.html" class="premium-card p-8" style="text-decoration:none;display:flex;flex-direction:column;"> <!-- Search -->
<div style="display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;"> <div style="position:relative;max-width:480px;margin-bottom:32px;">
<span style="background:rgba(67,56,202,0.1);color:#4338ca;font-size:0.75rem;font-weight:500;padding:4px 10px;border-radius:100px;">Guía</span> <svg style="position:absolute;left:16px;top:50%;transform:translateY(-50%);" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#94a3b8" stroke-width="2.5" stroke-linecap="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
<span style="background:rgba(16,185,129,0.1);color:#10b981;font-size:0.75rem;font-weight:500;padding:4px 10px;border-radius:100px;">15 min</span> <input type="text" id="blogSearch" placeholder="Buscar artículos..." oninput="blogSearch(this.value)" style="width:100%;padding:12px 16px 12px 46px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;font-family:'Inter',sans-serif;font-size:0.9375rem;color:#0f172a;outline:none;transition:border-color 0.2s;" onfocus="this.style.borderColor='#4338ca'" onblur="this.style.borderColor='#e2e8f0'">
</div>
<h3 style="font-size:1.125rem;font-weight:600;color:#0f172a;margin-bottom:8px;line-height:1.4;">Cómo implementar Odoo en una pyme paso a paso</h3>
<p style="color:#64748b;font-size:0.875rem;line-height:1.7;margin-bottom:16px;flex:1;">Guía completa desde la planificación hasta el despliegue en producción.</p>
<span style="color:#4338ca;font-size:0.875rem;font-weight:600;display:inline-flex;align-items:center;gap:6px;">Leer más <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg></span>
</a>
<a href="/blog/odoo-community-vs-enterprise.html" class="premium-card p-8" style="text-decoration:none;display:flex;flex-direction:column;">
<div style="display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;">
<span style="background:rgba(245,158,11,0.1);color:#f59e0b;font-size:0.75rem;font-weight:500;padding:4px 10px;border-radius:100px;">Comparativa</span>
<span style="background:rgba(16,185,129,0.1);color:#10b981;font-size:0.75rem;font-weight:500;padding:4px 10px;border-radius:100px;">12 min</span>
</div>
<h3 style="font-size:1.125rem;font-weight:600;color:#0f172a;margin-bottom:8px;line-height:1.4;">Odoo Community vs Enterprise: diferencias reales</h3>
<p style="color:#64748b;font-size:0.875rem;line-height:1.7;margin-bottom:16px;flex:1;">¿Qué versión necesitas realmente? Análisis detallado de costes y funcionalidades.</p>
<span style="color:#4338ca;font-size:0.875rem;font-weight:600;display:inline-flex;align-items:center;gap:6px;">Leer más <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg></span>
</a>
<a href="/blog/odoo-crm-guia-completa.html" class="premium-card p-8" style="text-decoration:none;display:flex;flex-direction:column;">
<div style="display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;">
<span style="background:rgba(16,185,129,0.1);color:#10b981;font-size:0.75rem;font-weight:500;padding:4px 10px;border-radius:100px;">Tutorial</span>
<span style="background:rgba(16,185,129,0.1);color:#10b981;font-size:0.75rem;font-weight:500;padding:4px 10px;border-radius:100px;">10 min</span>
</div>
<h3 style="font-size:1.125rem;font-weight:600;color:#0f172a;margin-bottom:8px;line-height:1.4;">Odoo CRM: guía completa para equipos comerciales</h3>
<p style="color:#64748b;font-size:0.875rem;line-height:1.7;margin-bottom:16px;flex:1;">Gestiona leads, pipeline de ventas y automatizaciones con Odoo Community.</p>
<span style="color:#4338ca;font-size:0.875rem;font-weight:600;display:inline-flex;align-items:center;gap:6px;">Leer más <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg></span>
</a>
</div> </div>
<!-- Blog grid -->
<div class="grid md:grid-cols-3 gap-6" id="blogGrid"></div>
<!-- Pagination -->
<div id="blogPagination" style="display:flex;justify-content:center;gap:12px;margin-top:40px;"></div>
</div> </div>
</section> </section>
<script>
// All blog articles data
const allArticles = [
{ slug:"oca-lanza-nueva-tienda-apps.html", cat:"Novedades", time:"4 min", title:"La OCA lanza su nueva tienda de apps Odoo", excerpt:"La Odoo Community Association (OCA) lanza su nuevo Apps Store. Una plataforma para descubrir módulos, contribuidores y servicios del ecosistema Odoo open source.", tag:"news" },
{ slug:"implementar-odoo-erp-pyme.html", cat:"Guía", time:"15 min", title:"C\u00f3mo implementar Odoo en una pyme paso a paso", excerpt:"Gu\u00eda completa desde la planificaci\u00f3n hasta el despliegue en producci\u00f3n.", tag:"guide" },
{ slug:"odoo-community-vs-enterprise.html", cat:"Comparativa", time:"12 min", title:"Odoo Community vs Enterprise: diferencias reales", excerpt:"\u00bfQu\u00e9 versi\u00f3n necesitas realmente? An\u00e1lisis detallado de costes y funcionalidades.", tag:"comparison" },
{ slug:"odoo-crm-guia-completa.html", cat:"Tutorial", time:"10 min", title:"Odoo CRM: gu\u00eda completa para equipos comerciales", excerpt:"Gestiona leads, pipeline de ventas y automatizaciones con Odoo Community.", tag:"tutorial" },
{ slug:"odoo-inventory-gestion-almacenes.html", cat:"Tutorial", time:"8 min", title:"Odoo Inventory: gu\u00eda completa para gestionar almacenes", excerpt:"Configuraci\u00f3n del m\u00f3dulo de inventario de Odoo Community: stocks, almacenes, movimientos y valoraci\u00f3n.", tag:"tutorial" },
{ slug:"odoo-contabilidad-modulo-financiero.html", cat:"Accounting", time:"12 min", title:"Odoo Accounting: gu\u00eda completa del m\u00f3dulo financiero", excerpt:"Plan contable, facturaci\u00f3n, conciliaci\u00f3n bancaria e informes financieros en Odoo Community.", tag:"guide" },
{ slug:"odoo-erp-open-source-alternativa.html", cat:"Comparativa", time:"10 min", title:"Odoo ERP: la alternativa open source a SAP y Sage", excerpt:"An\u00e1lisis comparativo de Odoo frente a SAP, Sage y Microsoft Dynamics. Costes y casos de uso.", tag:"comparison" },
{ slug:"modulos-fabricacion-odoo-erp.html", cat:"Manufacturing", time:"11 min", title:"M\u00f3dulos de fabricaci\u00f3n en Odoo ERP: gu\u00eda pr\u00e1ctica", excerpt:"Gu\u00eda completa del m\u00f3dulo de fabricaci\u00f3n de Odoo Community. \u00d3rdenes de producci\u00f3n, listas de materiales.", tag:"guide" },
{ slug:"guia-hosting-odoo-servidores.html", cat:"Infraestructura", time:"13 min", title:"Gu\u00eda completa de hosting para Odoo: c\u00f3mo elegir servidor", excerpt:"Todo sobre hosting para Odoo: servidores dedicados, VPS, cloud hosting.", tag:"guide" },
{ slug:"como-elegir-erp-pequena-empresa.html", cat:"Gu\u00eda", time:"9 min", title:"C\u00f3mo elegir un ERP para tu peque\u00f1a empresa", excerpt:"Gu\u00eda pr\u00e1ctica para seleccionar el ERP adecuado para tu pyme.", tag:"guide" },
{ slug:"mejores-modulos-odoo-community.html", cat:"Odoo Community", time:"10 min", title:"Los mejores m\u00f3dulos Odoo Community para empresas", excerpt:"Selecci\u00f3n de los m\u00f3dulos m\u00e1s potentes de Odoo Community para empresas.", tag:"guide" }
];
const perPage = 6;
let currentPage = 1;
let filteredArticles = [...allArticles];
const tagColors = { news:"rgba(99,102,241,0.1)", guide:"rgba(67,56,202,0.1)", comparison:"rgba(245,158,11,0.1)", tutorial:"rgba(16,185,129,0.1)" };
const tagText = { news:"#6366f1", guide:"#4338ca", comparison:"#f59e0b", tutorial:"#10b981" };
function renderBlog() {
const grid = document.getElementById('blogGrid');
const pag = document.getElementById('blogPagination');
const start = (currentPage - 1) * perPage;
const page = filteredArticles.slice(start, start + perPage);
const totalPages = Math.ceil(filteredArticles.length / perPage);
grid.innerHTML = page.map(a => `<a href="/blog/${a.slug}" class="premium-card p-8" style="text-decoration:none;display:flex;flex-direction:column;">
<div style="display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;">
<span style="background:${tagColors[a.tag]||tagColors.guide};color:${tagText[a.tag]||tagText.guide};font-size:0.75rem;font-weight:500;padding:4px 10px;border-radius:100px;">${a.cat}</span>
<span style="background:rgba(16,185,129,0.1);color:#10b981;font-size:0.75rem;font-weight:500;padding:4px 10px;border-radius:100px;">${a.time}</span>
</div>
<h3 style="font-size:1.125rem;font-weight:600;color:#0f172a;margin-bottom:8px;line-height:1.4;">${a.title}</h3>
<p style="color:#64748b;font-size:0.875rem;line-height:1.7;margin-bottom:16px;flex:1;">${a.excerpt}</p>
<span style="color:#4338ca;font-size:0.875rem;font-weight:600;display:inline-flex;align-items:center;gap:6px;">Leer m\u00e1s <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg></span>
</a>`).join('');
if (totalPages <= 1) { pag.innerHTML = ''; return; }
pag.innerHTML = Array.from({length:totalPages}, (_, i) => i+1).map(p =>
`<button onclick="currentPage=${p};renderBlog()" style="padding:8px 18px;border-radius:10px;font-weight:600;font-size:0.875rem;border:1px solid ${p===currentPage?'#4338ca':'#e2e8f0'};background:${p===currentPage?'#4338ca':'#fff'};color:${p===currentPage?'#fff':'#475569'};cursor:pointer;transition:all 0.2s;">${p}</button>`
).join('');
}
function blogSearch(q) {
const query = q.toLowerCase().trim();
filteredArticles = query ? allArticles.filter(a =>
a.title.toLowerCase().includes(query) || a.excerpt.toLowerCase().includes(query) || a.cat.toLowerCase().includes(query)
) : [...allArticles];
currentPage = 1;
renderBlog();
}
renderBlog();
</script>
<!-- ===== EXPERT MARKET ===== --> <!-- ===== EXPERT MARKET ===== -->
<section id="expertos" style="padding:100px 0;background:#f1f5f9;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;"> <section id="expertos" style="padding:100px 0;background:#f1f5f9;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;">
<div class="container"> <div class="container">