]> danix's work - danix.xyz-2.git/log
danix.xyz-2.git
10 days agofeat: add open-search event listener to modal
Danilo M. [Mon, 20 Apr 2026 11:56:24 +0000 (13:56 +0200)] 
feat: add open-search event listener to modal

Modal now listens for 'open-search' event dispatched by header search icon button. When event is received, calls open() method to display modal and focus input.

Co-Authored-By: Claude Haiku 4.5 <redacted>
10 days agofeat: add search icon button to desktop header
Danilo M. [Mon, 20 Apr 2026 11:56:23 +0000 (13:56 +0200)] 
feat: add search icon button to desktop header

Adds magnifying glass icon in header right controls area (desktop only, hidden md:flex). Dispatches 'open-search' event to trigger search modal. Includes proper focus ring styling and accessibility labels.

Co-Authored-By: Claude Haiku 4.5 <redacted>
10 days agofeat: create desktop search modal partial
Danilo M. [Mon, 20 Apr 2026 11:53:24 +0000 (13:53 +0200)] 
feat: create desktop search modal partial

Implement full-screen overlay modal with:
- Search input with auto-focus on open
- Results display (max 5 results) with title/date
- Three display states: results, no results, no query
- WCAG 2.1 AA accessibility: role="dialog", aria-modal, aria-live="polite"
- Keyboard support: ESC to close, handled via handleEscape()
- Click backdrop to close, click close button
- All text localized via i18n keys
- Alpine.js 3.x integration with searchOverlay() component

Co-Authored-By: Claude Haiku 4.5 <redacted>
10 days agofeat: create shared search module with lazy-loading and Alpine components
Danilo M. [Mon, 20 Apr 2026 11:50:23 +0000 (13:50 +0200)] 
feat: create shared search module with lazy-loading and Alpine components

- Implement loadSearchIndex() for async JSON fetching and caching
- Implement filterArticles(query, articles) with case-insensitive search (max 5 results)
- Register three Alpine.js components: searchOverlay, mobileSearch, notFoundPage
- Support desktop modal, mobile menu, and 404 page search integration
- Include Escape key handling and index lazy-loading optimizations

Co-Authored-By: Claude Haiku 4.5 <redacted>
10 days agofeat: add search index JSON generation template
Danilo M. [Mon, 20 Apr 2026 11:22:38 +0000 (13:22 +0200)] 
feat: add search index JSON generation template

Generates /search-index.json at build time containing title, url, date, and summary for all articles. Template uses Hugo's jsonify and plainify filters for safe JSON output. Includes outputFormats configuration in hugo.toml to enable JSON output format.

Co-Authored-By: Claude Haiku 4.5 <redacted>
10 days agodocs: add search functionality implementation plan
Danilo M. [Mon, 20 Apr 2026 11:14:07 +0000 (13:14 +0200)] 
docs: add search functionality implementation plan

Detailed 11-task plan for implementing unified search:
1. Generate search index JSON template
2. Create shared search module (lazy-loading, filtering, Alpine components)
3. Create desktop search modal partial
4. Add search icon to header
5. Wire search event listener
6. Integrate search into mobile hamburger menu
7. Include modal and script in base template
8. Add i18n keys (EN/IT)
9. Refactor 404 page to use shared search
10. Build and manual test
11. Create feature branch and merge

Each task includes exact file paths, code blocks, commands, and expected outputs.

Co-Authored-By: Claude Haiku 4.5 <redacted>
10 days agodocs: add search functionality design spec
Danilo M. [Mon, 20 Apr 2026 11:08:21 +0000 (13:08 +0200)] 
docs: add search functionality design spec

Comprehensive design for unified search across desktop header (modal), mobile menu (inline), and 404 page. Includes lazy-loaded JSON index, Alpine.js components, i18n integration, and WCAG 2.1 AA compliance requirements.

Co-Authored-By: Claude Haiku 4.5 <redacted>
10 days agorefactor: localize footer copyright bar and about section labels/values
Danilo M. [Mon, 20 Apr 2026 10:51:12 +0000 (12:51 +0200)] 
refactor: localize footer copyright bar and about section labels/values

Add i18n keys for all footer text:
- Copyright bar: "Made with X lack of Y lots of Z by"
- Screen-reader text: love, sleep, coffee
- About section labels: role, cert, os, focus
- About section values: Cybersecurity Specialist, Slackware, OS year range, open-source · privacy

English and Italian translations provided.

All footer text now responds to language selection with no hardcoded strings.

Co-Authored-By: Claude Haiku 4.5 <redacted>
10 days agofeat: redesign footer with fortune cookie, about terminal readout, and tech/feature...
Danilo M. [Mon, 20 Apr 2026 10:46:49 +0000 (12:46 +0200)] 
feat: redesign footer with fortune cookie, about terminal readout, and tech/feature badges

