| Age | Commit message (Collapse) | Author | Files | Lines |
|
- 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 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|
|
|
|
|
|
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 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
- Homepage (IsHome): lampD.png
- Articles with image: their custom image
- Articles without image: default_thumbnail_dark.png
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
default_thumbnail_dark.png
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|
|
|
|
Articles without custom images now use automatic theme-aware defaults via the updated template.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
- 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 <noreply@anthropic.com>
|
|
|
|
|
|
- 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 <noreply@anthropic.com>
|
|
- 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 <noreply@anthropic.com>
|
|
- 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 <noreply@anthropic.com>
|
|
review needed
|
|
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 <noreply@anthropic.com>
|
|
|
|
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 <noreply@anthropic.com>
|
|
|
|
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|
|
|
|
|
|
5+4 layout
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
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 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|
|
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 <noreply@anthropic.com>
|
|
documentation organized
|
|
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 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
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 <noreply@anthropic.com>
|