Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
122978e
Clean Jekyll site?
groundh0g Oct 1, 2017
f04cab1
Clean Jekyll site? Minus Minima theme.
groundh0g Oct 1, 2017
346f309
Clean Jekyll site? Copied Minima files locally.
groundh0g Oct 1, 2017
f10b968
Moved from gh-pages flow to docs to support web apps. Added linters.
groundh0g Mar 18, 2018
60b6196
updates to circleci config for PR
groundh0g Mar 18, 2018
60d1b28
Updates to fix build.
groundh0g Mar 18, 2018
36157ec
Latest tweaks. Not done, but tests are passing again, so I'm committing.
groundh0g May 20, 2018
2c20f36
Not sure how I missed this, but htmlproofer wasn't being run on lint …
groundh0g May 20, 2018
eeda316
Housekeeping, mostly.
groundh0g May 20, 2018
caeee82
Moved scripts and styles into 3rd-party, jekyllfaces, and custom subf…
groundh0g May 20, 2018
a9e7429
adds features description page, script to account for fixed header wh…
groundh0g Jul 18, 2018
7eae86a
add roadmap
groundh0g Jan 25, 2020
4841736
initial commit of branch clean-start
groundh0g Nov 2, 2023
ab833a1
updates npm modules
groundh0g Nov 2, 2023
b4a6779
initial clean start commit
groundh0g Nov 13, 2023
87de283
initial commit, enabling https
groundh0g Nov 17, 2023
bcc2579
updates path to blog archive
groundh0g Nov 17, 2023
d22b91b
snapshot before adding next feature(s)
groundh0g Nov 18, 2023
108ab4c
blog archive render logic cleanup
groundh0g Nov 18, 2023
774ec5b
updated fontawesome to 6.4.2; cleans up contributors; polishes blob/a…
groundh0g Nov 19, 2023
0f750ac
removes .DS_Store files
groundh0g Nov 19, 2023
ee970ea
updates .gitignore
groundh0g Nov 19, 2023
5798298
fixes config and implementation for tinting of navbar, body, and footer
groundh0g Nov 20, 2023
2d814a3
adds content for the homepage
groundh0g Nov 20, 2023
fd8b44f
updates landing page, link 404 page, countdown.widget and image.widget
groundh0g Nov 21, 2023
7f01ec4
cleans up 404 pages
groundh0g Nov 22, 2023
bf1fdc5
implements book rendering and summaries
groundh0g Nov 24, 2023
ab0f4a3
adds preliminary support for tags
groundh0g Nov 25, 2023
901bd9a
wraps up posts tags
groundh0g Nov 25, 2023
09234f3
makes tag link styles conficurable
groundh0g Nov 25, 2023
c35b405
footer tweaks, config cleanup ad refactoring
groundh0g Nov 30, 2023
885cac5
cleans up config; adds blog signature
groundh0g Dec 1, 2023
f8169b5
adds 404 content; adds mobile content; edits books and footer pages
groundh0g Dec 3, 2023
c95df25
tweaks formatting/styling; tweaks blog posts
groundh0g Dec 6, 2023
f3fdb59
Delete CNAME
groundh0g May 19, 2024
8f72fb4
mostly edits to support search; still needs some cleanup
groundh0g Dec 10, 2023
ca92de6
tweaks to trim monogame book
groundh0g Dec 10, 2023
6ae57f7
updates
groundh0g Jun 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
51 changes: 51 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
version: 2
jobs:
build:
docker:
- image: circleci/ruby:2.4.1-node
environment:
- NOKOGIRI_USE_SYSTEM_LIBRARIES: true
branches:
only:
- clean-start
steps:
- checkout

# --- Install Tools ---

- run:
name: install node goodies
command: |
# sudo npm install
npm install

- run:
name: install ruby/gem goodies
command: |
# sudo npm run init-gems
npm run init-gems

# --- Run Build Steps ---

# css reset? sass/less? [https://github.com/necolas/normalize.css]
# prettifier? uglifier?

# --- Run Linters ---

- run:
name: run all linters
command: |
npm run test