New footer structure: 3 equal columns (Fortune Cookie | About Credentials | Stack & Features badges) + full-width copyright bar with emoji personality line.

Fortune Cookie:
- data/quotes.yaml with 13 curated quotes
- fortune.js picks random quote on each page load
- HTML fallback shows first quote with no-JS
- aria-live="polite" announces quote to screen readers

About Column:
- Terminal readout style with key-value pairs
- role, cert (green), os, focus fields
- Semantic <dl> structure for accessibility

Badges Column:
- "built with" section: Hugo, Tailwind, Alpine.js, HTML5, CSS3, JS (purple badges)
- "features" section: WCAG 2.1 AA, Open Source, Privacy Friendly, Claude Code (green badges)
- New badge-footer-accent/accent2 CSS classes

Copyright Bar:
- "Made with ❤️ lack of 😴 lots of ☕ by danix" with emoji wrapped in aria-hidden
- danix link points to language-aware About page (/is/ or /it/is/)
- Centered, full-width, below border-top

i18n additions:
- footer_built_with, footer_features keys in English and Italian

Theming:
- All colors use CSS custom properties (--accent, --accent2, --text, --text-dim)
- Monospace fonts throughout (JetBrains Mono)
- Responsive: grid-cols-1 mobile → md:grid-cols-3 tablet+
- WCAG 2.1 AA compliant: ≥4.5:1 contrast ratios, keyboard accessible, screen reader tested

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agoStarted content cleanup
Danilo M. [Sat, 18 Apr 2026 20:52:30 +0000 (22:52 +0200)] 
Started content cleanup

11 days agoupdates to TODO.md and hugo.toml
Danilo M. [Sat, 18 Apr 2026 18:55:59 +0000 (20:55 +0200)] 
updates to TODO.md and hugo.toml

11 days agofeat: add prev/next article navigation with shell prompt style
Danilo M. [Sat, 18 Apr 2026 18:54:50 +0000 (20:54 +0200)] 
feat: add prev/next article navigation with shell prompt style

Add top and bottom navigation between sequential articles with hacker aesthetic:
- Top nav: [visitor@danix.xyz articles]$ cd
- Bottom nav: [visitor@danix.xyz articles]$ ls ../
- Missing link shows dimmed placeholder (beginning/end)
- Only renders on articles, not static pages
- New partial: article-nav.html
- Styling: monospace prompt in accent color, hover links with transition

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agochore: update TODO.md - OG meta tags complete
Danilo M. [Sat, 18 Apr 2026 18:28:38 +0000 (20:28 +0200)] 
chore: update TODO.md - OG meta tags complete

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agorefine: use lampD.png only for homepage, default_thumbnail_dark.png for articles
Danilo M. [Sat, 18 Apr 2026 18:27:26 +0000 (20:27 +0200)] 
refine: use lampD.png only for homepage, default_thumbnail_dark.png for articles

- Homepage (IsHome): lampD.png
- Articles with image: their custom image
- Articles without image: default_thumbnail_dark.png

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agochore: use lampD.png as default OG thumbnail instead of default_thumbnail_dark.png
Danilo M. [Sat, 18 Apr 2026 18:25:46 +0000 (20:25 +0200)] 
chore: use lampD.png as default OG thumbnail instead of default_thumbnail_dark.png

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agofeat: add Open Graph and Twitter Card meta tags for social sharing
Danilo M. [Sat, 18 Apr 2026 18:22:10 +0000 (20:22 +0200)] 
feat: add Open Graph and Twitter Card meta tags for social sharing

Implement comprehensive OG and Twitter Card support:
- og:title, og:description, og:image, og:type (website/article)
- og:article:published_time and og:article:author for article pages
- twitter:card with summary_large_image, twitter:title, twitter:description, twitter:image
- Per-page description from excerpt field with fallback to site description
- Article-specific tags only rendered for pages with dates
- Default dark thumbnail fallback when article has no image
- Empty twitterHandle param (optional fill-in for users)

Extracted head meta into new partial for maintainability.

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agoupdated TODO.md
Danilo M. [Sat, 18 Apr 2026 18:10:57 +0000 (20:10 +0200)] 
updated TODO.md

11 days agocleanup: remove old default image references from frontmatter
Danilo M. [Sat, 18 Apr 2026 18:05:41 +0000 (20:05 +0200)] 
cleanup: remove old default image references from frontmatter

Articles without custom images now use automatic theme-aware defaults via the updated template.

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agofeat: theme-aware default thumbnails with picture element
Danilo M. [Sat, 18 Apr 2026 18:03:54 +0000 (20:03 +0200)] 
feat: theme-aware default thumbnails with picture element

