From bb228d89c0440e332c405061fbbf8700dd03e0a4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Oct 2025 16:51:06 +0000 Subject: [PATCH 1/4] Initial plan From 7e6a536c6a9dd61afd1b29c28516372dfb84d315 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Oct 2025 16:59:54 +0000 Subject: [PATCH 2/4] Initial audit: Update package-lock.json with security fix Co-authored-by: marcelo-m7 <117441129+marcelo-m7@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6cbd4b4f..b1eee932 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5777,9 +5777,9 @@ "license": "MIT" }, "node_modules/vite": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz", - "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==", + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.12.tgz", + "integrity": "sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==", "dev": true, "license": "MIT", "dependencies": { From acad16eb066d7b27ad8642a08c4d71e6051d1e9b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Oct 2025 17:19:06 +0000 Subject: [PATCH 3/4] Changes before error encountered Co-authored-by: marcelo-m7 <117441129+marcelo-m7@users.noreply.github.com> --- assets/scss/common/_custom.scss | 24 +++++++++++++++++++ config/_default/hugo.toml | 2 +- content/pt/courses/LESTI/2024-2025/index.md | 1 + .../LESTI/2024-2025/uc/LESTI-ALG1/index.md | 1 + hugo_stats.json | 8 ++++++- 5 files changed, 34 insertions(+), 2 deletions(-) diff --git a/assets/scss/common/_custom.scss b/assets/scss/common/_custom.scss index cc4e2b5d..f4b51513 100644 --- a/assets/scss/common/_custom.scss +++ b/assets/scss/common/_custom.scss @@ -1 +1,25 @@ // Put your custom SCSS code here + +// Fix word-breaking in definition lists +dl.row { + dt { + word-break: normal; + hyphens: none; + overflow-wrap: normal; + } + + dd { + word-break: normal; + hyphens: none; + overflow-wrap: break-word; + } +} + +// Ensure proper spacing in card bodies +.card-body { + dl { + dt, dd { + word-break: normal; + } + } +} diff --git a/config/_default/hugo.toml b/config/_default/hugo.toml index 09ac7205..bbaa3e44 100644 --- a/config/_default/hugo.toml +++ b/config/_default/hugo.toml @@ -43,7 +43,7 @@ copyRight = "FACODI — Conteúdo aberto para aprendizagem comunitária" tag = "tags" [permalinks] - courses = "/courses/:sections[1:]/" + course = "/courses/:slug/" [pagination] pagerSize = 12 diff --git a/content/pt/courses/LESTI/2024-2025/index.md b/content/pt/courses/LESTI/2024-2025/index.md index 70ecbeda..b88a86cd 100644 --- a/content/pt/courses/LESTI/2024-2025/index.md +++ b/content/pt/courses/LESTI/2024-2025/index.md @@ -14,6 +14,7 @@ seo: description: "Plano curricular, unidades curriculares e recursos multimédia." type: course layout: course +url: /pt/courses/LESTI/2024-2025/ --- ## Visão Geral diff --git a/content/pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/index.md b/content/pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/index.md index 943258b0..28728ccd 100644 --- a/content/pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/index.md +++ b/content/pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/index.md @@ -21,6 +21,7 @@ topics: - slug: "estruturas-de-dados" type: uc layout: uc +url: /pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/ --- ## Ementa diff --git a/hugo_stats.json b/hugo_stats.json index bbb4761e..b362ae26 100644 --- a/hugo_stats.json +++ b/hugo_stats.json @@ -24,6 +24,7 @@ "link", "meta", "noscript", + "ol", "p", "path", "script", @@ -53,6 +54,7 @@ "col-lg-8", "col-md-12", "col-md-6", + "col-xl-4", "col-xl-8", "container", "container-lg", @@ -100,6 +102,9 @@ "justify-content-between", "justify-content-center", "list", + "list-group", + "list-group-item", + "list-group-numbered", "list-inline", "list-inline-item", "mb-0", @@ -117,7 +122,6 @@ "mt-1", "mx-2", "mx-auto", - "my-3", "nav-item", "nav-link", "navbar", @@ -165,6 +169,8 @@ "course-content-md", "doks-language-current", "doks-languages", + "ementa", + "metodologia", "offcanvasNavMain", "offcanvasNavMainLabel", "toTop", From 61cb00f5704dee2f4b66b55a61d29b3f97e6a753 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Oct 2025 20:27:43 +0000 Subject: [PATCH 4/4] Fix UI/UX issues: routing, CSS, menus, and error handling Co-authored-by: marcelo-m7 <117441129+marcelo-m7@users.noreply.github.com> --- .gitignore | 2 + assets/scss/common/_custom.scss | 68 +++++++++++++++++++ config/_default/menus/menus.en.toml | 2 +- config/_default/menus/menus.es.toml | 2 +- config/_default/menus/menus.fr.toml | 2 +- config/_default/menus/menus.pt.toml | 2 +- .../uc/LESTI-ALG1/estruturas-de-dados.md | 1 + hugo_stats.json | 7 -- static/js/loaders.js | 5 +- static/js/supabaseClient.js | 5 +- 10 files changed, 83 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 394e0172..bd89e23b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ public/ resources/ .DS_Store .cache/ +hugo_stats.json +tmp-screenshots/ diff --git a/assets/scss/common/_custom.scss b/assets/scss/common/_custom.scss index f4b51513..2720f163 100644 --- a/assets/scss/common/_custom.scss +++ b/assets/scss/common/_custom.scss @@ -23,3 +23,71 @@ dl.row { } } } + +// Improve responsive spacing +.section { + padding-top: 2rem; + padding-bottom: 2rem; + + @media (min-width: 768px) { + padding-top: 3rem; + padding-bottom: 3rem; + } +} + +// Better card spacing and hover effects +.card { + transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; + + &:hover { + transform: translateY(-2px); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; + } +} + +// Improve heading spacing +h1, h2, h3, h4, h5, h6 { + margin-top: 1.5rem; + margin-bottom: 1rem; +} + +// Better list group styling +.list-group-item { + border-left: 3px solid transparent; + transition: border-color 0.2s ease-in-out; + + &:hover { + border-left-color: var(--bs-primary); + } +} + +// Improve button spacing +.btn { + margin-right: 0.5rem; + margin-bottom: 0.5rem; + + &:last-child { + margin-right: 0; + } +} + +// Better badge styling +.badge { + margin-right: 0.25rem; + margin-bottom: 0.25rem; + padding: 0.35rem 0.65rem; + font-weight: 500; + + &:last-child { + margin-right: 0; + } +} + +// Improve responsive navigation +@media (max-width: 767px) { + .navbar-nav { + .nav-item { + margin-bottom: 0.5rem; + } + } +} diff --git a/config/_default/menus/menus.en.toml b/config/_default/menus/menus.en.toml index 91a65ca0..16c4e7fb 100644 --- a/config/_default/menus/menus.en.toml +++ b/config/_default/menus/menus.en.toml @@ -1,6 +1,6 @@ [[main]] name = "Courses" - url = "/" + url = "/en/" weight = 10 [[footer]] diff --git a/config/_default/menus/menus.es.toml b/config/_default/menus/menus.es.toml index 3afba7b9..3290a404 100644 --- a/config/_default/menus/menus.es.toml +++ b/config/_default/menus/menus.es.toml @@ -1,6 +1,6 @@ [[main]] name = "Cursos" - url = "/" + url = "/es/" weight = 10 [[footer]] diff --git a/config/_default/menus/menus.fr.toml b/config/_default/menus/menus.fr.toml index b43ee009..1c5f4f11 100644 --- a/config/_default/menus/menus.fr.toml +++ b/config/_default/menus/menus.fr.toml @@ -1,6 +1,6 @@ [[main]] name = "Cours" - url = "/" + url = "/fr/" weight = 10 [[footer]] diff --git a/config/_default/menus/menus.pt.toml b/config/_default/menus/menus.pt.toml index b3e88ccb..0b43594a 100644 --- a/config/_default/menus/menus.pt.toml +++ b/config/_default/menus/menus.pt.toml @@ -1,6 +1,6 @@ [[main]] name = "Cursos" - url = "/" + url = "/pt/" weight = 10 [[footer]] diff --git a/content/pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/estruturas-de-dados.md b/content/pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/estruturas-de-dados.md index 14ee9896..2f2d4c67 100644 --- a/content/pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/estruturas-de-dados.md +++ b/content/pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/estruturas-de-dados.md @@ -11,6 +11,7 @@ tags: - "pilhas" type: topic layout: topic +url: /pt/courses/LESTI/2024-2025/uc/LESTI-ALG1/estruturas-de-dados/ --- As estruturas de dados definem como a informação é organizada na memória e determinam o desempenho dos algoritmos que as manipulam. diff --git a/hugo_stats.json b/hugo_stats.json index b362ae26..1dd1bfcb 100644 --- a/hugo_stats.json +++ b/hugo_stats.json @@ -24,7 +24,6 @@ "link", "meta", "noscript", - "ol", "p", "path", "script", @@ -54,7 +53,6 @@ "col-lg-8", "col-md-12", "col-md-6", - "col-xl-4", "col-xl-8", "container", "container-lg", @@ -102,9 +100,6 @@ "justify-content-between", "justify-content-center", "list", - "list-group", - "list-group-item", - "list-group-numbered", "list-inline", "list-inline-item", "mb-0", @@ -169,8 +164,6 @@ "course-content-md", "doks-language-current", "doks-languages", - "ementa", - "metodologia", "offcanvasNavMain", "offcanvasNavMainLabel", "toTop", diff --git a/static/js/loaders.js b/static/js/loaders.js index 9c1b86ea..1ace962c 100644 --- a/static/js/loaders.js +++ b/static/js/loaders.js @@ -37,7 +37,10 @@ function getClient() { if (!window.facodi || !window.facodi.supabase) { - console.warn('[FACODI] Cliente Supabase indisponível.'); + // Only warn in development mode + if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') { + console.info('[FACODI] Cliente Supabase indisponível (modo desenvolvimento).'); + } return null; } return window.facodi.supabase; diff --git a/static/js/supabaseClient.js b/static/js/supabaseClient.js index fadf3cff..b34895d3 100644 --- a/static/js/supabaseClient.js +++ b/static/js/supabaseClient.js @@ -17,7 +17,10 @@ } if (!url || !anonKey) { - console.warn('[FACODI] Variáveis SUPABASE_URL ou SUPABASE_ANON_KEY não configuradas.'); + // Only warn in development mode (when accessing via localhost) + if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') { + console.info('[FACODI] Supabase não configurado (modo desenvolvimento). Conteúdo dinâmico não será carregado.'); + } return; }