Skip to content

feat: SPA wiki con terminología hover - #15

Merged
Alexendros merged 1 commit into
mainfrom
feature/wiki-spa
Sep 20, 2026
Merged

Alexendros merged 1 commit into
mainfrom
feature/wiki-spa

Conversation

@Alexendros

@Alexendros Alexendros commented Sep 20, 2026 •

Copy link
Copy Markdown
Owner

Añade una Single Page Application tipo wiki accesible desde /wiki.html, con navegación, búsqueda y definiciones de términos técnicos/sigas visibles al pasar el ratón.


Note

Low Risk
Documentation-only static assets and a footer link; no changes to APIs, auth, or installation logic.

Overview
Adds in-portal documentation via a new /wiki.html single-page wiki and links it from the main portal footer.

The wiki is a self-contained static page with sidebar navigation (hash routes + history.pushState), client-side search over articles and glossary terms, and hover tooltips for technical vocabulary. Content is embedded in JavaScript (articles, terms, categories) covering architecture, install flow, JSON profiles, portal API, iPXE, Ansible, CI/CD, and roadmap.

index.html only gains a footer link to the wiki; no API or installer behavior changes.

Reviewed by Cursor Bugbot for commit 40bcb24. Configure here.

- Crea portal/public/wiki.html: SPA auto-contenida con navegación tipo wiki,
  búsqueda y artículos sobre NEUBAT.
- Añade diccionario de términos y siglas con tooltips al pasar el ratón.
- Incluye contenido de concepto, arquitectura, flujo, perfiles, scripts,
  Ansible, tests, CI/CD y roadmap.
- Añade enlace a la wiki en el footer del portal.
- Genera docs/assets/wiki-hero.png como referencia visual.
@coderabbitai

coderabbitai Bot commented Sep 20, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 01d62a0b-9de5-4eca-8d57-1fd2104c99f3

📥 Commits

Reviewing files that changed from the base of the PR and between b829fb0 and 40bcb24.

⛔ Files ignored due to path filters (1)
  • docs/assets/wiki-hero.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • portal/public/index.html
  • portal/public/wiki.html
 ______________________________________________________________________________________________________________________
< Adapting old programs to fit new machines usually means adapting new machines to behave like old ones. - Alan Perlis >
 ----------------------------------------------------------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Alexendros
Alexendros merged commit 5ee907f into main Sep 20, 2026
4 of 5 checks passed
@Alexendros
Alexendros deleted the feature/wiki-spa branch September 20, 2026 06:37

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 3 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 40bcb24. Configure here.

Comment thread portal/public/wiki.html
html = html.replace(re, `<span class="term" data-term="${term}">$1</span>`);
});
return html;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Term wrapping breaks code snippets

Medium Severity

enrichText wraps every dictionary match in article HTML, including text inside code and pre. Routes like /api/health, files like base.json and neubat-ansible, and the architecture diagram pick up extra .term spans, so literal snippets no longer display as written.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 40bcb24. Configure here.

Comment thread portal/public/wiki.html
document.querySelectorAll('.term').forEach(el => {
const term = el.getAttribute('data-term');
const def = terms[term];
if (!def) return;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Highlighted terms lack definitions

Medium Severity

Several pink .term highlights (Bash, Python, GET, POST, USB, GitHub, Terraform, Pulumi) have no terms entry. attachTooltips only binds when data-term resolves in that map, so those help-cursor words never show a definition despite the page telling users to hover them.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 40bcb24. Configure here.

Comment thread portal/public/wiki.html
<li>En el primer arranque, <span class="term">Ansible</span> instala paquetes, habilita servicios, despliega el portal local y genera la URL de setup.</li>
</ol>

<p>Ver <a href="/">docs/ANSIBLE.md</a> para uso manual.</p>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ansible docs link goes home

Low Severity

The Ansible article labels a link as docs/ANSIBLE.md but sets href to /. Clicks open the portal homepage instead of the documentation, so the manual-usage pointer is a dead end.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 40bcb24. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant