Futuramerlin Web Toolkit

The Futuramerlin Web Toolkit is a static site builder and theme featuring:

Version 2.2.35 would normally have been numbered 2.2.34, but was mistakenly given the number 2.2.35.

Documentation

Command syntax

Before running the Futuramerlin Web Toolkit, cd to the directory that contains the contents of your Web site. Note that those should be the only files present in that directory.

If using Wreathe 7.3 or the ebuild from the Wreathe overlay:

~/.futuramerlin-web-toolkit-build

~/.futuramerlin-web-toolkit-build

Otherwise:

~/.futuramerlin-web-toolkit-build

Installation

For Wreathe 7.3, an ebuild (app-misc/futuramerlin-web-toolkit) is available in the Wreathe overlay (this may also work for similar operating systems such as Ututo XS GNU/Linux).

For other operating systems, use the following installation instructions.

Download

git clone https://github.com/ethus3h/futuramerlin-web-toolkit.git

Setup

  1. Ensure your system has the correct dependencies:
    • Only tested and supported using GNU/Linux operating systems. It may be possible to run it using other UNIX-like operating systems, but that is not currently supported.
    • Requires a connection to the World Wide Web able to access GitHub.
    • Git
    • Perl
    • cpan
    • Node.js
    • html-minifier
    • html5-tidy
    • minifier
    • hypertoc: to install, run: sudo cpan -f -i HTML::GenToc
    • autoprefixer: to install, run: sudo npm install --global postcss-cli autoprefixer
    • Python 2, runnable as python2 (for installing and updating)
    Needed for the optional local CSS installation:
    • sudo privileges on your computer
    • A writeable root partition
  2. If you have a version of the Futuramerlin Web Toolkit prior to version 2 installed, remove it.
  3. Substitute the name of your Web site in place of "webSiteName" in the following command, and run the resulting command (note that output beginning with "mv: cannot stat" can be safely ignored):
    mv ~/.futuramerlin-web-toolkit.cfg ~/.futuramerlin-web-toolkit.bak; echo "webSiteName" > ~/.futuramerlin-web-toolkit.cfg
  4. Note that enabling the local CSS installation option will overwrite the file named m.css in your root directory. In addition, if you have a case-insensitive filesystem, it probably will overwrite any files with names that are m.css when lowercased.
    If you want to enable the local CSS installation option (copies the Web site's theme CSS so the site can be more accurately previewed locally), run the following command:
    echo "enableLocalInstallation" >> ~/.futuramerlin-web-toolkit.cfg; set +H

    Otherwise, run the following command:
    echo "disableLocalInstallation" >> ~/.futuramerlin-web-toolkit.cfg; set +H
  5. Run the following command:
    futuramerlinWebToolkitPreInstallPath=$(pwd); futuramerlinWebToolkitInstallationUUID=$(python2 -c 'import uuid; print str(uuid.uuid4())'); cd ~; mkdir "$futuramerlinWebToolkitInstallationUUID"; cd "$futuramerlinWebToolkitInstallationUUID"; git clone https://github.com/ethus3h/futuramerlin-web-toolkit.git; cp -f ./futuramerlin-web-toolkit/futuramerlin-web-toolkit-build ~/.futuramerlin-web-toolkit-build; chmod +x ~/.futuramerlin-web-toolkit-build; cp -f ./futuramerlin-web-toolkit/futuramerlin-web-toolkit-aliases ~/.futuramerlin-web-toolkit-aliases; chmod +x ~/.futuramerlin-web-toolkit-aliases; echo $(date +%Y-%m-%d-%H-%M-%S-%N)-$(xxd -pu <<< "$(date +%z)") >> ~/.futuramerlin-web-toolkit.cfg; echo "$futuramerlinWebToolkitInstallationUUID" >> ~/.futuramerlin-web-toolkit.cfg; echo "#"'!'"/bin/bash" >> ~/.bash_profile; echo ". ~/.futuramerlin-web-toolkit-aliases" >> ~/.bash_profile; echo "#"'!'"/bin/bash" >> ~/.bashrc; echo ". ~/.bash_profile" >> ~/.bashrc; chmod +x ~/.bash_profile; chmod +x ~/.bashrc; cd ..; rm -r ./"$futuramerlinWebToolkitInstallationUUID"; cd "$futuramerlinWebToolkitPreInstallPath"
  6. Log out and log in again, to update your shell aliases.

Configuration file format

The configuration file is located at ~/.futuramerlin-web-toolkit.cfg. It contains configuration values separated by a line feed (0x0A), as follows:

Note that there is currently no facility for storing configuration values containing line feeds.

Development

To learn about contributing to this project, visit the development page.