Upsection

From Nasqueron Agora

Upsection allows to deploy our static sites builder.

Usage

There is currently no command to initialize the site.

There is currently no directory to contain the template.

The easiest is so to clone upsection repository and copy template folder:

   $ cp -Rp /path/to/upsection/template/* .
   $ make dev

Development notes

We need to maintain dependencies for the Gulp/handlebars site builder across several repositories. The dependencies are brittle, security issues will require to upgrade to a version of a package invoked by gulp-<feature>, but gulp-<feature> will be abandoned and unmaintained. That's the usual scenario. When it's maintained, the way to load the library in JS has changed.

That hard maintenance problem requires an unified solution, to be able to do it one for all the sites. Upsection is the name of this ongoing effort to maintain, and provide a tool to populate the dependencies and build the site with a simple `make`. Proof of concept lives in upsection.

A second advantage is the current repository creation process is a little bit cumbersome, as highlighted by the previous sections instructions to fetch the build mechanism and the src/ folder in two different sources.

Upsection repository contains our full usable template in ONE place.

As of 2024-10, Upsection dependencies aren't up-to-date, so you'll need if you use it to upgrade Node packages to the one used in join or infra-www.

Expected features:

  • Create a site with a `upsection` command
  • Being able to only store upsection configuration + assets directories in the websites repositories
    • `upsection` can regenerate the build mechanism: package.json, node dependencies
    • Site get freshest dependencies for the build mechanism

Current languages stack:

  • At upsection level
    • Python for upsection itself
    • BSD make (Makefile) to generate needed files
  • At static site build level
    • Node.JS and Gulp still manage the site build
  • For the site assets
    • SCSS
    • modern JS with Babel to transpile when needed
    • HTML from handlebars templates
    • YAML for data

See also