Danilo M. [Wed, 15 Apr 2026 15:46:10 +0000 (17:46 +0200)]
Fix contact form shortcode: rename from contact-form.html to contact.html
Problem: Hugo v0.160 doesn't find shortcode as 'contact_form' when filename is contact-form.html
Solution: Rename to contact.html so shortcode is {{< contact >}}
- Rename shortcodes/contact-form.html → contact.html
- Update contact pages to use {{< contact >}} shortcode
- Remove unused dict initialization line from contact shortcode
- Contact form now works on both English and Italian contact pages
Danilo M. [Wed, 15 Apr 2026 15:43:32 +0000 (17:43 +0200)]
Extract contact form JavaScript to separate file and remove shortcode from contact pages
- Move contact form Alpine.js logic to assets/js/contact-form.js
- Simplify contact-form.html shortcode by removing inline script
- Load contact-form.js in baseof.html after Alpine.js
- Temporarily remove {{< contact_form >}} shortcode from contact pages
(shortcode parsing issue to investigate later)
- Contact pages now display with placeholder text
Danilo M. [Wed, 15 Apr 2026 15:39:02 +0000 (17:39 +0200)]
Remove unnecessary type field from static pages
The 'type' field is unused for static pages. Hugo automatically sets
the type based on directory structure. The 'type' custom parameter is
only used for articles (Life, Photo, Link, Quote, Tech).
Danilo M. [Wed, 15 Apr 2026 15:33:26 +0000 (17:33 +0200)]
Fix language switcher to preserve current page path
- Update language switcher to translate current page path instead of redirecting to root
- When switching languages, preserve the page you're on (e.g., /articles/ → /it/articles/)
- Works for both desktop header and mobile hamburger menu
- Uses Hugo's string functions to manipulate URL paths
Danilo M. [Wed, 15 Apr 2026 15:31:52 +0000 (17:31 +0200)]
Add language toggle to desktop header
- Add language switcher (IT/EN) visible on desktop only
- Language buttons show in header next to theme toggle
- Current language highlighted with accent background
- Mobile still uses hamburger menu for language toggle
- Responsive design: hidden on mobile (md:hidden), visible on desktop
Danilo M. [Wed, 15 Apr 2026 15:30:01 +0000 (17:30 +0200)]
Remove Alpine.js dependency from menu toggle, use vanilla JavaScript
- Replace Alpine.js directives (@click, x-ref) with vanilla JS
- Update hamburger-menu.html to use id selectors instead of x-ref
- Rewrite menu.js to work without Alpine.js
- Menu now opens/closes on click with proper event handling
- Language toggle now accessible in hamburger menu
Danilo M. [Wed, 15 Apr 2026 15:25:14 +0000 (17:25 +0200)]
Fix Hugo v0.160 compatibility: remove os.Getenv and fix template syntax
- Remove os.Getenv("THEME") call that violates security policy
- Use CSS variables and data attributes for theme-aware badge colors
- Update theme-toggle.js to update badge colors on theme switch
- Fix .LastMod → .Lastmod (correct API)
- Fix template syntax for date comparison in article-header.html
Danilo M. [Wed, 15 Apr 2026 14:38:12 +0000 (16:38 +0200)]
Fix shortcode location: move from shortcodes/ to layouts/shortcodes/
Hugo v0.156.0+ requires shortcodes to be in layouts/shortcodes/ directory.
Moved all shortcodes (gravatar, image, gallery, contact-form) to correct location.
Danilo M. [Wed, 15 Apr 2026 14:18:41 +0000 (16:18 +0200)]
Set up Tailwind CSS build pipeline and bilingual homepage content
- Install and configure Tailwind CSS with tailwind.config.js
- Create npm scripts for building Tailwind (build/watch)
- Add .gitignore to exclude node_modules and build artifacts
- Create bilingual homepage content (content/it/_index.md, content/en/_index.md)
- Update baseof.html to use compiled main.min.css
- Fix .ByDate deprecation in list.html template (use sort function)
- Fix main.css pre element to support rgba with opacity
- Homepage now displays with full dark/light theme styling