My blog.
git clone https://github.com/ashfurrow/blog.git
cd blog
bundle install
rakeThen navigate to http://0.0.0.0:4567.
Contributions, such as typo corrections or bug reports, are very welcome! Feel free to open an issue or make a pull request to the master branch. All blog posts are written in Markdown in the source/blog/ directory, which gets deployed automatically by Travis CI when a pull request is merged. See Server Setup below.
This work by Ash Furrow is licensed under a Creative Commons Attribution 4.0 International License.
Code I've written is licensed under MIT. Other components such as Bootstrap or the original blog theme have their own licenses.
Thanks to the following people and projects:
- Orta Therox
- Katarina Batina
- Tom Creighton
- Middleman
- Clean Blog Theme
- middleman-gh-pages
- middleman-syntax
- middleman-inliner
- middleman-search
- loadCSS
- Font Awesome
- This colour
- This colour scheme
- Tutorial on static site search
- s3cmd
- vertical timeline jquery thingy
- @CloudyConway
- @CrookedCosmos
- IcoMoon
- CloudFlare
All banner (full-width) images on the site are my own unless they link to an external source. I release my photos under the same license as this blog; the licenses of others' work vary.
I'd like to thank the following contributors.
| Photo | Photographer |
|---|---|
| Main banner on Portfio. | Andrey Tochilin |
| "Software" banner on Portfolio. | Nick Simmons |
| Blogging image on Portfolio | Pete O'Shea |
| Recent blog post header backgrounds | Cloudy Conway (license) and Crooked Cosmos (CC0) |
The site is served from S3, but through CloudFlare's CDN. The CDN caches everything on edges. These edges respect the caching header set on individual files. CloudFlare also sets a browser cache expiration of 30 minutes for all content (if a longer one is not specified, see below).
After deploying to the gh-pages branch, Cloudflare's cached content is invalidated.
Search is done using lunrjs through the middleman-search plugin. In summary:
- Activation and configuration.
- Inclusion in
all.jssprockets file. - jQuery to connect the search box to lunrjs.
- Set up for search box and results.
Or check out this blog post.
