Skip to main content

Small & fast python library to build static websites

Project description

haumea

Small & fast python library to build more sustainable websites... Hybrid & agnostic, haumea is a static site generator (SSG) optimized for external JSON (REST API, GraphQL etc.) data driven contents.

Work in progress...

Installation

pip install haumea

CLI

haumea-quickstart
haumea build
haumea serve

Documentation

Directory Structure (base)

/content/
   index.html
/layouts/
   _base.html

Directory Structure (sample)

/content/
    index.html
    page.html
    /blog/              
        /post-1.html   
	/post-2.html   
	/post-3.html   
    /products/        
		/_product.html 
		/_product.graphql
/layouts/
    /partials/
	/header.html
	/footer.html
    _base.html
    page.html

Templating tags

{{ _content }}

{% include "partials/header.html" %}

{% menu main %}

{% for menu in _menus.main %}
    <li><a href="{{ menu.page.permalink }}">{{ menu.page._params.title }} - {{ menu.page._json_.fields.regular_price|{:.2f} }}</a></li>
{% endfor %}

{{ title }}
{{ fields.short_title }}
{{ fields.regular_price|{:.2f} }}

{{ image media_1 jpg 600x q60 }}

Content configuration

Static page

page.html

{
    "title":"Welcome home",
	"nav_title":"Home",
    "description":"A nice description...",
    "menus":["main", "footer"]
}
Single page from JSON

page.html

{
	"json-source" : "https://api.buttercms.com/v2/pages/*/sample-page/",
	"json-request-type" : "get",
	"json-params" : { "locale" : "fr" , "auth_token" : "XXXXXXX" },
	"json-root-node" : "data", 

	"title" : "{{ _json.fields.title }} - {{ _json.fields.product_qty }}",
	"menus" : [ "main" ],
	"slug" : "test"
}
Page bundle from JSON with GraphQL

_page.html

{
	"json-source" : "https://graphql.datocms.com/",
	"json-request-type" : "graphql",
	"json-headers" : {"Authorization":"token xxxxxxx"},
	"json-root-node" : "data.allProduits", 

	"title": "_title",
	"meta-desc" : "{{ _json.meta_description }}",
	"meta-title" : "{{ _json.meta_title }}",
	"slug" : "{{ _json.slug }}",

	"menus" : [ "products", "footer" ]
}

_page.graphql

query {
	launchesPast(limit: 80) { 
		mission_name 
		details
		launch_date_local 
		rocket { 
			rocket_name 
		} 
		ships { 
			name 
			image 
		}
	}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

haumea-0.4.5.tar.gz (8.7 kB view hashes)

Uploaded Source

Built Distribution

haumea-0.4.5-py3-none-any.whl (10.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page