Initial boilerplate commit

This commit is contained in:
burden 2018-06-18 18:42:39 -07:00
commit 4e69413b4e
21 changed files with 561 additions and 0 deletions

4
.bowerrc Normal file
View File

@ -0,0 +1,4 @@
{
"analytics": false,
"directory": "src/_assets/vendor"
}

74
.gitignore vendored Normal file
View File

@ -0,0 +1,74 @@
# Created by https://www.gitignore.io
### OSX ###
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
### Linux ###
*~
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
### Elixir ###
/_build
/deps
erl_crash.dump
*.ez
### Node ###
node_modules
### Jekyll ###
www/
.jekyll-cache
src/_assets/vendor

1
.ruby-version Normal file
View File

@ -0,0 +1 @@
2.4.2

25
.travis.yml Normal file
View File

@ -0,0 +1,25 @@
language: ruby
rvm:
- 2.4.2
env:
global:
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
sudo: false # route your build to the container-based infrastructure for a faster build
addons:
apt:
packages:
- libcurl4-openssl-dev # https://github.com/typhoeus/typhoeus/issues/568
before_script:
- npm install -g bower
- bower install
script:
- bundle exec jekyll build
- bundle exec htmlproofer ./www
deploy:
provider: pages # https://docs.travis-ci.com/user/deployment/pages/
skip-cleanup: true
github-token: $GITHUB_API # Set in the settings page of your repository, as a secure variable
keep-history: true
local-dir: ./www
on:
branch: master

1
CONTRIBUTING.md Normal file
View File

@ -0,0 +1 @@
PRs are welcome :+1:

16
Gemfile Normal file
View File

@ -0,0 +1,16 @@
source "https://rubygems.org"
ruby RUBY_VERSION
gem "jekyll", "~> 3.8.1"
gem "rake"
gem "html-proofer"
group :jekyll_plugins do
gem "jekyll-assets"
gem "kramdown"
gem "uglifier", "~> 3.2"
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.0" if Gem.win_platform?

127
Gemfile.lock Normal file
View File

@ -0,0 +1,127 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (5.2.0)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
colorator (1.1.0)
colorize (0.8.1)
concurrent-ruby (1.0.5)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
ethon (0.11.0)
ffi (>= 1.3.0)
eventmachine (1.2.7)
execjs (2.7.0)
extras (0.3.0)
forwardable-extended (~> 2.5)
fastimage (2.1.3)
ffi (1.9.25)
forwardable-extended (2.6.0)
html-proofer (3.9.1)
activesupport (>= 4.2, < 6.0)
addressable (~> 2.3)
colorize (~> 0.8)
mercenary (~> 0.3.2)
nokogiri (~> 1.8.1)
parallel (~> 1.3)
typhoeus (~> 1.3)
yell (~> 2.0)
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jekyll (3.8.3)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 0.7)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0)
kramdown (~> 1.14)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
jekyll-assets (3.0.11)
activesupport (~> 5.0)
execjs (~> 2.7)
extras (~> 0.2)
fastimage (~> 2.0, >= 1.8)
jekyll (>= 3.5, < 4.0)
jekyll-sanity (~> 1.2)
liquid-tag-parser (~> 1.0)
nokogiri (~> 1.8)
pathutil (~> 0.16)
sprockets (>= 3.3, < 4.1.beta)
jekyll-sanity (1.2.0)
jekyll (~> 3.1)
jekyll-sass-converter (1.5.2)
sass (~> 3.4)
jekyll-watch (2.0.0)
listen (~> 3.0)
kramdown (1.17.0)
liquid (4.0.0)
liquid-tag-parser (1.9.0)
extras (~> 0.3)
liquid (>= 3.0, < 5.0)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
mercenary (0.3.6)
mini_portile2 (2.3.0)
minitest (5.11.3)
nokogiri (1.8.3)
mini_portile2 (~> 2.3.0)
parallel (1.12.1)
pathutil (0.16.1)
forwardable-extended (~> 2.6)
public_suffix (3.0.2)
rack (2.0.5)
rake (12.3.1)
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
rouge (3.1.1)
ruby_dep (1.5.0)
safe_yaml (1.0.4)
sass (3.5.6)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sprockets (3.7.1)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
thread_safe (0.3.6)
typhoeus (1.3.0)
ethon (>= 0.9.0)
tzinfo (1.2.5)
thread_safe (~> 0.1)
uglifier (3.2.0)
execjs (>= 0.3.0, < 3)
yell (2.0.7)
PLATFORMS
ruby
DEPENDENCIES
html-proofer
jekyll (~> 3.8.1)
jekyll-assets
kramdown
rake
tzinfo-data
uglifier (~> 3.2)
RUBY VERSION
ruby 2.4.2p198
BUNDLED WITH
1.16.2