# TODO - Add to CI (?): accessibility checker [https://github.com/pa11y/pa11y-ci] or ...
# TODO - Add to CI (?): accessibility checker [https://github.com/evcohen/eslint-plugin-jsx-a11y]

# TODO -

# --- Run Unit Tests ---
# --- Run Coverage Tests ---
# --- Run Other Tests ---

# TODO - ADD to BUILD (?): css reset (as npm run script) [https://github.com/necolas/normalize.css]
# TODO - ADD to BUILD (?): prettifier (as npm run script) [ ??? ]

6 changes: 6 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules/**
docs/_site/**/*.js
Gruntfile.js
.eslintrc.js
**/*.min.js
docs/assets/script/3rd-party/**/*.js
34 changes: 34 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
module.exports = {

// "extends": "airbnb-base",
// "extends": "google",
// "extends": "grunt",
// "extends": "idiomatic",
// "extends": "jquery",
// "extends": "mdcs",
// "extends": "node-style-guide",
// "extends": "wikimedia",
// "extends": "wordpress",
// "extends": "eslint:all",
// "extends": "eslint:recommended",
// "extends": [ "eslint:recommended", "plugin:react/recommended" ],

"extends": [ "eslint:recommended", "plugin:react/recommended" ],

"rules": {
// enable additional rules
"indent": ["error", 4],
"linebreak-style": ["error", "unix"],
"quotes": ["error", "double"],
"semi": ["error", "always"],

// override default options for rules from base configurations
"comma-dangle": ["error", "always"],
"no-cond-assign": ["error", "always"],

// disable rules from base configurations
"no-console": "off",

"ext": [".js", ".jsx"],
},
};
65 changes: 64 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ _site
.sass-cache
.jekyll-metadata

.DS_Store

### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
Expand Down Expand Up @@ -102,6 +103,68 @@ build-iPhoneSimulator/
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
.rvmrc

Gemfile.lock

### NodeJS

Gemfile.lock
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Typescript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env

# next.js build output
.next
16 changes: 16 additions & 0 deletions .markdownlintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
// https://github.com/DavidAnson/markdownlint/blob/master/doc/Rules.md

"comment": "All rules",
"default": true,

"MD002": false, // allow top line to be non-H1
"MD009": false, // allow trailing spaces
"MD013": false, // allow lines > 80 characters
"MD026": false, // allow trailing punctuation in headers
"MD033": false, // allow inline HTML
"MD040": false, // allow un-hinted code blocks
"MD041": false, // allow top line to be non-H1

"IgnoreThis": "a bogus last line"
}
4 changes: 4 additions & 0 deletions .markdownlintrc.all
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"comment": "All rules",
"default": true
}
22 changes: 22 additions & 0 deletions .markdownlintrc.cirosantilli
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"comment": "Rules for the style guide at http://www.cirosantilli.com/markdown-style-guide/",

"default": true,
"MD003": {
"style": "atx"
},
"MD004": {
"style": "dash"
},
"MD007": {
"indent": 4
},
"MD030": {
"ul_multi": 3,
"ol_multi": 2
},
"MD033": false,
"MD035": {
"style": "---"
}
}
13 changes: 13 additions & 0 deletions .markdownlintrc.relaxed
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"comment": "Relaxed rules",

"default": true,
"whitespace": false,
"line_length": false,
"ul-start-left": false,
"ul-indent": false,
"no-inline-html": false,
"no-bare-urls": false,
"fenced-code-language": false,
"first-line-h1": false
}
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2017 Joseph Hall (groundh0g)
Copyright (c) 2017 - 2023 by Joseph B. Hall (groundh0g)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Jekyll is a great blogging platform, but to make it really shine, you need to ma