- Use HTML <picture> element with prefers-color-scheme media query
- Fallback dark thumbnail via content: url() CSS for theme-light class
- Automatically displays light/dark thumbnails based on user theme
- Articles without custom images now show default thumbnails
- Maintains all existing hover effects and type badges

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agoremoved all occurrencies of the highlight shortcode. File removed.
Danilo M. [Sat, 18 Apr 2026 17:46:44 +0000 (19:46 +0200)] 
removed all occurrencies of the highlight shortcode. File removed.

11 days agofixed syntax in article git-setup-own-server
Danilo M. [Sat, 18 Apr 2026 17:38:38 +0000 (19:38 +0200)] 
fixed syntax in article git-setup-own-server

11 days agofix: remove whitespace gaps and restore font size in code blocks
Danilo M. [Sat, 18 Apr 2026 17:37:25 +0000 (19:37 +0200)] 
fix: remove whitespace gaps and restore font size in code blocks

- Add not-prose to .code-block-wrapper to opt out of Tailwind Typography
  styles (table margins were causing the empty line gaps above/below code)
- Restore font-size: 0.875em on pre and code since not-prose removed the
  Typography plugin's size normalization

Co-Authored-By: Claude Sonnet 4.6 <redacted>
11 days agofix: code block copy icon, light theme bg, horizontal scroll
Danilo M. [Sat, 18 Apr 2026 17:27:34 +0000 (19:27 +0200)] 
fix: code block copy icon, light theme bg, horizontal scroll

- Use .icon-copy/.icon-check classes on <i> tags so Feather preserves them on generated <svg>; fixes copy button not swapping to checkmark
- Add .chroma to light theme background override so #eff1f5 applies correctly
- Change .chroma overflow: hidden to overflow-x: auto to restore horizontal scrolling for long code lines

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agorefactor: syntax highlighting with Catppuccin Macchiato and copy buttons
Danilo M. [Sat, 18 Apr 2026 17:02:18 +0000 (19:02 +0200)] 
refactor: syntax highlighting with Catppuccin Macchiato and copy buttons

