StaticWire by christophengelmayer

Convert pages to static HTML files via CLI or the admin interface.

StaticWire

ProcessWire Module that converts pages to static HTML files via CLI or the admin interface. Useful in CI/CD scripts or to use ProcessWire as a static site generator.

Installation


Install via the ProcessWire modules directory. See Instructions.

Configuration


The configuration option ("Static file path") defines the directory in which the static HTML files and folders are generated. The path is relative to the root directory of your ProcessWire installation. (default: /static)

Usage


via CLI (Command Line Interface)

Navigate to the root folder of your website:

cd /var/www/mysite

Run the script

php site/modules/StaticWire/cli.php

via admin interface

Go to Setup > Static Site Generator and click the "Generate" button.

Users need the staticwire-generate permission in order to run StaticWire.

How does it work?


The module creates a folder structure mirroring the page tree of your website. In each folder a index.html file with the corresponding page content is generated.

To generate the static HTML structure the $page->render() function is called on each page.

Asset handling

Assets (like CSS or JavaScript) and uploaded files are not copied!

To handle assets and uploads you have multiple options:

  • copy the folders (site/assets/files, site/templates/style, site/templates/scripts, etc.) to the output directory (static/)
  • copy them in your CI/CD script
  • create symlinks if the static site and your ProcessWire installation are running on the same server

Roadmap


  • [ ] Supprt paginated templates
  • [ ] Download static site as *.zip archive

Alternatives


If you need a more advanced solution please have a look at Ryan Cramers wonderful ProCache module.

Install and use modules at your own risk. Always have a site and database backup before installing new modules.

Twitter updates

  • ProcessWire 3.0.187: This week we have some very useful new additions to both the core Repeater Fieldtype and the ProFields Repeater Matrix Fieldtype. This post covers all the details along with a couple of brief demonstration videos— More
    22 October 2021
  • ProcessWire 3.0.185 (dev) core updates, plus new Session Allow module— More
    17 September 2021
  • Three new ProcessWire Textformatter modules: Find/Replace, Markdown in Markup, and Emoji— More
    3 September 2021

Latest news

  • ProcessWire Weekly #389
    The 389th issue of ProcessWire Weekly we'll check out the latest core updates, introduce the Session Viewer module, and more. Read on!
    Weekly.pw / 23 October 2021
  • New Repeater and Repeater Matrix features
    This week we have some very useful new additions to both the core Repeater Fieldtype and the ProFields Repeater Matrix Fieldtype. This post covers all the details along with a couple of brief demonstration videos. 
    Blog / 22 October 2021
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like superbude.de. ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH