Skip to main content

Static Page Generation with Flask-like simplicity and flair ✨

Project description

What is RenderEngine

The idea of Render Engine is that you have the flexibility of dynamic webpages with the performance of static sites.

Render Engine was built out of frustration with existing tools. Larger frameworks are too vast. Dynamic Services like Flask required overhead of a server where in many cases were not necessary. Extensions to Flask that provided a static component added even more unnecessary complexity and updates have been inconsistent. Other static-site generators like Pelican were built without modern architectures and design practices in mind.

The 3 layer Architecture 

  • Page - A single webpage item built from content, a template, raw data, or a combination of those things.
  • Collection - A group of webpages built from the same template, organized in a single directory
  • Site - The container that holds all Pages and Collections and gives access to global configurations and settings.

Your site will have an Engine that can render your html (and other things), hence the name.

You can expand any of these areas to customize your engine to your liking.

Things you can do in with Render Engine:

  • Create Custom Page Objects (Like Blog or MicroBlog Posts)
  • Create all types of Page Objects, not just 'html' pages
  • Run Multiple Engines for subdomains or multiple template systems or Multiple Sites!
  • Dynamically create content at runtime to include into your static sites

As simple/complex as required

  • Render Engine uses Jinja2 as the defaul engine to bring the power of templates to your page. You can create your own custom engines if you have a specific need.
  • Content can be markdown/html/or RAW DATA to give you the content you need.

Installing Render Engine

Dependencies:

Other Dependencies that install with render-engine

Using pip

pip install render-engine

Get Started Quickly

The Quick Way

render-engine-quickstart

render-engine-quickstart

This will create your essential files and a run.py that you can use to build your output file using python run.py

Render Engine DOESN'T Need the following but this model can quickly get you on your way.

content/ # store content for collections here
run.py # use `python run.py` to build your site.
templates/
  - page.html # default template for Page objects. Modify this file to fit your design
  - all_posts.html # default template for Collection objects. Modify this file to fit your design
static/ # will be copied into your generated output. great for storing css/.js/image files

Sponsors

This and much of the work that I do is made possible by those that sponsor me on github.

Sponsors at the $20/month and higher Level

Thank you to them and all of those that continue to support this project!

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

render_engine-2020.7.10.tar.gz (18.4 kB view details)

Uploaded Source

File details

Details for the file render_engine-2020.7.10.tar.gz.

File metadata

  • Download URL: render_engine-2020.7.10.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for render_engine-2020.7.10.tar.gz
Algorithm Hash digest
SHA256 ae2ab36e41bbb16f96d0734997d2d664bd536db5a61a78bb02ad0552e86d1bec
MD5 cc1a6e9f81917f58c5bc22fa0b17c17b
BLAKE2b-256 6776989494b81aaaec46a5a91007e7ae59c556c11625836c473d5b3d26dd0f6a

See more details on using hashes here.

Supported by

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