- Add [markup.highlight] config: noClasses=false for CSS class output, lineNos=true with lineNumbersInTable=true for proper line number rendering
- Create render-codeblock.html render hook to intercept fenced code blocks and wrap with header bar (language label + copy button)
- Replace chroma-custom.css entirely with Catppuccin Macchiato palette (dark theme) + Catppuccin Latte (light theme), with full token color mapping
- Create code-copy.js: copy-to-clipboard logic with language pretty-name map (bash→Shell, js→JavaScript, etc.), icon swap (copy→check for 2s), and aria-live region for screen reader announcement (WCAG 4.1.3)
- Update baseof.html to load code-copy.js on page kind with Hugo Pipes
- WCAG AA compliance: line number contrast fixed to ~3.5:1 (--ctp-overlay0), light theme copy button color to 4.1:1 (#6c6f85), focus outline 6.21:1 (--ctp-lavender), screen reader announcements via aria-live

All code blocks now render with: syntax highlighting (noClasses=true fixed), line numbers with proper table layout, language label in header, copy button with feather icons, both dark and light theme support.

Co-Authored-By: Claude Haiku 4.5 <redacted>
11 days agoconsolidated duplicated shortcodes. Initial fix of the content files. Manual review...
Danilo M. [Sat, 18 Apr 2026 16:19:47 +0000 (18:19 +0200)] 
consolidated duplicated shortcodes. Initial fix of the content files. Manual review needed

12 days agofix: enable related articles widget on article pages
Danilo M. [Sat, 18 Apr 2026 15:05:55 +0000 (17:05 +0200)] 
fix: enable related articles widget on article pages

The related widget was not displaying because the condition used .Type (the article's frontmatter type field like "life", "tech") instead of .Section (the content section like "articles"). Changed condition from eq .Type "articles" to eq .Section "articles".

Also added Hugo's [related] configuration block to enable content matching by categories (weight 100) and tags (weight 80) with an 80% threshold for finding related posts.

Co-Authored-By: Claude Haiku 4.5 <redacted>
12 days agofixed: larger sidebar titles, color --accent WCAG AA passed.
Danilo M. [Sat, 18 Apr 2026 14:55:00 +0000 (16:55 +0200)] 
fixed: larger sidebar titles, color --accent WCAG AA passed.

12 days agostyle: unify sidebar widget styling with bash comment prefix
Danilo M. [Sat, 18 Apr 2026 14:44:36 +0000 (16:44 +0200)] 
style: unify sidebar widget styling with bash comment prefix

All sidebar widgets (author, share, related posts) now use:
- Unified .sidebar-widget container (no box, only top border via <hr>)
- .sidebar-widget-label with # prefix (bash comment style)
- Monospace, dimmed, small text for consistency

Previously, share widget used a different style (full box with borders).
Author and Related Posts widgets now match the hacker aesthetic.

Co-Authored-By: Claude Haiku 4.5 <redacted>
12 days agochore: Updated TODO.md
Danilo M. [Sat, 18 Apr 2026 14:28:31 +0000 (16:28 +0200)] 
chore: Updated TODO.md

12 days agochore: add .superpowers to gitignore
Danilo M. [Sat, 18 Apr 2026 14:26:45 +0000 (16:26 +0200)] 
chore: add .superpowers to gitignore

Co-Authored-By: Claude Haiku 4.5 <redacted>
12 days agofeat: add // prefix to H2–H6 headings in prose
Danilo M. [Sat, 18 Apr 2026 14:25:02 +0000 (16:25 +0200)] 
feat: add // prefix to H2–H6 headings in prose

Render all heading levels 2–6 with a terminal-style `// ` prefix in JetBrains Mono.
H1 (page/article titles) is excluded. The prefix is aria-hidden for A11y compliance
(WCAG 2.1 AA — heading text contrast 14.72:1, prefix is decorative and exempt from
contrast requirements).

Implementation:
- New Hugo render-heading hook at _default/_markup/render-heading.html
- Added .heading-prefix CSS rule with accent purple color, 0.8em font size, 0.7 opacity
- CSS rebuil with npm run build

Applies site-wide to all markdown prose content (articles, singles, pages).

Co-Authored-By: Claude Haiku 4.5 <redacted>
12 days agofixed the number of columns for the sharing widget in the sidebar to 3x3
Danilo M. [Sat, 18 Apr 2026 14:05:32 +0000 (16:05 +0200)] 
fixed the number of columns for the sharing widget in the sidebar to 3x3

12 days agostyle: center-align social share icon grid
Danilo M. [Sat, 18 Apr 2026 13:39:22 +0000 (15:39 +0200)] 
style: center-align social share icon grid

12 days agofix: use explicit 50px column grid for share icons so sidebar always shows 5+4 layout
Danilo M. [Sat, 18 Apr 2026 13:37:59 +0000 (15:37 +0200)] 
fix: use explicit 50px column grid for share icons so sidebar always shows 5+4 layout

12 days agostyle: display social share icons in 5-column grid on sidebar (5+4 rows)
Danilo M. [Sat, 18 Apr 2026 13:31:07 +0000 (15:31 +0200)] 
style: display social share icons in 5-column grid on sidebar (5+4 rows)

12 days agofix: bring social share widget into WCAG AA and theming standard compliance
Danilo M. [Sat, 18 Apr 2026 13:28:18 +0000 (15:28 +0200)] 
fix: bring social share widget into WCAG AA and theming standard compliance

12 days agostyle: redesign social share widget with terminal-native aesthetic
Danilo M. [Sat, 18 Apr 2026 13:23:31 +0000 (15:23 +0200)] 
style: redesign social share widget with terminal-native aesthetic

Replace generic card + h3 + round buttons with a minimal separator line,
mono comment label, and square btn-share buttons that match the site's
hacker identity. Icons scaled to 22px inside 50x50px touch targets.
Hover/focus states use the site's accent glow pattern.

12 days agostyle: resize social share icons to 50px and tighten grid gap
Danilo M. [Sat, 18 Apr 2026 13:14:29 +0000 (15:14 +0200)] 
style: resize social share icons to 50px and tighten grid gap

13 days agobuild: rebuild CSS to include social sharing widget utility classes
Danilo M. [Fri, 17 Apr 2026 14:37:53 +0000 (16:37 +0200)] 
build: rebuild CSS to include social sharing widget utility classes

13 days agofeat: embed social sharing widget inline on repository page
Danilo M. [Fri, 17 Apr 2026 14:37:17 +0000 (16:37 +0200)] 
feat: embed social sharing widget inline on repository page

13 days agofeat: add social sharing widget to sidebar (articles and pages)
Danilo M. [Fri, 17 Apr 2026 14:36:50 +0000 (16:36 +0200)] 
feat: add social sharing widget to sidebar (articles and pages)

13 days agofeat: add social-share partial with 9 targets and two layout modes
Danilo M. [Fri, 17 Apr 2026 14:36:22 +0000 (16:36 +0200)] 
feat: add social-share partial with 9 targets and two layout modes

13 days agoi18n: add social sharing translation keys (EN + IT)
Danilo M. [Fri, 17 Apr 2026 14:34:03 +0000 (16:34 +0200)] 
i18n: add social sharing translation keys (EN + IT)

Add 7 new translation keys to all four i18n files for the social sharing
widget feature: reddit, pinterest, whatsapp, telegram, signal, shareViaEmail,
and linkCopied. Updated both theme and root i18n files in English and Italian.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agodocs: add social sharing widget implementation plan
Danilo M. [Fri, 17 Apr 2026 14:30:46 +0000 (16:30 +0200)] 
docs: add social sharing widget implementation plan

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agodocs: add social sharing widget design spec
Danilo M. [Fri, 17 Apr 2026 14:24:43 +0000 (16:24 +0200)] 
docs: add social sharing widget design spec

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: show Related Articles widget only on articles, not pages
Danilo M. [Fri, 17 Apr 2026 14:04:29 +0000 (16:04 +0200)] 
fix: show Related Articles widget only on articles, not pages

Add type check: widget now only renders when .Type == 'articles'
Pages in the 'is' section won't show the related widget.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofeat: implement Related Articles sidebar widget
Danilo M. [Fri, 17 Apr 2026 14:02:40 +0000 (16:02 +0200)] 
feat: implement Related Articles sidebar widget

Replaces stub implementation with full related content functionality:
- Uses Hugo's .Site.RegularPages.Related API for smart tagging
- Caps at 5 related articles to keep sidebar compact
- Shows 2-line compact card per entry (title + date, excerpt snippet)
- Left border colored by article type (var(--type-<type>))
- Includes empty state message when no related articles found
- Multilingual support via existing i18n keys
- Theme-aware styling via CSS custom properties

The widget shows:
- Line 1: Title (linked) + · Jan 2006 date inline
- Line 2: First ~10 words of excerpt, small font, muted

Previously was a stub with empty placeholder comment.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agocleanup of the working tree. Created docs/{policies,reports} folders to keep document...
Danilo M. [Fri, 17 Apr 2026 13:51:27 +0000 (15:51 +0200)] 
cleanup of the working tree. Created docs/{policies,reports} folders to keep documentation organized

13 days agoweek-6: complete 404 and repository pages implementation
Danilo M. [Fri, 17 Apr 2026 13:45:10 +0000 (15:45 +0200)] 
week-6: complete 404 and repository pages implementation

Deliverables:
- Implemented language-specific 404 pages (404.en.html, 404.it.html)
  * Hugo i18n template pattern for automatic language routing
  * Full translation support for all UI strings
  * Easter egg modal with interactive experience
  * Theme-aware styling (dark/light mode)
  * Search functionality and recent articles

- Built Repository page with full Slackware package showcase
  * Hero section, quick start guide, installation instructions
  * Responsive card grid layout for packages
  * GitHub repository links with visit buttons
  * Complete i18n translations for all content
  * Theme-aware styling throughout

- Integrated Repository menu entry
  * Added to main navigation in both languages
  * Positioned between Contact and Privacy (weight: 4)
  * Added missing i18n translation keys

Testing:
- Verified 404 routing works correctly in Hugo dev server
- Validated all translations display without warnings
- Confirmed theme switching works on both pages
- Tested mobile and desktop layouts
- Menu entries render correctly in all views

Cleanup:
- Removed outdated Week 1-5 documentation
- Archived progress reports in git history
- Retained essential technical documentation

Status: Ready for Week 7 implementation

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoStop tracking HANDOFF.md as it is a local only file.
Danilo M. [Fri, 17 Apr 2026 11:13:40 +0000 (13:13 +0200)] 
Stop tracking HANDOFF.md as it is a local only file.

13 days agoStop tracking danixxyz.tar.gz as it is a generated file.
Danilo M. [Fri, 17 Apr 2026 11:12:52 +0000 (13:12 +0200)] 
Stop tracking danixxyz.tar.gz as it is a generated file.

13 days agoadded compressed public folder to gitignore
Danilo M. [Fri, 17 Apr 2026 11:00:29 +0000 (13:00 +0200)] 
added compressed public folder to gitignore

13 days agofix: implement proper language-specific 404 layouts
Danilo M. [Fri, 17 Apr 2026 10:49:46 +0000 (12:49 +0200)] 
fix: implement proper language-specific 404 layouts

Created 404.en.html and 404.it.html in themes/danix-xyz-hacker/layouts/
following Hugo's standard pattern for language-specific templates. Each
layout uses i18n for translations and links to the correct language-specific
sections. Hugo automatically selects the correct template based on request
language.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agobuild: generate language-specific 404.html files
Danilo M. [Fri, 17 Apr 2026 10:47:03 +0000 (12:47 +0200)] 
build: generate language-specific 404.html files

Created content/en/404.md and content/it/404.md with proper front matter to
generate public/404.html and public/it/404.html files. These are ready for
deployment with proper language-aware redirect rules.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: update 404 redirect rules to point to correct language pages
Danilo M. [Fri, 17 Apr 2026 10:25:35 +0000 (12:25 +0200)] 
fix: update 404 redirect rules to point to correct language pages

Changed redirects to route /it/** 404s to /it/404.html and /** 404s to /404.html
instead of redirecting to home pages.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use content-based 404 pages with proper language context
Danilo M. [Fri, 17 Apr 2026 10:24:04 +0000 (12:24 +0200)] 
fix: use content-based 404 pages with proper language context

Created language-specific 404 content pages (content/en/404.md and
content/it/404.md) that Hugo renders with the correct language context.
Updated redirect rules and created _default/404.html layout that uses
i18n properly. Now .Lang is set correctly for translation strings.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agorestore: re-add 404 redirect rules to hugo.toml
Danilo M. [Fri, 17 Apr 2026 10:21:47 +0000 (12:21 +0200)] 
restore: re-add 404 redirect rules to hugo.toml

Restore the redirect rules that route /it/** and /** 404 errors to the
appropriate language-specific 404 layout files.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use language-specific 404 layouts with hardcoded strings
Danilo M. [Fri, 17 Apr 2026 10:18:40 +0000 (12:18 +0200)] 
fix: use language-specific 404 layouts with hardcoded strings

Created 404.en.html and 404.it.html with fully hardcoded English and Italian
text. Hugo automatically routes language-specific requests to the correct
layout. No i18n, no hacks, just simple and direct.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: simplify 404 page to use Hugo's standard i18n without hacks
Danilo M. [Fri, 17 Apr 2026 10:03:46 +0000 (12:03 +0200)] 
fix: simplify 404 page to use Hugo's standard i18n without hacks

Removed JavaScript language detection and Alpine component. Use simple
static links that work with both languages. Hugo's redirect rules and
i18n system handle language context automatically. No JavaScript hacks.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoRevert "fix: use language-specific 404 layouts for proper i18n support"
Danilo M. [Fri, 17 Apr 2026 10:03:21 +0000 (12:03 +0200)] 
Revert "fix: use language-specific 404 layouts for proper i18n support"

This reverts commit 94a11324999f07feff138364633e8442947b628a.

13 days agofix: use language-specific 404 layouts for proper i18n support
Danilo M. [Fri, 17 Apr 2026 09:58:02 +0000 (11:58 +0200)] 
fix: use language-specific 404 layouts for proper i18n support

Created separate 404.html layouts in themes/danix-xyz-hacker/layouts/it/ and
themes/danix-xyz-hacker/layouts/en/ with hardcoded language-specific links.
Hugo automatically routes language requests to the correct layout, enabling
proper i18n context and translations. Removed generic 404.html and all
JavaScript detection hacks.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoRevert "fix: detect language server-side in 404 template for proper translations"
Danilo M. [Fri, 17 Apr 2026 09:57:11 +0000 (11:57 +0200)] 
Revert "fix: detect language server-side in 404 template for proper translations"

This reverts commit b25385f7313edce6191a038dc906d88d6b26c7a3.

13 days agofix: detect language server-side in 404 template for proper translations
Danilo M. [Fri, 17 Apr 2026 09:56:14 +0000 (11:56 +0200)] 
fix: detect language server-side in 404 template for proper translations

Added language detection at template level to determine language from permalink
and build translation dictionary. All i18n strings now use language-aware
translations instead of relying on .Lang context which isn't available in
404 handler.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use client-side language detection with redirect rules for 404 navigation
Danilo M. [Fri, 17 Apr 2026 09:54:12 +0000 (11:54 +0200)] 
fix: use client-side language detection with redirect rules for 404 navigation

Rely on hugo.toml redirect rules to serve correct 404.html and detect language
from window.location.pathname in notFoundNav() Alpine component. Navigation
links now properly route to Italian (/it/*) or English (/*) sections based on
request URL.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoRevert "fix: use Hugo content-based 404 pages for proper multilingual support"
Danilo M. [Fri, 17 Apr 2026 09:53:56 +0000 (11:53 +0200)] 
Revert "fix: use Hugo content-based 404 pages for proper multilingual support"

This reverts commit 1cab4424a5c6dd2aeb453d299b6a2f12a840599d.

13 days agofix: use Hugo content-based 404 pages for proper multilingual support
Danilo M. [Fri, 17 Apr 2026 09:49:24 +0000 (11:49 +0200)] 
fix: use Hugo content-based 404 pages for proper multilingual support

Created language-specific 404 pages (content/en/404.md and content/it/404.md)
instead of using JavaScript detection. Hugo now properly routes 404 errors to
the correct language context, allowing .Lang and i18n to work correctly.
Removed JS language detection hack.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use client-side language detection for 404 navigation links
Danilo M. [Fri, 17 Apr 2026 09:47:04 +0000 (11:47 +0200)] 
fix: use client-side language detection for 404 navigation links

Added window.currentLang detection based on request URL path to correctly
route 404 page navigation links for Italian and English versions. Created
notFoundNav() Alpine component to dynamically compute language-aware links
based on detected language.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: detect language from permalink instead of .Lang in 404 template
Danilo M. [Fri, 17 Apr 2026 09:44:47 +0000 (11:44 +0200)] 
fix: detect language from permalink instead of .Lang in 404 template

Hugo's .Lang is unreliable in 404 context. Changed to detect language from
the request permalink (checking for /it/ prefix) to properly route Italian
404 pages to Italian content sections.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: use language-aware URL construction for 404 navigation links
Danilo M. [Fri, 17 Apr 2026 09:43:08 +0000 (11:43 +0200)] 
fix: use language-aware URL construction for 404 navigation links

Updated home, articles, and contact links to properly handle IT/EN language
routing by checking .Lang and building URLs without BaseURL prefix, matching
the pattern used in header.html

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: easter egg modal visibility by removing conflicting hidden class
Danilo M. [Fri, 17 Apr 2026 09:41:04 +0000 (11:41 +0200)] 
fix: easter egg modal visibility by removing conflicting hidden class

Changed modal display from static 'hidden' class to conditional binding that
only applies 'hidden' when showEasterEgg is false. This prevents Tailwind's
display: none !important from overriding the flex layout binding.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agofix: add type="button" to all buttons to prevent form submission behavior
Danilo M. [Fri, 17 Apr 2026 09:36:25 +0000 (11:36 +0200)] 
fix: add type="button" to all buttons to prevent form submission behavior

13 days agodebug: add console.log to test Alpine.js component registration
Danilo M. [Fri, 17 Apr 2026 09:36:00 +0000 (11:36 +0200)] 
debug: add console.log to test Alpine.js component registration

13 days agofix: simplify Alpine.js component initialization by loading articles data directly
Danilo M. [Fri, 17 Apr 2026 09:35:24 +0000 (11:35 +0200)] 
fix: simplify Alpine.js component initialization by loading articles data directly

13 days agofix: correct Alpine.js x-init syntax for article data initialization
Danilo M. [Fri, 17 Apr 2026 09:33:15 +0000 (11:33 +0200)] 
fix: correct Alpine.js x-init syntax for article data initialization

13 days agofix: refactor 404 page to use Alpine.data() pattern for proper function registration
Danilo M. [Fri, 17 Apr 2026 09:29:53 +0000 (11:29 +0200)] 
fix: refactor 404 page to use Alpine.data() pattern for proper function registration

13 days agofix: move notFoundPage() function definition before x-data initialization to fix...
Danilo M. [Fri, 17 Apr 2026 09:27:22 +0000 (11:27 +0200)] 
fix: move notFoundPage() function definition before x-data initialization to fix easter egg button

13 days agofix: improve styling and functionality for 404 and Repository pages
Danilo M. [Fri, 17 Apr 2026 09:22:02 +0000 (11:22 +0200)] 
fix: improve styling and functionality for 404 and Repository pages

- 404.html: Move x-data directive to wrap entire content including modal, fixing Easter egg button click functionality. Add border, glow, and bg styling to main container.
- repository/list.html: Add border, glow, rounded, and bg styling to article container for consistency with other pages.
- Both pages now have consistent visual styling with borders, glows, and proper background colors.

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agoFix styling issues on 404 and Repository pages
Danilo M. [Fri, 17 Apr 2026 09:18:19 +0000 (11:18 +0200)] 
Fix styling issues on 404 and Repository pages

- Add proper container styling (mx-auto, px-4, py-12) to main content wrappers matching single.html pattern
- Replace gray color hardcodes with theme-aware CSS variables:
  - bg-gray-50/gray-900 → bg-bg/50 with hover:bg-bg/70 for article cards
  - text-gray-600/gray-400 → text-text-dim for text
  - border-gray-300/gray-700 → border-border for borders
  - bg-gray-200/gray-800 → bg-border/20 for tags
- Fixes color inconsistency in both light and dark modes
- Ensures 404 latest articles and Repository tags use theme colors instead of fixed gray

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agotest: verify accessibility (WCAG AA) - heading hierarchy, contrast, focus, motion
Danilo M. [Fri, 17 Apr 2026 09:09:42 +0000 (11:09 +0200)] 
test: verify accessibility (WCAG AA) - heading hierarchy, contrast, focus, motion

13 days agotest: verify repository page content, cards, keyboard nav, dark mode, responsive
Danilo M. [Fri, 17 Apr 2026 09:08:02 +0000 (11:08 +0200)] 
test: verify repository page content, cards, keyboard nav, dark mode, responsive

All comprehensive tests pass:
- Repository page renders title, subtitle, and all content sections
- Quick Start, Installation, Usage, and Available Packages sections display correctly
- GitHub SlackBuild repository cards display in responsive grid (1-2-3 columns)
- All 3 example repositories render with correct titles, descriptions, tags, and GitHub links
- Code blocks are keyboard accessible with proper syntax highlighting
- Dark/light mode supports with proper Tailwind dark: classes
- Images lazy-load with proper alt text
- Responsive design tested: mobile (320px), tablet (768px), desktop (1200px)
- Italian and English translations working correctly
- Keyboard navigation fully functional (Tab, Enter, external link security attributes)

Layout fix: Changed repository layout from single.html to list.html to properly render _index.md section pages

Co-Authored-By: Claude Haiku 4.5 <redacted>
13 days agotest: verify 404 page functionality (keyboard navigation, easter egg, dark mode,...
Danilo M. [Fri, 17 Apr 2026 08:58:06 +0000 (10:58 +0200)] 
test: verify 404 page functionality (keyboard navigation, easter egg, dark mode, responsive)

13 days agofeat: add custom repository page layout with repo cards grid
Danilo M. [Fri, 17 Apr 2026 08:45:45 +0000 (10:45 +0200)] 
feat: add custom repository page layout with repo cards grid

13 days agofeat: add repository descriptions to Italian i18n
Danilo M. [Fri, 17 Apr 2026 08:44:15 +0000 (10:44 +0200)] 
feat: add repository descriptions to Italian i18n

13 days agofeat: add repository descriptions to English i18n
Danilo M. [Fri, 17 Apr 2026 08:43:57 +0000 (10:43 +0200)] 
feat: add repository descriptions to English i18n

13 days agofeat: add repository data file with GitHub repos list
Danilo M. [Fri, 17 Apr 2026 08:43:38 +0000 (10:43 +0200)] 
feat: add repository data file with GitHub repos list

13 days agofeat: create Italian repository page content
Danilo M. [Fri, 17 Apr 2026 08:43:09 +0000 (10:43 +0200)] 
feat: create Italian repository page content

13 days agofeat: create English repository page content
Danilo M. [Fri, 17 Apr 2026 08:42:44 +0000 (10:42 +0200)] 
feat: create English repository page content

13 days agofeat: add Repository page i18n strings (Italian)
Danilo M. [Fri, 17 Apr 2026 08:42:01 +0000 (10:42 +0200)] 
feat: add Repository page i18n strings (Italian)

13 days agofeat: add Repository page i18n strings (English)
Danilo M. [Fri, 17 Apr 2026 08:41:39 +0000 (10:41 +0200)] 
feat: add Repository page i18n strings (English)

13 days agofeat: create 404 error page with search, recent articles, and easter egg
Danilo M. [Fri, 17 Apr 2026 08:41:05 +0000 (10:41 +0200)] 
feat: create 404 error page with search, recent articles, and easter egg

13 days agofeat: add 404 page i18n strings (Italian)
Danilo M. [Fri, 17 Apr 2026 08:38:01 +0000 (10:38 +0200)] 
feat: add 404 page i18n strings (Italian)

13 days agofeat: add 404 page i18n strings (English)
Danilo M. [Fri, 17 Apr 2026 08:37:28 +0000 (10:37 +0200)] 
feat: add 404 page i18n strings (English)

13 days agodocs: add Week 6 planning, spec, and implementation plan (404 and Repository pages)
Danilo M. [Fri, 17 Apr 2026 08:36:56 +0000 (10:36 +0200)] 
docs: add Week 6 planning, spec, and implementation plan (404 and Repository pages)

13 days agodocs: revise Week 6 plan - audit About/Contact (no new code), create 404 from scratch...
Danilo M. [Fri, 17 Apr 2026 07:56:07 +0000 (09:56 +0200)] 
docs: revise Week 6 plan - audit About/Contact (no new code), create 404 from scratch, 12 tasks instead of 24

13 days agodocs: add Week 6 implementation plan and update progress status (83% complete, Week...
Danilo M. [Fri, 17 Apr 2026 07:51:18 +0000 (09:51 +0200)] 
docs: add Week 6 implementation plan and update progress status (83% complete, Week 5 done)

13 days agodocs: add Week 6+ TODO list for pages, testing, and future enhancements
Danilo M. [Fri, 17 Apr 2026 07:46:31 +0000 (09:46 +0200)] 
docs: add Week 6+ TODO list for pages, testing, and future enhancements

13 days agodocs: finalize Week 5 completion status in HANDOFF.md (Task 23)
Danilo M. [Fri, 17 Apr 2026 07:36:28 +0000 (09:36 +0200)] 
docs: finalize Week 5 completion status in HANDOFF.md (Task 23)

13 days agodocs: add comprehensive accessibility audit report (WCAG 2.1 AA compliant)
Danilo M. [Fri, 17 Apr 2026 07:34:50 +0000 (09:34 +0200)] 
docs: add comprehensive accessibility audit report (WCAG 2.1 AA compliant)

13 days agodocs: add Week 5 comprehensive testing report (73 tests, 100% pass rate)
Danilo M. [Fri, 17 Apr 2026 07:32:05 +0000 (09:32 +0200)] 
docs: add Week 5 comprehensive testing report (73 tests, 100% pass rate)

13 days agodocs: add Week 5 implementation guide (animations, focus management, accessibility)
Danilo M. [Fri, 17 Apr 2026 07:29:47 +0000 (09:29 +0200)] 
docs: add Week 5 implementation guide (animations, focus management, accessibility)