hakyll-init
Initialize a new Hakyll project
TLDR
Generate a new Hakyll sample blog
Display help
SYNOPSIS
hakyll-init [DIRECTORY]
PARAMETERS
DIRECTORY
An optional path specifying the directory where the new Hakyll project will be initialized. If omitted, the command defaults to creating the project files within the current working directory.
DESCRIPTION
hakyll-init is a command-line utility provided by the Hakyll static site generator, a powerful and flexible tool built in Haskell. Its primary function is to quickly scaffold and initialize a new Hakyll project from scratch. When executed, it creates a standard, well-organized directory structure and essential boilerplate files. This includes the main site.hs configuration file, designated directories for content like posts and pages, and dedicated folders for templates, CSS, images, and other static assets. This command significantly streamlines the initial setup process, allowing developers to immediately start focusing on content creation and site customization rather than laborious manual project configuration. It establishes a foundational, yet fully functional, static site ready for development and deployment, following Hakyll's conventions.
CAVEATS
To use hakyll-init, you must have the Haskell toolchain installed, typically either Stack or Cabal. Additionally, the Hakyll library itself must be accessible within your Haskell environment. The initialized project provides a basic template that often requires significant customization to match specific site requirements and design aesthetics.
<B>PROJECT STRUCTURE</B>
Upon execution, hakyll-init typically creates a project with the following core directories and files:
- site.hs: The main Haskell configuration file for the site.
- posts/: Directory for blog posts or articles.
- pages/: Directory for static pages.
- templates/: Contains HTML templates for pages, posts, and general layouts.
- css/: For stylesheets.
- images/: For images and other static assets.
<B>BUILDING AND DEVELOPMENT</B>
After initializing a project with hakyll-init, you typically use Stack or Cabal to build and run the site. Common commands include:
stack build
orcabal build
: To compile the Hakyll executable.stack exec site rebuild
orcabal run site rebuild
: To generate the static site files (usually in a_site/
directory).stack exec site watch
orcabal run site watch
: To run a local development server with live reloading, which automatically rebuilds the site when files change.
HISTORY
Hakyll was created by Jasper Van der Jeugt as a static site generator written in Haskell. The hakyll-init command has been an integral part of the Hakyll distribution since its early stages, evolving alongside the main project to provide up-to-date project templates and reflect best practices in static site generation with Hakyll. It simplifies the initial setup, reflecting a common need for boilerplate generation in development tools.