diff --git a/.github/config.yml b/.github/config.yml
index 683f93f160..4b1bcab82f 100644
--- a/.github/config.yml
+++ b/.github/config.yml
@@ -14,7 +14,7 @@ requestInfoLabelToAdd: more-information-needed
# Welcome!
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
-newPRWelcomeComment: Welcome! Congrats on your first pull request to The Cayman Theme. If you haven't already, please be sure to check out [the contributing guidelines](https://github.com/pages-themes/cayman/blob/master/docs/CONTRIBUTING.md).
+newPRWelcomeComment: Welcome! Congrats on your first pull request to the Cayman theme. If you haven't already, please be sure to check out [the contributing guidelines](https://github.com/pages-themes/cayman/blob/master/docs/CONTRIBUTING.md).
# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge
-firstPRMergeComment: "Congrats on getting your first pull request to The Cayman Theme merged! Without amazing humans like you submitting pull requests, we couldn’t run this project. You rock! :tada:
If you're interested in tackling another bug or feature, take a look at [the open issues](https://github.com/pages-themes/cayman/issues), especially those [labeled `help wanted`](https://github.com/pages-themes/cayman/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)."
+firstPRMergeComment: "Congrats on getting your first pull request to the Cayman theme merged! Without amazing humans like you submitting pull requests, we couldn’t run this project. You rock! :tada:
If you're interested in tackling another bug or feature, take a look at [the open issues](https://github.com/pages-themes/cayman/issues), especially those [labeled `help wanted`](https://github.com/pages-themes/cayman/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)."
diff --git a/.github/settings.yml b/.github/settings.yml
index 420815923f..7c1b11592e 100644
--- a/.github/settings.yml
+++ b/.github/settings.yml
@@ -26,6 +26,6 @@ branch_protection:
required_status_checks:
strict: true
contexts:
- - "continuous-integration/travis-ci"
+ - "script/cibuild" # GitHub Actions CI workflow
required_pull_request_reviews:
require_code_owner_reviews: true
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000000..0323d522ef
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,18 @@
+on:
+ push:
+ pull_request:
+ types: [opened, synchronize]
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ name: script/cibuild
+ steps:
+ - uses: actions/checkout@v2
+ - uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: 3.2
+ bundler-cache: true
+ - name: build
+ run: script/bootstrap
+ - name: test
+ run: script/cibuild
diff --git a/.github/workflows/publish-gem.yml b/.github/workflows/publish-gem.yml
new file mode 100644
index 0000000000..2e939a0181
--- /dev/null
+++ b/.github/workflows/publish-gem.yml
@@ -0,0 +1,22 @@
+name: Publish Gem
+
+on:
+ release:
+ types: [released]
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: '3.2'
+ - name: Build gem
+ run: |
+ gem build github-pages.gemspec
+ - name: Publish
+ run: |
+ gem push github-pages.gem --key ${{ secrets.PAGES_GEM_PUBLISH }}
diff --git a/.gitignore b/.gitignore
index 4c972ab54b..cced6c130c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,5 @@ _site
.sass-cache
Gemfile.lock
*.gem
+.jekyll-cache
+.jekyll-cache
diff --git a/.rubocop.yml b/.rubocop.yml
index 648dfb112f..15c823df62 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -1,6 +1,11 @@
+inherit_gem:
+ rubocop-github:
+ - config/default.yml
+
AllCops:
Exclude:
- _site/**/*
+ - vendor/**/*
-Metrics/LineLength:
+Layout/LineLength:
Enabled: false
diff --git a/Gemfile b/Gemfile
index 7f4f5e950d..be173b205f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-source 'https://rubygems.org'
+source "https://rubygems.org"
gemspec
diff --git a/README.md b/README.md
index 704e22bc25..06a3b19320 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# The Cayman theme
-[](https://travis-ci.org/pages-themes/cayman) [](https://badge.fury.io/rb/jekyll-theme-cayman)
+[](https://github.com/pages-themes/cayman/actions/workflows/ci.yaml) [](https://badge.fury.io/rb/jekyll-theme-cayman)
*Cayman is a Jekyll theme for GitHub Pages. You can [preview the theme to see what it looks like](http://pages-themes.github.io/cayman), or even [use it today](#usage).*
@@ -13,7 +13,9 @@ To use the Cayman theme:
1. Add the following to your site's `_config.yml`:
```yml
- theme: jekyll-theme-cayman
+ remote_theme: pages-themes/cayman@v0.2.0
+ plugins:
+ - jekyll-remote-theme # add this line to the plugins list if you already have one
```
2. Optionally, if you'd like to preview your site on your computer, add the following to your site's `Gemfile`:
@@ -36,7 +38,7 @@ description: [A short description of your site's purpose]
Additionally, you may choose to set the following optional variables:
```yml
-show_downloads: ["true" or "false" to indicate whether to provide a download URL]
+show_downloads: ["true" or "false" (unquoted) to indicate whether to provide a download URL]
google_analytics: [Your Google Analytics tracking ID]
```
@@ -60,10 +62,15 @@ If you'd like to add your own custom styles:
If you'd like to change the theme's HTML layout:
-1. [Copy the original template](https://github.com/pages-themes/cayman/blob/master/_layouts/default.html) from the theme's repository (*Pro-tip: click "raw" to make copying easier*)
-2. Create a file called `/_layouts/default.html` in your site
-3. Paste the default layout content copied in the first step
-4. Customize the layout as you'd like
+1. For some changes such as a custom `favicon`, you can add custom files in your local `_includes` folder. The files [provided with the theme](https://github.com/pages-themes/cayman/tree/master/_includes) provide a starting point and are included by the [original layout template](https://github.com/pages-themes/cayman/blob/master/_layouts/default.html).
+2. For more extensive changes, [copy the original template](https://github.com/pages-themes/cayman/blob/master/_layouts/default.html) from the theme's repository (*Pro-tip: click "raw" to make copying easier*)
+3. Create a file called `/_layouts/default.html` in your site
+4. Paste the default layout content copied in the first step
+5. Customize the layout as you'd like
+
+### Customizing Google Analytics code
+
+Google has released several iterations to their Google Analytics code over the years since this theme was first created. If you would like to take advantage of the latest code, paste it into `_includes/head-custom-google-analytics.html` in your Jekyll site.
### Overriding GitHub-generated URLs
diff --git a/_includes/head-custom-google-analytics.html b/_includes/head-custom-google-analytics.html
new file mode 100644
index 0000000000..8a3ae5c9ca
--- /dev/null
+++ b/_includes/head-custom-google-analytics.html
@@ -0,0 +1,10 @@
+{% if site.google_analytics %}
+
+{% endif %}
diff --git a/_includes/head-custom.html b/_includes/head-custom.html
new file mode 100644
index 0000000000..f7187e79e5
--- /dev/null
+++ b/_includes/head-custom.html
@@ -0,0 +1,9 @@
+
+
+
+{% include head-custom-google-analytics.html %}
+
+
+
+
+
diff --git a/_layouts/default.html b/_layouts/default.html
index 600d3ddb2d..ba7224fee0 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -1,23 +1,16 @@
-
- {% if site.google_analytics %}
-
-
- {% endif %}
{% seo %}
+
+
+ {% include head-custom.html %}
Skip to the content.
diff --git a/_sass/cayman.scss b/_sass/cayman.scss
new file mode 100644
index 0000000000..ff073aa593
--- /dev/null
+++ b/_sass/cayman.scss
@@ -0,0 +1,4 @@
+// Placeholder file. If your site uses
+// @import "{{ site.theme }}";
+// Then using this theme with jekyll-remote-theme will work fine.
+@import "jekyll-theme-cayman";
diff --git a/_sass/jekyll-theme-cayman.scss b/_sass/jekyll-theme-cayman.scss
index ac8f297fbe..d3196e4af3 100644
--- a/_sass/jekyll-theme-cayman.scss
+++ b/_sass/jekyll-theme-cayman.scss
@@ -1,7 +1,7 @@
@import "normalize";
@import "rouge-github";
@import "variables";
-@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700');
+@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap');
@mixin large {
@media screen and (min-width: #{$large-breakpoint}) {
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index dc8bc5f1db..de0a5b5e4b 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -1,8 +1,8 @@
-# Contributing to The Cayman Theme
+# Contributing to the Cayman theme
-Hi there! We're thrilled that you'd like to contribute to The Cayman Theme. Your help is essential for keeping it great.
+Hi there! We're thrilled that you'd like to contribute to the Cayman theme. Your help is essential for keeping it great.
-The Cayman Theme is an open source project supported by the efforts of an entire community and built one contribution at a time by users like you. We'd love for you to get involved. Whatever your level of skill or however much time you can give, your contribution is greatly appreciated. There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests, helping other users by commenting on issues, or writing code which can be incorporated into The Cayman Theme itself.
+the Cayman theme is an open source project supported by the efforts of an entire community and built one contribution at a time by users like you. We'd love for you to get involved. Whatever your level of skill or however much time you can give, your contribution is greatly appreciated. There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests, helping other users by commenting on issues, or writing code which can be incorporated into the Cayman theme itself.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
@@ -28,7 +28,7 @@ Here are a few tips for writing *great* bug reports:
## How to suggest a feature or enhancement
-If you find yourself wishing for a feature that doesn't exist in The Cayman Theme, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that The Cayman Theme has today have been added because our users saw the need.
+If you find yourself wishing for a feature that doesn't exist in the Cayman theme, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that the Cayman theme has today have been added because our users saw the need.
Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and goals of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible, including describing the problem you're trying to solve.
@@ -38,7 +38,7 @@ Feature requests are welcome. But take a moment to find out whether your idea fi
## Your first contribution
-We'd love for you to contribute to the project. Unsure where to begin contributing to The Cayman Theme? You can start by looking through these "good first issue" and "help wanted" issues:
+We'd love for you to contribute to the project. Unsure where to begin contributing to the Cayman theme? You can start by looking through these "good first issue" and "help wanted" issues:
* [Good first issues](https://github.com/pages-themes/cayman/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) - issues which should only require a few lines of code and a test or two
* [Help wanted issues](https://github.com/pages-themes/cayman/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) - issues which may be a bit more involved, but are specifically seeking community contributions
@@ -77,6 +77,9 @@ At a high level, [the process for proposing changes](https://guides.github.com/i
`script/cibuild`
+## Publishing Gem
+In order to publish the Gem bump the version in *this file*, commit, create a tag with the new version number, and finally push the commit and tag to the repo.
+
## Code of conduct
This project is governed by [the Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
diff --git a/docs/SUPPORT.md b/docs/SUPPORT.md
index 68a11debd1..bc5a1ad750 100644
--- a/docs/SUPPORT.md
+++ b/docs/SUPPORT.md
@@ -1,9 +1,9 @@
## Where to get help
-If you think you've found a bug in The Cayman Theme, please [check the existing issues](https://github.com/pages-themes/cayman/issues), and if no one has reported the problem, [open a new issue](https://github.com/pages-themes/cayman/issues/new).
+If you think you've found a bug in the Cayman theme, please [check the existing issues](https://github.com/pages-themes/cayman/issues), and if no one has reported the problem, [open a new issue](https://github.com/pages-themes/cayman/issues/new).
-If you have a general question about the theme, how to implement it, or how to customize it for your site you have two options:
-
-1. [Contact GitHub Support](https://github.com/contact?form%5Bsubject%5D=GitHub%20Pages%20theme%20pages-themes/cayman), or
+If you have a general question about the theme, how to implement it, or how to customize it for your site you have two options:
+1. Search for your query on [`support.github.com`](https://support.github.com/?q=pages+Cayman+theme), which will also look for similar topics on [`github.community`](https://github.community/search?q=pages+Cayman+theme)
2. Ask your question of the Jekyll community on [talk.jekyllrb.com](https://talk.jekyllrb.com/)
+3. [Contact GitHub Support](https://github.com/contact?form%5Bsubject%5D=GitHub%20Pages%20theme%20pages-themes/cayman)
diff --git a/jekyll-theme-cayman.gemspec b/jekyll-theme-cayman.gemspec
index 4a1c2d28f0..19aed92357 100644
--- a/jekyll-theme-cayman.gemspec
+++ b/jekyll-theme-cayman.gemspec
@@ -1,22 +1,24 @@
# frozen_string_literal: true
Gem::Specification.new do |s|
- s.name = 'jekyll-theme-cayman'
- s.version = '0.1.1'
- s.license = 'CC0-1.0'
- s.authors = ['Jason Long', 'GitHub, Inc.']
- s.email = ['opensource+jekyll-theme-cayman@github.com']
- s.homepage = 'https://github.com/pages-themes/cayman'
- s.summary = 'Cayman is a Jekyll theme for GitHub Pages'
+ s.name = "jekyll-theme-cayman"
+ s.version = "0.2.0"
+ s.license = "CC0-1.0"
+ s.authors = ["Jason Long", "GitHub, Inc."]
+ s.email = ["opensource+jekyll-theme-cayman@github.com"]
+ s.homepage = "https://github.com/pages-themes/cayman"
+ s.summary = "Cayman is a Jekyll theme for GitHub Pages"
s.files = `git ls-files -z`.split("\x0").select do |f|
f.match(%r{^((_includes|_layouts|_sass|assets)/|(LICENSE|README)((\.(txt|md|markdown)|$)))}i)
end
+ s.required_ruby_version = ">= 2.4.0"
+
s.platform = Gem::Platform::RUBY
- s.add_runtime_dependency 'jekyll', '> 3.5', '< 5.0'
- s.add_runtime_dependency 'jekyll-seo-tag', '~> 2.0'
- s.add_development_dependency 'html-proofer', '~> 3.0'
- s.add_development_dependency 'rubocop', '~> 0.50'
- s.add_development_dependency 'w3c_validators', '~> 1.3'
+ s.add_runtime_dependency "jekyll", "> 3.5", "< 5.0"
+ s.add_runtime_dependency "jekyll-seo-tag", "~> 2.0"
+ s.add_development_dependency "html-proofer", "~> 3.0"
+ s.add_development_dependency "rubocop-github", "~> 0.16"
+ s.add_development_dependency "w3c_validators", "~> 1.3"
end
diff --git a/script/cibuild b/script/cibuild
index da8f22f35a..ac94edf6ab 100755
--- a/script/cibuild
+++ b/script/cibuild
@@ -3,7 +3,7 @@
set -e
bundle exec jekyll build
-bundle exec htmlproofer ./_site --check-html --check-sri
-bundle exec rubocop -D
+bundle exec htmlproofer ./_site --check-html --check-sri --url-ignore '/fonts.gstatic.com/'
+bundle exec rubocop -D --config .rubocop.yml
bundle exec script/validate-html
gem build jekyll-theme-cayman.gemspec
diff --git a/script/validate-html b/script/validate-html
index df4ec22e75..8f51642ea5 100755
--- a/script/validate-html
+++ b/script/validate-html
@@ -1,13 +1,13 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
-require 'w3c_validators'
+require "w3c_validators"
def validator(file)
extension = File.extname(file)
- if extension == '.html'
+ if extension == ".html"
W3CValidators::NuValidator.new
- elsif extension == '.css'
+ elsif extension == ".css"
W3CValidators::CSSValidator.new
end
end
@@ -18,11 +18,11 @@ def validate(file)
path = File.expand_path "../_site/#{file}", __dir__
results = validator(file).validate_file(path)
- return puts 'Valid!' if results.errors.empty?
+ return puts "Valid!" if results.errors.empty?
- results.errors.each { |err| puts err.to_s }
+ results.errors.each { |err| puts err }
exit 1
end
-validate 'index.html'
-validate File.join 'assets', 'css', 'style.css'
+validate "index.html"
+validate File.join "assets", "css", "style.css"