Skip to content
Simple static site generator built from Markdown and Jinja
Python HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
concorde
.gitignore
LICENSE
MANIFEST.in
README.rst
setup.cfg
setup.py

README.rst

concorde

Simple static site generator built from Markdown and Jinja

Three commands to produce three things:

concorde pages  renders Markdown files through a template, producing new pages
concorde index  takes a list of Markdown files that you presumably just rendered
                with pages, orders them by date, and renders them through a
                template to produce an index file
concorde rss    similar to concorde index, but produces an RSS feed instead

Run concorde <command> help for more details.

One distinguishing feature of Concorde is that the templates and the rendered pages do not necessarily have to be HTML. In fact, Concorde was created because of the need to quickly tack on a static blog generator to a site written in PHP.

Concorde is designed to be easily paired with a Makefile to generate a site. For example, given a site laid out like so:

my-example-site
    site
        a-post.md
        another-post.md
    templates
        index.html
        blog-post.html

A Makefile to build the HTML pages, index page, and RSS feed would look like

posts := $(patsubst %.md,%.html,$(wildcard site/*.md))

.PHONY : all clean

all: site/index.html site/rss.xml $(posts)

clean:
    -rm site/index.html
    -rm site/rss.xml
    -rm $(posts)

site/index.html: $(posts) templates/index.html
    concorde index --template=templates/index.html --output=$@ --output-extension=.html site/

site/blog/rss.xml : $(posts)
    concorde rss --output=$@ --title="My Example Blog" --url="http://example.com/rss.xml" site/

$(posts): site/*.md templates/blog-post.html
    concorde pages --template=templates/blog-post.html site/
You can’t perform that action at this time.