Static site generator i actually can use.
Project description
lightweight
Static site generator i actually can use.
Features
- Clean and easily extensible API
- Jinja2 templates
- Markdown rendering
- Sass/SCSS rendering
- RSS/Atom feeds
- Dev server
- 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(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.render()
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.dev22.tar.gz
(13.9 kB
view hashes)
Built Distribution
Close
Hashes for lightweight-1.0.0.dev22-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da8c9c37eedf1f914af1941f0c1879ca64f90cf7222561f0c74bb9e4d73cada6 |
|
MD5 | debb30f9abaa12db74900c6b26f82978 |
|
BLAKE2b-256 | 77f433b840a603af3b42ceae37f9cc67cc860d59f7e5e880d41c8f8fcdf377be |