Skip to main content

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

Project description

Webifier

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

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@main
        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.1.tar.gz (31.2 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.1-py3-none-any.whl (34.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: webifier-1.0.1.tar.gz
  • Upload date:
  • Size: 31.2 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.1.tar.gz
Algorithm Hash digest
SHA256 a09ad5ff417d60ea3c4a39a84b6bbcf9239622eb6db006c5ac613e6746bf354a
MD5 4803fc0b8e5f59ebcb053c87a3f16ac8
BLAKE2b-256 f4edf11b2f401bb55fc5d9af0d505420d1c60c34bc226ddec8daabcb53f98a6a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: webifier-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 34.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8369ef836f3b3567dd605a4368523b70dbdeebcfb11183c8ea36ebea7350218e
MD5 5f5965524ec0a163f0d7971305d5ed9a
BLAKE2b-256 e23fc035d89282e1cb18adf5fd905f68fc4a0ef4023e93103e1943e7a57953e5

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