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()
# 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.dev25.tar.gz
(14.2 kB
view hashes)
Built Distribution
Close
Hashes for lightweight-1.0.0.dev25-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e6cba596d74c0a263b01255fbe89a679b62460236f311083b5b2a6c9b2e5f46 |
|
MD5 | 787c089a99ac6c689faade8f07dd93dd |
|
BLAKE2b-256 | 174dcd676f96145f9e57c0336b65d3ddd25f7d1fdb194938f973415482c85785 |