bpkg is a lightweight bash package manager.
This repository contains the source code of it's homepage.
To assist in working with this project, A
bpkg.json file has been included with commonly used project commands. The provided commands can be executed using the following format:
$ bpkg run [COMMAND]
In the remainder of this document, if there is a accompanying
bpkg command it will be listed as follows:
This environment is not necessary to use if you'd rather run everything directly on your host system. This environment is provided however, to facilitate all the required components for building and development of
docker-composer.yml file exists in the root directory of the project to specify the Docker services
jekyll– Perform Jekyll and Rake processes
NOTE: A custom
Dockerfileexists to generate the image for this service, in the
lessc– Implements LESS preprocessing
sitediff– Host SiteDiff for performing site comparison
There are associated
bpkg commands to interact with the Docker environments, accompanying Docker commands will be listed like the other
This website was made with the Jekyll engine, so it depends on a few Ruby Gems. To install them, run the following command:
$ gem install jekyll
It might take a while to finish, but once it does you're ready to go.
Edit Site Pages
To make changes to the page or run it locally, clone this GitHub repository and make sure you have installed the dependencies above.
Then, it's a matter of editing pages and running
rake tasks. Here's a rundown
of possible commands (thanks to this great quickstart on Jekyll).
$ rake preview
Builds the entire site to a local folder
_site and launches a webserver to
To see the full site, point your browser to
If you make any changes on any files, it will regenerate the website automatically.
$ rake post title="Hello, World!"
post title="Hello, World!"
docker-post title="Hello, World!"
Creates a new post. It will create a file
the date is the current, by default.
No further changes are required, the post will get automatically inserted on the site.
$ rake page name="about"
Creates a new page. It will create the file
$ rake page name="about.html"
Alternative way to create a new page, on this case it will be
Update Style Sheets
This project uses LESS (Leaner Style Sheets) files to generate the CSS for this site. When modifying the site style sheets under the
/assets directory, update the LESS files (ie:
*.less). To update the CSS file after making changes to any of the LESS files, run the following command (from the root of the project):
$ lessc ./assets/themes/the-program/css/style.less ./assets/themes/the-program/css/style.css
View Site Changes
When working on the site, sometimes it's helpful to see changes between the production copy and the output of local changes. A report of changes can be generated with the SiteDiff tool, to simplify this process a Docker service has been included with a few
bpkg commands. This is a multi-step process (each step has an associated 'bpkg' command), but a single command can be used to run all the steps. Before performing these steps the local version needs to be in preview mode.
SiteDiff - Crawl Sites
The SiteDiff utility will crawl the production and the preview versions of the site prior to performing the comparison:
SiteDiff - Diff Crawled Sites
After crawling the versions of the sites, SiteDiff will compare the preview against the production version and generate a change report:
SiteDiff - Serve Report
The generated report can be served for viewing by SiteDiff:
To see the report, point your browser to
The preceding command performs the following steps (which can be run individually):
- When producing content (writing pages/posts) keep in mind this useful guide. It tells how to include images, display post excerpts and highlight code snippets.
- If you plan on further customizing the blog, it's highly recommended to read this 10-minute introduction to Jekyll.
- If you change settings on the file
_config.yml, automatic regeneration won't work - you'll have to run the command