Skip to main content

Static site generator i actually can use.

Project description

lightweight

PyPI Build Status Test Coverage Supported Python Documentation

Static site generator i actually can use.

Documentation

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.dev23.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

lightweight-1.0.0.dev23-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file lightweight-1.0.0.dev23.tar.gz.

File metadata

  • Download URL: lightweight-1.0.0.dev23.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.5

File hashes

Hashes for lightweight-1.0.0.dev23.tar.gz
Algorithm Hash digest
SHA256 f9dd8e8eb2866273dadfeeb7f99f309f6223eea2b5bc4a5572a64bd6b3666041
MD5 a076b403b71afe28e1277455ae4c519f
BLAKE2b-256 c8c35ba6da9de8b321ff39682acb2377cbdcb7e0cd76bba9553e822fc33bc4fc

See more details on using hashes here.

File details

Details for the file lightweight-1.0.0.dev23-py3-none-any.whl.

File metadata

  • Download URL: lightweight-1.0.0.dev23-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.5

File hashes

Hashes for lightweight-1.0.0.dev23-py3-none-any.whl
Algorithm Hash digest
SHA256 7fa38d446f2a8fb84968aa1a1b4adb503c784d7be560c4f921c7aa24db77b243
MD5 f64d7026066e5766ca56ce69d54ae486
BLAKE2b-256 fb387b258ac2c612ec5937ff6a9c28782a323b443277222398a27a1a34313ce3

See more details on using hashes here.

Supported by

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