Check us out at [JekyllFaces.com](http://jekyllfaces.com/)!

> **NOTE:** This project isn't quite ready for primetime. It's getting there, though. ETA is first part of July, 2017.
> **NOTE:** This project isn't quite ready for primetime. It's getting there, though. ETA is first part of July, 2018.

[![Build Status](https://travis-ci.org/groundh0g/jekyllfaces.svg?branch=gh-pages)](https://travis-ci.org/groundh0g/jekyllfaces)

Expand All @@ -22,4 +22,4 @@ Check us out at [JekyllFaces.com](http://jekyllfaces.com/)!

## 12 Built-In 404 Pages

![Project Page Example](images/404-sticky.png)
![Project Page Example](images/404-sticky.png)
56 changes: 56 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Jekyll Faces Roadmap

[Jekyll Faces](http://jekyllfaces.com/) extends the functionality of [Jekyll](https://jekyllrb.com/) to support a wide variety of use cases. This document attempts to exhaustively list the goals and features of the Jekyll Faces project.

## Prime Directive

All features of this project shall be implemented such that the sites produced by it may be hosted on [GitHub Pages](https://pages.github.com/). In short: No [custom Jekyll plugins](https://jekyllrb.com/docs/plugins/) will be used. Only the [standard plugins](https://pages.github.com/versions/) supported by GitHub Pages are allowed.

Jekyll Faces will implement new features using vanilla [Liquid script](https://shopify.github.io/liquid/basics/introduction/) and [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript).

## Feature List

The following is a list of planned features. More may follow, but this is the minimum set of features for version 1.0.

### Core Features

Initially inspired by [JekyllBootstrap](http://jekyllbootstrap.com/), these features attempt to fill the most common gaps left by a standard installation of Jekyll.

* **Blogging**<br/>Blogging is what Jekyll does best. Permalinks, categories, pages, posts, ... Everything you would expect of a blogging platform. Jekyll Faces inherits all this functionality, then tries not to get in the way. If you know Jekyll, you'll feel at home with Jekyll Faces.
* **Posts and Pages**<br/>Several pre-built pages are provided by Jekyll Faces, including Archive, Pages, Tags, Categories, RSS, and others.
* **Bootstrap**<br/>Basic support for [Twitter's Bootstrap](https://getbootstrap.com/) is provided by the project that inspired this one (JekyllBootstrap). Jekyll Faces carries this idea further via support for code-free theme swapping, with built-in support for the free themes at [Bootswatch](https://bootswatch.com/).
* **Analytics**<br/>Capture vaulable metrics to see how visitors are finding, using, and leaving your site. Support for Google Analytics, Gaug.es, and others is provided in a modular way that makes it easy to add new analytics providers in the future.
* **Comments**<br/>Jekyll produces static sites, but that doesn't mean your readers can't interact with you. Several major commenting providers are supported by Jekyll Faces. Among them are Facebook, Disqus, and Intense Debate. The commenting system is implemented in such a way that new providers can easily be supported.
* **GitHub Pages**<br/>Whatever you build with Jekyll Faces can be hosted freely on GitHub Pages. Support for GitHub Pages is a central, driving goal of this project. (See the **Prime Directive**, at the top of this document.)

### Additional Features

The following features are intended to curb the most common frustrations that I've felt when building sites using Jekyll.

* **Search**<br/>Search functionality is one of the quirkiest things to get right in Jekyll. This project provides search out of the box that's completely configurable.
* **Font Icons**<br/>Bootstrap's icon support has been all over the place. [Font Awesome](https://fontawesome.com/), [GLYPHICONS](https://www.glyphicons.com/), and now the included [Bootstrap Icons](https://icons.getbootstrap.com/). You don't need to choose or lock yourself into the default offering, though. Jekyll Faces provides configurable, built-in support for all the icons you find at [GlyphSearch.com](https://glyphsearch.com/).
* **Custom 404 Pages**<br/>The standard 404 page, shown when the specified page cannot be found, is bland and plain. Of course, you can replace the default text with whatever you choose. Jekyll Faces provides a dozen dorky and cute pages that you can specify for your site via the configuration file (no programming needed).
* **Bootswatch**<br/>Jekyll Faces provides support for any of more than 20 free [Bootswatch](https://bootswatch.com/) themes via configuration. No custom code required.
* **Landing Page**<br/>Many times, it's easier to snag the domain name than it is to have something that's ready to present to the world. In that case, a landing page makes a lot of sense.
* **Coming Soon Page**<br/>A landing page is better than nothing, but when you want to generate a little buzz surrounding your project, a coming soon page, complete with email registration and a countdown timer, kicks things up a notch.

### Showcase Features

Now, we get to my whole purpose for creating Jekyll Faces. I have a wide variety of interests, and I like to share my meager progress with others online. Jekyll is a great way to do that, but it takes a fair amout of work to extend the blog-centric model to more specialized site designs.

* **Books**<br/>Jekyll Faces intends to support showcasing books-in-progress that are written using [LeanPub's](https://leanpub.com/) simple [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) format. I've written two books using LeanPub and I highly recommend the service. For those who want to have and hold print books, LeanPub can export to formats that are friendly to a service such as [Lulu](https://www.lulu.com/), which provides printing and drop shipping.
* **Documentation**<br/>For my more complex software projects, it helps to have a user manual or developer documentation. Jekyll Faces will provide a simple template for you to publish one or more documentation sections on your site.
* **Web Apps**<br/>I love JavaScript, and I love building [single-page applications (SPAs)](https://en.wikipedia.org/wiki/Single-page_application) using the same. Combine that with my passion for game development, and you get my site, [GameDevUtils.com](http://gamedevutils.com/). Jekyll Faces will support side-by-side integration of SPAs with its own generated content.
* **Contributors**<br/>Programming can be a lonely art. But, if you're fortunate enough to collaborate with a peer or two, Jekyll Faces will make it easier to tell who's talking when your visitors browse your content. It will also provide a central place to learn more about each of your contributors via their bio pages.
* **Widgets**<br/>Whenever possible (or demanded by Jekyll Faces users), this project will expose the functionality that has been created as stand-alone Liquid and JavaScript widgets. That way, if you think of a use case that we didn't, maybe you can save a little time implementing it for your site.
* **Performance**<br/>One of my pet sites ([Fauxcabulary.org](http://fauxcabulary.org/)) has thousands of blog posts. Performance shall be a focus while developing features for Jekyll Faces. If the site takes too long to generate on the GitHub Pages servers, it will time out, making the whole process useless.

### Potential Features

This document attempts to provide an exhaustive list of planned features. It cannot, however, predict all future use cases. Based primarily on user feedback, new features and potential features will be added here as they are identified.

* **Manual Builds**<br/>Since everything in Jekyll Faces is configurable, you can enable more options than the standard GitHub Pages workflow can support. For those (hopefully) rare cases, this project will likely provide a manual build process where the resulting content is published to a `gh-pages` branch or `docs/` folder in the GitHub repo.
* **1st-Class Windows Support**<br/>Jekyll has a bad reputation on Windows. Jekyll Faces will attempt to address any shortcomings via code or documentation.
* **Chat Providers**<br/>Research into JavaScript-based APIs for live chat (e.g. [Zoho SalesIQ](https://www.zoho.com/salesiq/)) and possibly chatbots (e.g. [Instabot](https://www.instabot.io/) ??).
* **Other Integrations**<br/>Something useful I set up for [my dad's band website](http://jjeasy.net/) was integration with a specific, public Google calendar. He simply adds band gigs to the calendar and they magically appear on the site. I'd like to identify similar JavaScript-only, no-server-code services that might add value to Jekyll Faces.

10 changes: 10 additions & 0 deletions docs/404.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
layout: page
title:
showTitle: false
---

{% include read-config.liquid %}
{% assign http404 = config.customize.http404 | default: "default" %}
{% assign http404 = "/404/" | append: http404 | append: ".md" | relative_url %}
{% include {{ http404 }} %}
30 changes: 30 additions & 0 deletions docs/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
source "https://rubygems.org"

# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
#gem "jekyll", "~> 3.6.0"

# This is the default theme for new Jekyll sites. You may change this to anything you like.
#gem "minima", "~> 2.0"

# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
gem "github-pages", group: :jekyll_plugins

# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.6"
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

# used for linting the generated HTML
gem 'html-proofer'
gem "webrick", "~> 1.8"
Loading