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.2.tar.gz (31.4 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.2-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: webifier-1.0.2.tar.gz
  • Upload date:
  • Size: 31.4 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.2.tar.gz
Algorithm Hash digest
SHA256 ab401d6f30425f36fa00c31956cf20fc99b63ab57b075e426dbb13f292c0e250
MD5 eff02f452f0e75c2a128de3ede85ff6e
BLAKE2b-256 9b649f5226ec1a479236880d7588be3333bd8f1e4f990336b3df165dfb1930a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: webifier-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 34.5 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 29d61cbc39c9cb9f4398c985f3beef34c98b3fd9b115462aa4c94d92d09a513b
MD5 9e66834f9bf8bc7ff125471df320a5cd
BLAKE2b-256 85d045b08e01e9998cd2c0f24853235ea8811365f5f5354295056f79e5dac477

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