📷 Better Portable Graphics module for After Dark https://after-dark.habd.as/module/fractal-forest
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Josh Habdas 54d68d7b01
chore(release): 2.0.0
1 year ago
bin add module layout 2 years ago
layouts/partials/modules/fractal-forest dry up layout 2 years ago
static stop nesting js static files 2 years ago
.gitignore chore: add gitignore file 2 years ago
CHANGELOG.md chore(release): 2.0.0 1 year ago
COPYING docs(license): wtfpl -> 0bsd 1 year ago
Dockerfile reuse existing busybox folder 2 years ago
README.md docs(readme): add contributing guidelines 1 year ago
package-lock.json chore(release): 2.0.0 1 year ago
package.json chore(release): 2.0.0 1 year ago


Fractal Forest

Better Portable Graphics module for After Dark. Fractal Forest adds support for Fabrice Bellard's BPG Image format.

Latest NPM version NPM downloads per month Minimum After Dark version 0BSD licensed


None required.


  1. Copy the contents of this repository into a directory called themes/fractal-forest under the root of your After Dark site.

  2. Add fractal-forest as a theme component to your After Dark site config.toml, e.g.

    theme = [
  3. Add and specify settings for the module in your After Dark site config, e.g.

      enabled = true # Optional, set false to disable module
      decoders = [
        "bpgdec8", # 8-bit only javascript decoder without animation
        "bpgdec", # > 8-bit javascript decoder without animation
        "bpgdec8a" # 8-bit javascript decoder with animation
      crossorigin = "anonymous" # Optional, sets CORS attribute
  4. Build and deploy your After Dark site.

For additional information please see BPG Image format.


For development, install Docker on your machine:

Then build the codecs with docker build.

To adjust the version of bpg used simply modify LIBBPG_VERSION in the Dockerfile for desired version and rebuild. If you're on a multicore system adjust CPU_CORES to decrease compilation time.

Docker build produces an intermediate container image with libbpg source and result of compilation. It also copyies the codecs into a busybox image.

To access the full libbpg source run:

$ docker run -it 30c982469f98

Where 30c982469f98 is the image id of the intermediate step.

To access just the codecs run:

$ docker run -it 712e9ce47e86

Where 712e9ce47e86 is the image id of the final build step.

To update the javascript decoders in static/js/bpg run:

$ docker run --rm --entrypoint tar 712e9ce47e86 cC /var/www/ . | tar xvC static/js

Where 712e9ce47e86 is the image id of the final build step.

Reference the libbpg mirror for additional compilation settings, README and Makefile. See the Docker Documentation for help with Docker.


Please squash commits and use Convention Commit messages. Run npm run commit after installing NPM dev dependencies for help creating conventional commit messages.


Copyright (C) 2018, 2019 by Josh Habdas jhabdas@protonmail.com

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

The text of the above license is included in the file COPYING in the source.