Installation

# Add this to your shard.yml
dependencies:
  nicolino:
    github: ralsina/nicolino
    version: ~> 0.19.0

Then run:

shards install

shard.yml

Crystal
>= 1.19.0
License
MIT
Author
Roberto Alsina <roberto.alsina@gmail.com>
Target
  • nicolino from src/main.cr

Dependencies

Runtime Dependencies

  • RSS*github: ralsina/RSS.cr, branch: master
  • toml~> 0.8.0github: manastech/crystal-toml
  • vips*github: naqvis/crystal-vips
  • oplog*github: ralsina/oplog
  • crinja*github: straight-shoota/crinja, branch: master
  • cronic*github: nanobowers/cronic
  • lexbor*github: kostya/lexbor
  • crimage*github: naqvis/crimage
  • sixteen*github: ralsina/sixteen
  • croupier*github: ralsina/croupier
  • polydocopt*github: ralsina/polydocopt, branch: main
  • shortcodes*github: ralsina/shortcodes
  • tartrazine*github: ralsina/tartrazine
  • cr-discount*github: ralsina/cr-discount, branch: main
  • live_reload*github: bcardiff/live_reload.cr
  • progress_bar*github: mgomes/progress_bar, branch: master
  • baked_file_system*github: ralsina/baked_file_system

Development Dependencies

  • ameba*github: crystal-ameba/amebadev

README

# Nicolino

A **good** static site generator.

## Features

- **Markdown-based content** - Write in markdown, get HTML
- **Posts and pages** - Blog posts with RSS feeds and static pages
- **Taxonomies** - Tags, categories, and custom classification systems
- **Image galleries** - Automatic thumbnails with lightbox
- **Books** - mdbook/gitbook-style documentation with hierarchical chapters, sidebar TOC, and navigation
- **Search** - Site search functionality
- **Sitemap** - Automatic XML sitemap generation
- **Fast builds** - Parallel, incremental builds via Croupier task system

## WARNING

This project is still in development and may change suddenly in places like
the configuration file format, but it is ready to start being used.

For more information, visit <https://nicolino.ralsina.me>

## Building for Release (Static Binaries)

The project uses `libvips` for fast image processing, but libvips cannot be statically linked. To create static binaries, we use the `-Dnovips` flag which falls back to `crimage` (a pure-Crystal image library).

**Important trade-offs:**
- **Non-release builds with crimage are very slow** - image processing will take noticeably longer
- **Release builds with crimage are somewhat faster** - but still slower than libvips
- **Static builds require `-Dnovips`** - otherwise linking will fail due to missing libvips static libraries

For development use, build without `-Dnovips` for fast image processing with libvips. For release/static builds, use `-Dnovips` and accept the performance trade-off.