Proton II

Posted on Sep 25, 2019 by VI

Now that Proton has it’s first (beta)-release, I’d like to talk ab bit about what’s going to happen in the future. At the moment it fulfils my needs in order to generate my own website but it is far from a usable recommend it to your friends tool.
If you feel dared to use it anyway (because it’s awesome), you might find yourself in a lot of editing and extending the sourcecode of the project. Please don’t hesitate to send me issues, patches or pullrequests via e-mail. People who are interested in a more active development can have an account on https://git.fyber.space. Just ask me for one.
I am not going to host this project on GitHub myself for a number of reasons but mainly because I have a hang for decentralisation. Git is a distributed version-control system and it makes me frown to see the FOSS-world revolving around one centralized Platform.

Roadmap

There are a number of things that have to be done. You can find more detailed information in the project’s issue-tracker.

CLI

The first thing to do is building a stable gnu-style commandline-interface. In addition to that, I still need to modify the build-parameters to generate a single-package .jar file.
Also, this will be useful if you wand to deploy Proton on your server and run it via git-hooks.

File-tracking

At the moment, Proton is generating the whole content of the target-website with every invocation. This might lead to performance-overhead on larger sites.
Therefore, I plan to implement a file-tracker that keeps persistent information about modification-dates of the input-files and let’s the writer-functions skip generating output on unchanged files.

File-watching

A nice-to-have feature would be a file-watcher that looks for changed files on disk and regenerates the target site automatically. Additionally, I’d like to have an embedded webserver spinning up and serving the site as well as a live-reload-server that interacts with a live-reload browser-plugin to enable autorefresh.
Currently I do this by hand using a variety on tools like entr, livereload and the http.server python-module.
It might be nice to have this behaviour built into the application itself.

Features

When all of the above is done, it is time to add html-generation features to the app. This might include:

  • Tags

  • Teaser-bubbles

  • etc