Skip to main content

A tiny Python-authored static site generator for terminal-inspired static web pages.

Project description

PySiteGen

Python-authored static sites.

PySiteGen is a small static site generator for people who would rather compose HTML with Python without any runtime server, client framework, or hidden build graph. PySiteGen gives you primitives. The default visual taste is just a theme layer with terminal-dark aesthetics. It is practical. You write Python functions that return HTML nodes. PySiteGen renders them to static HTML and copies the assets you explicitly ask for. It produces plain files:

public/
  index.html
  assets/
  favicon.png
  robots.txt

Works for docs sites, small product or project pages, personal sites, link hubs, simple SPA-style hash routes, and static pages that benefit from Python data and composition.

Install

From this repo during development:

python -m pip install -e .\pysitegen
pysitegen --version

On Linux/macOS from inside the repo:

python -m pip install -e .
pysitegen --version

If pysitegen is not found in a new terminal, activate the virtual environment where you installed it:

source .venv/bin/activate

Start A Site

pysitegen init my-site
cd my-site
pysitegen serve

A Page

from pysitegen import a, default_dark, h1, p, page, section

def build():
    return page(
        section(
            p("PySiteGen", class_="eyebrow"),
            h1("Hello from Python."),
            p("This is a static page generated from Python primitives.", class_="muted"),
            a("Read more", href="#more", class_="button primary"),
            class_="container stack",
        ),
        title="Hello",
        description="A PySiteGen page.",
        theme=default_dark(),
    )

Build it and serve it:

pysitegen build
pysitegen serve --host 127.0.0.1 --port 8000

This Repo

This repository contains the package and the real PySiteGen website:

src/pysitegen/  package source and bundled framework assets
website/        PySiteGen website source

Build and Serve:

cd website
pysitegen build
pysitegen serve --host 127.0.0.1 --port 8000

Do not edit website/public/ as source.

Current Limits

PySiteGen is small on purpose.

  • The Markdown parser is intentionally limited.
  • There is no template/layout system yet.
  • There is no plugin system.
  • The default theme is useful, not universal.
  • The API is still young.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysitegen-0.1.0.tar.gz (21.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysitegen-0.1.0-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

Details for the file pysitegen-0.1.0.tar.gz.

File metadata

  • Download URL: pysitegen-0.1.0.tar.gz
  • Upload date:
  • Size: 21.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pysitegen-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fcfd742817ca923eec33da2a97ef1ccf97f4c03f75cc8451ae119fd61189fc7e
MD5 103c6cf93a1f672fbf68db15227e3c69
BLAKE2b-256 ce5d1c2a24e6b84ae66be6ae30ee8416c1ac9928007a6fb845980a62e0111708

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysitegen-0.1.0.tar.gz:

Publisher: publish.yml on ujjwalvivek/pysitegen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pysitegen-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pysitegen-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pysitegen-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 89f0498dedb4d88343e8a67f3a7c5bd020461228a698dec989a307447cdb608f
MD5 3e7a8ea7e521af4df2bcd70995e520d9
BLAKE2b-256 6662a26c4ba4f9e2b9b5b0e27a820c99dd48be792a777b520ca6b626d2525486

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysitegen-0.1.0-py3-none-any.whl:

Publisher: publish.yml on ujjwalvivek/pysitegen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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