29
README.md Normal file
View File

@ -0,0 +1,29 @@
## Features
- bulma 0.7.1
- jquery 3.2.1
- Google Analytics
- jekyll-assets
- compress.html
- html-proofer
## Dependencies
1. Install bundler `gem install bundler`
2. Install bower `npm install -g bower`
## Getting Started
```
$ bundle install
$ bower install
$ jekyll serve
```
## Deploy to Github Pages from Travis
1. Point Travis to repository
2. Configure Travis
3. Generate a [Personal Access Token](https://github.com/settings/tokens) from Github
- The only scope needed is repo:public_repo
4. Set `GITHUB_API=<token>` on Travis
- Make sure `Display value in build log` toggle is set to `Off`!

74
_config.yml Normal file
View File

@ -0,0 +1,74 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: jekyll-bulma-boilerplate
email: burden@burden.cc
description: >- # this means to ignore newlines until "baseurl:"
A nifty boilerplate for Jekyll made magnificent with the help of Bulma.
baseurl: "" # the subpath of your site, e.g. /blog
url: "" # the base hostname & protocol for your site, e.g. http://example.com
# Social settings
github: burden/jekyll-bulma-boilerplate
maintainers:
- burden
# Build settings
plugins:
- jekyll-assets
- kramdown
- uglifier
source: src
destination: www
markdown: kramdown
compress_html:
ignore:
envs: ["development"]
clippings: []
comments: all
endings: []
startings: []
blanklines: false
profile: false
assets:
sources:
- _assets/vendor
digest: true
compression: true
gzip: false
defaults:
js: { integrity: false } # true on JEKYLL_ENV=production
css: { integrity: false } # true on JEKYLL_ENV=production
img: { integrity: false } # true on JEKYLL_ENV=production
compress:
css: false
js: uglifier
include:
- CNAME
# Exclude from processing.
# The following items will not be processed, by default. Create a custom list
# to override the default setting.
# exclude:
# - Gemfile
# - Gemfile.lock
# - node_modules
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/

22
bower.json Normal file
View File

@ -0,0 +1,22 @@
{
"name": "jekyll-bulma-boilerplate",
"authors": [
"burden <burden@burden.cc>"
],
"description": "",
"main": "",
"license": "",
"homepage": "jekyll-bulma-boilerplate.utensils.io",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"src/_assets/vendor",
"test",
"tests"
],
"dependencies": {
"jquery": "^3.2.1",
"bulma": "^0.7.1"
}
}

1
src/CNAME Normal file
View File

@ -0,0 +1 @@
jekyll-bulma-boilerplate.burden.cc

View File

