Krik is a fast, modern static site generator written in Rust that transforms Markdown files into beautiful, responsive websites with built-in development tools and content management features.
Why Krik?
Static site generators have become essential tools for creating fast, secure websites. Krik stands out by combining:
- Performance: Built with Rust for maximum speed and efficiency
- Developer Experience: Embedded content, live reload server, and quick content creation
- Zero Dependencies: Complete sites with embedded themes - no git repo required
- Simplicity: Intuitive file-based structure with minimal configuration
- Features: Comprehensive feature set including i18n, themes, feeds, and development tools
- Modern Web Standards: HTML5, responsive design, and accessibility
Key Features
Development Tools
- Site initialization:
kk init
creates complete sites with embedded content and themes - Content creation:
kk post
andkk page
commands for instant content generation - Development server: Live reload with file watching and mobile-safe mode
- One-command setup: No external dependencies or git repositories needed
Core Functionality
- Full GitHub Flavored Markdown support with tables, footnotes, and code blocks
- YAML front matter for rich metadata and layout control
- Draft support for work-in-progress content (
draft: true
) - Automatic asset copying and directory structure preservation
- Site configuration via
site.toml
Internationalization
- Filename-based language detection (
file.lang.md
) - Automatic language selector dropdown
- Support for 10+ languages with proper native names
- Seamless navigation between translations
- Multi-language content organization
Theme System
- Automatic light/dark mode detection via OS preferences
- Manual theme toggle with localStorage persistence
- Responsive, mobile-first design with hamburger menu
- CSS custom properties for easy customization
- Theme-aware syntax highlighting
Advanced Navigation & UX
- Auto-generated table of contents with
toc: true
- Bidirectional footnote navigation with smooth scrolling
- Smart scroll-to-top button with visibility controls
- Depth-aware relative linking across directory structures
- Mobile-optimized touch interfaces
Content Features
- RFC 4287 compliant Atom feed generation with xml:base support
- Tag support for post categorization
- Directory-based content organization (posts vs pages)
- Custom template selection via front matter
- Timestamp handling with file modification time fallback
Installation & Usage
Quick Start (Recommended)
# Install from crates.io
cargo install krik
# Create a new site
kk init my-blog
cd my-blog
# Start development server
kk server
# Create content
kk post "My First Post"
kk page "About Me"
Project Links
- Source Code: GitHub Repository
- Package: crates.io
- Issues & Feature Requests: GitHub Issues
- Releases: GitHub Releases
Technical Details
Krik is built with modern Rust practices and leverages several excellent crates:
- pulldown-cmark: Fast CommonMark parser with GitHub extensions
- tera: Powerful Jinja2-inspired templating engine
- serde: Serialization framework for YAML and JSON handling
- chrono: Date and time handling with timezone support
- walkdir: Recursive directory iteration for file processing
- include_dir: Compile-time file embedding for zero-dependency deployment
- clap: Modern CLI argument parsing with subcommands
- warp: Fast web server for development mode with live reload
Project Status
Krik v0.1.5+ is feature-complete and includes all the tools needed for modern static site development:
β
Complete Development Workflow: Init β Create β Develop β Deploy
β
Embedded Content & Themes: No external dependencies required
β
Content Creation Tools: Quick post and page generation
β
Live Development Server: File watching with mobile-safe options
β
Full Theme System: Light/dark modes with responsive design
β
Complete Internationalization: Multi-language support with navigation
β
Advanced Navigation: TOC, footnotes, scroll-to-top, mobile menu
β
Standards Compliance: Valid HTML5, RFC 4287 feeds, accessibility
β
Comprehensive Documentation: Getting started guides and references
The project follows semantic versioning and maintains backward compatibility for stable features. Active development continues with focus on performance, usability, and developer experience.
Contributing
Krik is open source and welcomes contributions! Whether youβre reporting bugs, suggesting features, or submitting code:
- Check the GitHub Issues for existing discussions
- Fork the repository and create a feature branch
- Test your changes thoroughly
- Submit a pull request with clear description
License
Krik is released under the MIT License. See the LICENSE file for details.
Ready to try Krik? Check out the Getting Started Guide for a complete tutorial, or explore the Documentation for detailed feature references!