Static site generator i actually can use.
Project description
lightweight
Python code over configuration static site generator.
Features
- Clean and easily extensible API
- Jinja2 templates
- Markdown rendering
- Sass/SCSS rendering
- RSS/Atom feeds
- Dev server
- Site nesting
- CLI
Installation
Available from PyPI:
pip install lightweight
Quick Example
from lightweight import Site, markdown, paths, jinja, template, rss, atom, sass
def blog_posts(source):
post_template = template('posts/_template.html')
# Use globs to select files.
return (markdown(path, post_template) for path in paths(source))
site = Site(url='https://example.org')
# Render an index page from Jinja2 template.
site.include('index.html', jinja('pages/index.html'))
# Render markdown blog posts.
[site.include(f'posts/{post.path.stem}.html', post) for post in blog_posts('posts/**.md')]
site.include('posts.html', jinja('pages/posts.html'))
# Syndicate RSS and Atom feeds.
site.include('posts.atom.xml', atom(site['posts']))
site.include('posts.rss.xml', rss(site['posts']))
# Render SASS to CSS.
site.include('css/style.css', sass('styles/style.scss'))
# Include a copy of a directory.
site.include('img')
site.include('js')
# Execute all included content.
site.generate()
Dev Server
Lightweight includes a simple static web server with live reload
serving at 0.0.0.0:8080
(can be accessed via localhost:8080
):
python -m lightweight.server <directory>
The live reload can be disabled with --no-live-reload
flag:
python -m lightweight.server <directory> --no-live-reload
Otherwise every served html file will be injected with a javascript that polls /id
.
The script reloads the page when the /id
changes.
The /id
changes every time on any file change at the served directory.
Host and port can be set via:
python -m lightweight.server <directory> --host 0.0.0.0 --port 8080
To stop the server press Ctrl+C
in terminal.
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
Built Distribution
File details
Details for the file lightweight-1.0.0.dev34.tar.gz
.
File metadata
- Download URL: lightweight-1.0.0.dev34.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 806ce7b0d28b946eb42deaa901d8cd841189787a44bd535ca4d119477a12a9e8 |
|
MD5 | 5b5e108cfa5c3e397dbc2f93525ea53e |
|
BLAKE2b-256 | 0cddddfd1b7080368001e1ce2ae7f6f2c86995a048f063be79ec4aad6c23a323 |
File details
Details for the file lightweight-1.0.0.dev34-py3-none-any.whl
.
File metadata
- Download URL: lightweight-1.0.0.dev34-py3-none-any.whl
- Upload date:
- Size: 21.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b65d1185fea18491fd9a5f49dc4714f0d4cd4590e777cc1ddef584b8614eb30 |
|
MD5 | 94dc29e9ebcc3a2533051f48ca5edfe9 |
|
BLAKE2b-256 | b2e863df5dbc68396f4924e5e91bed2b475b86bf46925c49e85725daa353a87f |