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('blog-post.html')
# Use globs to select files.
return (markdown(path, post_template) for path in paths(source))
site = Site()
# 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.render(url='https://example.org')
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
lightweight-1.0.0.dev28.tar.gz
(14.6 kB
view hashes)
Built Distribution
Close
Hashes for lightweight-1.0.0.dev28-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e061700a1994a17f16c57fb6fe3fe9dec7f918d00e4381726b37cfd3aa310e4 |
|
MD5 | 69bf2868ced8a18340c17b42afd28bb8 |
|
BLAKE2b-256 | 4b7508a44eed6069ddaa676827a92406fb7b9dae3f15db0a65009a0f45bc9e9f |