@ -0,0 +1,10 @@
@mixin font-smoothing($value: on) {
@if $value == on {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
@else {
-webkit-font-smoothing: subpixel-antialiased;
-moz-osx-font-smoothing: auto;
}
}

View File

@ -0,0 +1,14 @@
@import 'bulma/bulma';
@import 'libs/mixins';
html {
body {
@include font-smoothing(on);
}
.burger {
color: $grey-dark;
}
.navbar-item{
font-size: 1em;
}
}

View File

@ -0,0 +1,25 @@
document.addEventListener('DOMContentLoaded', function () {
// Get all "navbar-burger" elements
var $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
// Check if there are any navbar burgers
if ($navbarBurgers.length > 0) {
// Add a click event on each of them
$navbarBurgers.forEach(function ($el) {
$el.addEventListener('click', function () {
// Get the target from the "data-target" attribute
var target = $el.dataset.target;
var $target = document.getElementById(target);
// Toggle the class on both the "navbar-burger" and the "navbar-menu"
$el.classList.toggle('is-active');
$target.classList.toggle('is-active');
});
});
}
});

View File

@ -0,0 +1,11 @@
<footer class="footer has-text-weight-light">
<div class="container">
<div class="content has-text-centered">
<p class="is-size-4">
<span class="has-text-weight-normal">{{ site.title }}</span> is maintained by {% for user in site.maintainers %}{% if site.maintainers.last == site.maintainers.first %}<a class="has-text-weight-normal" href="https://github.com/{{ user }}">@{{ user }}</a>{% else %}{% if site.maintainers.last == user %}and {% endif %}<a class="has-text-weight-normal" href="https://github.com/{{ user }}">@{{ user }}</a>{% unless site.maintainers.last == user %}, {% else %}.{% endunless %}{% endif %}{% endfor %}
</p>
<p class="is-size-6"><span class="has-text-weight-bold">Support</span> {{ site.title }}</p>
<p><span class="has-text-weight-bold is-size-7">Visit our sponsor</span><br><a target="_blank" href="https://utensils.io" class="button is-inverted is-primary has-text-weight-bold is-medium">utensils.io</a></p>
</div>
</div>
</footer>

29
src/_includes/_nav.html Normal file
View File

@ -0,0 +1,29 @@
<nav id="navbar" class="navbar has-shadow is-spaced">
<div class="container">
<div class="navbar-brand">
<a class="navbar-item" href="/"><span class="icon"><i class="fas fa-fw fa-adjust"></i></span>&nbsp;<h1 class="title is-5">{{ site.title }}</h1></a>
<a class="navbar-item is-hidden-desktop" href="https://github.com/{{ site.github }}" target="_blank"><span class="icon has-text-grey-darker"><i class="fab fa-lg fa-github"></i></span></a>
<div id="navbarBurger" class="navbar-burger burger" data-target="navMain">
<span></span>
<span></span>
<span></span>
</div>
</div> <!-- /navbarbrand -->
<div class="navbar-menu" id="navMain">
<div class="navbar-start">
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link is-active">Categories</a>
<div id="moreDropdown" class="navbar-dropdown">
<a class="navbar-item" href="/"><span class="has-text-weight-bold">Page 1</span></a>
<a class="navbar-item" href="/"><span class="has-text-weight-bold">Page 2</span></a>
</div>
</div>
<a class="navbar-item" href="/">About</a>
</div>
<div class="navbar-end">
<a class="navbar-item is-hidden-mobile" href="https://github.com/{{ site.github }}" target="_blank"><span class="icon has-text-grey-darker"><i class="fab fa-lg fa-github"></i></span></a>
</div>
</div>
</div>
</nav>

View File

@ -0,0 +1,15 @@
<section class="hero is-primary">
<div class="hero-body">
<div class="container has-text-centered">
<div class="content">
<h1 class="title is-4 thin">{{ site.description }}</h1>
<p><a target="_blank" class="button is-white is-rounded is-outlined" href="https://github.com/{{ site.github }}/blob/master/CONTRIBUTING.md">
<span class="icon">
<i class="fab fa-github"></i>
</span>
<span class="has-text-weight-bold is-uppercase">Contribute</span>
</a></p>
</div>
</div>
</div>
</section>

View File

@ -0,0 +1,9 @@
---
# Jekyll layout that compresses HTML
# v3.0.4
# http://jch.penibelst.de/
# © 20142015 Anatol Broder
# MIT License
---
{% capture _LINE_FEED %}
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}

30
src/_layouts/default.html Normal file
View File

@ -0,0 +1,30 @@
---
layout: compress
---
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ site.title }}</title>
{% asset style.css %}
<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/all.js"></script>
{% if site.analytics-id %}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.analytics-id }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ site.analytics-id }}');
</script>
{% endif %}
</head>
<body>
{% include _nav.html %}
{{ content }}
{% asset main.js %}
{% include _footer.html %}
</body>
</html>

11
src/_layouts/home.html Normal file
View File

@ -0,0 +1,11 @@
---
layout: default
---
{% include hero-intro.html %}
<section class="section">
<div class="container">
<div class="content">
{{ content }}
</div> <!-- /content -->
</div> <!-- /container -->
</section>

33
src/index.md Normal file
View File

@ -0,0 +1,33 @@
---
layout: home
---
## Features
- bulma 0.7.1
- jquery 3.2.1
- Google Analytics
- jekyll-assets
- compress.html
- html-proofer
## Dependencies
1. Install bundler `gem install bundler`
2. Install bower `npm install -g bower`
## Getting Started
```
$ bundle install
$ bower install
$ jekyll serve
```
## Deploy to Github Pages from Travis
1. Point Travis to repository
2. Configure Travis
3. Generate a [Personal Access Token](https://github.com/settings/tokens) from Github
- The only scope needed is repo:public_repo
4. Set `GITHUB_API=<token>` on Travis
- Make sure `Display value in build log` toggle is set to `Off`!