Releases: mcaserta/krik
Krik v0.1.27
Fixed
- ⚡ Performance: Eliminated redundant file scanning during site generation
- Removed duplicate scan that caused "File scan completed" message to appear
twice - Site generation now ~50% faster during the scanning phase
- Fixed unnecessary double I/O operations and markdown parsing
- Cleaned up unused imports in CLI commands module
- Removed duplicate scan that caused "File scan completed" message to appear
Krik v0.1.26
Fixed
- 🧪 Test Reliability: Fixed PDF unit tests to work without pandoc/typst
installed- Added
PdfGenerator::new_for_testing()method for mock instances - Tests now use mock generators instead of requiring external tools
- Improved CI/CD reliability for environments without PDF tools
- Added
Changed
- 🛠️ PDF Generator Architecture: Made PDF tools optional in PdfGenerator
- Changed from required tools to optional with graceful fallback
- Enhanced error handling with warning messages instead of hard failures
- Better separation of path utilities from PDF generation functionality
v0.1.25
Changed
-
♻️ Test Organization: Moved unit tests from source files to dedicated
tests/ directory- Migrated tests from
src/generator/robots.rstotests/robots_test.rs - Migrated tests from
src/generator/pdf.rstotests/pdf_test.rs - Made necessary functions public for test access
- Improved test isolation and organization following Rust best practices
- Migrated tests from
-
🌍 I18n Manager Enhancement: Expanded translation support to all 62
supported languages- Enhanced
translate_stringfunction to support complete SUPPORTED_LANGUAGES
set - Added translations for "document_information", "document_downloaded_from",
and "generated_at" - Comprehensive language coverage including RTL languages (Arabic, Hebrew,
Urdu) - Support for complex scripts (Chinese, Japanese, Korean, Thai, Hindi, etc.)
- Improved PDF generation with proper multilingual appendix text
- Updated documentation to reflect expanded language support (62 languages)
- Enhanced
🤖 Generated with Claude Code
Krik v0.1.24
Fixed
-
🔧 Code Quality: Fixed all Clippy lint warnings for improved code quality
- Boxed large error variants to reduce memory footprint and improve performance
- Optimized loop patterns using idiomatic
while letconstructs - Fixed function parameter types (
&String→&str) for better API design - Eliminated redundant pattern matching and unnecessary allocations
- Improved error handling patterns with collapsed match expressions
- Enhanced code readability and maintainability across the entire codebase
-
♻️ Code Refactoring: Additional structural improvements for better API design
- Made language utility methods static where appropriate (
I18nManagermethods) - Removed unused functions to reduce code surface area
- Improved method signatures and accessibility patterns
- Enhanced module organization and reduced coupling
- Made language utility methods static where appropriate (
-
🚀 Release Infrastructure: Automated cross-platform binary releases
- GitHub Actions workflow for building 5 platform binaries (Linux x64/ARM64, macOS x64/ARM64, Windows x64)
- Automated GitHub releases with changelog integration and semantic versioning
- SHA256 checksums and binary verification for security
- Deployment workflow optimization using pre-built binaries (~10 minutes → ~30 seconds)
- Intelligent fallback to source compilation if binaries unavailable
latesttag management for easy access to newest releases
Added
-
🎨 New Manzana Theme: macOS Tahoe-inspired theme with glassy interface
- Beautiful glass morphism effects with backdrop blur and saturation
- Smooth CSS animations and transitions with Apple-like easing curves
- Custom Inter and JetBrains Mono fonts for modern typography
- Responsive design with mobile-first approach
- Touch-friendly interactions optimized for iPad and mobile devices
-
📱 Enhanced Mobile Navigation
- Hamburger menu for page navigation on mobile devices (≤1200px)
- TOC toggle button for table of contents on mobile (📖 icon)
- Both menus feature smooth slide-down animations
- Touch event handling with proper preventDefault for iOS compatibility
- Smart menu behavior: opening one closes the other automatically
-
🃏 Glassy Post Cards on Index Page
- Redesigned index page with beautiful glass morphism post cards
- Responsive auto-fitting grid layout (minimum 350px cards)
- Interactive hover animations with lift and scale effects
- Gradient top borders and animated tags
- Calendar emoji with styled date badges
- Mobile-optimized single column layout
Improved
- 🎯 Touch Interface Optimization
- Fixed link clicking issues in mobile menus
- Enhanced touch event handling for better iPad compatibility
- Improved CSS positioning with fixed viewport positioning
- Better visual feedback for touch interactions
Changed
- 🏗️ Code Architecture Refactoring: Major refactoring to improve maintainability and modularity
- Broke down complex 238-line
generate_incremental_for_pathfunction into smaller, focused functions - Refactored markdown processing pipeline into pure functions with single responsibilities
- Unified
markdown_to_htmlandmarkdown_to_html_with_tocinto single function using AST parser - Split template rendering into modular components for better testability
- Eliminated internal state mutations in favor of pure function patterns
- All functions now pass state as parameters rather than maintaining internal state
- Improved error handling with standardized error creation functions
- Broke down complex 238-line
v0.1.23: Link Rot Scanning and HTML Reports
🚀 Major Features
🔗 Link Rot Scanning
- Parallel HTTP link validation with up to 10 concurrent requests
- Smart browser header simulation to avoid bot detection (fixes 403 errors)
- 8x performance improvement - reduced scan time from ~17 seconds to ~2 seconds
- Comprehensive logging with real-time progress tracking
- Detailed error reporting showing file paths and line numbers
📄 HTML Report Generation
- Professional HTML reports with responsive design
- ISO 8601 timestamp filenames (
krik-report-YYYY-MM-DDTHH-MM-SSZ.html) - Beautiful gradient headers and color-coded status indicators
- Summary dashboard with files scanned, errors, warnings, and broken links
- Detailed sections for errors, warnings, and broken links with syntax highlighting
🏗️ Modular Architecture
- Refactored lint module for better maintainability
- Split 866-line
src/lint.rsinto focused modules:lint/core.rs(345 lines) - Core linting functionalitylint/link_checker.rs(217 lines) - HTTP link validationlint/report_generator.rs(347 lines) - HTML report generation
- Maintained full backward compatibility with existing APIs
🔧 Usage
# Link rot scanning
kk lint --check-links
# HTML report generation
kk lint --create-report
# Combined functionality
kk lint --check-links --create-report --strict🛠️ Technical Details
- Parallel Processing: Up to 10 concurrent HTTP requests for fast link checking
- Browser Simulation: Realistic headers to bypass bot detection
- Error Handling: Distinguishes between HTTP errors, network failures, and malformed URLs
- Performance: Dramatic speed improvements in link validation
- Report Quality: Professional-grade HTML reports suitable for CI/CD integration
🤖 Generated with Claude Code
Release v0.1.22
Added
- 📖 CONTRIBUTING.md: Added comprehensive contribution guidelines
- Detailed coding standards and Rust style guidelines
- Complete testing strategy with unit, integration, and smoke tests
- Step-by-step release process documentation
- Development environment setup instructions
- Pull request and code review guidelines
- 🎨 Onyx Theme: Enhanced mobile responsiveness and fixed content width issues
- Improved mobile navigation and responsive design
- Fixed content width constraints for better readability
- Enhanced theme stability and cross-device compatibility
Full changelog: https://github.com/mcaserta/krik/blob/main/CHANGELOG.md
v0.1.21
Full Changelog: v0.1.20...v0.1.21
v0.1.20
Full Changelog: v0.1.19...v0.1.20
v0.1.19
Full Changelog: v0.1.17...v0.1.19
v0.1.17: Enhanced Theme Configuration and Resolution
🎨 Release v0.1.17 - Enhanced Theme Configuration and Resolution
This release fixes a major theme loading issue and adds proper support for configuring themes in site.toml.
🆕 Added
- Theme Configuration in site.toml: You can now configure themes directly in your site configuration
title = "My Site" base_url = "https://example.com" theme = "themes/custom" # ← New theme field
- Extended Site Configuration: The
SiteConfigstruct now includes an optionalthemefield
🐛 Fixed
- Theme Resolution Priority System: Fixed broken theme loading with proper priority order:
- Command line
--themeoption (highest priority) - overrides everything themefield in site.toml - site-specific configuration- Default theme (
themes/default) - fallback when nothing specified
- Command line
- Previously: Themes specified in
site.tomlwere completely ignored! 🚫 - Now: Full theme resolution with proper override hierarchy ✅
📝 Improved Logging
- Clear theme selection messages: Know exactly which theme source is being used
- Verbose mode logging: Use
-v/--verboseto see theme resolution decisions:kk --verbose # Shows: "Using theme from site.toml: themes/custom" kk --theme themes/other --verbose # Shows: "Using command line theme: themes/other"
🔧 Enhanced Error Handling
- Better theme validation: Context-specific error messages for theme loading failures
- Unified resolution logic: Both
generateandservercommands now use the same theme resolution system
🚀 Quick Start
# Install the latest version
cargo install krik
# Configure theme in site.toml
echo 'theme = "themes/custom"' >> content/site.toml
# Generate with theme from config
kk
# Override with command line (highest priority)
kk --theme themes/other📚 Documentation
For comprehensive theme configuration examples and usage instructions, see our documentation in the repository.
Full Changelog: v0.1.16...v0.1.17