Skip to main content

Cook up a fully functional static website from YAML and Markdown.

Project description

Webifier

Docs PyPI Python Package License: MIT

Webifier turns YAML, Markdown, HTML, notebooks, and other static content into a static website. It is meant to remove the publishing overhead from personal projects, research notes, notebooks, reports, and evolving documentation: decide what content goes where, commit it, and let Webifier build a navigable site.

The core package stays small: config loading, page discovery, rendering, extension loading, hooks, template resolution, and asset copying. First-party renderers, templates, themes, search, comments, notebooks, and resume sections ship as the webifier-extensions package, which is installed automatically with webifier.

Install

pip install webifier

Documentation and examples live at webifier.github.io.

Build Locally

webify --index index.yml --output webified

For project pages, pass a base URL:

webify --baseurl my-repo --index index.yml --output webified

For a root domain or <user>.github.io site, use an empty base URL:

webify --baseurl "" --index index.yml --output webified

Configure Extensions

Extensions are enabled explicitly in your site config. The instance name is local to your site, and uses points to the installed extension implementation.

config:
  webifier:
    extensions:
      site:
        uses: webifier.standard
      markdown:
        uses: webifier.markdown
      notebooks:
        uses: webifier.notebook
      search:
        uses: webifier.search
      theme:
        uses: webifier.theme
        default: system
      comments:
        uses: webifier.comments

Extensions can register renderers, content renderers, templates, themes, assets, resolvers, format loaders, hooks, and config defaults. Page-aware hooks can inspect page config and page content before injecting assets into the head, navigation, footer, or other extension areas.

GitHub Action

name: Webify
on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: webifier/build@v1.0.1
        with:
          baseurl: ""
          index: index.yml
          publish_dir: webified

Deploy webified/ with your preferred static hosting or GitHub Pages action.

License

MIT License.

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

webifier-1.0.5.tar.gz (34.6 kB view details)

Uploaded Source

Built Distribution

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

webifier-1.0.5-py3-none-any.whl (35.8 kB view details)

Uploaded Python 3

File details

Details for the file webifier-1.0.5.tar.gz.

File metadata

  • Download URL: webifier-1.0.5.tar.gz
  • Upload date:
  • Size: 34.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for webifier-1.0.5.tar.gz
Algorithm Hash digest
SHA256 ad11ef7a761695b2bd4007801296b646eb79c7df8086b4c1d232e5f973a42cf2
MD5 97cfcc8af9da0ff10ad401e8eb407cef
BLAKE2b-256 6359fa7a4ff45894ae25725f3b1a3e10019be6b937f0e2955233c78ec2b0bbf4

See more details on using hashes here.

File details

Details for the file webifier-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: webifier-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 35.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for webifier-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8e7a14fc0884257190404f2631354353669a21e70cfabe30fc0b5f005b179f98
MD5 6ccc914a2d31df66fe826a4ca62052d8
BLAKE2b-256 2ea1f28bdbda699f5863d25560aedb6b0e7c3d731b95e8802f781d74957863db

See more details on using hashes here.

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