This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

A refreshingly simple static site generator, for those who like to work in HTML.

Documentation

The full documentation is at http://complexity.rtfd.org.

Quickstart

Try it out:

$ pip install complexity
$ git clone git@github.com:audreyr/complexity-example.git my_proj
$ cd my_proj
$ complexity project/ www/

Once you’ve done that, open a web browser to http://127.0.0.1:9090 to see the newly generated Complexity static site.

Features

  • Works on Python 2.6, 2.7, and 3.3, and on PyPy.
  • Takes simple HTML templates as input.
  • Data from .json files turns into template context data.
  • Template inheritance, filters, etc. (Brought to you by Jinja2.)
  • Auto-expands .html file URLs into cleaner URLs (e.g. about.html gets expanded to /about/)
  • Can optionally be used as a library instead of from the command line. See Using Complexity as a Library for details.

Best Used With

Complexity is designed to be used with these packages:

  • Simplicity: Converts ReStructuredText into JSON, which Complexity can use as input.
  • A Lot of Effort: Deploys a static website (e.g. the output of Complexity) to Amazon S3.
  • Cookiecutter: Creates projects from project templates.

Sure, they could have all been built into Complexity, but decoupling them seemed like a nice thing to do.

Community

  • Stuck? Don’t know where to begin? File an issue and we’ll help you.
  • We love contributions. Read about how to contribute.

History

0.9.1 (2013-12-02)

  • Depend on Jinja2 >= 2.4, not == 2.7.

0.9.0 (2013-08-28)

  • CONFIG CHANGE: Configuration is now via a complexity.yml file inside the project, instead of a complexity.json file.
  • Support for an unexpanded_templates config option (#23).
  • Support for non-HTML files in templates/ (or whatever you set templates_dir to be).

See http://complexity.readthedocs.org/en/latest/advanced_usage.html#config-using-complexity-yml for more info.

0.8.0 (2013-08-10)

  • USAGE CHANGE: At the command line, Complexity no longer takes an output_dir argument. It now assumes that your output_dir is www/ by default, but you can customize it in complexity.json.
  • Support for configuration via complexity.json: you can specify any or all of the following key/value pairs:
    • output_dir
    • templates_dir
    • assets_dir
    • context_dir

See http://complexity.readthedocs.org/en/latest/advanced_usage.html#config-using-complexity-json for more info.

0.7 (2013-08-05)

A couple of small but important renames. If you rely on either of the following defaults, you will need to rename them in your Complexity project.

  • Directory parameter for .json files to be turned into context data has been renamed from json_dir to context_dir.
  • Default context directory value json/ has been changed to context/.

Sometimes you want your .json files to be turned into context variables, and sometimes you don’t. This rename alleviates confusion when working with non-context .json files.

0.6 (2013-07-26)

  • Support for multi-level template directories. (Upgrade to at least 0.6 if you want to have folders within folders and beyond in templates/.)
  • Skip non-HTML files in templates/ rather than raising NonHTMLFileException.

0.5 (2013-07-25)

  • Improved static site generation API - better parameters are used.
  • Files in the root of assets/ (or the asset directory) now get copied over to the output.
  • Much more documentation.

0.4.2 (2013-07-21)

  • Make reading of JSON files from json/ optional.

0.4.1 (2013-07-19)

  • Fix reading of JSON files from json/.

0.4 (2013-07-19)

  • Project layout is now:

    my_repo/
    ├── project/       <--------- input
    │   ├── assets/
    │   │   ├── css/
    │   │   ├── js/
    │   │   └── img/
    │   ├── json/
    │   │   └── stuff.json
    │   └── templates/
    │       ├── base.html
    │       ├── index.html
    │       └── about.html
    └── www/          <---------- output (generated)
        ├── index.html
        ├── about/
        │   └── index.html
        ├── css/
        ├── js/
        └── img/
    
  • Assets are copied over to www/ during site generation.

  • If the www/ directory was previously created, it prompts the user and then deletes it before site regeneration.

  • Templates starting with base are not generated as individual pages. They are meant to be extended in other templates.

0.3 (2013-07-18)

  • Graceful shutdown/restart of dev server.
  • Required input and output dir arguments.
  • Optional port argument.
  • Improved server start/stop messages.
  • Major internal refactor.

0.2.1 (2013-07-15)

  • Fixes to setup.py.

0.2.0 (2013-07-15)

  • Data from .json files now gets read as template context data.
  • Tested (and passing!) on Python 2.6, 2.7, 3.3, PyPy.

0.1.1 (2013-07-10)

  • First release on PyPI.
Release History

Release History

0.9.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.9.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.8.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
complexity-0.9.1.tar.gz (12.7 kB) Copy SHA256 Checksum SHA256 Source Dec 3, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting