A Python-based static site generator designed for lightweight sites
Python CSS HTML
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/hotchocolate
tests
.coveragerc
.gitignore
.travis.yml
HISTORY.rst
LICENSE
MANIFEST.in
README.rst
hotchocolate.jpg
setup.py
tox.ini

README.rst

hotchocolate

Hot Chocolate is a static site generator that uses Markdown files as input, and is designed for building very lightweight sites.

https://github.com/alexwlchan/hot-chocolate/raw/master/hotchocolate.jpg

Disclaimer

You should consider this as alpha-quality software at best. Although I run several sites with it, it's still user-unfriendly, undocumented and rough around the edges. If you want a static site generator, look at something like Jekyll or Pelican.

I'd like to document it properly and make it user-friendly, but for now it's more like a melting pot for my ideas about static site generators.

Installation

Install with pip:

$ pip install hotchocolate

Hot Chocolate requires Python 3.5 or later.

Commands

  1. Create a site:

    cocoa init
    
  2. Build articles:

    cocoa build
    
  3. Run a preview server (requires Docker):

    cocoa serve
    

Site structure

Each Markdown file starts with YAML-like front matter, followed by content:

title:   The cacao bean
slug:    /cacao-beans/

The *cacao bean* is the seed of the cacao tree, and is used to make
cocoa solids and cocoa butter.  This is the basis of chocolate, among
other foods.

You can read more about cacao [on Wikipedia][wiki].

[wiki]: https://en.wikipedia.org/wiki/Cocoa_bean

For posts, the slug will be prepended with a /YYYY/MM slug when built. For pages, the slug is relative to the root of the web server.

The following directory structure is used (and generated by cocoa init):

(source folder)/
   pages/
      (you can organise this folder however you like)
      about.md
      contact.md
      ...
   posts/
      (likewise, you can organise this however you like)
      (Hot Chocolate will find any Markdown files in the tree)
      an-interesting-story.md
      another-interesting-story.md
      the-final-part-of-the-story.md
      ...
   static/
      (this directory structure is copied directly into the build root)
      aztec-sculpture.jpg
      cacao-beans.png
      personal/
         contact-photo.tiff
      ...
   style/
      (a custom.scss file in this directory will override the base styles)
      custom.scss
   templates/
      (templates in this directory replace the base templates)
      base.html
      ...