This is the website for Pentandra Research Solutions.
The source for this project is built using nanoc.
The following external dependencies or system packages need to be installed and in scope before compiling:
- Ruby (with bundler, i.e.
gem install bundler
) - pandoc (>= 2.0) for markdown processing
- ConTeXt for PDF generation of reports
- hunspell (>= 1.3.4) for spell-checking
- git for version tagging and history management
- A JavaScript runtime, such as node (or any runtime that ExecJS supports),
for UglifyJS and bower. (note: currently you need to install
bower
manually, e.g.npm install bower -g
)
- optipng, pngquant, jpegoptim, and gifsicle for optimizing PNG, JPEG, and GIF images, respectively.
- A Java 8 runtime for running the Nu HTML checker.
- OpenResty for running the dynamic parts of the site via
nanoc server
.
As follows:
$ git clone https://github.com/pentandra/lifepreserver.git
$ cd lifepreserver
$ git submodule init
$ git submodule update
$ bower install
$ bundle install --with development test
$ bundle exec nanoc [compile] [--verbose] [--env=development]
# either
$ nanoc static-view # if you are only dealing with statically generated pages
# or
$ nanoc server # if you are dealing with both the static and dynamic aspects of the site
And view the page in your browser at port 3000 for
nanoc static-view
or port 4125 for nanoc server
.
This repository uses GitFlow to manage development and release activity. When
starting a new feature, page, blog post, et cetera, please create a new branch
for it based on the develop
branch to ease review and integration.
- Do your best to adhere to the existing coding conventions and idioms.
- Don’t use hard tabs, and don’t leave trailing whitespace on any line. Before committing, run
git diff --check
to make sure of this.
This project uses Nanoc environments for development
, staging
, and
production
builds. Be sure to set the NANOC_ENV
shell variable or command
line argument to set the current environment before a build, for example:
$ export NANOC_ENV=development # before running Nanoc commands
or
$ nanoc [command] --env=development # with each command
A production
build must happen on a git tag, or the build will abort.
For sake of completeness, a static_only
environment exists that will build
only the static items of the website, to give a build environment that avoids
dependence upon any Lua libraries that may be needed to build the dynamic code
upon which OpenResty runs.
Thanks to the people that helped me come to grips with the power of nanoc, including:
- Dennis Defreyne, of course (https://github.com/ddfreyne/nanoc)
- Lifepillar (https://github.com/lifepillar/nanoc4-template) for some new ideas during the transition to Nanoc 4.
Also, please see the colophon for more raving attributions!