Compare commits

..

2 Commits

Author SHA1 Message Date
Parker Moore
4588517192 Add 'signin' to allowed words for spell check 2021-09-27 08:52:30 -07:00
Parker Moore
d921bcff9e releasing-a-new-version: include some details for the *-stable branches
The `*-stable` branches are maintained slightly differently than the `master` branch. This attempts to explain some of the differences.
2021-09-27 08:48:33 -07:00
253 changed files with 3713 additions and 6902 deletions

View File

@@ -3,7 +3,7 @@
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------
FROM ruby:3.0
FROM ruby:2
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
@@ -28,7 +28,7 @@ RUN apt-get update \
#
# Install node.js
&& apt-get -y install curl software-properties-common \
&& curl -sL https://deb.nodesource.com/setup_18.x | bash - \
&& curl -sL https://deb.nodesource.com/setup_13.x | bash - \
&& apt-get -y install nodejs \
#
# Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user.

View File

@@ -1,7 +1,7 @@
// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.101.1/containers/ruby-2
{
"name": "Ruby 3",
"name": "Ruby 2",
"dockerFile": "Dockerfile",
// Set *default* container specific settings.json values on container create.
@@ -12,15 +12,15 @@
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"rebornix.Ruby"
],
]
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "bundle install"
"postCreateCommand": "bundle install",
// Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
// "remoteUser": "vscode"
}
}

2
.github/CODEOWNERS vendored
View File

@@ -65,6 +65,8 @@
# @jekyll/stability
Gemfile @jekyll/stability
*.gemspec @jekyll/stability
.travis.yml @jekyll/stability
appveyor.yml @jekyll/stability
/lib/jekyll/configuration.rb @jekyll/stability
/lib/jekyll/deprecator.rb @jekyll/stability
/lib/jekyll/frontmatter_defaults.rb @jekyll/stability

View File

@@ -11,7 +11,7 @@ See the [support guidelines](https://jekyllrb.com/docs/support/)
Whether you're a developer, a designer, or just a Jekyll devotee, there are lots of ways to contribute. Here's a few ideas:
- [Install Jekyll on your computer](https://jekyllrb.com/docs/installation/) and kick the tires. Does it work? Does it do what you'd expect? If not, [open an issue](https://github.com/jekyll/jekyll/issues/new) and let us know.
- Comment on some of the project's [open issues](https://github.com/jekyll/jekyll/issues). Have you experienced the same problem? Know a workaround? Do you have a suggestion for how the feature could be better?
- Comment on some of the project's [open issues](https://github.com/jekyll/jekyll/issues). Have you experienced the same problem? Know a work around? Do you have a suggestion for how the feature could be better?
- Read through the [documentation](https://jekyllrb.com/docs/home/), and click the "improve this page" button, any time you see something confusing, or have a suggestion for something that could be improved.
- Browse through the [Jekyll discussion forum](https://talk.jekyllrb.com/), and lend a hand answering questions. There's a good chance you've already experienced what another user is experiencing.
- Find an [open issue](https://github.com/jekyll/jekyll/issues) (especially [those labeled `help-wanted`](https://github.com/jekyll/jekyll/issues?q=is%3Aopen+is%3Aissue+label%3Ahelp-wanted)), and submit a proposed fix. If it's your first pull request, we promise we won't bite, and are glad to answer any questions.

71
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,71 @@
---
name: Bug Report
about: Is something not working as expected?
title: ''
labels: ''
assignees: ''
---
<!--
Hi! Thanks for considering to file a bug with Jekyll. Please take the time to
answer the basic questions. Please try to be as detailed as possible.
If you are unsure this is a bug in Jekyll, or this is a bug caused
by a plugin that isn't directly related to Jekyll, or if this is just
a generic usage question, please consider asking your question at
https://talk.jekyllrb.com where non-bug questions go.
Thanks!
-->
<!--
Make sure that you've done all of these. If you're sure that the bug you're
reporting is only apparent in a previous version of Jekyll, please say so explicitly
in your description.
- I updated to the latest Jekyll (or) if on GitHub Pages to the latest `github-pages`
- I ran `jekyll doctor` to check my configuration
- I read the contributing document at https://jekyllrb.com/docs/contributing/
-->
## My Environment
<!--
Replace the values in the Version(s) column with the ones in your build. If you're not
using `github-pages`, just replace it with "No".
-->
| Software | Version(s) |
| ---------------- | ---------- |
| Operating System | |
| `jekyll` | Latest |
| `github-pages` | Latest |
---
## Expected Behaviour
<!--
What is it you expected to happen? This should be a description of how the
functionality you tried to use is supposed to work.
-->
## Current Behavior
<!--
Describe the details of the bug. Be sure to include any steps you took for the
problem to exist, such as the directories you created and the full command
you ran. Include any plugins you have installed (this is very important!).
You can include any logs you think relevant here. If you're using GitHub pages
and you're not sure where your logs are, please email support@github.com and
they will happily help you.
-->
## Code Sample
<!--
Please provide a code repository, gist, code snippet or sample files to
reproduce the issue.
-->

View File

@@ -1,104 +0,0 @@
name: Bug Report
description: "Is something not working as expected?"
title: "[Bug]: "
body:
- type: markdown
attributes:
value: |
Hi! Thank you for taking the time to report a bug with Jekyll.
Please consider asking your question at https://talk.jekyllrb.com if one or more of the following is applicable to your situation:
- You are not sure if the issue is a bug in Jekyll.
- The issue is caused by a third-party plugin.
- This is just a generic usage question.
Additionally, please note that this platform is meant for bugs in Jekyll core only.
Issues regarding dependencies and plugins should be reported in their respective repositories.
- type: input
id: os
attributes:
label: Operating System
description: The operating system of your computer.
placeholder: "Ubuntu 21.10"
validations:
required: true
- type: input
id: ruby-version
attributes:
label: Ruby Version
description: |
The Ruby version you were using at the time.
Run `ruby -v` in your terminal and paste the output in the input field.
placeholder: "ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x64-mingw32]"
validations:
required: true
- type: input
id: jekyll-version
attributes:
label: Jekyll Version
description: |
The version of Jekyll used in your project.
Run `bundle exec jekyll -v` and paste the output in the input field.
*If you are not using a Gemfile, run `jekyll -v` instead.*
placeholder: "jekyll 4.2.1"
validations:
required: true
- type: input
id: ghp-version
attributes:
label: GitHub Pages Version
description: |
Are you deploying your site using GitHub Pages?
If yes, then we need to know the `github-pages` version used by your project. Proceed ahead otherwise.
If you're using the `github-pages` gem in your Gemfile, paste the output from running the following:
```
bundle exec github-pages -v
```
Otherwise, enter `Latest` in the input field and proceed ahead.
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: Briefly describe what you expected to see or get with a certain functionality.
placeholder: |
I expected my site to be built successfully when I run the following:
```
bundle exec jekyll build
```
validations:
required: true
- type: textarea
id: actual
attributes:
label: Current Behavior
description: >
Describe the details of the bug.
Be sure to include any steps you took for the problem to exist, such as the directories
you created and the full command you ran.
Include any plugins you have configured for use in the site.
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: |
Please copy and paste any relevant log output from your terminal.
*Note: This will be automatically formatted into code, so no need for backticks.*
render: shell
- type: textarea
id: sample
attributes:
label: Code Sample
description: >
The easiest way for someone to understand an issue is if they could reproduce your issue
in their environment. Therefore, please provide a link to your project repository alongwith
instructions to reproduce your issue. If your project is not publicly accessible, please
consider setting up a minimal test repository complete with necessary instructions.
placeholder: |
### Steps to reproduce issue
- Clone [my repo](https://github.com/owner/repo)
- Install site dependencies
- Run `bundle exec jekyll build -s src -d src/dist`

View File

@@ -1,4 +1,4 @@
blank_issues_enabled: true
blank_issues_enabled: false
contact_links:
- name: Jekyll Community Forum
url: https://talk.jekyllrb.com/

View File

@@ -1,9 +1,9 @@
---
name: Documentation
about: Found a typo or something that isn't crystal clear in our docs?
title: '[Docs]: '
title: 'docs: '
labels: documentation
assignees: ''
assignees: DirtyF
---

View File

@@ -1,32 +0,0 @@
# Security Policy
## Supported Versions
Security updates are applied to the latest MINOR version of Jekyll, and the version used by GitHub Pages, v3.10.x.
| Version | Supported |
| ------- | ------------------ |
| 4.4.x | :white_check_mark: |
| 3.10.x | :white_check_mark: |
| < 3.10.x | :x: |
## Reporting a Vulnerability
Please report vulnerabilities by sending an email to security@jekyllrb.com with the following information:
1. A description of the vulnerability
2. Reproduction steps and/or a sample site (share a private repo to the [Jekyll Security Team](docs/pages/team.md))
3. Your contact information
The Jekyll security team will respond to your submission and notify you whether it has been confirmed by the team.
Your confidentiality is kindly requested as we work on a fix. We will provide our patch to you to test and verify that the vulnerability has
been closed.
If you have created a patch and would like to submit that to us as well, we will happily consider it though we cannot guarantee that we will
use it. If we use your patch, we will attribute authorship to you either as the commit author, or as a co-author.
Once a fix is verified, we will release PATCH versions of the supported MINOR versions and assign a CVE to the vulnerability. You will receive
credit in our release post.
Once the patched version has been released, we will no longer request you to maintain confidentiality and you may choose to share details on
how you found the vulnerability with the community.

View File

@@ -8,10 +8,8 @@ File | Purpose | Format | Info
[excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes)
[only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only)
[patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns)
[candidate.patterns](candidate.patterns) | Patterns that might be worth adding to [patterns.txt](patterns.txt) | perl regular expression with optional comment block introductions (all matches will be suggested) | [candidates](https://github.com/check-spelling/check-spelling/wiki/Feature:-Suggest-patterns)
[line_forbidden.patterns](line_forbidden.patterns) | Patterns to flag in checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns)
[expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect)
[advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice)
[advice.txt](advice.txt) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice)
Note: you can replace any of these files with a directory by the same name (minus the suffix)
and then include multiple files inside that directory (with that suffix) to merge multiple files together.

View File

@@ -1,25 +1,27 @@
<!-- See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice --> <!-- markdownlint-disable MD033 MD041 -->
<details><summary>If the flagged items are :exploding_head: false positives</summary>
<details><summary>If you see a bunch of garbage</summary>
If items relate to a ...
* binary file (or some other file you wouldn't want to check at all).
If it relates to a ...
<details><summary>well-formed pattern</summary>
Please add a file path to the `excludes.txt` file matching the containing file.
See if there's a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it.
File paths are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
If not, try writing one and adding it to the `patterns.txt` file.
`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](
../tree/HEAD/README.md) (on whichever branch you're using).
* well-formed pattern.
If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it,
try adding it to the `patterns.txt` file.
Patterns are Perl 5 Regular Expressions - you can [test](
Patterns are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
Note that patterns can't match multiline strings.
</details>
<details><summary>binary-ish string</summary>
Please add a file path to the `excludes.txt` file instead of just accepting the garbage.
File paths are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](
../tree/HEAD/README.md) (on whichever branch you're using).
</details>
</details>

View File

@@ -1,19 +0,0 @@
azion
builtins
github
hakiri
https
Linting
Microsoft
ssh
Statictastic
statictastic
supranode
ubuntu
Wikipedia
workaround
workaround
workarounds
WSL
decapcms
tina

View File

@@ -1,520 +0,0 @@
# marker to ignore all code on line
^.*/\* #no-spell-check-line \*/.*$
# marker for ignoring a comment to the end of the line
// #no-spell-check.*$
# patch hunk comments
^\@\@ -\d+(?:,\d+|) \+\d+(?:,\d+|) \@\@ .*
# git index header
index [0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
# cid urls
(['"])cid:.*?\g{-1}
# data url in parens
\(data:[^)]*?(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})[^)]*\)
# data url in quotes
([`'"])data:.*?(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}).*\g{-1}
# data url
data:[-a-zA-Z=;:/0-9+]*,\S*
# mailto urls
mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,}
# magnet urls
magnet:[?=:\w]+
# magnet urls
"magnet:[^"]+"
# obs:
"obs:[^"]*"
# The `\b` here means a break, it's the fancy way to handle urls, but it makes things harder to read
# In this examples content, I'm using a number of different ways to match things to show various approaches
# asciinema
\basciinema\.org/a/[0-9a-zA-Z]+
# apple
\bdeveloper\.apple\.com/[-\w?=/]+
# Apple music
\bembed\.music\.apple\.com/fr/playlist/usr-share/[-\w.]+
# appveyor api
\bci\.appveyor\.com/api/projects/status/[0-9a-z]+
# appveyor project
\bci\.appveyor\.com/project/(?:[^/\s"]*/){2}builds?/\d+/job/[0-9a-z]+
# Amazon
# Amazon
\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)
# AWS S3
\b\w*\.s3[^.]*\.amazonaws\.com/[-\w/&#%_?:=]*
# AWS execute-api
\b[0-9a-z]{10}\.execute-api\.[-0-9a-z]+\.amazonaws\.com\b
# AWS ELB
\b\w+\.[-0-9a-z]+\.elb\.amazonaws\.com\b
# AWS SNS
\bsns\.[-0-9a-z]+.amazonaws\.com/[-\w/&#%_?:=]*
# AWS VPC
vpc-\w+
# While you could try to match `http://` and `https://` by using `s?` in `https?://`, sometimes there
# YouTube url
\b(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|user/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_%]*
# YouTube music
\bmusic\.youtube\.com/youtubei/v1/browse(?:[?&]\w+=[-a-zA-Z0-9?&=_]*)
# YouTube tag
<\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"]
# YouTube image
\bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]*
# Google Accounts
\baccounts.google.com/[-_/?=.:;+%&0-9a-zA-Z]*
# Google Analytics
\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]*
# Google APIs
\bgoogleapis\.(?:com|dev)/[a-z]+/(?:v\d+/|)[a-z]+/[-@:./?=\w+|&]+
# Google Storage
\b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|)
# Google Calendar
\bcalendar\.google\.com/calendar(?:/u/\d+|)/embed\?src=[@./?=\w&%]+
\w+\@group\.calendar\.google\.com\b
# Google DataStudio
\bdatastudio\.google\.com/(?:(?:c/|)u/\d+/|)(?:embed/|)(?:open|reporting|datasources|s)/[-0-9a-zA-Z]+(?:/page/[-0-9a-zA-Z]+|)
# The leading `/` here is as opposed to the `\b` above
# ... a short way to match `https://` or `http://` since most urls have one of those prefixes
# Google Docs
/docs\.google\.com/[a-z]+/(?:ccc\?key=\w+|(?:u/\d+|d/(?:e/|)[0-9a-zA-Z_-]+/)?(?:edit\?[-\w=#.]*|/\?[\w=&]*|))
# Google Drive
\bdrive\.google\.com/(?:file/d/|open)[-0-9a-zA-Z_?=]*
# Google Groups
\bgroups\.google\.com/(?:(?:forum/#!|d/)(?:msg|topics?|searchin)|a)/[^/\s"]+/[-a-zA-Z0-9$]+(?:/[-a-zA-Z0-9]+)*
# Google Maps
\bmaps\.google\.com/maps\?[\w&;=]*
# Google themes
themes\.googleusercontent\.com/static/fonts/[^/\s"]+/v\d+/[^.]+.
# Google CDN
\bclients2\.google(?:usercontent|)\.com[-0-9a-zA-Z/.]*
# Goo.gl
/goo\.gl/[a-zA-Z0-9]+
# Google Chrome Store
\bchrome\.google\.com/webstore/detail/[-\w]*(?:/\w*|)
# Google Books
\bgoogle\.(?:\w{2,4})/books(?:/\w+)*\?[-\w\d=&#.]*
# Google Fonts
\bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]*
# Google Forms
\bforms\.gle/\w+
# Google Scholar
\bscholar\.google\.com/citations\?user=[A-Za-z0-9_]+
# Google Colab Research Drive
\bcolab\.research\.google\.com/drive/[-0-9a-zA-Z_?=]*
# GitHub SHAs (api)
\bapi.github\.com/repos(?:/[^/\s"]+){3}/[0-9a-f]+\b
# GitHub SHAs (markdown)
(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|)
# GitHub SHAs
\bgithub\.com(?:/[^/\s"]+){2}[@#][0-9a-f]+\b
# GitHub wiki
\bgithub\.com/(?:[^/]+/){2}wiki/(?:(?:[^/]+/|)_history|[^/]+(?:/_compare|)/[0-9a-f.]{40,})\b
# githubusercontent
/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]*
# githubassets
\bgithubassets.com/[0-9a-f]+(?:[-/\w.]+)
# gist github
\bgist\.github\.com/[^/\s"]+/[0-9a-f]+
# git.io
\bgit\.io/[0-9a-zA-Z]+
# GitHub JSON
"node_id": "[-a-zA-Z=;:/0-9+]*"
# Contributor
\[[^\]]+\]\(https://github\.com/[^/\s"]+\)
# GHSA
GHSA(?:-[0-9a-z]{4}){3}
# GitLab commit
\bgitlab\.[^/\s"]*/\S+/\S+/commit/[0-9a-f]{7,16}#[0-9a-f]{40}\b
# GitLab merge requests
\bgitlab\.[^/\s"]*/\S+/\S+/-/merge_requests/\d+/diffs#[0-9a-f]{40}\b
# GitLab uploads
\bgitlab\.[^/\s"]*/uploads/[-a-zA-Z=;:/0-9+]*
# GitLab commits
\bgitlab\.[^/\s"]*/(?:[^/\s"]+/){2}commits?/[0-9a-f]+\b
# binanace
accounts.binance.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]*
# bitbucket diff
\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}diff(?:stat|)(?:/[^/\s"]+){2}:[0-9a-f]+
# bitbucket repositories commits
\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}commits?/[0-9a-f]+
# bitbucket commits
\bbitbucket\.org/(?:[^/\s"]+/){2}commits?/[0-9a-f]+
# bit.ly
\bbit\.ly/\w+
# bitrise
\bapp\.bitrise\.io/app/[0-9a-f]*/[\w.?=&]*
# bootstrapcdn.com
\bbootstrapcdn\.com/[-./\w]+
# cdn.cloudflare.com
\bcdnjs\.cloudflare\.com/[./\w]+
# circleci
\bcircleci\.com/gh(?:/[^/\s"]+){1,5}.[a-z]+\?[-0-9a-zA-Z=&]+
# gitter
\bgitter\.im(?:/[^/\s"]+){2}\?at=[0-9a-f]+
# gravatar
\bgravatar\.com/avatar/[0-9a-f]+
# ibm
[a-z.]*ibm\.com/[-_#=:%!?~.\\/\d\w]*
# imgur
\bimgur\.com/[^.]+
# Internet Archive
\barchive\.org/web/\d+/(?:[-\w.?,'/\\+&%$#_:]*)
# discord
/discord(?:app\.com|\.gg)/(?:invite/)?[a-zA-Z0-9]{7,}
# Disqus
\bdisqus\.com/[-\w/%.()!?&=_]*
# medium link
\blink\.medium\.com/[a-zA-Z0-9]+
# medium
\bmedium\.com/\@?[^/\s"]+/[-\w]+
# microsoft
\b(?:https?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com/[-_a-zA-Z0-9()=./%]*
# powerbi
\bapp\.powerbi\.com/reportEmbed/[^"' ]*
# vs devops
\bvisualstudio.com(?::443|)/[-\w/?=%&.]*
# microsoft store
\bmicrosoft\.com/store/apps/\w+
# mvnrepository.com
\bmvnrepository\.com/[-0-9a-z./]+
# now.sh
/[0-9a-z-.]+\.now\.sh\b
# oracle
\bdocs\.oracle\.com/[-0-9a-zA-Z./_?#&=]*
# chromatic.com
/\S+.chromatic.com\S*[")]
# codacy
\bapi\.codacy\.com/project/badge/Grade/[0-9a-f]+
# compai
\bcompai\.pub/v1/png/[0-9a-f]+
# mailgun api
\.api\.mailgun\.net/v3/domains/[0-9a-z]+\.mailgun.org/messages/[0-9a-zA-Z=@]*
# mailgun
\b[0-9a-z]+.mailgun.org
# /message-id/
/message-id/[-\w@./%]+
# Reddit
\breddit\.com/r/[/\w_]*
# requestb.in
\brequestb\.in/[0-9a-z]+
# sched
\b[a-z0-9]+\.sched\.com\b
# Slack url
slack://[a-zA-Z0-9?&=]+
# Slack
\bslack\.com/[-0-9a-zA-Z/_~?&=.]*
# Slack edge
\bslack-edge\.com/[-a-zA-Z0-9?&=%./]+
# Slack images
\bslack-imgs\.com/[-a-zA-Z0-9?&=%.]+
# shields.io
\bshields\.io/[-\w/%?=&.:+;,]*
# stackexchange -- https://stackexchange.com/feeds/sites
\b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/)
# Sentry
[0-9a-f]{32}\@o\d+\.ingest\.sentry\.io\b
# Twitter markdown
\[\@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\)
# Twitter hashtag
\btwitter\.com/hashtag/[\w?_=&]*
# Twitter status
\btwitter\.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)
# Twitter profile images
\btwimg\.com/profile_images/[_\w./]*
# Twitter media
\btwimg\.com/media/[-_\w./?=]*
# Twitter link shortened
\bt\.co/\w+
# facebook
\bfburl\.com/[0-9a-z_]+
# facebook CDN
\bfbcdn\.net/[\w/.,]*
# facebook watch
\bfb\.watch/[0-9A-Za-z]+
# dropbox
\bdropbox\.com/sh?/[^/\s"]+/[-0-9A-Za-z_.%?=&;]+
# ipfs protocol
ipfs://[0-9a-z]*
# ipfs url
/ipfs/[0-9a-z]*
# w3
\bw3\.org/[-0-9a-zA-Z/#.]+
# loom
\bloom\.com/embed/[0-9a-f]+
# regex101
\bregex101\.com/r/[^/\s"]+/\d+
# figma
\bfigma\.com/file(?:/[0-9a-zA-Z]+/)+
# freecodecamp.org
\bfreecodecamp\.org/[-\w/.]+
# image.tmdb.org
\bimage\.tmdb\.org/[/\w.]+
# mermaid
\bmermaid\.ink/img/[-\w]+|\bmermaid-js\.github\.io/mermaid-live-editor/#/edit/[-\w]+
# Wikipedia
\ben\.wikipedia\.org/wiki/[-\w%.#]+
# gitweb
[^"\s]+/gitweb/\S+;h=[0-9a-f]+
# HyperKitty lists
/archives/list/[^@/]+\@[^/\s"]*/message/[^/\s"]*/
# lists
/thread\.html/[^"\s]+
# list-management
\blist-manage\.com/subscribe(?:[?&](?:u|id)=[0-9a-f]+)+
# kubectl.kubernetes.io/last-applied-configuration
"kubectl.kubernetes.io/last-applied-configuration": ".*"
# pgp
\bgnupg\.net/pks/lookup[?&=0-9a-zA-Z]*
# Spotify
\bopen\.spotify\.com/embed/playlist/\w+
# Mastodon
\bmastodon\.[-a-z.]*/(?:media/|\@)[?&=0-9a-zA-Z_]*
# scastie
\bscastie\.scala-lang\.org/[^/]+/\w+
# images.unsplash.com
\bimages\.unsplash\.com/(?:(?:flagged|reserve)/|)[-\w./%?=%&.;]+
# pastebin
\bpastebin\.com/[\w/]+
# heroku
\b\w+\.heroku\.com/source/archive/\w+
# quip
\b\w+\.quip\.com/\w+(?:(?:#|/issues/)\w+)?
# badgen.net
\bbadgen\.net/badge/[^")\]'\s]+
# statuspage.io
\w+\.statuspage\.io\b
# media.giphy.com
\bmedia\.giphy\.com/media/[^/]+/[\w.?&=]+
# tinyurl
\btinyurl\.com/\w+
# getopts
\bgetopts\s+(?:"[^"]+"|'[^']+')
# ANSI color codes
(?:\\(?:u00|x)1b|\x1b)\[\d+(?:;\d+|)m
# URL escaped characters
\%[0-9A-F][A-F]
# IPv6
\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b
# c99 hex digits (not the full format, just one I've seen)
0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP]
# Punycode
\bxn--[-0-9a-z]+
# sha
sha\d+:[0-9]*[a-f]{3,}[0-9a-f]*
# sha-... -- uses a fancy capture
(['"]|&quot;)[0-9a-f]{40,}\g{-1}
# hex runs
\b[0-9a-fA-F]{16,}\b
# hex in url queries
=[0-9a-fA-F]*?(?:[A-F]{3,}|[a-f]{3,})[0-9a-fA-F]*?&
# ssh
(?:ssh-\S+|-nistp256) [-a-zA-Z=;:/0-9+]{12,}
# PGP
\b(?:[0-9A-F]{4} ){9}[0-9A-F]{4}\b
# GPG keys
\b(?:[0-9A-F]{4} ){5}(?: [0-9A-F]{4}){5}\b
# Well known gpg keys
.well-known/openpgpkey/[\w./]+
# uuid:
\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
# hex digits including css/html color classes:
(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|u\d+)\b
# integrity
integrity="sha\d+-[-a-zA-Z=;:/0-9+]{40,}"
# https://www.gnu.org/software/groff/manual/groff.html
# man troff content
\\f[BCIPR]
# '
\\\(aq
# .desktop mime types
^MimeTypes?=.*$
# .desktop localized entries
^[A-Z][a-z]+\[[a-z]+\]=.*$
# Localized .desktop content
Name\[[^\]]+\]=.*
# IServiceProvider
\bI(?=(?:[A-Z][a-z]{2,})+\b)
# crypt
"\$2[ayb]\$.{56}"
# scrypt / argon
\$(?:scrypt|argon\d+[di]*)\$\S+
# Input to GitHub JSON
content: "[-a-zA-Z=;:/0-9+]*="
# Python stringprefix / binaryprefix
# Note that there's a high false positive rate, remove the `?=` and search for the regex to see if the matches seem like reasonable strings
(?<!')\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)'(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})
# Regular expressions for (P|p)assword
\([A-Z]\|[a-z]\)[a-z]+
# JavaScript regular expressions
# javascript test regex
/.*/[gim]*\.test\(
# javascript match regex
\.match\(/[^/\s"]*/[gim]*\s*
# javascript match regex
\.match\(/\\[b].*?/[gim]*\s*\)(?:;|$)
# javascript regex
^\s*/\\[b].*/[gim]*\s*(?:\)(?:;|$)|,$)
# javascript replace regex
\.replace\(/[^/\s"]*/[gim]*\s*,
# Go regular expressions
regexp?\.MustCompile\(`[^`]*`\)
# sed regular expressions
sed 's/(?:[^/]*?[a-zA-Z]{3,}[^/]*?/){2}
# go install
go install(?:\s+[a-z]+\.[-@\w/.]+)+
# kubernetes pod status lists
# https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
\w+(?:-\w+)+\s+\d+/\d+\s+(?:Running|Pending|Succeeded|Failed|Unknown)\s+
# kubectl - pods in CrashLoopBackOff
\w+-[0-9a-f]+-\w+\s+\d+/\d+\s+CrashLoopBackOff\s+
# kubernetes object suffix
-[0-9a-f]{10}-\w{5}\s
# posthog secrets
posthog\.init\((['"])phc_[^"',]+\g{-1},
# xcode
# xcodeproject scenes
(?:Controller|ID|id)="\w{3}-\w{2}-\w{3}"
# xcode api botches
customObjectInstantitationMethod
# font awesome classes
\.fa-[-a-z0-9]+
# Update Lorem based on your content (requires `ge` and `w` from https://github.com/jsoref/spelling; and `review` from https://github.com/check-spelling/check-spelling/wiki/Looking-for-items-locally )
# grep '^[^#].*lorem' .github/actions/spelling/patterns.txt|perl -pne 's/.*i..\?://;s/\).*//' |tr '|' "\n"|sort -f |xargs -n1 ge|perl -pne 's/^[^:]*://'|sort -u|w|sed -e 's/ .*//'|w|review -
# Warning, while `(?i)` is very neat and fancy, if you have some binary files that aren't proper unicode, you might run into:
## Operation "substitution (s///)" returns its argument for non-Unicode code point 0x1C19AE (the code point will vary).
## You could manually change `(?i)X...` to use `[Xx]...`
## or you could add the files to your `excludes` file (a version after 0.0.19 should identify the file path)
# Lorem
(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*
# Non-English
[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*
# French
# This corpus only had capital letters, but you probably want lowercase ones as well.
\b[LN]'+[a-z]{2,}\b
# latex
\\(?:n(?:ew|ormal|osub)|r(?:enew)|t(?:able(?:of|)|he|itle))(?=[a-z]+)
# the negative lookahead here is to allow catching 'templatesz' as a misspelling
# but to otherwise recognize a Windows path with \templates\foo.template or similar:
\\(?:necessary|r(?:eport|esolve[dr]?|esult)|t(?:arget|emplates?))(?![a-z])
# ignore long runs of a single character:
\b([A-Za-z])\g{-1}{3,}\b
# version suffix <word>v#
(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
# Compiler flags (Scala)
(?:^|[\t ,>"'`=(])-J-[DPWXY](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
# Compiler flags
(?:^|[\t ,"'`=(])-[DPWXYLlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
# Compiler flags (linker)
,-B
# curl arguments
\b(?:\\n|)curl(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
# set arguments
\bset(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)*
# tar arguments
\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+
# tput arguments -- https://man7.org/linux/man-pages/man5/terminfo.5.html -- technically they can be more than 5 chars long...
\btput\s+(?:(?:-[SV]|-T\s*\w+)\s+)*\w{3,5}\b
# macOS temp folders
/var/folders/\w\w/[+\w]+/(?:T|-Caches-)/

View File

@@ -1,63 +1,25 @@
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
(?:^|/)(?i)COPYRIGHT
(?:^|/)(?i)LICEN[CS]E
(?:^|/)3rdparty/
(?:^|/)go\.sum$
(?:^|/)package(?:-lock|)\.json$
(?:^|/)vendor/
/fonts/
ignore$
\.avi$
\.bmp$
\.bz2$
\.class$
\.crt$
\.dll$
\.docx?$
\.drawio$
\.DS_Store$
\.eot$
\.exe$
\.gif$
\.gitattributes$
\.graffle$
\.gz$
\.icns$
\.ico$
\.jar$
\.jks$
\.jpe?g$
\.key$
\.lib$
\.lock$
\.map$
\.min\..
\.min\.
\.mod$
\.mp[34]$
\.o$
\.ocf$
\.otf$
\.pdf$
\.pem$
\.png$
\.psd$
\.pyc$
\.s$
\.svgz?$
\.tar$
\.tiff?$
\.svg$
\.ttf$
\.wav$
\.webm$
\.webp$
\.woff$
\.woff2$
\.xlsx?$
\.zip$
^docs/pages/redirects/github\.html$
^lib/jekyll/mime\.types$
^lib/theme_template/example/index\.html$
@@ -67,4 +29,3 @@ ignore$
^test/fixtures/webrick/bar/foo\.xhtml$
^test/source/_posts/2009-06-22-no-yaml\.markdown$
^\.github/
^\Q.github/workflows/spelling.yml\E$

View File

@@ -1,34 +1,56 @@
acl
activesupport
adaoraul
addons
aeiou
AFile
afterall
Alexey
alfredxing
algolia
allowfullscreen
Anatoliy
andreyvit
Ankit
Anning
apps
appveyor
arengu
args
ariejan
arounds
asciinema
asdf
ashmaroli
attr
Autobuild
autocompletion
autogenerated
Autolink
autoload
autoreconf
autosave
awood
aws
awscli
backticks
backend
backport
backtick
barcamp
baseurl
bashrc
baz
bbatsov
bdimcheff
bellvat
benbalter
Beney
binstubs
bip
bitbucket
blog
Blogger
blogging
blogs
bonafide
Bou
breadcrumbs
@@ -38,7 +60,7 @@ bridgetownrb
brightbox
brighterplanet
buddyworks
builtatlightspeed
Bugfix
Burela
byparker
cachegrind
@@ -48,13 +70,20 @@ cartera
cavalle
CDNs
cgi
changefreq
changelog
chango
charset
Chayoung
chcp
chdir
Cheatsheet
Checkoway
chmod
chown
Chrononaut
chruby
cibuild
cimg
circleci
CJK
classname
@@ -62,63 +91,101 @@ cloudcannon
Cloudinary
cloudsh
CLT
codebase
codeclimate
CODEOWNERS
coderay
codeslinger
coffeescript
colorator
commandline
commonmark
compat
compatibilize
concat
config
configyml
contentblocks
CORS
Cov
CRLFs
cron
crontab
cruft
css
csv
Currin
CWD
cygwin
daringfireball
Dassonville
datafiles
datetime
DCEU
Debian
debuggability
defunkt
delegators
devcontainer
deployer
deps
dest
Devkit
devops
digitalocean
dirs
disqus
ditaa
dnf
doclist
doctype
doeorg
dommmel
dotfile
Dousse
downcase
downcased
duckduckgo
duritong
Dusseau
dysinger
ecf
editorconfig
eduardoboucas
Elasticsearch
elsif
Emacs
emojis
emails
emoji
endcapture
endfor
endhighlight
endif
endraw
endrender
endtablerow
Enumerables
eol
erb
errordocument
Espinaco
eugenebolshakov
evaled
extnames
exe
execjs
extensionpack
extname
exts
favicon
Fengyun
ffi
figcaption
filesystem
Finazzo
firstimage
FIXME
flakey
flickr
fnmatch
fontello
forloop
formcake
@@ -129,47 +196,86 @@ formkeep
formspark
formspree
formx
Forwardable
frameborder
freenode
frontmatter
fsnotify
ftp
fullstory
Gaudino
gcc
gcnovus
gemfile
gemset
gemspec
getform
getset
getsimpleform
gettalong
gfm
ghp
ghpages
giraffeacademy
github
githubcom
githubusercontent
gitignore
gitlab
gjtorikian
globbed
globbing
google
gotcha
Goulven
gridism
GSo
gsub
gsubbing
Hakiri
hardcode
hashbang
hashmap
helaili
henrik
heredoc
heroku
highlighter
hilighting
Hoizey
homepage
hostman
hostname
href
htaccess
htm
html
htmlproofer
http
httpd
httpdocs
hyperlinks
Iaa
ial
ico
icomoon
iconset
ified
iframe
img
Impl
Inlining
invokables
irc
ivey
ize
jalali
jameshamann
jamstackthemes
jan
javascript
Jax
jayferd
jcon
jdoe
jeffreytse
@@ -179,26 +285,30 @@ jekyllbot
jekyllconf
Jekyllers
Jekyllin
Jekylling
jekyllized
jekylllayoutconcept
jekyllrb
jekyllthemes
jekyllup
jemoji
jmcglone
jneen
johnreilly
jpg
jqr
jruby
json
jsonify
juretta
jwarby
Kacper
Kasberg
kbd
Kentico
Kewin
keycdn
kickster
Kinnula
kinsta
kiwifruit
Kolesky
konklone
@@ -208,23 +318,40 @@ kramdown
Kulig
Kwokfu
Lamprecht
laquo
lastmod
launchctl
launchy
laurilehmijoki
ldquo
learnxinyminutes
lexers
lexer
LGTM
libcurl
libffi
lifecycle
lightgray
limjh
linenos
linkify
linux
liufengyun
livereload
localheinz
localhost
localtime
Locher
loglevel
Losslessly
lovin
lsi
lsquo
lstrip
lyche
macos
macromates
mademistakes
mailto
Manmeet
markdownify
Maroli
@@ -235,26 +362,41 @@ mathml
mattr
Maximiliano
mchung
mdash
memberspace
Memoize
memoized
memoizing
mentoring
mergable
Mertcan
mertkahyaoglu
metadatas
metadata
microdata
microsoft
mimetype
mingw
minibundle
minifier
minitest
Mittal
mixin
mkasberg
mkd
mkdir
mkdn
mkdown
mmistakes
modernizr
mojombo
moncefbelyamani
moz
mreid
msdn
mswin
MSYS
mtime
multiline
munging
Mvvm
myblog
mycontent
@@ -265,31 +407,46 @@ mypage
myposts
myproject
myrepo
mysite
myvalue
myvar
myvariable
Nadjib
nakanishi
navbars
namespace
namespaced
navbar
nbsp
nearlyfreespeech
nethack
netlify
netlifycms
Neue
nginx
ngx
nielsenramon
nior
nodejs
noifniof
nokogiri
notextile
onclick
onebox
oneclick
onschedule
opensource
openssl
Optim
orderofinterpretation
orgs
OSVDB
osx
packagecontrol
pacman
paginator
pandoc
pantulis
params
parkr
parseable
paspagon
@@ -297,79 +454,124 @@ passthrough
pathawks
Pathutil
paywall
PDFs
pdf
Pelykh
permalink
PHP
pinboard
Piwigo
pjhyett
pkill
pkpass
placeholders
planetjekyll
plantuml
plugin
png
podcasts
popen
Porcel
Posterous
postfiles
postlayout
postmodern
preinstalled
prepends
Prioritise
Probot
projectlist
pubstorm
pufuwozu
pwa
pwd
pygments
qrush
Quaid
quickstart
rackup
Rakefile
raquo
razorops
rbenv
rdiscount
rdoc
rdquo
readme
realz
rebund
redcarpet
redcloth
redgreen
redhat
Refactors
refactor
refactoring
Refheap
regen
regex
regexp
remi
reqs
Responsify
revertable
rfc
rfelix
RHEL
ridk
roadmap
rowspan
rspec
rsquo
rss
rstrip
rsync
rtomayko
Rubo
rubocop
rubychan
rubygem
rubyinstaller
rubyprof
Ruparelia
Rusiczki
rvm
ryanflorence
saas
samplelist
samrayner
sandboxed
Sassc
sassify
schemastore
Schroers
Schwartzian
scp
screenshot
scrollbars
scrollbar
scroller
scss
scssify
sdk
SDKROOT
sectore
semver
seo
serverless
setenv
SFTP
shingo
shopify
shortlinks
shortlog
shoulda
sieversii
signin
sigpipe
simplecov
Singhaniya
siteleaf
sitemap
SITENAME
Slicehost
slugified
slugify
smartforms
smartify
snipcart
@@ -378,102 +580,175 @@ somedir
sonnym
Sonomy
sourced
sourcemaps
spam
spotify
src
ssg
ssh
SSL
stackoverflow
standalone
staticfiles
staticman
statictastic
STDERR
stdout
Stickyposts
strftime
stringified
Stringify
styleguide
stylesheet
subdir
subdomain
subfolder
subfolderitems
subnav
subpages
subpath
subpiece
subsubfolderitems
subthing
subvalues
subwidget
sudo
superdirectories
superdirs
SUSE
sverrirs
svg
svn
swfobject
swupd
symlink
symlinking
tablerow
tada
Taillandier
talkyard
tbody
technicalpickles
templating
templatize
Termux
textilize
textpattern
thead
therubyracer
Theunissen
Thornquest
thoughtbot
throughs
Tidelift
timeago
timezones
timezone
titleize
TLS
tmm
tmp
toc
tok
tomjoht
toml
tomo
toolset
toshimaru
triaged
triaging
truncatewords
tsv
ttf
Tudou
Tumblr
Tweetsert
txtpen
Tyborska
tzinfo
ubuntu
uby
ujh
ultron
undumpable
unencode
Unescape
unescaping
unicode
uniq
upcase
uppercasing
uri
url
urlset
usernames
username
usr
utf
utils
utime
utm
vanpelt
Vasovi
vendored
vercel
versioned
versioning
vertycal
Veyor
vilcans
Vishesh
visualstudio
vnd
vohedge
vps
vscode
vwochnik
WAI
Walkthroughs
wdm
We'd
webfonts
webfont
webhook
webhosting
webmentions
webrick
website
weekdate
whitelist
whitelisting
wiki
wikipedia
wildcards
willcodeforfoo
woff
wordpress
workflows
Workaround
workflow
wsl
www
xcode
xcrun
xdg
Xhmikos
xhtml
Xiaoiver
XMinutes
xml
xmlns
xmlschema
yajl
yaml
Yarp
Yashu
Yastreb
yml
Youku
youtube
yunbox
zeropadding
Zlatan
zlib
zoneinfo
zpinter
Zsh
zshrc
zypper
zzot

View File

@@ -1,62 +0,0 @@
# reject `m_data` as there's a certain OS which has evil defines that break things if it's used elsewhere
# \bm_data\b
# If you have a framework that uses `it()` for testing and `fit()` for debugging a specific test,
# you might not want to check in code where you were debugging w/ `fit()`, in which case, you might want
# to use this:
#\bfit\(
# s.b. GitHub
\bGithub\b
# s.b. GitLab
\bGitlab\b
# s.b. JavaScript
\bJavascript\b
# s.b. Microsoft
\bMicroSoft\b
# s.b. another
\ban[- ]other\b
# s.b. greater than
\bgreater then\b
# s.b. into
#\sin to\s
# s.b. opt-in
\sopt in\s
# s.b. less than
\bless then\b
# s.b. otherwise
\bother[- ]wise\b
# s.b. nonexistent
\bnon existing\b
\b[Nn]o[nt][- ]existent\b
# s.b. preexisting
[Pp]re[- ]existing
# s.b. preempt
[Pp]re[- ]empt\b
# s.b. preemptively
[Pp]re[- ]emptively
# s.b. reentrancy
[Rr]e[- ]entrancy
# s.b. reentrant
[Rr]e[- ]entrant
# s.b. workaround(s)
#\bwork[- ]arounds?\b
# Reject duplicate words
\s([A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})\s\g{-1}\s

View File

@@ -9,48 +9,34 @@ https?://(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|playlist\?list=|
<\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"]
\bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]*
youtube_id:\s*[-a-zA-Z0-9?&=_]*
# Google Analytics
\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]*
# Google APIs
\bgoogleapis\.com/[a-z]+/v\d+/[a-z]+/[@./?=\w]+
\b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|)
# Google Calendar
\bcalendar\.google\.com/calendar(?:/u/\d+|)/embed\?src=[@./?=\w&%]+
\w+\@group\.calendar\.google\.com\b
# Google DataStudio
\bdatastudio\.google\.com/(?:(?:c/|)u/\d+/|)(?:embed/|)(?:open|reporting|datasources|s)/[-0-9a-zA-Z]+(?:/page/[-0-9a-zA-Z]+|)
# The leading `/` here is as opposed to the `\b` above
# ... a short way to match `https://` or `http://` since most urls have one of those prefixes
# Google Docs
/docs\.google\.com/[a-z]+/d/(?:e/|)[0-9a-zA-Z_-]+/?
# Google Groups
https://groups\.google\.com/d/topic/[^/]+/[a-zA-Z0-9]+/discussion
https://groups\.google\.com/d/msg/[^/]+/[a-zA-Z0-9]+/[a-zA-Z0-9]+
# Google themes
themes\.googleusercontent\.com/static/fonts/[^/]+/v\d+/[^.]+.
# Google CDN
\bclients2\.google(?:usercontent|)\.com[-0-9a-zA-Z/.]*
# Goo.gl
/goo\.gl/[a-zA-Z0-9]+
# Google Chrome Store
\bchrome\.google\.com/webstore/detail/\w*(?:/\w*|)
# google_site_verification:
google_site_verification: [-a-zA-Z=;:/0-9+]*
# Ruby-doc.org
https://ruby-doc\.org/.*
# Contributors
alphabetical order.*:.*
twitter_handle: .*
@@ -71,94 +57,5 @@ apiKey: '[a-f0-9]+'
# hex digits including css/html color classes:
(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9a-fA-FgGrR_]{2,}(?:[uU]?[lL]{0,2}|u\d+)\b
# Automatically suggested patterns
# hit-count: 23 file-count: 15
# GitHub SHAs (markdown)
(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|)
# hit-count: 7 file-count: 4
# Wikipedia
\ben\.wikipedia\.org/wiki/[-\w%.#]+
# hit-count: 5 file-count: 3
# Non-English
[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*
# hit-count: 4 file-count: 4
# Twitter status
\btwitter\.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)
# hit-count: 3 file-count: 3
# stackexchange -- https://stackexchange.com/feeds/sites
\b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/)
# hit-count: 3 file-count: 2
# vs devops
\bvisualstudio.com(?::443|)/[-\w/?=%&.]*
# hit-count: 2 file-count: 2
# mailto urls
mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,}
# hit-count: 2 file-count: 2
# githubusercontent
/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]*
# hit-count: 2 file-count: 2
# hex runs
\b[0-9a-fA-F]{16,}\b
# hit-count: 2 file-count: 2
# curl arguments
\b(?:\\n|)curl(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
# hit-count: 2 file-count: 1
# microsoft
\b(?:https?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com/[-_a-zA-Z0-9()=./%]*
# hit-count: 1 file-count: 1
# Amazon
\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)
# hit-count: 1 file-count: 1
# gist github
\bgist\.github\.com/[^/\s"]+/[0-9a-f]+
# hit-count: 1 file-count: 1
# Contributor
\[[^\]]+\]\(https://github\.com/[^/\s"]+\)
# hit-count: 1 file-count: 1
# medium
\bmedium\.com/\@?[^/\s"]+/[-\w]+
# hit-count: 1 file-count: 1
# Twitter markdown
\[\@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\)
# Questionably acceptable forms of `in to`
# Personally, I prefer `log into`, but people object
# https://www.tprteaching.com/log-into-log-in-to-login/
\b[Ll]og in to\b
# acceptable duplicates
# ls directory listings
[-bcdlpsw](?:[-r][-w][-sx]){3}\s+\d+\s+(\S+)\s+\g{-1}\s+\d+\s+
# C types and repeated CSS values
\s(center|div|inherit|long|LONG|none|normal|solid|thin|transparent|very)(?: \g{-1})+\s
# go templates
\s(\w+)\s+\g{-1}\s+\`(?:graphql|json|yaml):
# javadoc / .net
(?:[\\@](?:groupname|param)|(?:public|private)(?:\s+static|\s+readonly)*)\s+(\w+)\s+\g{-1}\s
# Commit message -- Signed-off-by and friends
^\s*(?:(?:Based-on-patch|Co-authored|Helped|Mentored|Reported|Reviewed|Signed-off)-by|Thanks-to): (?:[^<]*<[^>]*>|[^<]*)\s*$
# Autogenerated revert commit message
^This reverts commit [0-9a-f]{40}\.$
# ignore long runs of a single character:
\b([A-Za-z])\g{-1}{3,}\b
# ignore inline code
`\w+`

View File

@@ -1,10 +1,7 @@
^attache$
benefitting
occurences?
^dependan.*
^oer$
occurence
Sorce
^[Ss]pae.*
^untill$
^untilling$
^wether.*
^[Ss]pae
^untill
^wether

View File

@@ -4,9 +4,3 @@ updates:
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: bundler
reviewers:
- "jekyll/core"
directory: /
schedule:
interval: weekly

View File

@@ -2,7 +2,7 @@
This issue is reserved for people who never contributed to Open Source before. We know that the process of creating a pull request is the biggest barrier for new contributors. This issue is for you 💝
[About First Timers Only](https://www.firsttimersonly.com/).
[About First Timers Only](http://www.firsttimersonly.com/).
### 🤔 What you will need to know.

View File

@@ -1,17 +0,0 @@
{
"pull-request-title-pattern": "chore: release 💎 ${version}",
"packages": {
".": {
"changelog-path": "History.markdown",
"release-type": "ruby",
"bump-minor-pre-major": false,
"bump-patch-for-minor-pre-major": false,
"draft": false,
"prerelease": false,
"include-component-in-tag": false,
"include-v-in-tag": true,
"version-file": "lib/jekyll/version.rb"
}
},
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
}

View File

@@ -1,3 +0,0 @@
{
".": "4.4.1"
}

View File

@@ -1,30 +0,0 @@
name: Micro Benchmark Runs
on:
workflow_dispatch:
inputs:
path:
description: "Path to benchmark script relative to 'benchmark' directory."
required: true
default: "capture-assign.rb"
ruby_version:
description: "Ruby version to use (via `ruby/setup-ruby@v1`) action."
required: false
default: "2.7"
jobs:
benchmark:
name: "Benchmark (${{ github.event.inputs.path }}) (Ruby ${{ github.event.inputs.ruby_version }})"
runs-on: "ubuntu-latest"
env:
BENCHMARK: true
steps:
- name: Checkout Jekyll
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ github.event.inputs.ruby_version }}
bundler-cache: true
- name: Run Benchmark
run: "bundle exec ruby benchmark/${{ github.event.inputs.path }}"

View File

@@ -3,85 +3,60 @@ name: Continuous Integration
on:
push:
branches:
- master
- "*-stable"
paths-ignore:
- "docs/**"
- master
- /.*-stable/
pull_request:
branches:
- master
- "*-stable"
paths-ignore:
- "docs/**"
- master
- /.*-stable/
jobs:
ci:
name: "Run Tests (${{ matrix.ruby.label }} on ${{ matrix.os.label }})"
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
ruby:
- label: Ruby 2.7
version: "2.7"
- label: Ruby 3.3
version: "3.3"
- label: Ruby 3.4
version: "3.4"
os:
- label: Linux
image: "ubuntu-latest"
- label: Windows
image: "windows-latest"
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: "Set up ${{ matrix.ruby.label }}"
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby.version }}
bundler-cache: true
- name: Run Minitest based tests
run: bash script/test
- name: Run Cucumber based tests
run: bash script/cucumber --color
- name: Generate and Build a new site
run: bash script/default-site
if: "!contains(github.event.commits[0].message, '[ci skip]')"
name: 'Ruby ${{ matrix.ruby_version }}'
runs-on: 'ubuntu-latest'
xtras:
name: "${{ matrix.job_name }} (${{ matrix.setup_label }})"
runs-on: "ubuntu-latest"
strategy:
fail-fast: false
matrix:
include:
- job_name: "Unit Test with JRuby"
setup_label: "JRuby 9.4.8.0"
step_name: "Run Minitest based tests"
script_file: "test"
ruby_version: "jruby-9.4.8.0"
- job_name: "Smoke Test with JRuby"
setup_label: "JRuby 9.4.8.0"
step_name: "Generate and Build a new site"
script_file: "default-site"
ruby_version: "jruby-9.4.8.0"
- job_name: "Profile Docs Site"
setup_label: "Ruby 2.7"
step_name: "Build and Profile docs site"
script_file: "profile-docs"
ruby_version: "2.7"
- job_name: "Style Check"
setup_label: "Ruby 2.7"
step_name: "Run RuboCop"
script_file: "fmt"
ruby_version: "2.7"
ruby_version:
- 2.5
- 2.7
- 3.0
- jruby:9.2.14.0
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: "Set up ${{ matrix.setup_label }}"
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby_version }}
bundler-cache: true
- name: ${{ matrix.step_name }}
run: bash script/${{ matrix.script_file }}
- uses: actions/checkout@v2
- name: Download released earth
run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.5.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'"
- name: Execute tests
run: earthly --build-arg RUBY=${{ matrix.ruby_version }} +test
profile_docs:
if: "!contains(github.event.commits[0].message, '[ci skip]')"
name: 'Profile Docs Site (Ruby ${{ matrix.ruby_version }})'
runs-on: 'ubuntu-latest'
strategy:
fail-fast: false
matrix:
ruby_version:
- 2.5 # Minimum required Ruby version in gemspec
steps:
- uses: actions/checkout@v2
- name: Download released earth
run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.5.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'"
- name: Execute tests
run: earthly --build-arg RUBY=${{ matrix.ruby_version }} +profile-docs
style_check:
if: "!contains(github.event.commits[0].message, '[ci skip]')"
name: 'Style Check (Ruby ${{ matrix.ruby_version }})'
runs-on: 'ubuntu-latest'
strategy:
fail-fast: false
matrix:
ruby_version:
- 2.5
steps:
- uses: actions/checkout@v2
- name: Download released earth
run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.5.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'"
- name: Execute tests
run: earthly --build-arg RUBY=${{ matrix.ruby_version }} +style-check

View File

@@ -1,65 +0,0 @@
name: "CodeQL"
on:
# push:
# branches: [ 'master' ]
# pull_request:
# # The branches below must be a subset of the branches above
# branches: [ 'master' ]
schedule:
- cron: '56 11 * * 5'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'ruby', 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"

View File

@@ -1,50 +0,0 @@
# This workflow checks to ensure that all PR titles conform to the conventional
# commit spec and use the correct type and scopes. The spec for conventional
# commits can be found at https://www.conventionalcommits.org and there is a
# nice cheatsheet in a github gist at
# https://gist.github.com/qoomon/5dfcdf8eec66a051ecd85625518cfd13
#
# The types in this workflow match the spec. The scopes are custom to
# Jekyll and can be changed if desired.
name: Conventional Commit Check
permissions:
pull-requests: read
on:
pull_request_target:
types: [opened, edited, synchronize, reopened, ready_for_review]
branches:
- master
jobs:
commit_lint:
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5.5.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: |
feat
fix
perf
refactor
docs
style
test
chore
scopes: |
core
cli
commands
plugins
site
helpers
converters
filters
tags
drops
tests
docs
requireScope: false

View File

@@ -4,8 +4,6 @@ on:
push:
branches:
- master
paths:
- "docs/**"
env:
RUBY_VERSION: 2.7
@@ -19,7 +17,7 @@ jobs:
BUNDLE_JOBS: 4
BUNDLE_RETRY: 3
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}

View File

@@ -1,44 +0,0 @@
name: "Release, please!"
on:
push:
branches:
- master
permissions:
contents: write
pull-requests: write
jobs:
release-please:
if: ${{ github.repository == 'jekyll/jekyll' }}
runs-on: ubuntu-latest
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
steps:
- name: Run Release Please
id: release
uses: googleapis/release-please-action@v4
with:
config-file: .github/release-please-config.json
manifest-file: .github/release-please-manifest.json
token: ${{ secrets.JEKYLLBOT_TOKEN }}
publish-gem:
needs: release-please
if: ${{ needs.release-please.outputs.release_created == 'true' }}
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
- name: Build and Publish Gem
uses: rubygems/release-gem@v1

View File

@@ -1,95 +1,19 @@
name: Spell Check
# Comment management is handled through a secondary job, for details see:
# https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Restricted-Permissions
#
# `jobs.comment-push` runs when a push is made to a repository and the `jobs.spelling` job needs to make a comment
# (in odd cases, it might actually run just to collapse a comment, but that's fairly rare)
# it needs `contents: write` in order to add a comment.
#
# `jobs.comment-pr` runs when a pull_request is made to a repository and the `jobs.spelling` job needs to make a comment
# or collapse a comment (in the case where it had previously made a comment and now no longer needs to show a comment)
# it needs `pull-requests: write` in order to manipulate those comments.
# Updating pull request branches is managed via comment handling.
# For details, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-expect-list
#
# These elements work together to make it happen:
#
# `on.issue_comment`
# This event listens to comments by users asking to update the metadata.
#
# `jobs.update`
# This job runs in response to an issue_comment and will push a new commit
# to update the spelling metadata.
#
# `with.experimental_apply_changes_via_bot`
# Tells the action to support and generate messages that enable it
# to make a commit to update the spelling metadata.
#
# `with.ssh_key`
# In order to trigger workflows when the commit is made, you can provide a
# secret (typically, a write-enabled github deploy key).
#
# For background, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-with-deploy-key
name: Spell checking
on:
# Switch from `pull_request_target` event to reduce distraction from comments
# regarding errors reported in unmodified files.
pull_request:
branches:
- master
- "*-stable"
tags-ignore:
- "**"
types:
- 'opened'
- 'reopened'
- 'synchronize'
pull_request_target:
push:
jobs:
spelling:
name: Spell Check
permissions:
contents: read
pull-requests: read
actions: read
outputs:
followup: ${{ steps.spelling.outputs.followup }}
build:
name: Spell checking
runs-on: ubuntu-latest
if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'"
concurrency:
group: spelling-${{ github.event.pull_request.number || github.ref }}
# note: If you use only_check_changed_files, you do not want cancel-in-progress
cancel-in-progress: true
steps:
- name: check-spelling
id: spelling
uses: check-spelling/check-spelling@v0.0.26
- name: checkout-merge
if: "contains(github.event_name, 'pull_request')"
uses: actions/checkout@v2.0.0
with:
# This workflow runs in response to both `push` and `pull_request`, if there's an open `pull_request` in the same repository
# for a given branch, there's no reason to spend resources checking both the `push` and the `pull_request`, so this flag tells
# the action while running for the `push` to find the `pull_request` and stop working early:
suppress_push_for_open_pull_request: 1
# The action will manage checking out the repository itself instead of requiring the workflow to use `actions/checkout...`:
checkout: true
# If running without `: write`, posting a comment won't work, and for security `: write` permissions are left to a distinct
# (optional) job, here we skip trying to post a comment:
post_comment: 0
use_magic_file: 1
extra_dictionary_limit: 10
extra_dictionaries:
cspell:software-terms/software-terms.txt
cspell:php/php.txt
cspell:node/node.txt
cspell:django/django.txt
cspell:html/html.txt
cspell:npm/npm.txt
cspell:ruby/ruby.txt
cspell:fullstack/fullstack.txt
cspell:filetypes/filetypes.txt
check_extra_dictionaries: ''
dictionary_source_prefixes: >-
{"cspell": "https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20241114/dictionaries/"}
# This workflow has opted not to use comments (users can view the report in GitHub Step Summary)
ref: refs/pull/${{github.event.pull_request.number}}/merge
- name: checkout
if: "!contains(github.event_name, 'pull_request')"
uses: actions/checkout@v2.0.0
- uses: check-spelling/check-spelling@v0.0.19

View File

@@ -1,11 +1,16 @@
name: Third-Party Repository Profiling
on:
workflow_dispatch:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build_n_profile:
runs-on: "ubuntu-latest"
if: "!contains(github.event.commits[0].message, '[ci skip]')"
runs-on: 'ubuntu-latest'
env:
BUNDLE_GEMFILE: "sandbox/Gemfile"
BUNDLE_PATH: "vendor/bundle"
@@ -13,19 +18,19 @@ jobs:
BUNDLE_RETRY: 3
steps:
- name: Checkout Jekyll
uses: actions/checkout@v4
uses: actions/checkout@v2
with:
fetch-depth: 5
path: jekyll
- name: Checkout Third-Party Repository
uses: actions/checkout@v4
uses: actions/checkout@v2
with:
repository: ashmaroli/tomjoht.github.io
path: sandbox
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4
ruby-version: 2.7
bundler-cache: true
- name: Run Jekyll Build 3 times
run: |

View File

@@ -1,53 +1,32 @@
# -----------------------------------------------------------------------------
# This file has been formatted via a Rake Task configuring cops from
# RuboCop v1.57.2.
#
# To add more cops, paste configurations at the end of the file and run
# the rake task via `bundle exec rake rubocop:format_config`.
# -----------------------------------------------------------------------------
inherit_from: ".rubocop_todo.yml"
---
inherit_from: .rubocop_todo.yml
require:
- "./rubocop/jekyll"
- rubocop-minitest
- rubocop-performance
- rubocop-rake
- rubocop-rspec
- rubocop-minitest
- rubocop-performance
- rubocop-rake
- rubocop-rspec
- ./rubocop/jekyll
# Directive for all cops
AllCops:
TargetRubyVersion: 2.7
Include:
- lib/**/*.rb
- test/**/*.rb
Exclude:
- benchmark/**/*
- bin/**/*
- exe/**/*
- script/**/*
- tmp/**/*
- vendor/**/*
# Configure custom cop
Jekyll/NoPutsAllowed:
Exclude:
- rake/*.rake
- rake/*.rake
# Configure built-in cops
# =======================
AllCops:
TargetRubyVersion: 2.5
Include:
- lib/**/*.rb
- test/**/*.rb
Exclude:
- bin/**/*
- exe/**/*
- benchmark/**/*
- script/**/*
- vendor/**/*
- tmp/**/*
# Gemspec cops
# ----------------------------------------
Gemspec/DeprecatedAttributeAssignment:
Gemspec/DateAssignment:
Enabled: true
Gemspec/DevelopmentDependencies:
Enabled: false
Gemspec/RequireMFA:
Enabled: false
# Layout cops
# ----------------------------------------
Layout/BeginEndAlignment:
Enabled: true
Layout/EmptyComment:
@@ -56,8 +35,6 @@ Layout/EmptyLinesAroundAttributeAccessor:
Enabled: true
Layout/EndAlignment:
Severity: error
Layout/EndOfLine:
Enabled: false
Layout/FirstArrayElementIndentation:
EnforcedStyle: consistent
Layout/FirstHashElementIndentation:
@@ -66,18 +43,12 @@ Layout/HashAlignment:
EnforcedHashRocketStyle: table
Layout/IndentationWidth:
Severity: error
Layout/LineContinuationLeadingSpace:
Enabled: true
Layout/LineContinuationSpacing:
Enabled: true
Layout/LineEndStringConcatenationIndentation:
Enabled: true
Layout/LineLength:
Exclude:
- Gemfile
- Rakefile
- features/**/*.rb
- rake/**/*.rake
- !ruby/regexp /features\/.*.rb/
- Rakefile
- rake/*.rake
- Gemfile
Max: 100
Severity: warning
Layout/MultilineMethodCallIndentation:
@@ -91,24 +62,16 @@ Layout/SpaceBeforeBrackets:
Layout/SpaceInsideHashLiteralBraces:
Enabled: true
Exclude:
- test/**/*.rb
- test/**/*.rb
# Lint cops
# ----------------------------------------
Lint/AmbiguousAssignment:
Enabled: true
Lint/AmbiguousOperatorPrecedence:
Enabled: true
Lint/AmbiguousRange:
Enabled: true
Lint/BinaryOperatorWithIdenticalOperands:
Enabled: true
Lint/ConstantDefinitionInBlock:
Enabled: true
Exclude:
- test/**/*.rb
Lint/ConstantOverwrittenInRescue:
Enabled: true
- test/**/*.rb
Lint/DeprecatedConstants:
Enabled: true
Lint/DeprecatedOpenSSLConstant:
@@ -117,10 +80,6 @@ Lint/DuplicateBranch:
Enabled: true
Lint/DuplicateElsifCondition:
Enabled: true
Lint/DuplicateMagicComment:
Enabled: true
Lint/DuplicateMatchPattern:
Enabled: true
Lint/DuplicateRegexpCharacterClassElement:
Enabled: true
Lint/DuplicateRequire:
@@ -145,13 +104,11 @@ Lint/LambdaWithoutLiteralBlock:
Enabled: true
Lint/MissingSuper:
Enabled: false
Lint/MixedCaseRange:
Enabled: true
Lint/MixedRegexpCaptureTypes:
Enabled: false
Lint/NestedPercentLiteral:
Exclude:
- test/test_site.rb
- test/test_site.rb
Lint/NoReturnInBeginEndBlocks:
Enabled: true
Lint/NumberedParameterAssignment:
@@ -164,16 +121,8 @@ Lint/RaiseException:
Enabled: true
Lint/RedundantDirGlobSort:
Enabled: true
Lint/RedundantRegexpQuantifiers:
Enabled: true
Lint/RedundantSafeNavigation:
Enabled: true
Lint/RefinementImportMethods:
Enabled: true
Lint/RequireRangeParentheses:
Enabled: true
Lint/RequireRelativeSelfPath:
Enabled: true
Lint/SelfAssignment:
Enabled: true
Lint/StructNewOverride:
@@ -198,38 +147,32 @@ Lint/UnreachableLoop:
Enabled: true
Lint/UselessMethodDefinition:
Enabled: true
Lint/UselessRuby2Keywords:
Enabled: true
Lint/UselessTimes:
Enabled: true
Lint/Void:
Exclude:
- lib/jekyll/site.rb
- lib/jekyll/site.rb
# Metrics cops
# ----------------------------------------
Metrics/AbcSize:
Max: 23
Metrics/BlockLength:
Exclude:
- lib/jekyll/configuration.rb
- rake/**/*.rake
- test/**/*.rb
- test/**/*.rb
- lib/jekyll/configuration.rb
- rake/*.rake
Metrics/ClassLength:
Exclude:
- features/**/*.rb
- lib/jekyll/commands/serve.rb
- lib/jekyll/configuration.rb
- lib/jekyll/document.rb
- lib/jekyll/site.rb
- test/**/*.rb
- !ruby/regexp /features\/.*.rb$/
- !ruby/regexp /test\/.*.rb$/
- lib/jekyll/document.rb
- lib/jekyll/site.rb
- lib/jekyll/commands/serve.rb
- lib/jekyll/configuration.rb
Max: 240
Metrics/CollectionLiteralLength:
Enabled: true
Metrics/CyclomaticComplexity:
Exclude:
- lib/jekyll/commands/serve.rb
- lib/jekyll/utils.rb
- lib/jekyll/utils.rb
- lib/jekyll/commands/serve.rb
Max: 11
Metrics/MethodLength:
CountComments: false
@@ -237,102 +180,54 @@ Metrics/MethodLength:
Severity: error
Metrics/ModuleLength:
Exclude:
- lib/jekyll/filters.rb
- lib/jekyll/filters.rb
Max: 240
Metrics/ParameterLists:
Max: 4
Metrics/PerceivedComplexity:
Max: 13
# Minitest cops
# ----------------------------------------
Minitest/AssertEmptyLiteral:
Enabled: false
Minitest/AssertInDelta:
Enabled: true
Minitest/AssertionInLifecycleHook:
Enabled: true
Minitest/AssertKindOf:
Enabled: true
Minitest/AssertOperator:
Enabled: false
Minitest/AssertOutput:
Enabled: true
Minitest/AssertPathExists:
Enabled: true
Minitest/AssertPredicate:
Enabled: false
Minitest/AssertRaisesWithRegexpArgument:
Enabled: true
Minitest/AssertSame:
Enabled: true
Minitest/AssertSilent:
Enabled: true
Minitest/AssertWithExpectedArgument:
Enabled: true
Minitest/AssertionInLifecycleHook:
Enabled: true
Minitest/DuplicateTestRun:
Enabled: true
Minitest/EmptyLineBeforeAssertionMethods:
Enabled: false
Minitest/LifecycleHooksOrder:
Enabled: true
Minitest/LiteralAsActualArgument:
Enabled: true
Minitest/TestMethodName:
Enabled: false
Minitest/MultipleAssertions:
Enabled: true
Minitest/NonExecutableTestMethod:
Enabled: true
Minitest/NonPublicTestMethod:
Enabled: true
Minitest/RedundantMessageArgument:
Enabled: true
Minitest/RefuteInDelta:
Enabled: true
Minitest/RefuteKindOf:
Enabled: true
Minitest/RefuteOperator:
Enabled: false
Minitest/RefutePathExists:
Enabled: true
Minitest/RefutePredicate:
Enabled: false
Minitest/RefuteSame:
Enabled: true
Minitest/ReturnInTestMethod:
Enabled: true
Minitest/SkipEnsure:
Enabled: true
Minitest/SkipWithoutReason:
Enabled: true
Minitest/TestFileName:
Enabled: true
Exclude:
- test/helper.rb
Minitest/TestMethodName:
Enabled: false
Minitest/UnreachableAssertion:
Enabled: true
Minitest/UnspecifiedException:
Enabled: true
Minitest/UselessAssertion:
Enabled: true
Minitest/AssertEmptyLiteral:
Enabled: false
# Naming cops
# ----------------------------------------
Naming/FileName:
Enabled: false
Naming/HeredocDelimiterNaming:
Exclude:
- test/**/*.rb
- test/**/*.rb
Naming/MemoizedInstanceVariableName:
Exclude:
- lib/jekyll/convertible.rb
- lib/jekyll/drops/site_drop.rb
- lib/jekyll/drops/unified_payload_drop.rb
- lib/jekyll/page_without_a_file.rb
- lib/jekyll/convertible.rb
- lib/jekyll/drops/site_drop.rb
- lib/jekyll/drops/unified_payload_drop.rb
- lib/jekyll/page_without_a_file.rb
# Performance cops
# ----------------------------------------
Performance/AncestorsInclude:
Enabled: false
Performance/ArraySemiInfiniteRangeSlice:
@@ -347,18 +242,10 @@ Performance/CollectionLiteralInLoop:
Enabled: true
Performance/ConstantRegexp:
Enabled: true
Performance/MapCompact:
Enabled: true
Performance/MapMethodChain:
Enabled: true
Performance/MethodObjectAsBlock:
Enabled: true
Performance/RedundantEqualityComparisonBlock:
Enabled: false
Performance/RedundantSortBlock:
Enabled: true
Performance/RedundantSplitRegexpArgument:
Enabled: true
Performance/RedundantStringChars:
Enabled: true
Performance/ReverseFirst:
@@ -367,32 +254,22 @@ Performance/SortReverse:
Enabled: false
Performance/Squeeze:
Enabled: true
Performance/StringIdentifierArgument:
Enabled: true
Performance/StringInclude:
Enabled: true
Exclude:
- lib/jekyll/utils/platforms.rb
- lib/jekyll/utils/platforms.rb
Performance/Sum:
Enabled: true
# Security cops
# ----------------------------------------
Security/CompoundHash:
Enabled: true
Security/IoMethods:
Enabled: true
Security/MarshalLoad:
Exclude:
- lib/jekyll/regenerator.rb
- test/**/*.rb
- !ruby/regexp /test\/.*.rb$/
- lib/jekyll/regenerator.rb
Security/YAMLLoad:
Exclude:
- features/**/*.rb
- test/**/*.rb
- !ruby/regexp /features\/.*.rb/
- !ruby/regexp /test\/.*.rb$/
# Style cops
# ----------------------------------------
Style/AccessModifierDeclarations:
Enabled: false
Style/AccessorGrouping:
@@ -405,56 +282,38 @@ Style/ArgumentsForwarding:
Enabled: false
Style/ArrayCoercion:
Enabled: true
Style/ArrayIntersect:
Enabled: true
Style/BisectedAttrAccessor:
Enabled: true
Style/CaseLikeIf:
Enabled: true
Style/StringChars:
Enabled: true
Style/ClassAndModuleChildren:
Exclude:
- test/**/*.rb
- test/**/*.rb
Style/ClassEqualityComparison:
Enabled: true
Style/CollectionCompact:
Enabled: true
Style/CombinableLoops:
Enabled: true
Style/ConcatArrayLiterals:
Enabled: true
Style/DirEmpty:
Enabled: true
Style/DocumentDynamicEvalDefinition:
Enabled: true
Style/Documentation:
Enabled: false
Style/DoubleNegation:
Enabled: false
Style/EmptyHeredoc:
Enabled: true
Style/EndlessMethod:
Enabled: true
Style/EnvHome:
Enabled: true
Style/ExactRegexpMatch:
Enabled: true
Style/ExplicitBlockArgument:
Enabled: false
Style/ExponentialNotation:
Enabled: true
Style/FetchEnvVar:
Enabled: false
Style/FileEmpty:
Enabled: true
Style/FileRead:
Enabled: false
Style/FileWrite:
Enabled: true
Style/FormatStringToken:
Exclude:
- lib/jekyll/liquid_renderer/table.rb
- lib/jekyll/profiler.rb
- lib/jekyll/utils/ansi.rb
- lib/jekyll/utils/ansi.rb
- lib/jekyll/liquid_renderer/table.rb
- lib/jekyll/profiler.rb
Style/FrozenStringLiteralComment:
EnforcedStyle: always
Style/GlobalStdStream:
@@ -464,7 +323,7 @@ Style/GuardClause:
Style/HashAsLastArrayItem:
Enabled: true
Style/HashConversion:
Enabled: true
Enabled: true
Style/HashEachMethods:
Enabled: true
Style/HashExcept:
@@ -482,115 +341,62 @@ Style/IfWithBooleanLiteralBranches:
Enabled: true
Style/KeywordParametersOrder:
Enabled: true
Style/MagicCommentFormat:
Enabled: true
Style/MapCompactWithConditionalBlock:
Enabled: true
Style/MapToHash:
Enabled: true
Style/MinMaxComparison:
Enabled: true
Style/MixinUsage:
Exclude:
- test/helper.rb
- test/helper.rb
Style/ModuleFunction:
Enabled: false
Style/MultilineTernaryOperator:
Severity: error
Style/NegatedIfElseCondition:
Enabled: true
Style/NestedFileDirname:
Enabled: true
Style/NilLambda:
Enabled: true
Style/ObjectThen:
Enabled: true
Style/OperatorMethodCall:
Enabled: true
Style/OptionalBooleanParameter:
Enabled: true
Exclude:
- lib/jekyll/log_adapter.rb
Style/PercentLiteralDelimiters:
PreferredDelimiters:
"%Q": "{}"
"%W": "()"
"%W": ()
"%q": "{}"
"%r": "!!"
"%s": "()"
"%w": "()"
"%x": "()"
Style/QuotedSymbols:
Enabled: true
"%s": ()
"%w": ()
"%x": ()
Style/RedundantArgument:
Enabled: true
Style/RedundantArrayConstructor:
Enabled: true
Style/RedundantAssignment:
Enabled: true
Style/RedundantConstantBase:
Enabled: true
Style/RedundantCurrentDirectoryInPath:
Enabled: true
Style/RedundantDoubleSplatHashBraces:
Enabled: true
Style/RedundantEach:
Enabled: true
Style/RedundantFetchBlock:
Enabled: false
Style/RedundantFileExtensionInRequire:
Enabled: true
Style/RedundantFilterChain:
Enabled: true
Style/RedundantHeredocDelimiterQuotes:
Enabled: true
Style/RedundantInitialize:
Enabled: true
Exclude:
- lib/jekyll/plugin.rb
Style/RedundantLineContinuation:
Enabled: true
Style/RedundantRegexpArgument:
Enabled: true
Style/RedundantRegexpCharacterClass:
Enabled: true
Style/RedundantRegexpConstructor:
Enabled: true
Style/RedundantRegexpEscape:
Enabled: true
Style/RedundantSelfAssignment:
Enabled: true
Style/RedundantSelfAssignmentBranch:
Enabled: true
Style/RedundantStringEscape:
Enabled: true
Style/RegexpLiteral:
EnforcedStyle: percent_r
Style/RescueModifier:
Enabled: false
Style/ReturnNilInPredicateMethodDefinition:
Enabled: true
Style/SafeNavigation:
Exclude:
- lib/jekyll/document.rb
- lib/jekyll/page.rb
- lib/jekyll/document.rb
Style/SignalException:
EnforcedStyle: only_raise
Style/SingleArgumentDig:
Enabled: true
Style/SingleLineDoEndBlock:
Enabled: true
Style/SlicingWithRange:
Enabled: false
Style/SoleNestedConditional:
Enabled: true
Style/StringChars:
Enabled: true
Style/StringConcatenation:
Enabled: true
Exclude:
- lib/jekyll/commands/*.rb
- test/**/*.rb
- lib/jekyll/commands/*.rb
- test/**/*.rb
Style/StringLiterals:
EnforcedStyle: double_quotes
Style/StringLiteralsInInterpolation:

View File

@@ -1,17 +1,11 @@
# This configuration was generated by
# `rubocop --auto-gen-config --auto-gen-only-exclude`
# on 2022-04-06 10:48:47 UTC using RuboCop version 1.26.1.
# on 2020-11-23 15:56:48 UTC using RuboCop version 1.4.0.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.
# Offense count: 1
# This cop supports safe auto-correction (--auto-correct).
Performance/BindCall:
Exclude:
- 'test/helper.rb'
# Offense count: 1
Style/CombinableLoops:
Exclude:
@@ -23,3 +17,9 @@ Style/CombinableLoops:
Style/OptionalBooleanParameter:
Exclude:
- 'lib/jekyll/log_adapter.rb'
# Offense count: 1
# Configuration parameters: Methods.
Style/RedundantArgument:
Exclude:
- 'lib/jekyll/tags/link.rb'

34
Gemfile
View File

@@ -15,21 +15,15 @@ end
#
group :test do
gem "activesupport", "< 7.1.0"
gem "cucumber", "~> 9.0"
gem "cucumber", RUBY_VERSION >= "2.5" ? "~> 5.1.2" : "~> 4.1"
gem "httpclient"
gem "jekyll_test_plugin"
gem "jekyll_test_plugin_malicious"
gem "memory_profiler"
# Runtime dependency of gem `httpclient`. _Needed only in Ruby 3.4+_.
# Remove once gem `httpclient` ships with `mutex_m` listed as a dependency in its gemspec.
gem "mutex_m", "~> 0.3" if RUBY_VERSION >= "3.4"
gem "nokogiri", "~> 1.7"
gem "rspec"
gem "rspec-mocks"
gem "rubocop", "~> 1.57.2"
gem "rubocop", "~> 1.18.3"
gem "rubocop-minitest"
gem "rubocop-performance"
gem "rubocop-rake"
@@ -38,12 +32,8 @@ group :test do
gem "test-theme", :path => File.expand_path("test/fixtures/test-theme", __dir__)
gem "test-theme-skinny", :path => File.expand_path("test/fixtures/test-theme-skinny", __dir__)
gem "test-theme-symlink", :path => File.expand_path("test/fixtures/test-theme-symlink", __dir__)
gem "test-theme-w-empty-data", :path => File.expand_path("test/fixtures/test-theme-w-empty-data", __dir__)
if RUBY_ENGINE == "jruby"
gem "http_parser.rb", "~> 0.6.0"
gem "jruby-openssl"
end
gem "jruby-openssl" if RUBY_ENGINE == "jruby"
end
#
@@ -54,7 +44,7 @@ group :test_legacy do
gem "minitest"
gem "minitest-profile"
gem "minitest-reporters"
gem "shoulda-context"
gem "shoulda"
gem "simplecov"
end
@@ -79,8 +69,8 @@ group :jekyll_optional_dependencies do
gem "jekyll-paginate"
gem "jekyll-redirect-from"
gem "kramdown-syntax-coderay"
gem "matrix"
gem "mime-types", "~> 3.0"
gem "rdoc", "~> 6.0"
gem "tomlrb"
platforms :ruby, :mswin, :mingw, :x64_mingw do
@@ -92,25 +82,13 @@ group :jekyll_optional_dependencies do
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library
platforms :jruby, :mswin, :mingw, :x64_mingw do
gem "tzinfo", ENV["TZINFO_VERSION"] if ENV["TZINFO_VERSION"]
gem "tzinfo", "~> 1.2"
gem "tzinfo-data"
end
end
#
group :rdoc, :optional => true do
# Psych 5 has stopped bundling `libyaml` and expects it to be installed on the host system prior
# to being invoked.
# Since we don't have a direct dependency on the Psych gem (it gets included in the gem bundle as
# a dependency of the `rdoc` gem), lock psych gem to v4.x instead of installing `libyaml` in our
# development / CI environment.
gem "psych", "~> 4.0"
gem "rdoc", "~> 6.0"
end
#
group :site do
gem "html-proofer", "~> 3.4" if ENV["PROOF"]

View File

@@ -1,321 +1,6 @@
## HEAD
### Bug Fixes
* Avoid caching resource when called via `include_relative` tag (#9784)
* Fix logs containing IPv6 URLs (#9813)
* Do not treat colons in `url_placeholders` as URI delimiters (#9850)
* Fix servlet do_GET header logic (#9867)
* Add logger to Gemfile for Ruby 4.0 (#9920)
### Documentation
* Improve documentation on collections in step-by-step walkthrough (#9803)
* Add `https://form.taxi` as a third-party resource for forms (#9802)
* Add Supranode to third-party deployment guide (#9786)
* Document the need for a `Gemfile` in deployment step of step-by-step walkthrough (#9805)
* Add Azion to the 3rd party deployment docs (#9811)
* Add ruby-erb prerequisite for Arch Linux installations (#9832)
* Add jekyllup.com to themes documentation (#9882)
* docs: Update contributor badge in README to include avatar height and limit parameters (#9912)
* Update WDM (0.1.1 → 0.2.0) in the Windows docs (#9897)
* Bump supported versions (#9923)
* Add GitCMS to resources docs (#9960)
### Development Fixes
* Improve readability of `post_url` tag (#9829)
* Fix flaky test that depends on current minute (#9889)
* build: fix broken CI on newer rubies (#9954)
### Minor Enhancements
* feat: Allowing post_url tag to receive liquid variables (#9776)
* Add .ruby-lsp to default excludes (#9914)
* Allow configuring future metadata for individual collections (#9925)
## 4.4.1 / 2025-01-29
### Bug Fixes
* Restore globbed path behavior in front matter defaults (#9762)
## 4.4.0 / 2025-01-27
### Minor Enhancements
* Allow marking specific highlighted lines via Liquid (#9138)
* Add gem `csv` to runtime dependency list (#9522)
* Bump the minimum ruby version to 2.7 (#9525)
* Acknowledge `livereload_port` from site config too (#9606)
* Add gem `base64` as runtime dependency (#9740)
* Add gem `json` as runtime_dependency (#9671)
* Remove unnecessary constraint on gem `mercenary` (#9758)
### Bug Fixes
* Optimize default front matter using `File.fnmatch?` (#9185)
* Remove totals in profile table properly (#9186)
* Optimize `Site#each_site_file` (#9187)
* Rename sass partial created for new blank site (#9257)
* Fix `jekyll serve --detach` with jekyll-sass-converter 3.x (#9304)
* Handle TypeError from `where` filter gracefully (#9292)
* Add support for upcoming logger 1.4.3 (#9392)
* Fix typo in devcontainer.json (#9364)
* Correct rubocop lint errors (#9600)
* Fix inexistent layout warning for the default 404 page (#9589)
* Relax version constraint on `wdm` in new Gemfile (#9662)
* Fix `--livereload-ignore` option (#9570)
* Render theme-gem root only in development (#9680)
### Development Fixes
* Cleanup highlight tag (#9177)
* Run tests in utc (#9168)
* Lock Ruby in CI to v3.1.2 and bump JRuby to v9.4.0.0 (#9196)
* Update sass related tests for jekyll-sass-converter 3.x (#9223)
* Split `test/test_tags.rb` into multiple files (#9230)
* test: use hash explicitly for Struct initializer for ruby 3.2 (#9237)
* script/default-site: accept flags for `jekyll new` (#9259)
* Bump check-spelling/check-spelling from 0.0.20 to 0.0.21 (#9205)
* Use check-spelling/check-spelling@v0.0.21 (#9199)
* Bump RuboCop to v1.45.x (#9305)
* Bump Rubocop to version 1.48.x (#9326)
* Bump versions of ruby &amp; nodejs in devcontainer (#9360)
* Bump rubocop version to 1.52.x (#9361)
* Upgrade RuboCop to 1.54 (#9401)
* Add CodeQL workflow (#9397)
* Bump actions/checkout from 3 to 4 (#9442)
* Test suite uses shoulda-context only. (#9441)
* Keep activesupport at version 7.0.x (#9469)
* Bump Rubocop to 1.56.4 (#9459)
* Configure dependabot to handle rubygems dependencies (#9445)
* Update rubocop gem (#9476)
* Fix Performance/StringIdentifierArgument violation in site.rb and allow activesupport 6 for windows tests (#9512)
* Add a few more emeritus team members (#9535)
* Make custom cop inherit `RuboCop::Cop::Base` (#9597)
* CI: Use JRuby 9.4.8.0 (#9654)
* Stop testing with Cucumber on JRuby (#9661)
* Windows CI on GitHub Actions (#9659)
* Run GitHub Actions only if needed (#9664)
* Format `.rubocop.yml` via a rake task (#9687)
* Configure some new cops (#9688)
* Fix expected markup per WAI-ARIA requirements (#9737)
* Add an optional `:rdoc` group of gems (#9742)
* Test `inspect` filter with custom object (#9743)
* Bump cucumber to v9 (#9747)
* Add Ruby 3.4 to CI matrix (#9740)
* Remove unnecessary runtime dependency (#9753)
* Bump `check-spelling/check-spelling` action (#9756)
### Documentation
* Fix Nested tree navigation with recursion example (#9174)
* Fix typo on website (#9203)
* Publish post on major release of sass-converter (#9225)
* Update Jekyll on macOS (macos.md) and current ruby version to 3.1.3 in ruby.yml (#9195)
* Add release post for v4.3.2 (#9263)
* Grammatical reordering in 3-to-4 upgrading docs (#9245)
* fixed grammatical mistake on &#34;showcase&#34; page (#9264)
* Mark `highlight` `mark_lines` feature as 4.4 in docs (#9184)
* Add v3.9.3 release history &amp; post to `master` branch (#9284)
* Update S3 deployment to remove s3_website (#9221)
* Document Exclude behavior, Include overrides and the default exclusion list (#9376)
* Update macos.md, remove Catalina (macOS 10.15) (#9405)
* Update macos.md, add support for Ventura (#9406)
* Typo fix - update to hooks and 3rd party deployment and one other article (#9411)
* Update 07-assets.md (#9393)
* Mention the front matter requirement in pages.md (#9423)
* Point to the Rouge GitHub repo rather than broken website (#9362)
* Add new theme directory to themes resources (#9356)
* Adds Kinsta to 3rd party deployments (#9331)
* Update Fedora prerequisites to include g++ (#9290)
* Update convert-site-to-jekyll.md (#9348)
* Update github-actions documentation (#9426)
* Update resources.md (#9449)
* Add GitHub Pages helpful notes (#9235)
* Clarify which version of Jekyll needs &#39;jekyll-paginate&#39; (#9477)
* chore: update showcases (#9473)
* Add FreeBSD installation instructions (#9481)
* Fix broken link for the security team page (#9497)
* Fix broken links for several Jekyll integrations (#9496)
* Add release post for v4.3.3 (#9511)
* Add docs version badge to page_excerpts feature (#9520)
* Improve accessibility of the docs (#9338)
* Fix gem quote consistency on docs (#9517)
* Make site search work again (#9530)
* Jekyll docs template typo - All pages show &#34;Deployment&#34; (#9548)
* Fixed: Wrong navigation style on the right side of news and docs pages (#9586)
* Add redirect for step-by-step tutorial (#9593)
* Add Jekyll 3.10.0 release post &amp; history (#9625)
* Fix minor docs error (#9641)
* Update windows.md (#9644)
* Document keys of global variable `{{ jekyll }}` (#9653)
* Fix incorrect and inconsistent variables in the permalinks page (#9591)
* Fix lapses in documentation of page variables (#9667)
* Add note about VSCode warning for SCSS files (#9609)
* docs: Fix incorrect parentheses (#9629)
* docs: Fix of a bug in the pagination section (#8890)
* Update current Ruby version renders and macOS docs (#9614)
* Improve docs around using GitHub Actions to build and deploy Jekyll sites (#9682)
* Fix grammar in the description of `page.excerpt` variable (#9689)
* Render HTML tables at `/docs/permalinks/` using a data file (#9666)
* Fix HTML attribute separation whitespace placement in the Navigation include code of Assets step of the Step by Step Tutorial (#9695)
* Fix missing glob matching pattern support description in the documentation of the `include` and `exclude` configuration options (#9697)
* Fix missing `url` configuration option documentation (#9699)
* Link to GitHub Pages Dependency versions page instead of explicitly specifying Jekyll version (#9715)
* Fix broken link on third-party.md (#9704)
* Fix: remove inaccessible links and their descriptions (#9745)
* Add release post for v4.4.0 (#9759)
### Site Enhancements
* Extract markup for `Improve this page` into an inclusion (#9675)
## 4.3.4 / 2024-09-16
### Bug Fixes
* Backport #9662 for v4.3.x: Relax version constraint on wdm in new Gemfile (#9683)
* Backport #9680 for v4.3.x: Render theme-gem root only in development (#9684)
### Development Fixes
* Sync workflows with counterparts on `master` (#9681)
## 4.3.3 / 2023-12-27
### Bug Fixes
* Backport #9392 for v4.3.x: Fix backward compatibility issues in the Logger (#9510)
### Development Fixes
* Backport #9237 for v4.3.x: Use Hash explicitly for Struct initializer (#9285)
## 3.10.0 / 2024-06-23
### Minor Enhancements
* Backport add-csv-dependency from #9522 to Jekyll 3 (#9616)
* 3.10-stable: Add webrick as a dependency (#9620)
## 3.9.5 / 2024-02-12
### Minor Enhancements
* 3.9-stable: allow Pages to be Excerpted (#9550)
## 3.9.4 / 2023-12-28
### Bug Fixes
* Backport #9392 for v3.9.x: Add support for Ruby 3.3 Logger (#9513)
## 3.9.3 / 2023-01-29
### Bug Fixes
* 3.9.x: Support i18n 1.x (#9269)
* Backport #8880 for v3.9.x: Support both tzinfo v1 and v2 along with non-half hour offsets (#9280)
### Development Fixes
* v3.9.x: test under Ruby 3.2 #9272)
* v3.9.x: fix rdiscount test (#9277)
## 4.3.2 / 2023-01-20
### Bug Fixes
* Backport #9257 for v4.3.x: Rename sass partial created for new blank site (#9262)
* Backport #9187 for v4.3.x: Optimize `Site#each_site_file` (#9256)
* Backport #9186 for v4.3.x: Remove totals in profile table properly (#9255)
### Development Fixes
* Backport #9223 for 4.3.x: Update sass related tests for jekyll-sass-converter 3.x (#9254)
## 4.3.1 / 2022-10-26
### Bug Fixes
* Respect user-defined name attribute in documents (#9167)
* Revert &#34;Incrementally rebuild when a data file is changed&#34; (#9170)
### Documentation
* Release post for v4.3.1 (#9171)
## 4.3.0 / 2022-10-20
### Minor Enhancements
* Add webrick as a dependency (#8524)
* Regenerate supported mime types (#8542)
* Update include tag to be more permissive (#8618)
* Optimize `Jekyll::Utils.parse_date` (#8425)
* Update rubocop from 1.12 to 1.18 and min ruby from 2.4 to 2.5 (#8741)
* Always hide cache-dir contents from Git (#8798)
* Remove the warning about auto-regeneration on Windows (#8821)
* Propagate _data folder from theme (#8815)
* Support both tzinfo v1 and v2 along with non-half hour offsets. (#8880)
* Run vendor-mimes to update mime.types (#8940)
* Expose collection static files via `site.static_files` (#8961)
* Expose `basename` from `document.rb` as `name` to Liquid templates (#8761)
* Allow Configurable Converters on CSV (#8858)
* Introduce `theme` drop to expose theme-gem details (#9129)
* Relax version constraint to allow Rouge 4.x (#9134)
* Incrementally rebuild when a data file is changed (#8771)
* Support jekyll-sass-converter 3.x (#9132)
### Bug Fixes
* fix: pin rubocop to 1.12 due to error with ruby 2.4 (#8651)
* Load Jekyll plugins from BUNDLE_GEMFILE location (#8585)
* fix(security): CVE-2021-28834 (#8680)
* Inject livereload script using `location.protocol` instead of `http:` (#8718)
* Respect collections_dir config within include tag (#8756)
* Fix regression in Convertible module from v4.2.0 (#8786)
* Revert #7253: &#34;Don&#39;t reset site.url to localhost:4000 by default&#34; (#8620)
* Improve readability of CI logs (#8877)
* Fix deprecation message for missing doc method (#8960)
* Fix response header for content served via `jekyll serve` (#8965)
* Trigger livereload in sites without pages (#8337)
* Only enable BOM encoding option on UTF encodings (#8363)
* Ensure theme config is a `Jekyll::Configuration` object (#8988)
* Remove misleading totals row from `--profile` table (#9039)
* Unlock Psych dependency (#9135)
* Fix false positive conflicts for static files in a collection (#9141)
### Development Fixes
* style: enable new cops (#8538)
* Allow dependabot to keep github actions up-to-date (#8540)
* Update actions/cache requirement to v2.1.3 (#8543)
* Pin rubocop version (#8564)
* style: add rubocop 1.9 cops (#8567)
* Cross Version Testing Locally and Faster CI (#8610)
* Use official Ruby setup GH action (#8614)
* Spell check action for markdown documentation (#8675)
* Update expect to cover docs/_posts (#8677)
* Bump check-spelling/check-spelling from 0.0.18 to 0.0.19 (#8740)
* Enable Rubocop accessor grouping, fix existing offenses (#8293)
* Tags:Highlight: Decomposed HTMLLegacy formatter (#8623)
* Relax Rubocop Dependency (#8831)
* Add a workflow to build gems consistently (#8830)
* Fix random test failures in TestExcerpt #to_liquid (#8884)
* Lock gem `psych` to `v3.x` (#8918)
* Fix typo in Bug Report template (#8951)
* Check symlink outside site_source without Pathutil (#9015)
* Stop testing with Rubies older than 2.7 on non-Windows (#8955)
* Bump actions/checkout from 2 to 3 (#8986)
* Remove git.io shortlinks from repo (#9045)
* Bump rubocop to 1.32 (#9093)
* Bump RuboCop to `1.36.x` (#9125)
* Use check-spelling/check-spelling@v0.0.20 (#9111)
* Disable pending cops when running rubocop (#9136)
* Relax RDoc version dependency (#9142)
### Documentation
@@ -333,7 +18,7 @@
* docs: troubleshoot macOS with ARM64 architecture (#8560)
* docs: add overview of .jekyll-cache dir (#8648)
* docs: clarify where .jekyll-metadata comes from (#8646)
* Razorops CI/CD added (#8656)
* Razorops cicd added (#8656)
* Specify default port and host for serve commands in docs (#8624)
* Update third-party.md (#8652)
* Add documentation for Sass configuration options (#8587)
@@ -353,56 +38,46 @@
* Remove AWS Amplify from the showcase (#8812)
* Move Frank to Emeritus Core Team Members (#8813)
* Release post for v4.2.1 (#8818)
* Update CircleCI example (#8829)
* Fix typo (#8835)
* Added docs for running locally (#8852)
* Linting README.markdown (#8900)
* Remove text on GITHUB_TOKEN which is now built-in (#8907)
* Add Security Policy document (#8823)
* Manage repository meta documents consistently (#8908)
* docs: add Layer0 deployment guide (#8915)
* docs: Update README generated by `jekyll new-theme` (#8919)
* Update resources.md (#8925)
* Rewrite documentation on installing plugins (#8921)
* Improve maintainers guide on releasing a new version (#8928)
* Fix link for &#34;CloudSh&#34; (#8934)
* Recommend using `actions/cache` in GitHub Actions documentation (#8948)
* Remove references to EOL hakiri.io service (#8946)
* Release post for v4.2.2 (#8982)
* Document releasing off `*-stable` branches (#8984)
* Update document by fix yaml syntax error (#8991)
* Enhance option&#39;s case for Jekyll configuration (#8992)
* Fix typo in `_docs/deployment/manual.md` (#8997)
* Add quiet/verbose options (#8996)
* Update README.markdown re IRC Pointer (#9005)
* Remove Aerobatic (#9007)
* Add Jekyll 3.9.2 release post to &#39;master&#39; branch (#9013)
* Simplify macOS installation docs (#8993)
* Improve document about GitHub Actions section (#8853)
* Update permalinks.md (#9017)
* Add clarity to docs on permalinks placeholders and built-ins (#8995)
* Remove Ionic Framework site from showcase (#9057)
* Windows: describe which option to choose (#9049)
* Improve links (http -&gt; https) (#9064)
* Update ruby version for macos guide (#9086)
* Update posts.md (#9151)
* Release post for v4.3.0 (#9157)
### Bug Fixes
* Add webrick as a dependency (#8524)
* fix: pin rubocop to 1.12 due to error with ruby 2.4 (#8651)
* Revert &#34;style: run rubocop -a&#34; (#8676)
* Load Jekyll plugins from BUNDLE_GEMFILE location (#8585)
* fix(security): CVE-2021-28834 (#8680)
* Inject livereload script using `location.protocol` instead of `http:` (#8718)
* Respect collections_dir config within include tag (#8756)
* Fix regression in Convertible module from v4.2.0 (#8786)
* Revert #7253: &#34;Don&#39;t reset site.url to localhost:4000 by default&#34; (#8620)
### Development Fixes
* style: enable new cops (#8538)
* Allow dependabot to keep github actions up-to-date (#8540)
* Update actions/cache requirement to v2.1.3 (#8543)
* Pin rubocop version (#8564)
* style: add rubocop 1.9 cops (#8567)
* Cross Version Testing Locally and Faster CI (#8610)
* style: run rubocop -a (#8654)
* Use official Ruby setup GH action (#8614)
* Spell check action for markdown documentation (#8675)
* Update expect to cover docs/_posts (#8677)
* Enable Rubocop accessor grouping, fix existing offenses (#8293)
* Tags:Highlight: Decomposed HTMLLegacy formatter (#8623)
### Minor Enhancements
* Regenerate supported mime types (#8542)
* Update include tag to be more permissive (#8618)
* Optimize `Jekyll::Utils.parse_date` (#8425)
* Update rubocop from 1.12 to 1.18 and min ruby from 2.4 to 2.5 (#8741)
* Always hide cache-dir contents from Git (#8798)
* Remove the warning about auto-regeneration on Windows (#8821)
### Site Enhancements
* Improvements to CSS (#7834)
* Slightly update lang `sh` code-block styling (#8857)
## 4.2.2 / 2022-03-03
### Bug Fixes
* Lock `http_parser.rb` gem to `v0.6.x` on JRuby.
### Development Fixes
* Backport #8830 for v4.2.x: Add a workflow to build gems consistently (#8869)
* Lock `rubocop-performance` to `v1.11.x`.
## 4.2.1 / 2021-09-27
@@ -708,19 +383,6 @@
* Fix Kramdown converter based tests for v4.0.x (#8143)
## 3.9.2 / 2022-03-27
### Bug Fixes
* Lock `http_parser.rb` gem to `v0.6.x` on JRuby (#8943)
* Backport #8756 for v3.9.x: Respect collections_dir config within include tag (#8795)
* Backport #8965 for v3.9.x: Fix response header for content served via `jekyll serve` (#8976)
### Development Fixes
* Update and fix CI for `3.9-stable` on Ruby 3.x (#8942)
* Fix CI for commits to `3.9-stable` branch (#8788)
## 3.9.1 / 2021-04-08
### Bug Fixes
@@ -1452,7 +1114,7 @@
* make flakey test more robust (#6277)
* Add a quick test for DataReader (#6284)
* script/backport-pr: commit message no longer includes the `#` (#6289)
* Add CODEOWNERS file to help automate reviews. (#6320)
* Add Add CODEOWNERS file to help automate reviews. (#6320)
* Fix builds on codeclimate (#6333)
* Bump rubies on Travis (#6366)
@@ -2510,7 +2172,7 @@
* Fixed an unclear code comment in site template SCSS (#3837)
* Fix reading of binary metadata file (#3845)
* Remove var collision with site template header menu iteration variable (#3838)
* Change nonexistent `hl_linenos` to `hl_lines` to allow passthrough in safe mode (#3787)
* Change non-existent `hl_linenos` to `hl_lines` to allow passthrough in safe mode (#3787)
* Add missing flag to disable the watcher (#3820)
* Update CI guide to include more direct explanations of the flow (#3891)
* Set `future` to `false` in the default config (#3892)
@@ -2819,7 +2481,7 @@
* Document the `name` variable for collection permalinks (#2829)
* Adds info about installing jekyll in current dir (#2839)
* Remove deprecated `jekyll-projectlist` plugin from list of third-party plugins (#2742)
* Remove tag plugins that are built into Jekyll (#2751)
* Remove tag plugins that are built in to Jekyll (#2751)
* Add `markdown-writer` package for Atom Editor to list of third-party plugins (#2763)
* Fix typo in site documentation for collections (#2764)
* Fix minor typo on plugins docs page (#2765)

View File

@@ -1,11 +1,14 @@
# [Jekyll](https://jekyllrb.com/)
[![Gem Version](https://img.shields.io/gem/v/jekyll.svg)][ruby-gems]
[![Build Status](https://github.com/jekyll/jekyll/workflows/Continuous%20Integration/badge.svg)][ci-workflow]
[![Linux Build Status](https://github.com/jekyll/jekyll/workflows/Continuous%20Integration/badge.svg)][ci-workflow]
[![Windows Build status](https://img.shields.io/appveyor/ci/jekyll/jekyll/master.svg?label=Windows%20build)][appveyor]
[![Security](https://hakiri.io/github/jekyll/jekyll/master.svg)][hakiri]
[![Backers on Open Collective](https://opencollective.com/jekyll/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/jekyll/sponsors/badge.svg)](#sponsors)
[ruby-gems]: https://rubygems.org/gems/jekyll
[hakiri]: https://hakiri.io/github/jekyll/jekyll/master
[ci-workflow]: https://github.com/jekyll/jekyll/actions?query=workflow%3A%22Continuous+Integration%22+branch%3Amaster
[appveyor]: https://ci.appveyor.com/project/jekyll/jekyll/branch/master
@@ -15,7 +18,7 @@ Jekyll is a simple, blog-aware, static site generator perfect for personal, proj
Jekyll does what you tell it to do — no more, no less. It doesn't try to outsmart users by making bold assumptions, nor does it burden them with needless complexity and configuration. Put simply, Jekyll gets out of your way and allows you to concentrate on what truly matters: your content.
See: [https://jekyllrb.com/philosophy](https://jekyllrb.com/philosophy)
See: https://jekyllrb.com/philosophy
## Getting Started
@@ -23,11 +26,11 @@ See: [https://jekyllrb.com/philosophy](https://jekyllrb.com/philosophy)
* Read up about its [Usage](https://jekyllrb.com/docs/usage/) and [Configuration](https://jekyllrb.com/docs/configuration/)
* Take a gander at some existing [Sites](https://github.com/jekyll/jekyll/wiki/sites)
* [Fork](https://github.com/jekyll/jekyll/fork) and [Contribute](https://jekyllrb.com/docs/contributing/) your own modifications
* Have questions? Check out our official forum community [Jekyll Talk](https://talk.jekyllrb.com/) and [`#jekyll` Channel on Libera IRC](https://libera.chat)
* Have questions? Check out our official forum community [Jekyll Talk](https://talk.jekyllrb.com/) or [`#jekyll` on irc.freenode.net](https://botbot.me/freenode/jekyll/)
## Diving In
* [Migrate](https://import.jekyllrb.com/docs/home/) from your previous system
* [Migrate](http://import.jekyllrb.com/docs/home/) from your previous system
* Learn how [Front Matter](https://jekyllrb.com/docs/front-matter/) works
* Put information on your site with [Variables](https://jekyllrb.com/docs/variables/)
* Customize the [Permalinks](https://jekyllrb.com/docs/permalinks/) your posts are generated with
@@ -42,7 +45,7 @@ If you don't find the answer to your problem in our [docs](https://jekyllrb.com/
## Code of Conduct
In order to have a more open and welcoming community, Jekyll adheres to a
[code of conduct](https://jekyllrb.com/docs/conduct/) adapted from the Ruby on Rails code of
[code of conduct](CODE_OF_CONDUCT.markdown) adapted from the Ruby on Rails code of
conduct.
Please adhere to this code of conduct in any interactions you have in the
@@ -55,27 +58,28 @@ these terms, please let one of our [core team members](https://jekyllrb.com/team
### Sponsors
Support this project by becoming a sponsor. Your logo will show up in this README with a link to your website. [Become a sponsor!](https://opencollective.com/jekyll#sponsor)
[![Jekyll Sponsor 0](https://opencollective.com/jekyll/sponsor/0/avatar.svg)](https://opencollective.com/jekyll/sponsor/0/website)
[![Jekyll Sponsor 1](https://opencollective.com/jekyll/sponsor/1/avatar.svg)](https://opencollective.com/jekyll/sponsor/1/website)
[![Jekyll Sponsor 2](https://opencollective.com/jekyll/sponsor/2/avatar.svg)](https://opencollective.com/jekyll/sponsor/2/website)
[![Jekyll Sponsor 3](https://opencollective.com/jekyll/sponsor/3/avatar.svg)](https://opencollective.com/jekyll/sponsor/3/website)
[![Jekyll Sponsor 4](https://opencollective.com/jekyll/sponsor/4/avatar.svg)](https://opencollective.com/jekyll/sponsor/4/website)
[![Jekyll Sponsor 5](https://opencollective.com/jekyll/sponsor/5/avatar.svg)](https://opencollective.com/jekyll/sponsor/5/website)
[![Jekyll Sponsor 6](https://opencollective.com/jekyll/sponsor/6/avatar.svg)](https://opencollective.com/jekyll/sponsor/6/website)
[![Jekyll Sponsor 7](https://opencollective.com/jekyll/sponsor/7/avatar.svg)](https://opencollective.com/jekyll/sponsor/7/website)
[![Jekyll Sponsor 8](https://opencollective.com/jekyll/sponsor/8/avatar.svg)](https://opencollective.com/jekyll/sponsor/8/website)
[![Jekyll Sponsor 9](https://opencollective.com/jekyll/sponsor/9/avatar.svg)](https://opencollective.com/jekyll/sponsor/9/website)
<a href="https://opencollective.com/jekyll/sponsor/0/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/0/avatar.svg" /></a>
<a href="https://opencollective.com/jekyll/sponsor/1/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/1/avatar.svg" /></a>
<a href="https://opencollective.com/jekyll/sponsor/2/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/2/avatar.svg" /></a>
<a href="https://opencollective.com/jekyll/sponsor/3/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/3/avatar.svg" /></a>
<a href="https://opencollective.com/jekyll/sponsor/4/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/4/avatar.svg" /></a>
<a href="https://opencollective.com/jekyll/sponsor/5/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/5/avatar.svg" /></a>
<a href="https://opencollective.com/jekyll/sponsor/6/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/6/avatar.svg" /></a>
<a href="https://opencollective.com/jekyll/sponsor/7/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/7/avatar.svg" /></a>
<a href="https://opencollective.com/jekyll/sponsor/8/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/8/avatar.svg" /></a>
<a href="https://opencollective.com/jekyll/sponsor/9/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/9/avatar.svg" /></a>
### Contributors
This project exists thanks to all the people who contribute.
[![Jekyll Contributors](https://opencollective.com/jekyll/contributors.svg?width=890&&avatarHeight=24&limit=100&button=false)](../../graphs/contributors)
<a href="../../graphs/contributors"><img src="https://opencollective.com/jekyll/contributors.svg?width=890&button=false" /></a>
### Backers
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/jekyll#backer)
[![Jekyll Backers](https://opencollective.com/jekyll/backers.svg?width=890)](https://opencollective.com/jekyll#backers)
<a href="https://opencollective.com/jekyll#backers" target="_blank"><img src="https://opencollective.com/jekyll/backers.svg?width=890" /></a>
## License

View File

@@ -8,7 +8,6 @@ require "yaml"
$LOAD_PATH.unshift File.expand_path("lib", __dir__)
require "jekyll/version"
require "bundler/gem_tasks"
Dir.glob("rake/**.rake").each { |f| import f }
@@ -43,15 +42,11 @@ def gem_file
end
def normalize_bullets(markdown)
# Normalize both old-style indented bullets (" *") and
# release-please-style non-indented bullets ("*") to "-"
markdown.gsub(%r!\n\s{0,2}\*{1}!, "\n-")
markdown.gsub(%r!\n\s{2}\*{1}!, "\n-")
end
def linkify_prs(markdown)
# Match bare PR references like #1234 but skip those already linkified
# by release-please as [#1234](url)
markdown.gsub(%r{(?<!&)(?<!\[)#(\d+)}) do |word|
markdown.gsub(%r!(?<\!&)#(\d+)!) do |word|
"[#{word}]({{ site.repository }}/issues/#{word.delete("#")})"
end
end
@@ -65,10 +60,8 @@ def liquid_escape(markdown)
end
def custom_release_header_anchors(markdown)
# Match old format: "X.Y.Z / YYYY-MM-DD"
# Match new release-please format: "[X.Y.Z](compare-url) (YYYY-MM-DD)"
header_regexp = %r!^(?:\[?)(\d{1,2})\.(\d{1,2})\.(\d{1,2})(?:\]\([^)]*\))? [\(/]\s?\d{4}-\d{2}-\d{2}\)?!
section_regexp = %r!^### \w[\w ]*$!
header_regexp = %r!^(\d{1,2})\.(\d{1,2})\.(\d{1,2}) \/ \d{4}-\d{2}-\d{2}!
section_regexp = %r!^### \w+ \w+$!
markdown.split(%r!^##\s!).map do |release_notes|
_, major, minor, patch = *release_notes.match(header_regexp)
release_notes
@@ -82,8 +75,7 @@ def slugify(header)
end
def remove_head_from_history(markdown)
# Match both old format "## X.Y.Z" and release-please format "## [X.Y.Z]"
index = markdown =~ %r!^##\s+\[?\d+\.\d+\.\d+!
index = markdown =~ %r!^##\s+\d+\.\d+\.\d+!
markdown[index..-1]
end

39
appveyor.yml Normal file
View File

@@ -0,0 +1,39 @@
version: "{build}"
clone_depth: 5
branches:
only:
- master
- themes
- /.*-stable/
build: off
environment:
BUNDLE_WITHOUT: "benchmark:development"
matrix:
- RUBY_FOLDER_VER: "26"
TEST_SUITE: "test"
- RUBY_FOLDER_VER: "26"
TEST_SUITE: "default-site"
- RUBY_FOLDER_VER: "26"
TEST_SUITE: "profile-docs"
- RUBY_FOLDER_VER: "26"
TEST_SUITE: "memprof"
- RUBY_FOLDER_VER: "26"
TEST_SUITE: "cucumber"
install:
- SET PATH=C:\Ruby%RUBY_FOLDER_VER%-x64\bin;%PATH%
- bundle install --retry 5 --jobs=%NUMBER_OF_PROCESSORS% --clean --path vendor\bundle
test_script:
- ruby --version
- gem --version
- bundler --version
- bash ./script/cibuild
cache:
# If one of the files after the right arrow changes, cache will be invalidated
- 'vendor\bundle -> appveyor.yml,Gemfile,jekyll.gemspec'

View File

@@ -1,10 +1,9 @@
---
version: 4.4.1
version: 4.2.1
name: Jekyll • Simple, blog-aware, static sites
description: Transform your plain text into static websites and blogs
url: https://jekyllrb.com
repository: https://github.com/jekyll/jekyll
site_branch: master
timezone: America/Los_Angeles
twitter:
username: jekyllrb

View File

@@ -55,7 +55,7 @@
flag: --lsi
- name: Limit posts
- name: Limit Posts
description: Limit the number of posts to parse and publish.
option: "limit_posts: NUM"
flag: --limit_posts NUM
@@ -69,17 +69,15 @@
- name: Verbose output
description: Print verbose output.
option: "verbose: BOOL"
flag: -V, --verbose
- name: Silence output
- name: Silence Output
description: Silence the normal output from Jekyll during a build.
option: "quiet: BOOL"
flag: -q, --quiet
- name: Log level
- name: Log Level
description: Specify a log level among debug, info, warn, or error.
flag: JEKYLL_LOG_LEVEL=info
@@ -95,7 +93,7 @@
flag: -I, --incremental
- name: Disable bundle require
- name: Disable Bundle Require
description: Disables the need to require gems in `:jekyll_plugins` Gemfile
flag: JEKYLL_NO_BUNDLER_REQUIRE=true
@@ -106,33 +104,16 @@
flag: --profile
- name: Strict front matter
- name: Strict Front Matter
description: Cause a build to fail if there is a YAML syntax error in a page's front matter.
option: "strict_front_matter: BOOL"
flag: --strict_front_matter
- name: Web Domain URL
option: "url: SCHEME://HOST[:PORT]"
description: >-
The canonical URL of the root of your production deploy, composed of the following components:<br>
&nbsp; &nbsp;• &nbsp; Protocol scheme (e.g. <code>http://</code>)<br>
&nbsp; &nbsp;• &nbsp; Hostname or IP address (e.g. <code>example.org</code>)<br>
&nbsp; &nbsp;• &nbsp; <em>(Optional)</em> The port number of the server, prefixed with a colon
(e.g. <code>:8080</code>)<br>
The value of this configuration option should NOT have a trailing slash. It will be appended
with the <code>baseurl</code> to form the full URL to your Jekyll site when using the
<a href="/docs/liquid/filters/">Liquid filter <code>absolute_url</code></a>.<br>
<strong>NOTE:</strong> This setting is automatically configured to the <strong>localhost URL</strong>
when the <code>jekyll serve</code> command is invoked.
- name: Base URL
description: >-
Serve the website from the given base URL (the path between web-server or domain root and your landing
page).
option: "baseurl: /PATH/TO/SITE"
flag: -b, --baseurl /PATH/TO/SITE
description: Serve the website from the given base URL.
option: "baseurl: URL"
flag: -b, --baseurl URL
- name: Trace

View File

@@ -1,10 +1,10 @@
- name: Site source
- name: Site Source
description: Change the directory where Jekyll will read files
option: "source: DIR"
flag: -s, --source DIR
- name: Site destination
- name: Site Destination
description: Change the directory where Jekyll will write files
option: "destination: DIR"
flag: -d, --destination DIR
@@ -17,7 +17,7 @@
flag: --safe
- name: Disable disk cache
- name: Disable Disk Cache
version-badge: 4.1.0
description: >-
Disable caching of content to disk in order to skip creating a <code>.jekyll-cache</code> or similar directory at
@@ -40,30 +40,6 @@
description: >-
Exclude directories and/or files from the conversion. These exclusions are relative to the site's source directory
and cannot be outside the source directory.
<br />
This configuration option supports Ruby's <a href="https://ruby-doc.org/3.3.5/File.html#method-c-fnmatch">
<code>File.fnmatch</code> filename globbing patterns</a> to match multiple entries to exclude. For example,
you can exclude multiple README.md files in your source tree from being included in your site by specifying the
following <code>exclude</code> option entries: <code>["README.md", "**/README.md"]</code>.
<br />
In Jekyll 3, the <code>exclude</code> configuration option replaces the default exclusion list.
<br />
In Jekyll 4, user-provided entries get added to the default exclusion list instead and the <code>include</code>
option can be used to override the default exclusion list entries.
<br />
The default exclusions are found in <code>_config.yml</code> as created by <code>jekyll new</code>:
<ul>
<li><code>.sass-cache/</code></li>
<li><code>.jekyll-cache/</code></li>
<li><code>gemfiles/</code></li>
<li><code>Gemfile</code></li>
<li><code>Gemfile.lock</code></li>
<li><code>node_modules/</code></li>
<li><code>vendor/bundle/</code></li>
<li><code>vendor/cache/</code></li>
<li><code>vendor/gems/</code></li>
<li><code>vendor/ruby/</code></li>
</ul>
option: "exclude: [DIR, FILE, ...]"
@@ -71,13 +47,6 @@
description: >-
Force inclusion of directories and/or files in the conversion. <code>.htaccess</code> is a good example since
dotfiles are excluded by default.
<br>
This configuration option supports Ruby's <a href="https://ruby-doc.org/3.3.5/File.html#method-c-fnmatch-3F">
<code>File.fnmatch</code> filename globbing patterns</a> to match multiple entries to include, refer the
<code>exclude</code> configuration option for more information.
<br>
With Jekyll 4, the <code>include</code> configuration option entries override the <code>exclude</code> option
entries.
option: "include: [DIR, FILE, ...]"
@@ -88,7 +57,7 @@
option: "keep_files: [DIR, FILE, ...]"
- name: Time zone
- name: Time Zone
description: >-
Set the time zone for site generation. This sets the <code>TZ</code> environment variable, which Ruby uses to handle
time and date creation and manipulation. Any entry from the

View File

@@ -1,34 +1,28 @@
- name: Local server port
- name: Local Server Port
description: Listen on the given port. The default is `4000`.
option: "port: PORT"
flag: "-P, --port PORT"
- name: Local server hostname
- name: Local Server Hostname
description: Listen at the given hostname. The default is `localhost`.
option: "host: HOSTNAME"
flag: "-H, --host HOSTNAME"
- name: Live reload
- name: Live Reload
description: Reload a page automatically on the browser when its content is edited.
option: "livereload: BOOL"
flag: "-l, --livereload"
- name: Live reload ignore
description: >-
File glob patterns for LiveReload to ignore.<br /><br />
Ensure that patterns are quoted when passed via the command-line to deter your shell from
expanding them.<br /><br /><strong>Note:</strong> The given glob patterns are matched against
the <code>relative_path</code> attribute of the processed resource. In the event Jekyll
reloads a <em>relative_path</em> matching the pattern in spite of being quoted, try listing
the pattern(s) under the config file option key.
- name: Live Reload Ignore
description: File glob patterns for LiveReload to ignore.
option: "livereload_ignore: [ GLOB1,... ]"
flag: "--livereload-ignore GLOB1[,GLOB2,...]"
- name: Live reload min/max delay
- name: Live Reload Min/Max Delay
description: Minimum/Maximum delay before automatically reloading page.
options:
- "livereload_min_delay: SECONDS"
@@ -38,11 +32,8 @@
- "--livereload-max-delay SECONDS"
- name: Live reload port
description: >-
Port for LiveReload to listen on.<br/><em>Ability to override via config file introduced in
<span class="version-badge">4.4.0</span></em>.
option: "livereload_port: PORT"
- name: Live Reload Port
description: Port for LiveReload to listen on.
flag: "--livereload-port PORT"
@@ -64,17 +55,17 @@
flag: "--skip-initial-build"
- name: Show directory listing
- name: Show Directory Listing
description: Show a directory listing instead of loading your index file.
option: "show_dir_listing: BOOL"
flag: "--show-dir-listing"
- name: X.509 (SSL) private key
- name: X.509 (SSL) Private Key
description: "SSL Private Key, stored or symlinked in the site source."
flag: "--ssl-key"
- name: X.509 (SSL) certificate
- name: X.509 (SSL) Certificate
description: "SSL Public certificate, stored or symlinked in the site source."
flag: "--ssl-cert"

View File

@@ -16,13 +16,6 @@ global:
description: >-
Layout specific information + the <a href="/docs/front-matter/">front matter</a>.
Custom variables set via front matter in layouts will be available here.
- name: jekyll
description: >-
Jekyll-centric information will be available here. See below for details.
- name: theme
description: >-
Theme-gem specific information as defined in the theme's gemspec. Useful for rendering
information in the theme demo's "About" page, for example. See below for details.
- name: content
description: >-
In layout files, the rendered content of the Post or Page being wrapped.
@@ -98,44 +91,38 @@ site:
page:
- name: page.content
description: >-
The content of the Page, rendered or un-rendered depending upon what Liquid is being processed
and what <code>page</code> is.
The content of the Page, rendered or un-rendered depending upon
what Liquid is being processed and what <code>page</code> is.
- name: page.title
description: >-
The title of the Page or Document resource.
The title of the Page.
- name: page.excerpt
description: >-
The un-rendered excerpt of a Page or Document. Can be overridden in the
<a href="/docs/front-matter/">front matter</a>. It can either be disabled atomically for
certain page or document by setting an empty string to an <code>excerpt_separator</code> key in
the front matter of desired resource or disabled site-wide by setting the same as a top-level
key in the config file.
The un-rendered excerpt of a document.
- name: page.url
description: >-
The URL of the Post without the domain, but with a leading slash, e.g.
<code>/2008/12/14/my-post.html</code>
- name: page.date
description: >-
The Date assigned to the Post. This can be overridden in a Post's front matter by specifying
The Date assigned to the Post. This can be overridden in a Posts front matter by specifying
a new date/time in the format <code>YYYY-MM-DD HH:MM:SS</code> (assuming UTC), or
<code>YYYY-MM-DD HH:MM:SS +/-TTTT</code> (to specify a time zone using an offset from UTC.
e.g. <code>2008-12-14 10:30:00 +0900</code>). Not applicable to Pages.
e.g. <code>2008-12-14 10:30:00 +0900</code>).
- name: page.id
description: >-
An identifier unique to a document in a Collection or a Post (useful in RSS feeds). e.g.
<code>/2008/12/14/my-post</code><code>/my-collection/my-document</code>. Not applicable to
Pages.
<code>/2008/12/14/my-post</code><code>/my-collection/my-document</code>
- name: page.categories
description: >-
The list of categories to which this post belongs. Categories are derived from the directory
structure above the <code>_posts</code> directory. For example, a post at
<code>/work/code/_posts/2008-12-24-closures.md</code> would have this field set to
<code>['work', 'code']</code>. These can also be specified in the
<a href="/docs/front-matter/">front matter</a>. Note: Path-based categories may not work for
documents in user-defined collections.
<a href="/docs/front-matter/">front matter</a>.
- name: page.collection
description: >-
The label of the collection to which a Document belongs. e.g. <code>posts</code> for a post, or
The label of the collection to which this document belongs. e.g. <code>posts</code> for a post, or
<code>puppies</code> for a document at path <code>_puppies/rover.md</code>. If not part of a
collection, an empty string is returned.
- name: page.tags
@@ -144,29 +131,16 @@ page:
<a href="/docs/front-matter/">front matter</a>.
- name: page.dir
description: >-
The path between the source directory and the file of a page, e.g. <code>/pages/</code> when the page
is at path <code>pages/about.md</code> relative to the source directory. This is derived from the
<code>url</code> attribute of the page and can therefore be overridden via the <code>permalink</code>
key in the <a href="/docs/front-matter/">front matter</a>. NOTE: This variable is not applicable to
posts and documents in user-defined collections. Use the <code>categories</code> variable to get similar
info for posts.
The path between the source directory and the file of the post or page, e.g.
<code>/pages/</code>.
This can be overridden by <code>permalink</code> in the <a href="/docs/front-matter/">front matter</a>.
- name: page.name
description: >-
The filename of the post or page, e.g. <code>about.md</code>
- name: page.path
description: >-
The path to the raw post or page, relative to the source directory. Example usage: Using a combination
of the repository's blob URL and this page variable to get the full URL to the file in the repository.
This can be overridden in the <a href="/docs/front-matter/">front matter</a>.
- name: page.slug
description: >-
The filename of a Document resource without its extension (or date prefixes for a post). For example,
slug for a post at URL <code>/2017/02/22/my-new-post.html</code>, would be <code>my-new-post</code>.
Can be overridden in the <a href="/docs/front-matter/">front matter</a>.
- name: page.ext
description: >-
The file extension of a Document resource. For example, <code>.html</code>. Can be overridden in the
<a href="/docs/front-matter/">front matter</a>.
The path to the raw post or page. Example usage: Linking back to the page or posts source
on GitHub. This can be overridden in the <a href="/docs/front-matter/">front matter</a>.
- name: page.next
description: >-
The next post relative to the position of the current post in <code>site.posts</code>.
@@ -176,28 +150,6 @@ page:
The previous post relative to the position of the current post in <code>site.posts</code>.
Returns <code>nil</code> for the first entry.
jekyll:
- name: jekyll.version
description: Version of Jekyll used to build the site.
- name: jekyll.environment
description: Value assigned to environment variable <code>JEKYLL_ENV</code> during a build.
theme:
- name: theme.root
description: >-
Absolute path to the theme-gem. Rendered only when environment variable <code>JEKYLL_ENV</code>
is set to <code>development</code>.
- name: theme.authors
description: Comma separated string composed of the authors of the theme-gem.
- name: theme.description
description: Description or summary of the theme-gem as specified in the theme gemspec.
- name: theme.version
description: The version string of current theme.
- name: theme.dependencies
description: List of runtime dependencies of the theme.
- name: theme.metadata
description: A mapping of key-value pairs as defined in the theme gemspec.
paginator:
- name: paginator.page
description: The number of the current page

View File

@@ -1,139 +0,0 @@
placeholders:
- name: year
desc: >-
Year from the post's filename with four digits. May be overridden via the document's
<code>date</code> front matter.
- name: short_year
desc: >-
Year from the post's filename without the century. (00..99) May be overridden via the
document's <code>date</code> front matter.
- name: month
desc: >-
Month from the post's filename. (01..12) May be overridden via the document's
<code>date</code> front matter.
- name: i_month
desc: >-
Month without leading zeros from the post's filename. May be overridden via the document's
<code>date</code> front matter.
- name: short_month
desc: >-
Three-letter month abbreviation, e.g. "Jan".
- name: long_month
intro_ver: "4.0"
desc: >-
Full month name, e.g. "January".
- name: day
desc: >-
Day of the month from the post's filename. (01..31) May be overridden via the document's
<code>date</code> front matter.
- name: i_day
desc: >-
Day of the month without leading zeros from the post's filename. May be overridden via the
document's <code>date</code> front matter.
- name: y_day
desc: >-
Ordinal day of the year from the post's filename, with leading zeros. (001..366)
- name: w_year
intro_ver: "4.0"
desc: >-
Week year which may differ from the month year for up to three days at the start of January
and end of December
- name: week
intro_ver: "4.0"
desc: >-
Week number of the current year, starting with the first week having a majority of its days
in January. (01..53)
- name: w_day
intro_ver: "4.0"
desc: >-
Day of the week, starting with Monday. (1..7)
- name: short_day
intro_ver: "4.0"
desc: >-
Three-letter weekday abbreviation, e.g. "Sun".
- name: long_day
intro_ver: "4.0"
desc: >-
Weekday name, e.g. "Sunday".
- name: hour
desc: >-
Hour of the day, 24-hour clock, zero-padded from the post's <code>date</code> front matter. (00..23)
- name: minute
desc: >-
Minute of the hour from the post's <code>date</code> front matter. (00..59)
- name: second
desc: >-
Second of the minute from the post's <code>date</code> front matter. (00..59)
- name: title
desc: >-
Title from the document's filename. May be overridden via the document's
<code>slug</code> front matter. Preserves case from the source.
- name: slug
desc: >-
Slugified title from the document's filename (any character except numbers and letters is
replaced as hyphen). May be overridden via the document's <code>slug</code> front matter.
- name: categories
desc: >-
The specified categories for this post. If a post has multiple categories, Jekyll will create
a hierarchy (e.g. <code>/category1/category2</code>). Also Jekyll automatically parses out
double slashes in the URLs, so if no categories are present, it will ignore this.
- name: slugified_categories
intro_ver: "4.1"
desc: >-
The specified categories for this post but <em>slugified</em>. If a category is a composite of
multiple words, Jekyll will downcase all alphabets and replace any non-alphanumeric character
with a hyphen. (e.g. <code>"Work 2 Progress"</code> will be converted into
<code>"work-2-progress"</code>). If a post has multiple categories, Jekyll will create
a hierarchy (e.g. <code>/work-2-progress/category2</code>). Also Jekyll automatically parses
out double slashes in the URLs, so if no categories are present, it will ignore this.
- name: output_ext
desc: >-
Extension of the output file. (Included by default and usually unnecessary.)
builtin_formats:
- name: date
format: "/:categories/:year/:month/:day/:title:output_ext"
- name: pretty
format: "/:categories/:year/:month/:day/:title/"
- name: ordinal
format: "/:categories/:year/:y_day/:title:output_ext"
- name: weekdate
intro_ver: "4.0"
format: "/:categories/:year/W:week/:short_day/:title:output_ext"
note: "<code>W</code> will be prefixed to the value of <code>:week</code>"
- name: none
format: "/:categories/:title:output_ext"
types:
documents:
- name: collection
desc: >-
Label of the containing collection.
- name: path
desc: >-
Path to the document relative to the collection's directory, including base filename of the document.
However, does not include the file extension.
- name: name
desc: >-
The document's base filename but slugified: downcased and every sequence of non-alphanumeric character
(including spaces) replaced by a hyphen.
- name: title
desc: >-
Takes on the value of front matter key <code>slug</code> if defined for the document. Otherwise takes
on the string value generated from the document's base filename by piping through the <code>slugify</code>
filter method with <code>pretty</code> option.<br/>
Regardless of the value taken, the case of the alphabets are preserved instead of being replaced with
lowercase counterparts.
- name: output_ext
desc: >-
Extension of the output file. (Included by default and usually unnecessary.)
pages:
- name: path
desc: >-
Path between the source directory and the base filename of the page.
- name: basename
desc: >-
The page's base filename.
- name: output_ext
desc: >-
Extension of the output file. (Included by default and usually unnecessary.)

View File

@@ -1,3 +1,3 @@
min_version: 2.7.0
current_version: 3.4.1
current_version_output: ruby 3.4.1 (2024-12-25 revision 48d4efcb85)
min_version: 2.5.0
current_version: 3.0.0
current_version_output: ruby 3.0.0p0 (2020-12-25 revision 95aff21468)

View File

@@ -1,5 +1,5 @@
- name: Tom Preston Werner Blog
url: https://tom.preston-werner.com/
url: http://tom.preston-werner.com/
image: tom-preston-werner.png
categories:
- personal
@@ -12,7 +12,7 @@
# - government
- name: SiteLeaf
url: https://www.siteleaf.com/
url: https://siteleaf.com
image: siteleaf.png
categories:
- software
@@ -26,7 +26,7 @@
- marketing-site
- name: Vesterheim Norwegian-American Museum
url: https://vesterheim.org/
url: http://vesterheim.org/
image: vesterheim.png
categories:
- marketing-site
@@ -52,7 +52,7 @@
- marketing-site
- name: Bitcoin
url: https://bitcoin.org/
url: https://bitcoin.org/en/
image: bitcoin.png
categories:
- software
@@ -127,7 +127,7 @@
- government
- name: U.S. Web Design Standards
url: https://designsystem.digital.gov/
url: https://standards.usa.gov/
image: uswds.png
categories:
- government
@@ -139,7 +139,7 @@
- marketing-site
- name: Rehan Butt
url: https://rehanbutt.com/
url: http://rehanbutt.com/
image: rehn.png
categories:
- personal
@@ -165,7 +165,7 @@
- portfolio
- name: Lattice
url: https://lattice.com/
url: https://latticehq.com/
image: lattice.png
categories:
- software
@@ -178,25 +178,25 @@
- other
- name: Digital Democracy
url: https://www.digital-democracy.org/
url: http://www.digital-democracy.org/
image: digital-democracy.png
categories:
- other
- name: HTML Reference
url: https://htmlreference.io/
url: http://htmlreference.io/
image: htmlreference.png
categories:
- documentation
- name: CSS Reference
url: https://cssreference.io/
url: http://cssreference.io/
image: cssreference.png
categories:
- documentation
- name: Chain
url: https://www.chain.com/
url: https://chain.com/
image: chain.png
categories:
- marketing-site
@@ -238,6 +238,13 @@
categories:
- government
- name: GitHub On Demand Training
url: https://services.github.com/on-demand/
image: github-learning-lab.png
categories:
- software
- knowledgebase
- name: TwitchCon
url: https://www.twitchcon.com/
image: twitchcon.png
@@ -246,13 +253,13 @@
- conference
- name: UN World Statistics
url: https://worldstatisticsday.org/
url: https://worldstatisticsday.org
image: world-statistics-day.png
categories:
- government
- name: Netflix Devices
url: https://devices.netflix.com/
url: https://devices.netflix.com/en/
image: netflix.png
categories:
- marketing-site
@@ -265,7 +272,7 @@
- documentation
- name: Yeoman
url: https://yeoman.io/
url: http://yeoman.io/
image: yeoman.png
categories:
- open-source
@@ -285,6 +292,13 @@
- software
- marketing-site
- name: Ionic Framework
url: https://ionicframework.com/
image: ionic-framework.png
categories:
- software
- marketing-site
- name: Spotify for Developers
url: https://developer.spotify.com
image: spotify-developers.png
@@ -294,14 +308,14 @@
- software
- name: Sketch
url: https://www.sketch.com/
url: https://sketch.com/
image: sketch.png
categories:
- software
- marketing-site
- name: Ruby on Rails
url: https://rubyonrails.org/
url: http://rubyonrails.org/
image: ruby-on-rails.png
categories:
- marketing-site

View File

@@ -1,7 +1,7 @@
---
title: Code of Conduct
permalink: "/docs/code_of_conduct/"
note: This file is autogenerated. Edit /.github/CODE_OF_CONDUCT.markdown instead.
note: This file is autogenerated. Edit /CODE_OF_CONDUCT.markdown instead.
redirect_from: "/conduct/index.html"
editable: false
---

View File

@@ -124,16 +124,6 @@ You can link to the generated page using the `url` attribute:
```
{% endraw %}
## Future
You can configure a collection to show future items by setting the `future` metadata to `true` in the collection's configuration.
```yaml
collections:
staff_members:
future: true
```
## Permalinks
There are special [permalink variables for collections]({{ '/docs/permalinks/#collections' | relative_url }}) to

View File

@@ -10,13 +10,6 @@ As contributors and maintainers of this project, and in the interest of fosterin
Read the full [code of conduct]({{ '/docs/conduct/' | relative_url }})
## Reporting Security Vulnerabilities
Find something in our codebase that could be exploited by malicious elements?
Consult our [Security Policy]({{ '/docs/security/' | relative_url }}) to see if a product version is considered *outdated* and how to report
the situation responsibly.
## Where to get support
If you're looking for support for Jekyll, there are a lot of options:

View File

@@ -7,9 +7,6 @@ Jekyll comes bundled with [jekyll-sass-converter](https://github.com/jekyll/jeky
You can further configure the plugin by adding options to your Jekyll config under the `sass` attribute. See the [plugin's documentation](https://github.com/jekyll/jekyll-sass-converter#usage) for details and for its default values.
{:.note .info}
If you see a warning in VSCode regarding `@import "main";`, you may ignore it as the same does not affect the functionality of the SCSS code in Jekyll. However, Jekyll 4 does not allow importing a `main` sass partial (`_sass/main.scss`) from a sass page of a same name, viz. `css/main.scss`.
<div class="note info">
<p>
Note that directory paths specified in the <code>sass</code> configuration

View File

@@ -57,4 +57,4 @@ This entire guide is open-source. Go ahead and [edit it][jekyll-docs-ci-buddy] i
[jekyll-docs-ci-buddy]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/buddyworks.md
[jekyll-help]: https://jekyllrb.com/help/
[buddy-forum]: https://forum.buddy.works/
[buddy-forum]: http://forum.buddy.works/

View File

@@ -15,9 +15,9 @@ To start building your project on CircleCI, all you need to do is 'follow' your
1. Visit the 'Add Projects' page
1. From the GitHub or Bitbucket tab on the left, choose a user or organization.
1. Find your project in the list and click 'Build project' on the right.
1. The first build will start on its own. You can start telling CircleCI how to build your project by creating a [.circleci/config.yml][3] file in the root of your repository.
1. The first build will start on its own. You can start telling CircleCI how to build your project by creating a [circle.yml][3] file in the root of your repository.
[3]: https://circleci.com/docs/2.0/configuration-reference/
[3]: https://circleci.com/docs/configuration/
## 2. Dependencies
@@ -28,24 +28,22 @@ The easiest way to manage dependencies for a Jekyll project (with or without Cir
```ruby
source 'https://rubygems.org'
ruby '2.7.4'
ruby '2.4.0'
gem "jekyll"
gem "html-proofer"
gem 'jekyll'
gem 'html-proofer'
```
```yaml
- step:
run: bundle install
```
CircleCI detects when `Gemfile` is present and will automatically run `bundle install` for you in the `dependencies` phase.
## 3. Testing
The most basic test that can be run is seeing if `jekyll build` actually works. This is a blocker, a dependency if you will, for other tests you might run on the generate site. So we'll run Jekyll, via Bundler, in the `dependencies` phase.
```yaml
- step:
run: bundle exec jekyll build
dependencies:
post:
- bundle exec jekyll build
```
### HTML Proofer
@@ -56,32 +54,26 @@ With your site built, it's useful to run tests to check for valid HTML, broken l
[6]: https://github.com/gjtorikian/html-proofer/blob/master/README.md#configuration
```yaml
- step:
run: bundle exec htmlproofer ./_site --check-html --disable-external
test:
post:
- bundle exec htmlproofer ./_site --check-html --disable-external
```
## Complete Example .circleci/config.yml File
## Complete Example circle.yml File
The example `.circleci/config.yml` below demonstrates how to
Since v2, CircleCI is a Docker-based system. The example `circle.yml` below demonstrates how to
deploy your Jekyll project to AWS. In order for this to work you would first have to set the
`S3_BUCKET_NAME` [environment variable](https://circleci.com/docs/2.0/env-vars/).
```yaml
workflows:
test-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
version: 2.1
defaults: &defaults
working_directory: ~/repo
version: 2
jobs:
build:
<<: *defaults
docker:
- image: cimg/ruby:2.7.4
- image: circleci/ruby:2.5
environment:
BUNDLE_PATH: ~/repo/vendor/bundle
steps:
@@ -113,8 +105,9 @@ jobs:
paths:
- _site
deploy:
<<: *defaults
docker:
- image: cimg/python:3.9.1
- image: circleci/python:3.6.3
environment:
S3_BUCKET_NAME: <<YOUR BUCKET NAME HERE>>
steps:
@@ -126,6 +119,17 @@ jobs:
- run:
name: Upload to s3
command: ~/.local/bin/aws s3 sync ./_site s3://$S3_BUCKET_NAME/ --delete --acl public-read
workflows:
version: 2
test-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
```
## Questions?

View File

@@ -2,35 +2,20 @@
title: GitHub Actions
---
When building a Jekyll site with GitHub Pages, Jekyll runs in an environment restricted for security
reasons, yet containing numerous [whitelisted plugins and themes][ghp-whitelist] to make it simpler
to get a site set up.
The only workaround to have control over the build environment and gemset yet use GitHub Pages to
host the site was previously by building elsewhere and pushing the built directory contents to the
`gh-pages` branch on your repository.
However, GitHub now provides you with the option to use their in-house CI/CD product named
*GitHub Actions* to *build and deploy (host)* your Jekyll site with complete control over the build
environment and gemset.
When building a Jekyll site with GitHub Pages, the standard flow is restricted for security reasons
and to make it simpler to get a site setup. For more control over the build and still host the site
with GitHub Pages you can use GitHub Actions.
## Advantages of using Actions
### Control over gemset
- **Jekyll version** --- Instead of using the classic GitHub Pages-provided version specified in
the [Dependency versions][ghp-whitelist] list, you can use any version of Jekyll you want.
For example `{{ site.version }}`, or point directly to the repository via the Gemfile.
- **Plugins** --- You can use any Jekyll plugins irrespective of them being whitelisted by GitHub,
including any `*.rb` files placed in the `_plugins` directory of your site.
- **Themes** --- While using a custom theme is possible without Actions, it is now possible to use
themes depending on features introduced in newer versions of Jekyll.
{: .note .info}
If you are migrating from the classic flow but want to keep using a GitHub-hosted theme, you may use
the [jekyll-remote-theme][remote-theme] plugin, add any required dependencies of your theme
(previously bundled by default) into your `_config.yml` and `Gemfile` and set the
`remote_theme: <owner>/<repo_name>` theme repository slug correctly in your `_config.yml`.
- **Jekyll version** --- Instead of using the currently enabled version at `3.9.0`, you can use any
version of Jekyll you want. For example `{{site.version}}`, or point directly to the repository.
- **Plugins** --- You can use any Jekyll plugins irrespective of them being on the
[supported versions][ghp-whitelist] list, even `*.rb` files placed in the `_plugins` directory
of your site.
- **Themes** --- While using a custom theme is possible without Actions, it is now simpler.
### Workflow Management
@@ -38,8 +23,6 @@ the [jekyll-remote-theme][remote-theme] plugin, add any required dependencies of
steps, use environment variables.
- **Logging** --- The build log is visible and can be tweaked to be verbose, so it is much easier to
debug errors using Actions.
- **Caching** --- The `ruby/setup-ruby` action makes it possible to cache installed gems
automatically instead of having to download the bundle on each build.
## Workspace setup
@@ -47,7 +30,18 @@ The first and foremost requirement is a Jekyll project hosted at GitHub. Choose
project or follow the [quickstart]({{ '/docs/' | relative_url }}) and push the repository to GitHub
if it is not hosted there already.
The Jekyll site we'll be using for the rest of this page, initially consists of just a `_config.yml`,
We're only going to cover builds from the `main` branch in this page. Therefore, ensure that you
are working on the `main` branch. If necessary, you may create it based on your default branch.
When the Action builds your site, the contents of the _destination_ directory will be automatically
pushed to the `gh-pages` branch with a commit, ready to be used for serving.
{: .note .warning}
The Action we're using here will create (or reset an existing) `gh-pages` branch on every successful
deploy.<br/> So, if you have an existing `gh-pages` branch that is used to deploy your production
build, ensure to make a backup of the contents into a different branch so that you can rollback
easily if necessary.
The Jekyll site we'll be using for the rest of this page initially consists of just a `_config.yml`,
an `index.md` page and a `Gemfile`. The contents are respectively:
```yaml
@@ -77,10 +71,10 @@ Welcome to My Home Page
source 'https://rubygems.org'
gem "jekyll", "~> 4.2"
gem 'jekyll', '~> 4.2'
group :jekyll_plugins do
gem "jekyll-timeago", "~> 0.13.1"
gem 'jekyll-timeago', '~> 0.13.1'
end
```
@@ -97,17 +91,80 @@ was generated with an old version of Bundler.
### Setting up the Action
1. Go to the **Settings** tab on your repository.
1. Click **Pages** under **Code and automation**.
2. Change **Source** under **Build and deployment** from **Deploy from a branch** to **GitHub Actions**.
2. Go to the **Actions** tab on your repository.
1. Start a **New workflow** and search for **Jekyll**.
2. Click **Configure** under the **Jekyll** workflow (not **GitHub Pages Jekyll** workflow).
3. Review the change and click **Commit changes**.
GitHub Actions are registered for a repository by using a YAML file inside the directory path
`.github/workflows` (note the dot at the start). Here we shall employ
[Jekyll Actions][jekyll-actions] from the Marketplace for its simplicity.
Create a **workflow file**, say `github-pages.yml`, using either the GitHub interface or by pushing
a YAML file to the workflow directory path manually. The base contents are:
{% raw %}
```yaml
name: Build and deploy Jekyll site to GitHub Pages
on:
push:
branches:
- main # or master before October 2020
jobs:
github-pages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: helaili/jekyll-action@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
```
{% endraw %}
The above workflow can be explained as the following:
- We trigger the build using **on.push** condition for `main` branch only --- this prevents
the Action from overwriting the `gh-pages` branch on any feature branch pushes.
- The **name** of the job matches our YAML filename: `github-pages`.
- The **checkout** action takes care of cloning your repository.
- We specify our selected **action** and **version number** using `helaili/jekyll-action@2.0.5`.
This handles the build and deploy.
- We set a reference to a secret **environment variable** for the action to use. The `GITHUB_TOKEN`
is a _Personal Access Token_ and is detailed in the next section.
Instead of using the **on.push** condition, you could trigger your build on a **schedule** by
using the [on.schedule] parameter. For example, here we build daily at midnight by specifying
**cron** syntax, which can be tested at the [crontab guru] site.
```yaml
on:
schedule:
- cron: "0 0 * * *"
```
Note that this string must be quoted to prevent the asterisks from being evaluated incorrectly.
[on.schedule]: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#onschedule
[crontab guru]: https://crontab.guru/
### Providing permissions
The action needs permissions to push to your `gh-pages` branch. So you need to create a GitHub
**authentication token** on your GitHub profile, then set it as an environment variable in your
build using _Secrets_:
1. On your GitHub profile, under **Developer Settings**, go to the [Personal Access Tokens][tokens]
section.
2. **Create** a token. Give it a name like "GitHub Actions" and ensure it has permissions to
`public_repos` (or the entire `repo` scope for private repository) --- necessary for the action
to commit to the `gh-pages` branch.
3. **Copy** the token value.
4. Go to your repository's **Settings** and then the **Secrets** tab.
5. **Create** a token named `GITHUB_TOKEN` (_important_). Give it a value using the value copied
above.
### Build and deploy
On pushing any local changes onto the default branch, the action will be triggered and the build will
On pushing any local changes onto `master`, the action will be triggered and the build will
**start**.
To watch the progress and see any build errors, check on the build **status** using one of the
@@ -120,19 +177,38 @@ following approaches:
- **Actions tab**
- Go to the repository's Actions tab. Click on the `jekyll` workflow tab.
If all goes well, all steps will be green and the built assets will be uploaded to GitHub Pages.
If all goes well, all steps will be green and the built assets will now exist on the `gh-pages`
branch.
To see the **live site**, go to the **Deployments** tab on your repository, and click on the deployed
site URL.
On a successful build, GitHub Pages will **publish** the site stored on the repository `gh-pages`
branches. Note that you do not need to setup a `gh-pages` branch or enable GitHub Pages, as the
action will take care of this for you.
(For private repositories, you'll have to upgrade to a paid plan).
When you need to make further **changes** to the site, commit to the default branch and push.
The workflow will build and deploy your site again.
To see the **live site**:
1. Go to the **environment** tab on your repository.
2. Click **View Deployment** to see the deployed site URL.
3. View your site at the **URL**. Make sure the `timeago` filter works as expected.
4. Optionally **add** this URL to your repository's main page and to your `README.md`, to make it
easy for people to find.
When you need to make further **changes** to the site, commit to `master` and push. The workflow
will build and deploy your site again.
Be sure **not to edit** the `gh-pages` branch directly, as any changes will be lost on the next
successful deploy from the Action.
## External links
- [starter-workflows] is the official repository providing the workflow template used in this guide.
- [jekyll-actions] is an action available on the GitHub Marketplace and was used in this guide.
- [jekyll-actions-quickstart] is an unofficial repository that includes a live demo of the
`jekyll-actions` action. That project can be used as a template for making a new site.
- [jekyll-action-ts] is another action to build and publish Jekyll sites on GiHub Pages that includes HTML formatting options with Prettier and caching.
[ghp-whitelist]: https://pages.github.com/versions/
[remote-theme]: https://github.com/benbalter/jekyll-remote-theme
[timeago-plugin]: https://rubygems.org/gems/jekyll-timeago
[starter-workflows]: https://github.com/actions/starter-workflows/blob/main/pages/jekyll.yml
[tokens]: https://github.com/settings/tokens
[jekyll-actions]: https://github.com/marketplace/actions/jekyll-actions
[jekyll-actions-quickstart]: https://github.com/MichaelCurrin/jekyll-actions-quickstart
[jekyll-action-ts]: https://github.com/limjh16/jekyll-action-ts

View File

@@ -22,7 +22,7 @@ With [Razorops][razorops-homepage] you can set up your Jekyll websites project's
## 1. Getting started
1. Log in at [https://razorops.com/][razorops-homepage] with your GitHub/Bitbucket or GitLab account
1. Log in at [https://razorops.com/][razorops-homepage] with your GitHub/Bitbucket or Gitlab account
2. Create a pipeline, choose your Git provider and select your Jekyll Project
3. Add .razorops.yaml file in your root directory of your project
4. Add environment var and your deployment is ready

View File

@@ -15,7 +15,7 @@ See the [support guidelines](https://jekyllrb.com/docs/support/)
Whether you're a developer, a designer, or just a Jekyll devotee, there are lots of ways to contribute. Here's a few ideas:
- [Install Jekyll on your computer](https://jekyllrb.com/docs/installation/) and kick the tires. Does it work? Does it do what you'd expect? If not, [open an issue](https://github.com/jekyll/jekyll/issues/new) and let us know.
- Comment on some of the project's [open issues](https://github.com/jekyll/jekyll/issues). Have you experienced the same problem? Know a workaround? Do you have a suggestion for how the feature could be better?
- Comment on some of the project's [open issues](https://github.com/jekyll/jekyll/issues). Have you experienced the same problem? Know a work around? Do you have a suggestion for how the feature could be better?
- Read through the [documentation](https://jekyllrb.com/docs/home/), and click the "improve this page" button, any time you see something confusing, or have a suggestion for something that could be improved.
- Browse through the [Jekyll discussion forum](https://talk.jekyllrb.com/), and lend a hand answering questions. There's a good chance you've already experienced what another user is experiencing.
- Find an [open issue](https://github.com/jekyll/jekyll/issues) (especially [those labeled `help-wanted`](https://github.com/jekyll/jekyll/issues?q=is%3Aopen+is%3Aissue+label%3Ahelp-wanted)), and submit a proposed fix. If it's your first pull request, we promise we won't bite, and are glad to answer any questions.
@@ -153,6 +153,25 @@ script/cucumber features/blah.feature
Both `script/test` and `script/cucumber` can be run without arguments to
run its entire respective suite.
### Test Ruby Versions Locally
The CI process runs the build against with several [Ruby](https://github.com/jekyll/jekyll/blob/master/.github/workflows/ci.yml#L22) versions. This process can be repeated locally without changing your default installation by using [earthly](https://earthly.dev/get-earthly).
To run the full CI process across all supported Ruby Versions:
```sh
earthly +all
```
To run the tests for a specific version of Ruby:
```sh
earthly --build-arg RUBY=2.5 +test
```
To run the tests for a specific version of JRuby specify the full version:
```sh
earthly --build-arg RUBY=jruby:9.2.14.0 +test
```
## Visual Studio Code Development Container
If you've got [Visual Studio Code](https://code.visualstudio.com/) with the [Remote Development Extension Pack](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack) installed then simply opening this repository in Visual Studio Code and following the prompts to "Re-open In A Development Container" will get you setup and ready to go with a fresh environment with all the requirements installed.

View File

@@ -7,7 +7,7 @@ In addition to the [built-in variables]({{'/docs/variables/' | relative_url }})
you can specify your own custom data that can be accessed via the [Liquid
templating system](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
Jekyll supports loading data from [YAML](https://yaml.org), [JSON](https://www.json.org/json-en.html), [CSV](https://en.wikipedia.org/wiki/Comma-separated_values), and [TSV](https://en.wikipedia.org/wiki/Tab-separated_values) files located in the `_data` directory.
Jekyll supports loading data from [YAML](http://yaml.org/), [JSON](http://www.json.org/), [CSV](https://en.wikipedia.org/wiki/Comma-separated_values), and [TSV](https://en.wikipedia.org/wiki/Tab-separated_values) files located in the `_data` directory.
Note that CSV and TSV files *must* contain a header row.
This powerful feature allows you to avoid repetition in your templates and to
@@ -148,30 +148,3 @@ author: dave
{% endraw %}
For information on how to build robust navigation for your site (especially if you have a documentation website or another type of Jekyll site with a lot of pages to organize), see [Navigation]({{ '/tutorials/navigation/' | relative_url }}).
## CSV/TSV Parse Options
The way Ruby parses CSV and TSV files can be customized with the `csv_reader` and `tsv_reader`
configuration options. Each configuration key exposes the same options:
`converters`: What [CSV converters](https://ruby-doc.org/stdlib-2.5.0/libdoc/csv/rdoc/CSV.html#Converters) should be
used when parsing the file. Available options are `integer`, `float`, `numeric`, `date`, `date_time` and
`all`. By default, this list is empty.
`encoding`: What encoding the files are in. Defaults to the site `encoding` configuration option.
`headers`: Boolean field for whether to parse the first line of the file as headers. When `false`, it treats the
first row as data. Defaults to `true`.
Examples:
```yaml
csv_reader:
converters:
- numeric
- datetime
headers: true
encoding: utf-8
tsv_reader:
converters:
- all
headers: false
```

View File

@@ -16,14 +16,16 @@ rsync in the [Digital Ocean tutorial](https://www.digitalocean.com/community/tut
## Amazon S3
If you want to host your site in Amazon S3, you can do so by
using the AWS cli client and pushing your rendered `_site` directory directly to
your S3 bucket.
`aws s3 sync _site s3://<YOUR DOMAIN>.com --size-only --storage-class REDUCED_REDUNDANCY`
using the [s3_website](https://github.com/laurilehmijoki/s3_website)
application. It will push your site to Amazon S3 where it can be served like
any web server,
dynamically scaling to almost unlimited traffic. This approach has the
benefit of being about the cheapest hosting option available for
low-volume blogs as you only pay for what you use.
## FTP
Most traditional web hosting providers let you upload files to their servers over FTP. To upload a Jekyll site to a web host using FTP, run the `jekyll build` command and copy the contents of the generated `_site` folder to the root folder of your hosting account. This is most likely to be the `httpdocs` or `public_html` folder on most hosting providers.
Most traditional web hosting provider let you upload files to their servers over FTP. To upload a Jekyll site to a web host using FTP, run the `jekyll build` command and copy the contents of the generated `_site` folder to the root folder of your hosting account. This is most likely to be the `httpdocs` or `public_html` folder on most hosting providers.
## scp

View File

@@ -4,12 +4,22 @@ permalink: /docs/deployment/third-party/
---
## Aerobatic
[Aerobatic](https://www.aerobatic.com) has custom domains, global CDN distribution, basic auth, CORS proxying, and a growing list of plugins all included.
Automating the deployment of a Jekyll site is simple. See their [Jekyll docs](https://www.aerobatic.com/docs/static-site-generators/#jekyll) for more details. Your built `_site` folder is deployed to their highly-available, globally distributed hosting service.
## AWS Amplify
The [AWS Amplify Console](https://console.amplify.aws) provides continuous deployment and hosting for modern web apps (single page apps and static site generators). Continuous deployment allows developers to deploy updates to their web app on every code commit to their Git repository. Hosting includes features such as globally available CDNs, 1-click custom domain setup + HTTPS, feature branch deployments, redirects, trailing slashes, and password protection.
Read this [step-by-step guide](https://medium.com/@jameshamann/deploy-your-jekyll-site-using-aws-amplify-with-only-a-few-clicks-8f3dd8f26112) to deploy and host your Jekyll site on AWS Amplify.
## Bip
[Bip](https://bip.sh) provides zero downtime deployment, a global CDN, SSL, unlimited bandwidth and more for Jekyll websites. Deploy in seconds from the command line. [Visit the Bip website](https://bip.sh) for more information - which is also built with Jekyll.
## CloudCannon
[CloudCannon](https://cloudcannon.com) has everything you need to build, host
@@ -22,7 +32,7 @@ Sites on GitHub Pages are powered by Jekyll behind the scenes, so if youre lo
## GitLab Pages
[GitLab Pages](https://about.gitlab.com/stages-devops-lifecycle/pages/) offers free hosting with custom domains. [Get started with Jekyll](https://docs.gitlab.com/ee/user/project/pages/getting_started/pages_from_scratch.html) and a fully customizable pipeline.
[GitLab Pages](https://about.gitlab.com/stages-devops-lifecycle/pages/) offers free hosting with custom domains. [Get started with Jekyll](https://docs.gitlab.com/ee/user/project/pages/getting_started_part_four.html#practical-example) and a fully customizable pipeline.
## KeyCDN
@@ -31,11 +41,11 @@ The [Jekyll hosting tutorial](https://www.keycdn.com/support/jekyll-hosting) pro
## Kickster
Use [Kickster](https://kickster.nielsenramon.com/) for automated deploys to GitHub Pages when using unsupported plugins on GitHub Pages.
Use [Kickster](http://kickster.nielsenramon.com/) for automated deploys to GitHub Pages when using unsupported plugins on GitHub Pages.
Kickster provides a basic Jekyll project setup packed with web best practices and useful optimization tools increasing your overall project quality. Kickster ships with automated and worry-free deployment scripts for GitHub Pages.
Kickster provides a basic Jekyll project setup packed with web best practises and useful optimization tools increasing your overall project quality. Kickster ships with automated and worry-free deployment scripts for GitHub Pages.
Install the Kickster gem and you are good to go. More documentation can be found [here](https://github.com/nielsenramon/kickster#kickster). If you do not want to use the gem or start a new project you can just copy paste the deployment scripts for [Travis CI](https://github.com/nielsenramon/kickster/tree/master/snippets/travis) or [Circle CI](https://github.com/nielsenramon/kickster#automated-deployment-with-circle-ci).
Install the Kickster gem and you are good to go. More documentation can here found [here](https://github.com/nielsenramon/kickster#kickster). If you do not want to use the gem or start a new project you can just copy paste the deployment scripts for [Travis CI](https://github.com/nielsenramon/kickster/tree/master/snippets/travis) or [Circle CI](https://github.com/nielsenramon/kickster#automated-deployment-with-circle-ci).
## Netlify
@@ -47,9 +57,9 @@ Read this [Jekyll step-by-step guide](https://www.netlify.com/blog/2020/04/02/a-
[Render](https://render.com) provides zero config continuous deployment for static sites. The service is free under 100GB monthly bandwidth.
## Hostman
## Hostman
[Hostman](https://hostman.com) allows you to host websites for free with no configurations. Read [this guide](https://hostman.com/docs/jekyll) to deploy your Jekyll site on Hostman.
[Hostman](https://hostman.com) allows you to host websites for free with no configurations. Read [this guide](https://hostman.com/docs/jekyll) to deploy your Jekyll site on Hostman.
## Static Publisher
@@ -64,23 +74,3 @@ Read this [Jekyll step-by-step guide](https://www.netlify.com/blog/2020/04/02/a-
[21YunBox](https://www.21yunbox.com) provides blazing fast Chinese CDN, Continuous Deployment, one click HTTPS and [much more](https://www.21yunbox.com/docs/), providing developers a hassle-free solution to launch their web projects in China.
Read this [Jekyll step-by-step guide](https://www.21yunbox.com/docs/#/deploy-jekyll) to deploy your Jekyll site on 21YunBox.
## Layer0
[Layer0](https://www.layer0.co) is an all-in-one platform to develop, deploy, preview, experiment on, monitor, and run your headless frontend. It is focused on large, dynamic websites and best-in-class performance through EdgeJS (a JavaScript-based Content Delivery Network), predictive prefetching, and performance monitoring. Layer0 offers a free tier. Get started in just a few minutes by following [Layer0's guide to deploying Jekyll](https://docs.layer0.co/guides/jekyll).
## Kinsta Application Hosting
[Kinsta Application Hosting](https://kinsta.com/application-hosting) is a Cloud Platform designed to help your company and dev teams ship web projects faster and more efficiently. You can host your apps, databases, and sites all in one place. Easily connect with GitHub and automate deployments and get 24/7 support for all your favorite languages and frameworks.
Read [this guide](https://kinsta.com/docs/jekyll-static-site-example/) to learn how to deploy Jekyll site on Kinsta.
## Supranode
[Supranode](https://supranode.com) offers customizable continuous deployment for static websites, featuring automatic HTTPS, a high-performance CDN, secret management, deployment previews, password protection, and more.
## Azion
[Azion](https://www.azion.com/en/) is an web platform that provides a wide range of services. It allows you to host static sites, including Jekyll-powered websites, with features like automatic HTTPS, custom domains, and real-time analytics. Azion's platform is designed for performance and scalability, making it an excellent choice for hosting global websites.
In [this guide](https://www.azion.com/en/documentation/products/guides/jekyll-boilerplate/) you can learn how to deploy a Jekyll site on Azion.

View File

@@ -118,14 +118,3 @@ to see more detailed examples.
<a href="{{ '/docs/installation/windows/' | relative_url }}">Windows-specific docs page</a>.
</p>
</div>
### Running and Testing Locally
Once the project is configured with the github-pages environment, it's quite hard to switch back and forth with the local settings and the production-level settings. For that we can use certain CLI options to make the workflow hassle-free.
```sh
bundle exec jekyll serve --baseurl=""
```
This will run the jekyll server on your local machine i.e. on `http://localhost:4000`. Refer <a href="{{ '/docs/configuration/options/#serve-command-options' | relative_url }}">server options</a> for available options.

View File

@@ -4,423 +4,6 @@ permalink: "/docs/history/"
note: This file is autogenerated. Edit /History.markdown instead.
---
## 4.4.1 / 2025-01-29
{: #v4-4-1}
### Bug Fixes
{: #bug-fixes-v4-4-1}
- Restore globbed path behavior in front matter defaults ([#9762]({{ site.repository }}/issues/9762))
## 4.4.0 / 2025-01-27
{: #v4-4-0}
### Minor Enhancements
{: #minor-enhancements-v4-4-0}
- Allow marking specific highlighted lines via Liquid ([#9138]({{ site.repository }}/issues/9138))
- Add gem `csv` to runtime dependency list ([#9522]({{ site.repository }}/issues/9522))
- Bump the minimum ruby version to 2.7 ([#9525]({{ site.repository }}/issues/9525))
- Acknowledge `livereload_port` from site config too ([#9606]({{ site.repository }}/issues/9606))
- Add gem `base64` as runtime dependency ([#9740]({{ site.repository }}/issues/9740))
- Add gem `json` as runtime_dependency ([#9671]({{ site.repository }}/issues/9671))
- Remove unnecessary constraint on gem `mercenary` ([#9758]({{ site.repository }}/issues/9758))
### Bug Fixes
{: #bug-fixes-v4-4-0}
- Optimize default front matter using `File.fnmatch?` ([#9185]({{ site.repository }}/issues/9185))
- Remove totals in profile table properly ([#9186]({{ site.repository }}/issues/9186))
- Optimize `Site#each_site_file` ([#9187]({{ site.repository }}/issues/9187))
- Rename sass partial created for new blank site ([#9257]({{ site.repository }}/issues/9257))
- Fix `jekyll serve --detach` with jekyll-sass-converter 3.x ([#9304]({{ site.repository }}/issues/9304))
- Handle TypeError from `where` filter gracefully ([#9292]({{ site.repository }}/issues/9292))
- Add support for upcoming logger 1.4.3 ([#9392]({{ site.repository }}/issues/9392))
- Fix typo in devcontainer.json ([#9364]({{ site.repository }}/issues/9364))
- Correct rubocop lint errors ([#9600]({{ site.repository }}/issues/9600))
- Fix inexistent layout warning for the default 404 page ([#9589]({{ site.repository }}/issues/9589))
- Relax version constraint on `wdm` in new Gemfile ([#9662]({{ site.repository }}/issues/9662))
- Fix `--livereload-ignore` option ([#9570]({{ site.repository }}/issues/9570))
- Render theme-gem root only in development ([#9680]({{ site.repository }}/issues/9680))
### Development Fixes
{: #development-fixes-v4-4-0}
- Cleanup highlight tag ([#9177]({{ site.repository }}/issues/9177))
- Run tests in utc ([#9168]({{ site.repository }}/issues/9168))
- Lock Ruby in CI to v3.1.2 and bump JRuby to v9.4.0.0 ([#9196]({{ site.repository }}/issues/9196))
- Update sass related tests for jekyll-sass-converter 3.x ([#9223]({{ site.repository }}/issues/9223))
- Split `test/test_tags.rb` into multiple files ([#9230]({{ site.repository }}/issues/9230))
- test: use hash explicitly for Struct initializer for ruby 3.2 ([#9237]({{ site.repository }}/issues/9237))
- script/default-site: accept flags for `jekyll new` ([#9259]({{ site.repository }}/issues/9259))
- Bump check-spelling/check-spelling from 0.0.20 to 0.0.21 ([#9205]({{ site.repository }}/issues/9205))
- Use check-spelling/check-spelling@v0.0.21 ([#9199]({{ site.repository }}/issues/9199))
- Bump RuboCop to v1.45.x ([#9305]({{ site.repository }}/issues/9305))
- Bump Rubocop to version 1.48.x ([#9326]({{ site.repository }}/issues/9326))
- Bump versions of ruby &amp; nodejs in devcontainer ([#9360]({{ site.repository }}/issues/9360))
- Bump rubocop version to 1.52.x ([#9361]({{ site.repository }}/issues/9361))
- Upgrade RuboCop to 1.54 ([#9401]({{ site.repository }}/issues/9401))
- Add CodeQL workflow ([#9397]({{ site.repository }}/issues/9397))
- Bump actions/checkout from 3 to 4 ([#9442]({{ site.repository }}/issues/9442))
- Test suite uses shoulda-context only. ([#9441]({{ site.repository }}/issues/9441))
- Keep activesupport at version 7.0.x ([#9469]({{ site.repository }}/issues/9469))
- Bump Rubocop to 1.56.4 ([#9459]({{ site.repository }}/issues/9459))
- Configure dependabot to handle rubygems dependencies ([#9445]({{ site.repository }}/issues/9445))
- Update rubocop gem ([#9476]({{ site.repository }}/issues/9476))
- Fix Performance/StringIdentifierArgument violation in site.rb and allow activesupport 6 for windows tests ([#9512]({{ site.repository }}/issues/9512))
- Add a few more emeritus team members ([#9535]({{ site.repository }}/issues/9535))
- Make custom cop inherit `RuboCop::Cop::Base` ([#9597]({{ site.repository }}/issues/9597))
- CI: Use JRuby 9.4.8.0 ([#9654]({{ site.repository }}/issues/9654))
- Stop testing with Cucumber on JRuby ([#9661]({{ site.repository }}/issues/9661))
- Windows CI on GitHub Actions ([#9659]({{ site.repository }}/issues/9659))
- Run GitHub Actions only if needed ([#9664]({{ site.repository }}/issues/9664))
- Format `.rubocop.yml` via a rake task ([#9687]({{ site.repository }}/issues/9687))
- Configure some new cops ([#9688]({{ site.repository }}/issues/9688))
- Fix expected markup per WAI-ARIA requirements ([#9737]({{ site.repository }}/issues/9737))
- Add an optional `:rdoc` group of gems ([#9742]({{ site.repository }}/issues/9742))
- Test `inspect` filter with custom object ([#9743]({{ site.repository }}/issues/9743))
- Bump cucumber to v9 ([#9747]({{ site.repository }}/issues/9747))
- Add Ruby 3.4 to CI matrix ([#9740]({{ site.repository }}/issues/9740))
- Remove unnecessary runtime dependency ([#9753]({{ site.repository }}/issues/9753))
- Bump `check-spelling/check-spelling` action ([#9756]({{ site.repository }}/issues/9756))
### Documentation
- Fix Nested tree navigation with recursion example ([#9174]({{ site.repository }}/issues/9174))
- Fix typo on website ([#9203]({{ site.repository }}/issues/9203))
- Publish post on major release of sass-converter ([#9225]({{ site.repository }}/issues/9225))
- Update Jekyll on macOS (macos.md) and current ruby version to 3.1.3 in ruby.yml ([#9195]({{ site.repository }}/issues/9195))
- Add release post for v4.3.2 ([#9263]({{ site.repository }}/issues/9263))
- Grammatical reordering in 3-to-4 upgrading docs ([#9245]({{ site.repository }}/issues/9245))
- fixed grammatical mistake on &#34;showcase&#34; page ([#9264]({{ site.repository }}/issues/9264))
- Mark `highlight` `mark_lines` feature as 4.4 in docs ([#9184]({{ site.repository }}/issues/9184))
- Add v3.9.3 release history &amp; post to `master` branch ([#9284]({{ site.repository }}/issues/9284))
- Update S3 deployment to remove s3_website ([#9221]({{ site.repository }}/issues/9221))
- Document Exclude behavior, Include overrides and the default exclusion list ([#9376]({{ site.repository }}/issues/9376))
- Update macos.md, remove Catalina (macOS 10.15) ([#9405]({{ site.repository }}/issues/9405))
- Update macos.md, add support for Ventura ([#9406]({{ site.repository }}/issues/9406))
- Typo fix - update to hooks and 3rd party deployment and one other article ([#9411]({{ site.repository }}/issues/9411))
- Update 07-assets.md ([#9393]({{ site.repository }}/issues/9393))
- Mention the front matter requirement in pages.md ([#9423]({{ site.repository }}/issues/9423))
- Point to the Rouge GitHub repo rather than broken website ([#9362]({{ site.repository }}/issues/9362))
- Add new theme directory to themes resources ([#9356]({{ site.repository }}/issues/9356))
- Adds Kinsta to 3rd party deployments ([#9331]({{ site.repository }}/issues/9331))
- Update Fedora prerequisites to include g++ ([#9290]({{ site.repository }}/issues/9290))
- Update convert-site-to-jekyll.md ([#9348]({{ site.repository }}/issues/9348))
- Update github-actions documentation ([#9426]({{ site.repository }}/issues/9426))
- Update resources.md ([#9449]({{ site.repository }}/issues/9449))
- Add GitHub Pages helpful notes ([#9235]({{ site.repository }}/issues/9235))
- Clarify which version of Jekyll needs &#39;jekyll-paginate&#39; ([#9477]({{ site.repository }}/issues/9477))
- chore: update showcases ([#9473]({{ site.repository }}/issues/9473))
- Add FreeBSD installation instructions ([#9481]({{ site.repository }}/issues/9481))
- Fix broken link for the security team page ([#9497]({{ site.repository }}/issues/9497))
- Fix broken links for several Jekyll integrations ([#9496]({{ site.repository }}/issues/9496))
- Add release post for v4.3.3 ([#9511]({{ site.repository }}/issues/9511))
- Add docs version badge to page_excerpts feature ([#9520]({{ site.repository }}/issues/9520))
- Improve accessibility of the docs ([#9338]({{ site.repository }}/issues/9338))
- Fix gem quote consistency on docs ([#9517]({{ site.repository }}/issues/9517))
- Make site search work again ([#9530]({{ site.repository }}/issues/9530))
- Jekyll docs template typo - All pages show &#34;Deployment&#34; ([#9548]({{ site.repository }}/issues/9548))
- Fixed: Wrong navigation style on the right side of news and docs pages ([#9586]({{ site.repository }}/issues/9586))
- Add redirect for step-by-step tutorial ([#9593]({{ site.repository }}/issues/9593))
- Add Jekyll 3.10.0 release post &amp; history ([#9625]({{ site.repository }}/issues/9625))
- Fix minor docs error ([#9641]({{ site.repository }}/issues/9641))
- Update windows.md ([#9644]({{ site.repository }}/issues/9644))
- Document keys of global variable {% raw %}`{{ jekyll }}`{% endraw %} ([#9653]({{ site.repository }}/issues/9653))
- Fix incorrect and inconsistent variables in the permalinks page ([#9591]({{ site.repository }}/issues/9591))
- Fix lapses in documentation of page variables ([#9667]({{ site.repository }}/issues/9667))
- Add note about VSCode warning for SCSS files ([#9609]({{ site.repository }}/issues/9609))
- docs: Fix incorrect parentheses ([#9629]({{ site.repository }}/issues/9629))
- docs: Fix of a bug in the pagination section ([#8890]({{ site.repository }}/issues/8890))
- Update current Ruby version renders and macOS docs ([#9614]({{ site.repository }}/issues/9614))
- Improve docs around using GitHub Actions to build and deploy Jekyll sites ([#9682]({{ site.repository }}/issues/9682))
- Fix grammar in the description of `page.excerpt` variable ([#9689]({{ site.repository }}/issues/9689))
- Render HTML tables at `/docs/permalinks/` using a data file ([#9666]({{ site.repository }}/issues/9666))
- Fix HTML attribute separation whitespace placement in the Navigation include code of Assets step of the Step by Step Tutorial ([#9695]({{ site.repository }}/issues/9695))
- Fix missing glob matching pattern support description in the documentation of the `include` and `exclude` configuration options ([#9697]({{ site.repository }}/issues/9697))
- Fix missing `url` configuration option documentation ([#9699]({{ site.repository }}/issues/9699))
- Link to GitHub Pages Dependency versions page instead of explicitly specifying Jekyll version ([#9715]({{ site.repository }}/issues/9715))
- Fix broken link on third-party.md ([#9704]({{ site.repository }}/issues/9704))
- Fix: remove inaccessible links and their descriptions ([#9745]({{ site.repository }}/issues/9745))
- Add release post for v4.4.0 ([#9759]({{ site.repository }}/issues/9759))
### Site Enhancements
{: #site-enhancements-v4-4-0}
- Extract markup for `Improve this page` into an inclusion ([#9675]({{ site.repository }}/issues/9675))
## 4.3.4 / 2024-09-16
{: #v4-3-4}
### Bug Fixes
{: #bug-fixes-v4-3-4}
- Backport [#9662]({{ site.repository }}/issues/9662) for v4.3.x: Relax version constraint on wdm in new Gemfile ([#9683]({{ site.repository }}/issues/9683))
- Backport [#9680]({{ site.repository }}/issues/9680) for v4.3.x: Render theme-gem root only in development ([#9684]({{ site.repository }}/issues/9684))
### Development Fixes
{: #development-fixes-v4-3-4}
- Sync workflows with counterparts on `master` ([#9681]({{ site.repository }}/issues/9681))
## 4.3.3 / 2023-12-27
{: #v4-3-3}
### Bug Fixes
{: #bug-fixes-v4-3-3}
- Backport [#9392]({{ site.repository }}/issues/9392) for v4.3.x: Fix backward compatibility issues in the Logger ([#9510]({{ site.repository }}/issues/9510))
### Development Fixes
{: #development-fixes-v4-3-3}
- Backport [#9237]({{ site.repository }}/issues/9237) for v4.3.x: Use Hash explicitly for Struct initializer ([#9285]({{ site.repository }}/issues/9285))
## 3.10.0 / 2024-06-23
{: #v3-10-0}
### Minor Enhancements
{: #minor-enhancements-v3-10-0}
- Backport add-csv-dependency from [#9522]({{ site.repository }}/issues/9522) to Jekyll 3 ([#9616]({{ site.repository }}/issues/9616))
- 3.10-stable: Add webrick as a dependency ([#9620]({{ site.repository }}/issues/9620))
## 3.9.5 / 2024-02-12
{: #v3-9-5}
### Minor Enhancements
{: #minor-enhancements-v3-9-5}
- 3.9-stable: allow Pages to be Excerpted ([#9550]({{ site.repository }}/issues/9550))
## 3.9.4 / 2023-12-28
{: #v3-9-4}
### Bug Fixes
{: #bug-fixes-v3-9-4}
- Backport [#9392]({{ site.repository }}/issues/9392) for v3.9.x: Add support for Ruby 3.3 Logger ([#9513]({{ site.repository }}/issues/9513))
## 3.9.3 / 2023-01-29
{: #v3-9-3}
### Bug Fixes
{: #bug-fixes-v3-9-3}
- 3.9.x: Support i18n 1.x ([#9269]({{ site.repository }}/issues/9269))
- Backport [#8880]({{ site.repository }}/issues/8880) for v3.9.x: Support both tzinfo v1 and v2 along with non-half hour offsets ([#9280]({{ site.repository }}/issues/9280))
### Development Fixes
{: #development-fixes-v3-9-3}
- v3.9.x: test under Ruby 3.2 [#9272]({{ site.repository }}/issues/9272))
- v3.9.x: fix rdiscount test ([#9277]({{ site.repository }}/issues/9277))
## 4.3.2 / 2023-01-20
{: #v4-3-2}
### Bug Fixes
{: #bug-fixes-v4-3-2}
- Backport [#9257]({{ site.repository }}/issues/9257) for v4.3.x: Rename sass partial created for new blank site ([#9262]({{ site.repository }}/issues/9262))
- Backport [#9187]({{ site.repository }}/issues/9187) for v4.3.x: Optimize `Site#each_site_file` ([#9256]({{ site.repository }}/issues/9256))
- Backport [#9186]({{ site.repository }}/issues/9186) for v4.3.x: Remove totals in profile table properly ([#9255]({{ site.repository }}/issues/9255))
### Development Fixes
{: #development-fixes-v4-3-2}
- Backport [#9223]({{ site.repository }}/issues/9223) for 4.3.x: Update sass related tests for jekyll-sass-converter 3.x ([#9254]({{ site.repository }}/issues/9254))
## 4.3.1 / 2022-10-26
{: #v4-3-1}
### Bug Fixes
{: #bug-fixes-v4-3-1}
- Respect user-defined name attribute in documents ([#9167]({{ site.repository }}/issues/9167))
- Revert &#34;Incrementally rebuild when a data file is changed&#34; ([#9170]({{ site.repository }}/issues/9170))
### Documentation
- Release post for v4.3.1 ([#9171]({{ site.repository }}/issues/9171))
## 4.3.0 / 2022-10-20
{: #v4-3-0}
### Minor Enhancements
{: #minor-enhancements-v4-3-0}
- Add webrick as a dependency ([#8524]({{ site.repository }}/issues/8524))
- Regenerate supported mime types ([#8542]({{ site.repository }}/issues/8542))
- Update include tag to be more permissive ([#8618]({{ site.repository }}/issues/8618))
- Optimize `Jekyll::Utils.parse_date` ([#8425]({{ site.repository }}/issues/8425))
- Update rubocop from 1.12 to 1.18 and min ruby from 2.4 to 2.5 ([#8741]({{ site.repository }}/issues/8741))
- Always hide cache-dir contents from Git ([#8798]({{ site.repository }}/issues/8798))
- Remove the warning about auto-regeneration on Windows ([#8821]({{ site.repository }}/issues/8821))
- Propagate _data folder from theme ([#8815]({{ site.repository }}/issues/8815))
- Support both tzinfo v1 and v2 along with non-half hour offsets. ([#8880]({{ site.repository }}/issues/8880))
- Run vendor-mimes to update mime.types ([#8940]({{ site.repository }}/issues/8940))
- Expose collection static files via `site.static_files` ([#8961]({{ site.repository }}/issues/8961))
- Expose `basename` from `document.rb` as `name` to Liquid templates ([#8761]({{ site.repository }}/issues/8761))
- Allow Configurable Converters on CSV ([#8858]({{ site.repository }}/issues/8858))
- Introduce `theme` drop to expose theme-gem details ([#9129]({{ site.repository }}/issues/9129))
- Relax version constraint to allow Rouge 4.x ([#9134]({{ site.repository }}/issues/9134))
- Incrementally rebuild when a data file is changed ([#8771]({{ site.repository }}/issues/8771))
- Support jekyll-sass-converter 3.x ([#9132]({{ site.repository }}/issues/9132))
### Bug Fixes
{: #bug-fixes-v4-3-0}
- fix: pin rubocop to 1.12 due to error with ruby 2.4 ([#8651]({{ site.repository }}/issues/8651))
- Load Jekyll plugins from BUNDLE_GEMFILE location ([#8585]({{ site.repository }}/issues/8585))
- fix(security): CVE-2021-28834 ([#8680]({{ site.repository }}/issues/8680))
- Inject livereload script using `location.protocol` instead of `http:` ([#8718]({{ site.repository }}/issues/8718))
- Respect collections_dir config within include tag ([#8756]({{ site.repository }}/issues/8756))
- Fix regression in Convertible module from v4.2.0 ([#8786]({{ site.repository }}/issues/8786))
- Revert [#7253]({{ site.repository }}/issues/7253): &#34;Don&#39;t reset site.url to localhost:4000 by default&#34; ([#8620]({{ site.repository }}/issues/8620))
- Improve readability of CI logs ([#8877]({{ site.repository }}/issues/8877))
- Fix deprecation message for missing doc method ([#8960]({{ site.repository }}/issues/8960))
- Fix response header for content served via `jekyll serve` ([#8965]({{ site.repository }}/issues/8965))
- Trigger livereload in sites without pages ([#8337]({{ site.repository }}/issues/8337))
- Only enable BOM encoding option on UTF encodings ([#8363]({{ site.repository }}/issues/8363))
- Ensure theme config is a `Jekyll::Configuration` object ([#8988]({{ site.repository }}/issues/8988))
- Remove misleading totals row from `--profile` table ([#9039]({{ site.repository }}/issues/9039))
- Unlock Psych dependency ([#9135]({{ site.repository }}/issues/9135))
- Fix false positive conflicts for static files in a collection ([#9141]({{ site.repository }}/issues/9141))
### Development Fixes
{: #development-fixes-v4-3-0}
- style: enable new cops ([#8538]({{ site.repository }}/issues/8538))
- Allow dependabot to keep github actions up-to-date ([#8540]({{ site.repository }}/issues/8540))
- Update actions/cache requirement to v2.1.3 ([#8543]({{ site.repository }}/issues/8543))
- Pin rubocop version ([#8564]({{ site.repository }}/issues/8564))
- style: add rubocop 1.9 cops ([#8567]({{ site.repository }}/issues/8567))
- Cross Version Testing Locally and Faster CI ([#8610]({{ site.repository }}/issues/8610))
- Use official Ruby setup GH action ([#8614]({{ site.repository }}/issues/8614))
- Spell check action for markdown documentation ([#8675]({{ site.repository }}/issues/8675))
- Update expect to cover docs/_posts ([#8677]({{ site.repository }}/issues/8677))
- Bump check-spelling/check-spelling from 0.0.18 to 0.0.19 ([#8740]({{ site.repository }}/issues/8740))
- Enable Rubocop accessor grouping, fix existing offenses ([#8293]({{ site.repository }}/issues/8293))
- Tags:Highlight: Decomposed HTMLLegacy formatter ([#8623]({{ site.repository }}/issues/8623))
- Relax Rubocop Dependency ([#8831]({{ site.repository }}/issues/8831))
- Add a workflow to build gems consistently ([#8830]({{ site.repository }}/issues/8830))
- Fix random test failures in TestExcerpt #to_liquid ([#8884]({{ site.repository }}/issues/8884))
- Lock gem `psych` to `v3.x` ([#8918]({{ site.repository }}/issues/8918))
- Fix typo in Bug Report template ([#8951]({{ site.repository }}/issues/8951))
- Check symlink outside site_source without Pathutil ([#9015]({{ site.repository }}/issues/9015))
- Stop testing with Rubies older than 2.7 on non-Windows ([#8955]({{ site.repository }}/issues/8955))
- Bump actions/checkout from 2 to 3 ([#8986]({{ site.repository }}/issues/8986))
- Remove git.io shortlinks from repo ([#9045]({{ site.repository }}/issues/9045))
- Bump rubocop to 1.32 ([#9093]({{ site.repository }}/issues/9093))
- Bump RuboCop to `1.36.x` ([#9125]({{ site.repository }}/issues/9125))
- Use check-spelling/check-spelling@v0.0.20 ([#9111]({{ site.repository }}/issues/9111))
- Disable pending cops when running rubocop ([#9136]({{ site.repository }}/issues/9136))
- Relax RDoc version dependency ([#9142]({{ site.repository }}/issues/9142))
### Documentation
- typo - do instead of don&#39;t ([#8518]({{ site.repository }}/issues/8518))
- Document support for TSV files consistently ([#8488]({{ site.repository }}/issues/8488))
- Add a disclaimer to tutorials involving Ruby code ([#8525]({{ site.repository }}/issues/8525))
- Improve documentation on developing generators ([#8527]({{ site.repository }}/issues/8527))
- Fixes typo in layouts_dir documentation ([#8532]({{ site.repository }}/issues/8532))
- Fix i.e. typos in collections.md ([#8529]({{ site.repository }}/issues/8529))
- Remove GitHub Pages content which is in GitHub docs ([#8533]({{ site.repository }}/issues/8533))
- Step By Step Instructions Review ([#8399]({{ site.repository }}/issues/8399))
- Fix typo in migrating from 3.0 to 4.0 page ([#8572]({{ site.repository }}/issues/8572))
- Fix for important missing step in macOS Installation Docs: Add the Homebrew gems directory to the PATH ([#8496]({{ site.repository }}/issues/8496))
- Use latest Jekyll-action configuration ([#8579]({{ site.repository }}/issues/8579))
- docs: troubleshoot macOS with ARM64 architecture ([#8560]({{ site.repository }}/issues/8560))
- docs: add overview of .jekyll-cache dir ([#8648]({{ site.repository }}/issues/8648))
- docs: clarify where .jekyll-metadata comes from ([#8646]({{ site.repository }}/issues/8646))
- Razorops CI/CD added ([#8656]({{ site.repository }}/issues/8656))
- Specify default port and host for serve commands in docs ([#8624]({{ site.repository }}/issues/8624))
- Update third-party.md ([#8652]({{ site.repository }}/issues/8652))
- Add documentation for Sass configuration options ([#8587]({{ site.repository }}/issues/8587))
- Add formcarry to forms section ([#8471]({{ site.repository }}/issues/8471))
- Add step to set SDKROOT ([#8478]({{ site.repository }}/issues/8478))
- Improve the &#34;Markdown Options&#34; Docs ([#8681]({{ site.repository }}/issues/8681))
- Add &#39;webrick&#39; warning note to &#34;Quickstart&#34; Docs ([#8727]({{ site.repository }}/issues/8727))
- Update windows.md ([#8701]({{ site.repository }}/issues/8701))
- IRC networks - Libera, Freenode ([#8706]({{ site.repository }}/issues/8706))
- Improve GitHub Flavored Markdown Docs ([#8684]({{ site.repository }}/issues/8684))
- Fixing URL in MacOS install for rbenv-doctor ([#8693]({{ site.repository }}/issues/8693))
- Fix adjective in `troubleshooting.md` document ([#8777]({{ site.repository }}/issues/8777))
- Goodbye Frank. We&#39;ll miss you. 💔 ([#8807]({{ site.repository }}/issues/8807))
- Update index.html: Grammar fix. ([#8803]({{ site.repository }}/issues/8803))
- Prefer Libera. Remove Freenode. ([#8811]({{ site.repository }}/issues/8811))
- Update feature_request.md ([#8797]({{ site.repository }}/issues/8797))
- Remove AWS Amplify from the showcase ([#8812]({{ site.repository }}/issues/8812))
- Move Frank to Emeritus Core Team Members ([#8813]({{ site.repository }}/issues/8813))
- Release post for v4.2.1 ([#8818]({{ site.repository }}/issues/8818))
- Update CircleCI example ([#8829]({{ site.repository }}/issues/8829))
- Fix typo ([#8835]({{ site.repository }}/issues/8835))
- Added docs for running locally ([#8852]({{ site.repository }}/issues/8852))
- Linting README.markdown ([#8900]({{ site.repository }}/issues/8900))
- Remove text on GITHUB_TOKEN which is now built-in ([#8907]({{ site.repository }}/issues/8907))
- Add Security Policy document ([#8823]({{ site.repository }}/issues/8823))
- Manage repository meta documents consistently ([#8908]({{ site.repository }}/issues/8908))
- docs: add Layer0 deployment guide ([#8915]({{ site.repository }}/issues/8915))
- docs: Update README generated by `jekyll new-theme` ([#8919]({{ site.repository }}/issues/8919))
- Update resources.md ([#8925]({{ site.repository }}/issues/8925))
- Rewrite documentation on installing plugins ([#8921]({{ site.repository }}/issues/8921))
- Improve maintainers guide on releasing a new version ([#8928]({{ site.repository }}/issues/8928))
- Fix link for &#34;CloudSh&#34; ([#8934]({{ site.repository }}/issues/8934))
- Recommend using `actions/cache` in GitHub Actions documentation ([#8948]({{ site.repository }}/issues/8948))
- Remove references to EOL hakiri.io service ([#8946]({{ site.repository }}/issues/8946))
- Release post for v4.2.2 ([#8982]({{ site.repository }}/issues/8982))
- Document releasing off `*-stable` branches ([#8984]({{ site.repository }}/issues/8984))
- Update document by fix yaml syntax error ([#8991]({{ site.repository }}/issues/8991))
- Enhance option&#39;s case for Jekyll configuration ([#8992]({{ site.repository }}/issues/8992))
- Fix typo in `_docs/deployment/manual.md` ([#8997]({{ site.repository }}/issues/8997))
- Add quiet/verbose options ([#8996]({{ site.repository }}/issues/8996))
- Update README.markdown re IRC Pointer ([#9005]({{ site.repository }}/issues/9005))
- Remove Aerobatic ([#9007]({{ site.repository }}/issues/9007))
- Add Jekyll 3.9.2 release post to &#39;master&#39; branch ([#9013]({{ site.repository }}/issues/9013))
- Simplify macOS installation docs ([#8993]({{ site.repository }}/issues/8993))
- Improve document about GitHub Actions section ([#8853]({{ site.repository }}/issues/8853))
- Update permalinks.md ([#9017]({{ site.repository }}/issues/9017))
- Add clarity to docs on permalinks placeholders and built-ins ([#8995]({{ site.repository }}/issues/8995))
- Remove Ionic Framework site from showcase ([#9057]({{ site.repository }}/issues/9057))
- Windows: describe which option to choose ([#9049]({{ site.repository }}/issues/9049))
- Improve links (http -&gt; https) ([#9064]({{ site.repository }}/issues/9064))
- Update ruby version for macos guide ([#9086]({{ site.repository }}/issues/9086))
- Update posts.md ([#9151]({{ site.repository }}/issues/9151))
- Release post for v4.3.0 ([#9157]({{ site.repository }}/issues/9157))
### Site Enhancements
{: #site-enhancements-v4-3-0}
- Improvements to CSS ([#7834]({{ site.repository }}/issues/7834))
- Slightly update lang `sh` code-block styling ([#8857]({{ site.repository }}/issues/8857))
## 4.2.2 / 2022-03-03
{: #v4-2-2}
### Bug Fixes
{: #bug-fixes-v4-2-2}
- Lock `http_parser.rb` gem to `v0.6.x` on JRuby.
### Development Fixes
{: #development-fixes-v4-2-2}
- Backport [#8830]({{ site.repository }}/issues/8830) for v4.2.x: Add a workflow to build gems consistently ([#8869]({{ site.repository }}/issues/8869))
- Lock `rubocop-performance` to `v1.11.x`.
## 4.2.1 / 2021-09-27
{: #v4-2-1}
@@ -750,23 +333,6 @@ note: This file is autogenerated. Edit /History.markdown instead.
- Fix Kramdown converter based tests for v4.0.x ([#8143]({{ site.repository }}/issues/8143))
## 3.9.2 / 2022-03-27
{: #v3-9-2}
### Bug Fixes
{: #bug-fixes-v3-9-2}
- Lock `http_parser.rb` gem to `v0.6.x` on JRuby ([#8943]({{ site.repository }}/issues/8943))
- Backport [#8756]({{ site.repository }}/issues/8756) for v3.9.x: Respect collections_dir config within include tag ([#8795]({{ site.repository }}/issues/8795))
- Backport [#8965]({{ site.repository }}/issues/8965) for v3.9.x: Fix response header for content served via `jekyll serve` ([#8976]({{ site.repository }}/issues/8976))
### Development Fixes
{: #development-fixes-v3-9-2}
- Update and fix CI for `3.9-stable` on Ruby 3.x ([#8942]({{ site.repository }}/issues/8942))
- Fix CI for commits to `3.9-stable` branch ([#8788]({{ site.repository }}/issues/8788))
## 3.9.1 / 2021-04-08
{: #v3-9-1}
@@ -1573,7 +1139,7 @@ note: This file is autogenerated. Edit /History.markdown instead.
- make flakey test more robust ([#6277]({{ site.repository }}/issues/6277))
- Add a quick test for DataReader ([#6284]({{ site.repository }}/issues/6284))
- script/backport-pr: commit message no longer includes the `#` ([#6289]({{ site.repository }}/issues/6289))
- Add CODEOWNERS file to help automate reviews. ([#6320]({{ site.repository }}/issues/6320))
- Add Add CODEOWNERS file to help automate reviews. ([#6320]({{ site.repository }}/issues/6320))
- Fix builds on codeclimate ([#6333]({{ site.repository }}/issues/6333))
- Bump rubies on Travis ([#6366]({{ site.repository }}/issues/6366))
@@ -2732,7 +2298,7 @@ note: This file is autogenerated. Edit /History.markdown instead.
- Fixed an unclear code comment in site template SCSS ([#3837]({{ site.repository }}/issues/3837))
- Fix reading of binary metadata file ([#3845]({{ site.repository }}/issues/3845))
- Remove var collision with site template header menu iteration variable ([#3838]({{ site.repository }}/issues/3838))
- Change nonexistent `hl_linenos` to `hl_lines` to allow passthrough in safe mode ([#3787]({{ site.repository }}/issues/3787))
- Change non-existent `hl_linenos` to `hl_lines` to allow passthrough in safe mode ([#3787]({{ site.repository }}/issues/3787))
- Add missing flag to disable the watcher ([#3820]({{ site.repository }}/issues/3820))
- Update CI guide to include more direct explanations of the flow ([#3891]({{ site.repository }}/issues/3891))
- Set `future` to `false` in the default config ([#3892]({{ site.repository }}/issues/3892))
@@ -3069,7 +2635,7 @@ note: This file is autogenerated. Edit /History.markdown instead.
- Document the `name` variable for collection permalinks ([#2829]({{ site.repository }}/issues/2829))
- Adds info about installing jekyll in current dir ([#2839]({{ site.repository }}/issues/2839))
- Remove deprecated `jekyll-projectlist` plugin from list of third-party plugins ([#2742]({{ site.repository }}/issues/2742))
- Remove tag plugins that are built into Jekyll ([#2751]({{ site.repository }}/issues/2751))
- Remove tag plugins that are built in to Jekyll ([#2751]({{ site.repository }}/issues/2751))
- Add `markdown-writer` package for Atom Editor to list of third-party plugins ([#2763]({{ site.repository }}/issues/2763))
- Fix typo in site documentation for collections ([#2764]({{ site.repository }}/issues/2764))
- Fix minor typo on plugins docs page ([#2765]({{ site.repository }}/issues/2765))

View File

@@ -85,7 +85,7 @@ For example, suppose you have a special image syntax with complex formatting, an
```html
<figure>
<a href="https://jekyllrb.com">
<a href="http://jekyllrb.com">
<img src="logo.png" style="max-width: 200px;"
alt="Jekyll logo" />
</a>

View File

@@ -24,19 +24,19 @@ See [Requirements]({{ '/docs/installation/#requirements' | relative_url }}) for
1. Install all [prerequisites]({{ '/docs/installation/' | relative_url }}).
2. Install the jekyll and bundler [gems]({{ '/docs/ruby-101/#gems' | relative_url }}).
```sh
```
gem install jekyll bundler
```
3. Create a new Jekyll site at `./myblog`.
```sh
```
jekyll new myblog
```
4. Change into your new directory.
```sh
```
cd myblog
```
5. Build the site and make it available on a local server.
```sh
```
bundle exec jekyll serve
```
6. Browse to [http://localhost:4000](http://localhost:4000){:target="_blank"}

View File

@@ -18,6 +18,5 @@ For detailed install instructions, follow the guide for your operating system.
* [macOS]({{ '/docs/installation/macos/' | relative_url }})
* [Ubuntu]({{ '/docs/installation/ubuntu/' | relative_url }})
* [FreeBSD]({{ '/docs/installation/freebsd/' | relative_url }})
* [Other Linux]({{ '/docs/installation/other-linux/' | relative_url }})
* [Windows]({{ '/docs/installation/windows/' | relative_url }})

View File

@@ -1,50 +0,0 @@
---
title: Jekyll on FreeBSD
permalink: /docs/installation/freebsd/
---
### Install Ruby
```sh
sudo pkg install ruby
```
### Install Ruby Gems
Find the latest version and install it. (Replace `ruby3x` with whatever the latest version is.)
```sh
pkg search gems
sudo pkg install ruby3x-gems
```
## Set Gems directory and add that to the Bash path
Avoid installing RubyGems packages (called gems) as the root user. Instead,
set up a gem installation directory for your user account. The following
commands will add environment variables to your `~/.bashrc` file to configure
the gem installation path:
```sh
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
```
## Install Jekyll Gems
```sh
gem install jekyll bundler jekyll-sitemap
```
## Verify install
Both of these commands should return some output showing version number, etc.
```sh
ruby -v
jekyll -v
```
That's it! You're ready to start using Jekyll.

View File

@@ -3,88 +3,155 @@ title: Jekyll on macOS
permalink: /docs/installation/macos/
---
## Supported macOS versions
## Install Command Line Tools
To install the command line tools to compile native extensions, open a terminal and run:
We match [Homebrew's macOS requirements](https://docs.brew.sh/Installation#macos-requirements), which typically support the last 2 or 3 macOS versions.
```sh
xcode-select --install
```
Older macOS versions might work, but we don't officially support them.
### set SDKROOT (only macOS Catalina or later)
Starting on macOS Catalina (10.15) the headers used for Ruby have been moved from their previous location which results in some gems, including Jekyll to fail installation. This can be solved by setting SDKROOT in your shell configuration to the value provided by xcrun.
```ssh
export SDKROOT=$(xcrun --show-sdk-path)
```
## Install Ruby
To install Jekyll on macOS, you need a proper Ruby development environment.
While macOS comes preinstalled with Ruby, we don't recommend using that version
to install Jekyll. This external article goes over the various reasons
[why you shouldn't use the system Ruby](https://www.moncefbelyamani.com/why-you-shouldn-t-use-the-system-ruby-to-install-gems-on-a-mac/).
Jekyll requires **Ruby v{{ site.data.ruby.min_version }}** or higher.
macOS Big Sur 11.x ships with Ruby 2.6.3. Check your Ruby version using `ruby -v`.
Instead, you'll need to install a separate and newer version of Ruby using a
version manager such as [asdf], [chruby], [rbenv], or [rvm]. Version managers
allow you to easily install multiple versions of Ruby, and switch between them.
If you're running a previous version of macOS, you'll have to install a newer version of Ruby. Installation with [Homebrew](https://brew.sh) is simple if you're only planning to use Ruby for Jekyll. Install with a version manager such as [asdf](https://asdf-vm.com/), [chruby](https://github.com/postmodern/chruby), [rbenv](https://github.com/rbenv/rbenv), or [rvm](https://rvm.io/) if you need to switch among Ruby versions (instructions for rbenv are below). See the guide [Install Ruby on Mac](https://mac.install.guide/ruby/index.html) for details and recommendations.
We recommend `chruby` because it's the simplest and least likely to cause issues.
The instructions below are an excerpt from this detailed external guide to
[install Ruby on Mac]. They work best if you're setting up development tools
for the first time on your Mac. If you've already tried to install Ruby or
Jekyll on your Mac, or if you run into any issues, read that guide.
[asdf]: https://asdf-vm.com/
[chruby]: https://github.com/postmodern/chruby
[rbenv]: https://github.com/rbenv/rbenv
[rvm]: https://rvm.io/
[install Ruby on Mac]: https://www.moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/
### Step 1: Install Homebrew
[Homebrew](https://brew.sh/) makes it easy to install development tools on a Mac.
### With Homebrew {#brew}
To run the latest Ruby version you need to install it through [Homebrew](https://brew.sh).
```sh
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Ruby
brew install ruby
```
### Step 2: Install chruby and the latest Ruby with ruby-install
Add the brew ruby and gems path to your shell configuration:
Install `chruby` and `ruby-install` with Homebrew:
```bash
# If you're using Zsh
echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.0.0/bin:$PATH"' >> ~/.zshrc
```sh
brew install chruby ruby-install
# If you're using Bash
echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.0.0/bin:$PATH"' >> ~/.bash_profile
# Unsure which shell you are using? Type
echo $SHELL
```
Install the latest stable version of Ruby (supported by Jekyll):
Relaunch your terminal and check your Ruby setup:
```sh
ruby-install ruby {{ site.data.ruby.current_version }}
```
which ruby
# /usr/local/opt/ruby/bin/ruby
This will take a few minutes, and once it's done, configure your shell to
automatically use `chruby`:
```sh
echo "source $(brew --prefix)/opt/chruby/share/chruby/chruby.sh" >> ~/.zshrc
echo "source $(brew --prefix)/opt/chruby/share/chruby/auto.sh" >> ~/.zshrc
echo "chruby ruby-{{ site.data.ruby.current_version }}" >> ~/.zshrc # run 'chruby' to see actual version
```
If you're using Bash, replace `.zshrc` with `.bash_profile`. If you're not sure,
read this external guide to
[find out which shell you're using](https://www.moncefbelyamani.com/which-shell-am-i-using-how-can-i-switch/).
Quit and relaunch Terminal, then check that everything is working:
```sh
ruby -v
{{ site.data.ruby.current_version_output }}
```
It should show {{ site.data.ruby.current_version_output }} or a newer version.
You're now running the current stable version of Ruby!
Next, read that same external guide for important notes about
[setting and switching between Ruby versions with chruby](https://www.moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/#how-to-install-different-versions-of-ruby-and-switch-between-them).
### With rbenv {#rbenv}
People often use [rbenv](https://github.com/rbenv/rbenv) to manage multiple
Ruby versions. This is very useful when you need to be able to run a given Ruby version on a project.
```sh
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install rbenv and ruby-build
brew install rbenv
# Set up rbenv integration with your shell
rbenv init
# Check your installation
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
```
Restart your terminal to apply your changes.
Next, you can install the Ruby version you want. Let's install the latest stable version:
```sh
rbenv install {{ site.data.ruby.current_version }}
rbenv global {{ site.data.ruby.current_version }}
ruby -v
{{ site.data.ruby.current_version_output }}
```
That's it! Head over to [rbenv command references](https://github.com/rbenv/rbenv#command-reference) to learn how to use different versions of Ruby in your projects.
## Install Jekyll
After installing Ruby with chruby, install the latest Jekyll gem:
After installing Ruby, install Jekyll and Bundler.
### Local Install
Install the bundler and jekyll gems:
```sh
gem install jekyll
gem install --user-install bundler jekyll
```
Get your Ruby version:
```sh
ruby -v
{{ site.data.ruby.current_version_output }}
```
Append your path file with the following, replacing the `X.X` with the first two digits of your Ruby version:
```bash
# If you're using Zsh
echo 'export PATH="$HOME/.gem/ruby/X.X.0/bin:$PATH"' >> ~/.zshrc
# If you're using Bash
echo 'export PATH="$HOME/.gem/ruby/X.X.0/bin:$PATH"' >> ~/.bash_profile
# Unsure which shell you are using? Type
echo $SHELL
```
Check that `GEM PATHS:` points to your home directory:
```sh
gem env
```
{: .note .info}
Every time you update Ruby to a version in which the first two digits change, update your path to match.
### Global Install
{: .note .warning}
We recommend not installing Ruby gems globally to avoid file permissions problems and using `sudo`.
#### On Mojave (10.14)
Because of SIP Protections in Mojave, run:
```sh
sudo gem install bundler
sudo gem install -n /usr/local/bin/ jekyll
```
#### Before Mojave (<10.14)
Run:
```sh
sudo gem install bundler jekyll
```
## Troubleshooting

View File

@@ -10,7 +10,7 @@ Installation on other Linux distributions works similarly to installing on [Ubun
### Fedora
```sh
sudo dnf install ruby ruby-devel openssl-devel redhat-rpm-config gcc-c++ @development-tools
sudo dnf install ruby ruby-devel openssl-devel redhat-rpm-config @development-tools
```
### RHEL8/CentOS8
@@ -40,7 +40,7 @@ sudo emerge --ask --verbose jekyll
### ArchLinux
```sh
sudo pacman -S ruby base-devel ruby-erb
sudo pacman -S ruby base-devel
```
### OpenSUSE

View File

@@ -23,8 +23,7 @@ We only cover RubyInstaller-2.4 and newer here. Older versions need to
Use default options for installation.
2. Run the `ridk install` step on the last stage of the installation wizard. This is needed for installing gems with native
extensions. You can find additional information regarding this in the
[RubyInstaller Documentation](https://github.com/oneclick/rubyinstaller2#using-the-installer-on-a-target-system).
From the options choose `MSYS2 and MINGW development toolchain`.
[RubyInstaller Documentation](https://github.com/oneclick/rubyinstaller2#using-the-installer-on-a-target-system)
3. Open a new command prompt window from the start menu, so that changes to the `PATH` environment variable becomes effective.
Install Jekyll and Bundler using `gem install jekyll bundler`
4. Check if Jekyll has been installed properly: `jekyll -v`
@@ -45,9 +44,37 @@ You must have [Windows Subsystem for Linux](https://msdn.microsoft.com/en-us/com
Make sure all your packages and repositories are up to date. Open a new Command Prompt or PowerShell window and type `bash`.
Your terminal should now be a Bash instance. Then, [follow the installation procedure for Ubuntu](https://jekyllrb.com/docs/installation/ubuntu/).
Your terminal should now be a Bash instance. Next, update your repository lists and packages:
Once this is done, check your Jekyll version:
```sh
sudo apt-get update -y && sudo apt-get upgrade -y
```
Next, install Ruby. To do this, let's use a repository from [BrightBox](https://www.brightbox.com/docs/ruby/ubuntu/),
which hosts optimized versions of Ruby for Ubuntu.
```sh
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.5 ruby2.5-dev build-essential dh-autoreconf
```
Next, update your Ruby gems:
```sh
gem update
```
Install Jekyll:
```sh
gem install jekyll bundler
```
{: .note .info}
No `sudo` here.
Check your Jekyll version:
```sh
jekyll -v
@@ -94,14 +121,22 @@ While 'new' blogs created with Jekyll v3.4 and greater, will have the following
sites *will* have to update their `Gemfile` (and installed gems) to enable development on Windows:
```ruby
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "tzinfo", ">= 1", "< 3"
gem "tzinfo-data"
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
```
<div class="note warning">
<h5>TZInfo 2.0 incompatibility</h5>
<p>
Version 2.0 of the TZInfo library has introduced a change in how timezone offsets are calculated.
This will result in incorrect date and time for your posts when the site is built with Jekyll 3.x on Windows.
</p>
<p>
We therefore recommend that you lock the Timezone library to version 1.2 and above by listing
<code>gem 'tzinfo', '~> 1.2'</code> in your <code>Gemfile</code>.
</p>
</div>
## Auto Regeneration
Jekyll uses the `listen` gem to watch for changes when the `--watch` switch is specified during a build or serve.
@@ -110,7 +145,7 @@ While `listen` has built-in support for UNIX systems, it may require an extra ge
Add the following to the `Gemfile` for your site if you have issues with auto-regeneration on Windows alone:
```ruby
gem "wdm", "~> 0.2.0", :install_if => Gem.win_platform?
gem 'wdm', '~> 0.1.1', :install_if => Gem.win_platform?
```
You have to use a [Ruby+Devkit](https://rubyinstaller.org/downloads/) version of the RubyInstaller and install

View File

@@ -15,7 +15,7 @@ If you have page snippets that you use repeatedly across your site, an
## Code snippet highlighting
Jekyll has built in support for syntax highlighting of over 100 languages
thanks to [Rouge](https://github.com/rouge-ruby/rouge). Rouge is the default highlighter
thanks to [Rouge](http://rouge.jneen.net). Rouge is the default highlighter
in Jekyll 3 and above.
{: .note .warning}
@@ -66,26 +66,6 @@ end
```
{% endraw %}
### Marking specific lines {%- include docs_version_badge.html version="4.4.0" -%}
{: #marking-specific-lines }
You can mark specific lines in a code snippet by using the optional
argument `mark_lines`. This argument takes a space-separated list of
line numbers which must be wrapped in double quotes. For example, the
following code block will mark lines 1 and 2 but not line 3:
{% raw %}
```liquid
{% highlight ruby mark_lines="1 2" %}
def foo
puts 'foo'
end
{% endhighlight %}
```
{% endraw %}
A default class name of `hll` will be applied to the marked lines.
### Stylesheets for syntax highlighting
In order for the highlighting to show up, youll need to include a highlighting
@@ -188,25 +168,3 @@ You can also use this tag to create a link to a post in Markdown as follows:
[Name of Link]({% post_url 2010-07-21-name-of-post %})
```
{% endraw %}
Now lets say you have a [datafile]({{ '/docs/datafiles/' | relative_url }}) `_data/cool_posts.yaml` used to keep track
of certain posts that you intend to be listed as say *Cool Posts*:
```yaml
- title: "An Awesome Post"
slug: "2010-07-21-name-of-post"
- title: "Another Awesome Post"
slug: "2016-07-26-name-of-post"
```
You may list such posts using the `post_url` tag as well (from {%- include docs_version_badge.html version="4.5.0" -%}):
{% raw %}
```liquid
Cool posts:
{%- for cool_post in site.data.cool_posts %}
- [{{ cool_post.title }}]({% post_url {{ cool_post.slug }} %})
{%- endfor %}
```
{% endraw %}

View File

@@ -15,7 +15,6 @@ Hello! This is where we document various processes for maintaining Jekyll. Being
- [Avoiding burnout](avoiding-burnout/)
- [Special Labels](special-labels/)
- [Releasing a new version](releasing-a-new-version/)
- [Releasing a new version off `*-stable` branches](releasing-off-stable-branches/)
Interested in becoming a maintainer? Here is some documentation for **contributors**:

View File

@@ -2,107 +2,29 @@
title: "Releasing a new version"
---
**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the
contributions of others. You may find what is written here interesting, but it's definitely not for everyone.
**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but its definitely not for everyone.
{: .note .info}
The most important thing to understand before making a release is that there's no need to feel nervous. Most things are revertable, and even if
you do publish an incomplete gem version, we can always skip that one. Don't hesitate to contact the other maintainers if you feel unsure or
don't know what to do next.
The most important thing to understand before making a release is that there's no need to feel nervous. Most things are revertable, and even if you do publish an incomplete gem version, we can always skip that one. Don't hesitate to contact the other maintainers if you feel unsure or don't know what to do next.
## Branches: `master` vs `*-stable`
We maintain several branches for major/minor releases that have since passed. For example, we maintain the `3.9-stable` branch for the `3.9.x` series since this is still used by GitHub Pages. This allows us to more easily make patches for bugs and security vulnerabilities. Maintaining a `*-stable` version is very similar to `master`, except that the jekyllrb.com blog post must (also) land on the `master` branch in order to be published.
### Bump the version
The only important place you need to manually bump the version is in `lib/jekyll/version.rb`. Adjust that, and everything else should work fine.
The version will mostly be of the format `"major.minor.patch"`. At times, we may decide to ship pre-releases which will be in the format
`"major.minor.patch.suffix"`. `suffix` is not standardized and may be anything like `pre.alpha1`, `pre.rc2`, or simply `beta3`, etc.
### Update the history document
To determine the correct version, consult the `## HEAD` section of our history document, `History.markdown`, first.
- If there's a subsection titled `Major Enhancements`
- Increment the `major` component of the version string and reset both `minor` and `patch` components to `0`.
- Add `suffix` if applicable.
- For example, `"3.9.1" => "4.0.0"` or, `"3.9.1 => "4.0.0.alpha1"`.
- Skip to next step in the release process.
- If there's a subsection titled `Minor Enhancements`
- Increment just the `minor` component and reset the patch component to `0`.
- Add `suffix` if applicable.
- For example, `"4.0.2" => "4.1.0"` or `"4.1.0" => "4.2.0.pre"`.
- Skip to next step in the release process.
- For anything else, increment just the `patch` component or `suffix` component as applicable. For example, `"4.0.2" => "4.0.3"` or
`"4.1.0.beta3" => "4.1.0.rc"`.
### Write a release post
In case this wasn't done already, you can generate a new release post scaffold using the included `rake` command:
```sh
bundle exec rake site:releases:new[3.8.0]
```
where `3.8.0` should be replaced with the new version.
Then, write the post. Be sure to thank all of the collaborators and maintainers who have contributed since the last release. You can generate
a log of their names using the following command:
```sh
git shortlog -sn master...v3.7.2
```
where `v3.7.2` is the git tag for the previous release. In case the tag doesn't exist in your repository, run:
```sh
git pull
```
Be sure to open a pull request for your release post once its finished.
### Update the History document
Replace the first header of `History.markdown` with a version milestone. This looks like the following:
Replace the first header of the history document with a version milestone. This looks like the following:
```diff
- ## HEAD
+ ## 3.7.1 / 2018-01-25
-## HEAD
+## 3.7.1 / 2018-01-25
```
Adjust the version number and the date. The `## HEAD` heading will be regenerated the next time a pull request is merged.
Rearrange the subsections (as a whole) based on decreasing priorities as illustrated below:
```
## 4.2.0 / 2020-12-14
### Major Enhancements
...
### Minor Enhancements
...
### Bug Fixes
...
### Security Fixes
...
### Optimization Fixes
...
### Development Fixes
...
### Site Enhancements
...
```
Adjust the version number and the date. The `## HEAD` heading will be regenerated next time a pull request is merged.
Once you've done this, update the website by running the following command:
@@ -112,51 +34,71 @@ bundle exec rake site:generate
This updates the website's changelog, and pushes the versions in various other places.
It's recommended that you go over the `History.markdown` file manually one more time, in case there are any spelling errors or such. Feel free
to fix those manually, and after you're done generating the website changelog, commit your changes.
It's recommended that you go over the `History.markdown` file manually one more time, in case there are any spelling errors or such. Feel free to fix those manually, and after you're done generating the website changelog, commit your changes.
## Write a release post (`master` branch)
In case this isn't done already, you can generate a new release post using the included `rake` command:
```sh
bundle exec rake site:releases:new[3.8.0]
```
where `3.8.0` should be replaced with the new version. Then, write the post. Be sure to thank all of the collaborators and maintainers who have contributed since the last release. You can generate a log of their names using the following command:
```sh
git shortlog -sn master...v3.7.2
```
where, again `v3.7.2` is the last release. Be sure to open a pull request for your release post.
If you are releasing from a `*-stable` branch, you can generate the post like normal on this branch and create a pull request. The log of names will use the stable branch name instead of `master`:
```sh
git shortlog -sn 3.9-stable...v3.9.1
```
where `v3.9.1` is the previous release on this branch.
**After your blog post has been approved and merged into the `*-stable` branch, you must re-create a pull request on the `master` branch in order to publish the post to jekyllrb.com.**
### Push the version
Before you do this step, make sure the following things are done:
- A release post has been prepared, and is ideally already live via a prior pull request.
- All of the prior steps are done, especially the change to `lib/jekyll/version.rb` has been staged for commit.
- Commit staged changes to the local `master` branch preferably with commit message `"Release :gem: v[CURRENT_VERSION]"`.
- You are on the correct branch with your changes (`master` or a `*-stable` branch)
- You have permission to push a new gem version to RubyGems
- You're [logged into RubyGems on your command line](https://guides.rubygems.org/command-reference/#gem-signin)
- A release post has been prepared, and is ideally already live
- All of the prior steps are done, committed, and pushed to `master`
The only thing left to do now is to run this command:
Really the only thing left to do is to run this command:
```sh
git push upstream master
bundle exec rake release
```
where `upstream` references `git@github.com:jekyll/jekyll.git`.
This will automatically build the new gem, make a release commit and tag and then push the new gem to RubyGems. Don't worry about creating a GitHub release, @jekyllbot should take care of that.
This will trigger a GitHub Actions workflow that will automatically build the new gem, tag the release commit, push the tag to GitHub and
then finally, push the new gem to RubyGems. Don't worry about creating a GitHub release either, @jekyllbot will take care of that when the
release workflow publishes the new tag.
And then, you're done! :tada: Feel free to celebrate!
And then, if the workflow has completed successfully, you're done! :tada:
Feel free to celebrate!
If you have access to the [@jekyllrb](https://twitter.com/jekyllrb) Twitter account, you should tweet the release post from there. If not, just
ask another maintainer to do it or to give you access.
If you have access to the [@jekyllrb](https://twitter.com/jekyllrb) Twitter account, you should tweet the release post from there. If not, just ask another maintainer to do it or to give you access.
### Build the docs
We package our documentation as a :gem: Gem for offline use.
This is done with the [**jekyll-docs**](https://github.com/jekyll/jekyll-docs#building) repository, and more detailed instructions are
provided there.
This is done with the
[**jekyll-docs**](https://github.com/jekyll/jekyll-docs#building) repository,
and more detailed instructions are provided there.
## For non-core gems
If you're not a maintainer for `jekyll/jekyll`, the procedure is much simpler in a lot of cases. Generally, the procedure still looks like
this:
If you're not a maintainer for `jekyll/jekyll`, the procedure is much simpler in a lot of cases. Generally, the procedure still looks like this:
- Bump the gem version manually, usually in `lib/<plugin_name>/version.rb`
- Adjust the history file
- Commit changes to default branch preferably with message `"Release :gem: v[CURRENT_VERSION]"`
- Push to remote repository
- Run `bundle exec rake release` or `script/release`, depending on which of the two exists
- Rejoice
Be sure to ask your project's maintainers if you're unsure!

View File

@@ -1,63 +0,0 @@
---
title: Releasing off older stable branches
---
Apart from having releases cut from the default `master` branch, Jekyll Core may occasionally cut releases containing security patches and
critical bug-fixes for older versions under maintenance. Such releases are cut from specially named branches, following the pattern
`[x].[y]-stable` where `[x]` denotes semver-major-version and `[y]`, the semver-minor-version. For example, the branch `3.9-stable` refers to
commits released as part of `jekyll-3.9.x` series.
Co-ordinating a release off a `*-stable` branch is complicated mainly because the default branch has to inevitably reflect the release as well.
## Requirements
- The maintainer has to have **write-access** to both the concerned `*-stable` and `master` branches.
- The maintainer needs to complete the task using their **local CLI program** instead of dispatching via GitHub Web UI.
- The maintainer is abreast with the workflow to [release off `master`]({{ 'docs/maintaining/releasing-a-new-version/' | relative_url }}). The
procedure documented in the following section is an abridged adaptation of the workflow for `master`.
- A release post has been drafted and **is awaiting publish to `master`** via an approved pull request.
- Stable internet connection.
## Trigger release workflow
1. Ensure that you've **checked out the concerned `*-stable` branch** and is up-to-date with its counterpart at `jekyll/jekyll` at GitHub.
2. Bump the `VERSION` string in `lib/jekyll/version.rb`.
3. Update the **History document** as documented [here]({{ 'docs/maintaining/releasing-a-new-version/#update-the-history-document' | relative_url }}).<br/>
(**IMPORTANT: Do not run `rake site:generate` on the stable branch though**).
4. Copy the entire History section pertaining to current release and paste into a new tab / window of your text-editor. We will use this
temporary snippet at a future stage.
5. Commit changes to the version-file and History document with commit message `Release :gem: v[CURRENT_VERSION]`.
6. Push commit to upstream remote `jekyll/jekyll` at GitHub.
## Publish release post
1. Ensure the `Release Gem` workflow has completed successfully.
2. Merge release-post pull request to `master`.
## Update default branch to reflect release off the stable branch
1. Locally, check out `master` and ensure it is up-to-date with its remote counterpart at `jekyll/jekyll` at GitHub.
2. Update History document using the snippet in the temporary tab / window created earlier. The various sections in the History document are
primarily in reverse chronological order and secondarily scoped to the semver-major-version. For example, a release section for `v3.9.2`
will be listed above the section for `v3.9.1` but under release sections for v4.x.
The snippet stashed earlier has to be injected into the correct location manually.
3. Optionally, update `VERSION` string in `lib/jekyll/version.rb`. (*If existing version is lesser than latest version*).
4. Now **run `rake site:generate`** to update various meta files:
- docs/_config.yml
- docs/_docs/history.md
- docs/latest_version.txt
5. Commit changes to various meta files with commit message `Release :gem: v[CURRENT_VERSION]`.
6. Push commit to upstream remote.
## Publish GitHub Release
Unlike releases cut off the `master` branch, our JekyllBot does not automatically create and publish a GitHub Release for tags created from
*non-default* branches. Therefore, the maintainer has to **manually create and publish** the concerned GitHub Release.
1. Choose the newly pushed tag.
2. Title is same as the name of the selected tag.
3. The release snippet stashed previously forms the body.
4. Delete the snippet's title (`## x.y.z / YYYY-MM-DD`) from the release body.
5. Publish.
Note: The GitHub Release may optionally be *drafted* prior to updating the default branch and then *published* immediately after pushing the
update commit to the default branch to streamline the procedure.

View File

@@ -20,7 +20,7 @@ If the issue describes a feature request, ask:
1. Is this a setting? [Settings are a crutch](http://ben.balter.com/2016/03/08/optimizing-for-power-users-and-edge-cases/#settings-are-a-crutch) for doing "the right thing". Settings usually point to a bad default or an edge case that could be solved easily with a plugin. Keep the :christmas_tree: of settings as small as possible so as not to reduce the usability of the product. We like the philosophy "decisions not options."
2. Would at least 80% of users find it useful? If even a quarter of our users won't use it, it's very likely that the request doesn't fit our product's core goal.
3. Is there another way to accomplish the end goal of the request? Most feature requests are due to bad documentation for or understanding of a preexisting feature. See if you can clarify the end goal of the request. What is the user trying to do? Could they accomplish that goal through another feature we already support?
3. Is there another way to accomplish the end goal of the request? Most feature requests are due to bad documentation for or understanding of a pre-existing feature. See if you can clarify the end goal of the request. What is the user trying to do? Could they accomplish that goal through another feature we already support?
4. Even if 80% of our users will use it, does it fit the core goal of our project? We are writing a tool for making static websites, not a swiss army knife for publishing more generally.
Feel free to get others' opinions and ask questions of the issue author, but depending upon the answers to the questions above, it may be out of scope for our project.

View File

@@ -9,7 +9,7 @@ members or recipes).
The simplest way of adding a page is to add an HTML file in the root
directory with a suitable filename. You can also write a page in Markdown using
a `.md` extension and front matter which converts to HTML on build. For a site with
a `.md` extension which converts to HTML on build. For a site with
a homepage, an about page, and a contact page, heres what the root directory
and associated URLs might look like:
@@ -35,6 +35,7 @@ If you have a lot of pages, you can organize them into subfolders. The same subf
You might want to have a particular folder structure for your source files that changes for the built site. With [permalinks](/docs/permalinks/) you have full control of the output URL.
## Excerpts for pages {%- include docs_version_badge.html version="4.1.1" -%}
## Excerpts for pages
One can *choose* to generate excerpts for their pages by setting `page_excerpts` to `true` in their config file.
From Jekyll 4.1.1 onwards, one can *choose* to generate excerpts for their pages by setting `page_excerpts` to `true` in their
config file.

View File

@@ -8,9 +8,8 @@ break the main listing of posts up into smaller lists and display them over
multiple pages. Jekyll offers a pagination plugin, so you can automatically
generate the appropriate files and folders you need for paginated listings.
For Jekyll 3 or higher, include the `jekyll-paginate` plugin in your
Gemfile and in your `_config.yml` under `plugins`. For Jekyll 2, this is
standard.
For Jekyll 3, include the `jekyll-paginate` plugin in your Gemfile and in
your `_config.yml` under `plugins`. For Jekyll 2, this is standard.
<div class="note info">
<h5>Pagination only works within HTML files</h5>
@@ -155,7 +154,7 @@ page with links to all but the current page.
{% if page == paginator.page %}
<em>{{ page }}</em>
{% elsif page == 1 %}
<a href="{{ site.paginate_path | relative_url | replace: 'page:num/', '' }}">{{ page }}</a>
<a href="{{ '/' | relative_url }}">{{ page }}</a>
{% else %}
<a href="{{ site.paginate_path | relative_url | replace: ':num', page }}">{{ page }}</a>
{% endif %}

View File

@@ -55,16 +55,229 @@ Here's the full list of placeholders available:
</tr>
</thead>
<tbody>
{%- for entry in site.data.permalinks.placeholders %}
<tr>
<td><p><code>:{{ entry.name }}</code></p>
{%- if entry.intro_ver -%}
<small>{% include docs_version_badge.html version = entry.intro_ver %}</small>
{%- endif -%}
<td>
<p><code>year</code></p>
</td>
<td>
<p>
Year from the posts filename with four digits.
May be overridden via the documents <code>date</code> front matter.
</p>
</td>
</tr>
<tr>
<td>
<p><code>short_year</code></p>
</td>
<td>
<p>
Year from the posts filename without the century. (00..99)
May be overridden via the documents <code>date</code> front matter.
</p>
</td>
</tr>
<tr>
<td>
<p><code>month</code></p>
</td>
<td>
<p>
Month from the posts filename. (01..12)
May be overridden via the documents <code>date</code> front matter.
</p>
</td>
</tr>
<tr>
<td>
<p><code>i_month</code></p>
</td>
<td>
<p>
Month without leading zeros from the posts filename. May be
overridden via the documents <code>date</code> front matter.
</p>
</td>
</tr>
<tr>
<td>
<p><code>short_month</code></p>
</td>
<td>
<p>Three-letter month abbreviation, e.g. “Jan”.</p>
</td>
</tr>
<tr>
<td>
<p><code>long_month</code></p>
<small>{% include docs_version_badge.html version="4.0" %}</small>
</td>
<td>
<p>Full month name, e.g. “January”.</p>
</td>
</tr>
<tr>
<td>
<p><code>day</code></p>
</td>
<td>
<p>
Day of the month from the posts filename. (01..31)
May be overridden via the documents <code>date</code> front matter.
</p>
</td>
</tr>
<tr>
<td>
<p><code>i_day</code></p>
</td>
<td>
<p>
Day of the month without leading zeros from the posts filename.
May be overridden via the documents <code>date</code> front matter.
</p>
</td>
</tr>
<tr>
<td>
<p><code>y_day</code></p>
</td>
<td>
<p>Ordinal day of the year from the posts filename, with leading zeros. (001..366)</p>
</td>
</tr>
<tr>
<td>
<p><code>w_year</code></p>
<small>{% include docs_version_badge.html version="4.0" %}</small>
</td>
<td>
<p>Week year which may differ from the month year for up to three days at the start of January and end of December</p>
</td>
</tr>
<tr>
<td>
<p><code>week</code></p>
<small>{% include docs_version_badge.html version="4.0" %}</small>
</td>
<td>
<p>Week number of the current year, starting with the first week having a majority of its days in January. (01..53)</p>
</td>
</tr>
<tr>
<td>
<p><code>w_day</code></p>
<small>{% include docs_version_badge.html version="4.0" %}</small>
</td>
<td>
<p>Day of the week, starting with Monday. (1..7)</p>
</td>
</tr>
<tr>
<td>
<p><code>short_day</code></p>
<small>{% include docs_version_badge.html version="4.0" %}</small>
</td>
<td>
<p>Three-letter weekday abbreviation, e.g. “Sun”.</p>
</td>
</tr>
<tr>
<td>
<p><code>long_day</code></p>
<small>{% include docs_version_badge.html version="4.0" %}</small>
</td>
<td>
<p>Weekday name, e.g. “Sunday”.</p>
</td>
</tr>
<tr>
<td>
<p><code>hour</code></p>
</td>
<td>
<p>
Hour of the day, 24-hour clock, zero-padded from the posts
<code>date</code> front matter. (00..23)
</p>
</td>
</tr>
<tr>
<td>
<p><code>minute</code></p>
</td>
<td>
<p>
Minute of the hour from the posts <code>date</code> front matter. (00..59)
</p>
</td>
</tr>
<tr>
<td>
<p><code>second</code></p>
</td>
<td>
<p>
Second of the minute from the posts <code>date</code> front matter. (00..59)
</p>
</td>
</tr>
<tr>
<td>
<p><code>title</code></p>
</td>
<td>
<p>
Title from the documents filename. May be overridden via
the documents <code>slug</code> front matter.
</p>
</td>
</tr>
<tr>
<td>
<p><code>slug</code></p>
</td>
<td>
<p>
Slugified title from the documents filename (any character
except numbers and letters is replaced as hyphen). May be
overridden via the documents <code>slug</code> front matter.
</p>
</td>
</tr>
<tr>
<td>
<p><code>categories</code></p>
</td>
<td>
<p>
The specified categories for this post. If a post has multiple
categories, Jekyll will create a hierarchy (e.g. <code>/category1/category2</code>).
Also Jekyll automatically parses out double slashes in the URLs,
so if no categories are present, it will ignore this.
</p>
</td>
</tr>
<tr>
<td>
<p><code>slugified_categories</code></p>
<small>{% include docs_version_badge.html version="4.1" %}</small>
</td>
<td>
<p>
The specified categories for this post but <em>slugified</em>. If a category is a
composite of multiple words, Jekyll will downcase all alphabets and replace any
non-alphanumeric character with a hyphen. (e.g. <code>"Work 2 Progress"</code>
will be converted into <code>"work-2-progress"</code>)
</p>
<p>
If a post has multiple categories, Jekyll will create a hierarchy
(e.g. <code>/work-2-progress/category2</code>).
Also Jekyll automatically parses out double slashes in the URLs,
so if no categories are present, it will ignore this.
</p>
</td>
<td><p>{{ entry.desc }}</p></td>
</tr>
{%- endfor %}
</tbody>
</table>
</div>
@@ -82,22 +295,47 @@ For posts, Jekyll also provides the following built-in styles for convenience:
</tr>
</thead>
<tbody>
{%- for entry in site.data.permalinks.builtin_formats %}
<tr>
<td><p><code>{{ entry.name }}</code></p>
{%- if entry.intro_ver -%}
<small>{% include docs_version_badge.html version = entry.intro_ver %}</small>
{%- endif -%}
<td>
<p><code>date</code></p>
</td>
<td>
<p><code>{{ entry.format }}</code>
{%- if entry.note -%}<br/>
<small>({{ entry.note }})</small>
{%- endif -%}
</p>
<p><code>/:categories/:year/:month/:day/:title:output_ext</code></p>
</td>
</tr>
<tr>
<td>
<p><code>pretty</code></p>
</td>
<td>
<p><code>/:categories/:year/:month/:day/:title/</code></p>
</td>
</tr>
<tr>
<td>
<p><code>ordinal</code></p>
</td>
<td>
<p><code>/:categories/:year/:y_day/:title:output_ext</code></p>
</td>
</tr>
<tr>
<td>
<p><code>weekdate</code></p>
<small>{% include docs_version_badge.html version="4.0" %}</small>
</td>
<td>
<p><code>/:categories/:year/W:week/:short_day/:title:output_ext</code></p>
</td>
</tr>
<tr>
<td>
<p><code>none</code></p>
</td>
<td>
<p><code>/:categories/:title:output_ext</code></p>
</td>
</tr>
{%- endfor %}
</tbody>
</table>
</div>
@@ -132,12 +370,56 @@ Collections have the following placeholders available:
</tr>
</thead>
<tbody>
{%- for entry in site.data.permalinks.types.documents -%}
<tr>
<td><p><code>:{{ entry.name }}</code></p></td>
<td><p>{{ entry.desc }}</p></td>
<td>
<p><code>:collection</code></p>
</td>
<td>
<p>Label of the containing collection.</p>
</td>
</tr>
<tr>
<td>
<p><code>:path</code></p>
</td>
<td>
<p>
Path to the document relative to the collection's directory,
including base filename of the document.
</p>
</td>
</tr>
<tr>
<td>
<p><code>:name</code></p>
</td>
<td>
<p>The document's base filename, with every sequence of spaces
and non-alphanumeric characters replaced by a hyphen.</p>
</td>
</tr>
<tr>
<td>
<p><code>:title</code></p>
</td>
<td>
<p>
The <code>:title</code> template variable will take the
<code>slug</code> <a href="/docs/front-matter/">front matter</a>
variable value if any is present in the document; if none is
defined then <code>:title</code> will be equivalent to
<code>:name</code>, aka the slug generated from the filename.
</p>
</td>
</tr>
<tr>
<td>
<p><code>:output_ext</code></p>
</td>
<td>
<p>Extension of the output file. (Included by default and usually unnecessary.)</p>
</td>
</tr>
{%- endfor -%}
</tbody>
</table>
</div>
@@ -159,12 +441,36 @@ Pages have the following placeholders available:
</tr>
</thead>
<tbody>
{%- for entry in site.data.permalinks.types.pages -%}
<tr>
<td><p><code>:{{ entry.name }}</code></p></td>
<td><p>{{ entry.desc }}</p></td>
<td>
<p><code>:path</code></p>
</td>
<td>
<p>
Path to the page relative to the site's source directory, excluding
base filename of the page.
</p>
</td>
</tr>
<tr>
<td>
<p><code>:basename</code></p>
</td>
<td>
<p>The page's base filename</p>
</td>
</tr>
<tr>
<td>
<p><code>:output_ext</code></p>
</td>
<td>
<p>
Extension of the output file. (Included by default and usually
unnecessary.)
</p>
</td>
</tr>
{%- endfor -%}
</tbody>
</table>
</div>

View File

@@ -87,7 +87,6 @@ module SamplePlugin
# Placeholders that are used in constructing page URL.
def url_placeholders
{
:path => @dir,
:category => @dir,
:basename => basename,
:output_ext => output_ext,

View File

@@ -211,7 +211,7 @@ The complete list of available hooks:
<p><code>:post_convert</code></p>
</td>
<td>
<p>After converting the post content, but before rendering the post layout</p>
<p>After converting the post content, but before rendering the postlayout</p>
</td>
</tr>
<tr>

View File

@@ -3,125 +3,77 @@ title: Plugins
permalink: /docs/plugins/installation/
---
Jekyll has built-in support for using plugins to extend the core functionality.
You have 3 options for installing plugins:
Primarily, any file with extension `.rb` placed within a `_plugins` directory at the root of the site's `source`, will be automatically loaded
during a build session.
1. In your site source root, make a `_plugins` directory. Place your plugins
here. Any file ending in `*.rb` inside this directory will be loaded before
Jekyll generates your site.
This behavior can be configured as follows:
2. In your `_config.yml` file, add a new array with the key `plugins` (or `gems` for Jekyll < `3.5.0`) and the
values of the gem names of the plugins you'd like to use. An example:
- The `_plugins` directory may be changed either directly via the command-line or via the configuration file(s).
- Plugins in the `_plugins` directory (or its equivalent(s)) will not be loaded when Jekyll is running in `safe` mode.
- This route cannot be used to extend the Jekyll CLI.
```yaml
# This will require each of these plugins automatically.
plugins:
- jekyll-gist
- jekyll-coffeescript
- jekyll-assets
- another-jekyll-plugin
```
To work with plugins packaged as gems, one has to list the desired gems in the configuration file under a top-level key named `plugins`.
Additionally, if you're building in `safe` mode, the gem needs to be listed under a top-level key named `whitelist`. For example:
Then install your plugins using `gem install jekyll-gist jekyll-coffeescript jekyll-assets another-jekyll-plugin`
```yaml
plugins:
- jekyll-gist
- jekyll-coffeescript
- jekyll-seo-tag
- some-other-jekyll-plugin
3. Add the relevant plugins to a Bundler group in your `Gemfile`. An
example:
# Enable safe mode
safe: true
```ruby
group :jekyll_plugins do
gem "jekyll-gist"
gem "jekyll-coffeescript"
gem "jekyll-assets"
gem "another-jekyll-plugin"
end
```
# Whitelist plugins under safe mode.
# Note that `some-other-jekyll-plugin` is not listed here. Therefore,
# it will not be loaded under safe mode.
whitelist:
- jekyll-gist
- jekyll-coffeescript
- jekyll-seo-tag
```
In the absence of a Gemfile, one must manually ensure that listed plugins have been installed prior to invoking Jekyll. For example, the
latest versions of gems in the above list may be installed to a system-wide location by running:
```sh
gem install jekyll-gist jekyll-coffeescript jekyll-remote-theme some-other-jekyll-plugin
```
## Using a Gemfile
The maintenance of various gem dependencies may be greatly simplified by using a Gemfile (usually at the root of the site's source) in
conjunction with a Rubygem named `bundler`. The Gemfile however **should** list all the primary dependencies of your site, including Jekyll
itself, not just gem-based plugins of the site because Bundler narrows the scope of installed gems to just *runtime dependencies* resolved by
evaluating the Gemfile. For example:
```ruby
source "https://rubygems.org"
# Use the latest version.
gem "jekyll"
# The theme of current site, locked to a certain version.
gem "minima", "2.4.1"
# Plugins of this site loaded during a build with proper
# site configuration.
gem "jekyll-gist"
gem "jekyll-coffeescript"
gem "jekyll-seo-tag", "~> 1.5"
gem "some-other-jekyll-plugin"
# A dependency of a custom-plugin inside `_plugins` directory.
gem "nokogiri", "~> 1.11"
```
The gems listed in the Gemfile can be collectively installed by simply running `bundle install`.
### The `:jekyll_plugins` Gemfile group
{: #the-jekyll_plugins-group}
Jekyll gives a special treatment to gems listed as part of the `:jekyll_plugins` group in a Gemfile. Any gem under this group is loaded at
the very beginning of any Jekyll process, irrespective of the `--safe` CLI flag or entries in the configuration file(s).
While this route allows one to enhance Jekyll's CLI with additional subcommands and options, or avoid having to list gems in the configuration
file, the downside is the necessity to be mindful of what gems are included in the group. For example:
```ruby
source "https://rubygems.org"
# Use the latest version.
gem "jekyll"
# The theme of current site, locked to a certain version.
gem "minima", "2.4.1"
# Plugins of this site loaded only if configured correctly.
gem "jekyll-gist"
gem "jekyll-coffeescript"
# Gems loaded irrespective of site configuration.
group :jekyll_plugins do
gem "jekyll-cli-plus"
gem "jekyll-seo-tag", "~> 1.5"
gem "some-other-jekyll-plugin"
end
```
Now you need to install all plugins from your Bundler group by running single command `bundle install`.
<div class="note info">
<h5>Plugins on GitHub Pages</h5>
<p>
<a href="https://pages.github.com/">GitHub Pages</a> is powered by Jekyll. All GitHub Pages sites are generated using the
<code>--safe</code> option to disable plugins (with the exception of some
<a href="https://pages.github.com/versions">whitelisted plugins</a>) for security reasons. Unfortunately, this means your plugins won't
work if youre deploying via GitHub Pages.<br><br>
You can still use GitHub Pages to publish your site, but you'll need to either build the site locally and push the generated files to
your GitHub repository or use
<a href="{{ '/docs/continuous-integration/github-actions/' | relative_url }}" title="GitHub Actions">GitHub Actions</a> to host source
files on GitHub yet build and deploy with full control on GitHub Pages.
<a href="https://pages.github.com/">GitHub Pages</a> is powered by Jekyll.
All Pages sites are generated using the <code>--safe</code> option
to disable plugins (with the exception of some
<a href="https://pages.github.com/versions">whitelisted plugins</a>) for
security reasons. Unfortunately, this means
your plugins wont work if youre deploying to GitHub Pages.<br><br>
You can still use GitHub Pages to publish your site, but youll need to
convert the site locally and push the generated static files to your GitHub
repository instead of the Jekyll source files.
</p>
</div>
<div class="note">
<h5>
<code>_plugins</code>, <code>_config.yml</code> and <code>Gemfile</code> can be used simultaneously
<code>_plugins</code>, <code>_config.yml</code> and <code>Gemfile</code>
can be used simultaneously
</h5>
<p>
You may use any of the aforementioned plugin routes simultaneously in the same site if you so choose.
Use of one does not restrict the use of the others.
You may use any of the aforementioned plugin options simultaneously in the
same site if you so choose. Use of one does not restrict the use of the
others.
</p>
</div>
### The jekyll_plugins group
Jekyll gives this particular group of gems in your `Gemfile` a different
treatment. Any gem included in this group is loaded before Jekyll starts
processing the rest of your source directory.
A gem included here will be activated even if its not explicitly listed under
the `plugins:` key in your site's config file.
{: .note .warning}
Gems included in the <code>:jekyll-plugins</code> group are activated
regardless of the <code>--safe</code> mode setting. Be aware of which
gems are included under this group!

View File

@@ -96,7 +96,7 @@ Linking to a PDF for readers to download:
## Displaying an index of posts
Creating an index of posts on another page should be easy thanks to
[Liquid](https://shopify.github.io/liquid/) and its tags. Heres a
[Liquid](https://docs.shopify.com/themes/liquid/basics) and its tags. Heres a
simple example of how to create a list of links to your blog posts:
{% raw %}
@@ -168,7 +168,7 @@ Categories of a post work similar to the tags above:
*The similarity between categories and tags however, ends there.*
Unlike tags, categories for posts can also be defined by a post's file path.
Any directory above `_posts` will be read-in as a category. For example,
Any directory above `_post` will be read-in as a category. For example,
if a post is at path `movies/horror/_posts/2019-05-21-bride-of-chucky.markdown`,
then `movies` and `horror` are automatically registered as categories for that
post.

View File

@@ -1,36 +0,0 @@
---
title: Security Policy
permalink: "/docs/security/"
note: This file is autogenerated. Edit /.github/SECURITY.markdown instead.
---
## Supported Versions
Security updates are applied to the latest MINOR version of Jekyll, and the version used by GitHub Pages, v3.9.x.
| Version | Supported |
| ------- | ------------------ |
| 4.2.x | :white_check_mark: |
| 3.9.x | :white_check_mark: |
| < 3.9.x | :x: |
## Reporting a Vulnerability
Please report vulnerabilities by sending an email to security@jekyllrb.com with the following information:
1. A description of the vulnerability
2. Reproduction steps and/or a sample site (share a private repo to the [Jekyll Security Team](docs/pages/team.md))
3. Your contact information
The Jekyll security team will respond to your submission and notify you whether it has been confirmed by the team.
Your confidentiality is kindly requested as we work on a fix. We will provide our patch to you to test and verify that the vulnerability has
been closed.
If you have created a patch and would like to submit that to us as well, we will happily consider it though we cannot guarantee that we will
use it. If we use your patch, we will attribute authorship to you either as the commit author, or as a co-author.
Once a fix is verified, we will release PATCH versions of the supported MINOR versions and assign a CVE to the vulnerability. You will receive
credit in our release post.
Once the patched version has been released, we will no longer request you to maintain confidentiality and you may choose to share details on
how you found the vulnerability with the community.

View File

@@ -3,8 +3,6 @@ layout: step
title: Setup
menu_name: Step by Step Tutorial
position: 1
redirect_from:
- /docs/step-by-step/
---
Welcome to Jekyll's step-by-step tutorial. This tutorial takes
you from having some front-end web development experience to building your

View File

@@ -17,20 +17,20 @@ Jekyll sites often use this structure to keep assets organized:
...
```
So, from your assets folder, create folders called css, images and js.
Additionally, directly under the root create another folder called `_sass`, which you will need shortly.
Additionally, directly under the root create another folder called '_sass', which you will need shortly.
## Sass
Inlining the styles used in `_includes/navigation.html`(adding or configuring within the same file) is not a best practice.
Instead, let's style the current page by defining our first class in a new css file instead.
To do this, refer to the class (that you will configure in the next parts of this step) from within the `navigation.html` file by removing the code you added earlier (to color the current link red) and inserting the following code:
To do this, refer to the class (that you will configure in the next parts of this step) from within the navigation.html file by removing the code you added earlier (to color the current link red) and inserting the following code:
{% raw %}
```liquid
<nav>
{% for item in site.data.navigation %}
<a href="{{ item.link }}"{% if page.url == item.link %} class="current"{% endif %}>{{ item.name }}</a>
<a href="{{ item.link }}" {% if page.url == item.link %}class="current"{% endif %}>{{ item.name }}</a>
{% endfor %}
</nav>
```
@@ -50,7 +50,7 @@ First create a Sass file at `assets/css/styles.scss` with the following content:
The empty front matter at the top tells Jekyll it needs to process the file. The
`@import "main"` tells Sass to look for a file called `main.scss` in the sass
directory (`_sass/` by default) you already created at the root of your working directory earlier.
directory (`_sass/`) by default which you already created directly under the root folder of your website).
At this stage you'll just have a main css file. For larger projects, this is a
great way to keep your CSS organized.

View File

@@ -19,15 +19,14 @@ following content:
layout: post
author: jill
---
A banana is an edible fruit botanically a berry produced by several
kinds of large herbaceous flowering plants in the genus Musa.
A banana is an edible fruit botanically a berry produced by several kinds
of large herbaceous flowering plants in the genus Musa.
In some countries, bananas used for cooking may be called "plantains",
distinguishing them from dessert bananas. The fruit is variable in size,
color, and firmness, but is usually elongated and curved, with soft
flesh rich in starch covered with a rind, which may be green, yellow,
red, purple, or brown when ripe.
distinguishing them from dessert bananas. The fruit is variable in size, color,
and firmness, but is usually elongated and curved, with soft flesh rich in
starch covered with a rind, which may be green, yellow, red, purple, or brown
when ripe.
```
This is like the `about.md` you created before except it has an author and
@@ -116,11 +115,11 @@ author: jill
---
An apple is a sweet, edible fruit produced by an apple tree.
Apple trees are cultivated worldwide, and are the most widely grown
species in the genus Malus. The tree originated in Central Asia, where
its wild ancestor, Malus sieversii, is still found today. Apples have
been grown for thousands of years in Asia and Europe, and were brought
to North America by European colonists.
Apple trees are cultivated worldwide, and are the most widely grown species in
the genus Malus. The tree originated in Central Asia, where its wild ancestor,
Malus sieversii, is still found today. Apples have been grown for thousands of
years in Asia and Europe, and were brought to North America by European
colonists.
```
`_posts/2018-08-22-kiwifruit.md`:
@@ -130,14 +129,14 @@ to North America by European colonists.
layout: post
author: ted
---
Kiwifruit (often abbreviated as kiwi), or Chinese gooseberry is the
edible berry of several species of woody vines in the genus Actinidia.
Kiwifruit (often abbreviated as kiwi), or Chinese gooseberry is the edible
berry of several species of woody vines in the genus Actinidia.
The most common cultivar group of kiwifruit is oval, about the size of
a large hen's egg (58 cm (2.03.1 in) in length and 4.55.5 cm
(1.82.2 in) in diameter). It has a fibrous, dull greenish-brown skin
and bright green or golden flesh with rows of tiny, black, edible
seeds. The fruit has a soft texture, with a sweet and unique flavor.
The most common cultivar group of kiwifruit is oval, about the size of a large
hen's egg (58 cm (2.03.1 in) in length and 4.55.5 cm (1.82.2 in) in
diameter). It has a fibrous, dull greenish-brown skin and bright green or
golden flesh with rows of tiny, black, edible seeds. The fruit has a soft
texture, with a sweet and unique flavor.
```
Open <a href="http://localhost:4000" target="_blank" data-proofer-ignore>http://localhost:4000</a>

View File

@@ -57,7 +57,7 @@ Ted has been eating fruit since he was baby.
Let's add a page which lists all the authors on the site. Jekyll makes the
collection available at `site.authors`.
Create `staff.html` in the root directory and iterate over `site.authors` to output all the staff:
Create `staff.html` and iterate over `site.authors` to output all the staff:
{% raw %}
```liquid

View File

@@ -11,7 +11,7 @@ It's good practice to have a [Gemfile](/docs/ruby-101/#gemfile) for your site.
This ensures the version of Jekyll and other gems remains consistent across
different environments.
If you completed step one in this tutorial, you have already created a Gemfile. If you skipped step one, create a `Gemfile` in the root.
Create a `Gemfile` in the root.
The file should be called 'Gemfile' and should *not* have any extension.
You can create a Gemfile with Bundler and then add the `jekyll` gem:
@@ -20,7 +20,7 @@ bundle init
bundle add jekyll
```
Your `Gemfile` should look something like:
Your file should look something like:
```ruby
# frozen_string_literal: true
@@ -42,15 +42,10 @@ bundle exec jekyll serve
This restricts your Ruby environment to only use gems set in your `Gemfile`.
Note: if publishing your site with GitHub Pages, you can match production
version of Jekyll by using the `github-pages` gem instead of `jekyll`
in your `Gemfile`. In this scenario you may also want to exclude `Gemfile.lock`
from your repository because GitHub Pages ignores that file.
## Plugins
Jekyll plugins allow you to create custom generated content specific to your
site. There are many [plugins](/docs/plugins/) available or you can even
site. There's many [plugins](/docs/plugins/) available or you can even
write your own.
There are three official plugins which are useful on almost any Jekyll site:
@@ -68,12 +63,12 @@ in a `jekyll_plugins` group they'll automatically be required into Jekyll:
```ruby
source 'https://rubygems.org'
gem "jekyll"
gem 'jekyll'
group :jekyll_plugins do
gem "jekyll-sitemap"
gem "jekyll-feed"
gem "jekyll-seo-tag"
gem 'jekyll-sitemap'
gem 'jekyll-feed'
gem 'jekyll-seo-tag'
end
```

View File

@@ -12,7 +12,7 @@ If you're looking for support for Jekyll, there are a lot of options:
* Read [Jekyll Documentation](https://jekyllrb.com/docs/home/)
* If you have a question about using Jekyll, start a discussion on [Jekyll Forum](https://talk.jekyllrb.com/) or [StackOverflow](https://stackoverflow.com/questions/tagged/jekyll)
* Chat with Jekyllers &mdash; Join [our Gitter channel](https://gitter.im/jekyll/jekyll) or [our IRC channel on Freenode](irc:irc.freenode.net/jekyll)
* Chat with Jekyllers &mdash; Join [our Gitter channel](https://gitter.im/jekyll/jekyll) or [our IRC channel on Freenode](irc://irc.freenode.net/jekyll)
There are a bunch of helpful community members on these services that should be willing to point you in the right direction.

View File

@@ -14,7 +14,6 @@ You can find and preview themes on different galleries:
- [jekyllthemes.org](http://jekyllthemes.org/)
- [jekyllthemes.io](https://jekyllthemes.io/)
- [jekyll-themes.com](https://jekyll-themes.com/)
- [jekyllup.com](https://jekyllup.com/)
See also: [resources](/resources/).
@@ -22,7 +21,7 @@ See also: [resources](/resources/).
When you [create a new Jekyll site](/docs/) (by running the `jekyll new <PATH>` command), Jekyll installs a site that uses a gem-based theme called [Minima](https://github.com/jekyll/minima).
With gem-based themes, some of the site's directories (such as the `assets`, `_data`, `_layouts`, `_includes`, and `_sass` directories) are stored in the theme's gem, hidden from your immediate view. Yet all of the necessary directories will be read and processed during Jekyll's build process.
With gem-based themes, some of the site's directories (such as the `assets`, `_layouts`, `_includes`, and `_sass` directories) are stored in the theme's gem, hidden from your immediate view. Yet all of the necessary directories will be read and processed during Jekyll's build process.
In the case of Minima, you see only the following files in your Jekyll site directory:
@@ -47,7 +46,7 @@ The goal of gem-based themes is to allow you to get all the benefits of a robust
## Overriding theme defaults
Jekyll themes set default data, layouts, includes, and stylesheets. However, you can override any of the theme defaults with your own site content.
Jekyll themes set default layouts, includes, and stylesheets. However, you can override any of the theme defaults with your own site content.
To replace layouts or includes in your theme, make a copy in your `_layouts` or `_includes` directory of the specific file you wish to modify, or create the file from scratch giving it the same name as the file you wish to override.
@@ -118,7 +117,6 @@ To modify any stylesheet you must take the extra step of also copying the main s
Jekyll will look first to your site's content before looking to the theme's defaults for any requested file in the following folders:
- `/assets`
- `/_data`
- `/_layouts`
- `/_includes`
- `/_sass`
@@ -128,49 +126,6 @@ Note that making copies of theme files will prevent you from receiving any theme
{: .note .info}
Refer to your selected theme's documentation and source repository for more information on which files you can override.
### Themes with `_data` directory {%- include docs_version_badge.html version="4.3.0" -%}
{: #themes-with-data-directory }
Starting with version 4.3.0, Jekyll also takes into account the `_data` directory of themes. This allows data to be distributed across themes.
A typical example is text used within design elements.
Imagine a theme provides the include file `testimonials.html`. This design element creates a new section on the page, and puts a h3 heading over the list of testimonials.
A theme developer will probably formulate the heading in English and put it directly into the HTML source code.
Consumers of the theme can copy the included file into their project and replace the heading there.
With the consideration of the `_data` directory there is another solution for this standard task.
Instead of entering the text directly into the design template, the designer adds a reference to a text catalog (e.g. `site.data.i18n.testimonials.header`) and create a file `_data/i18n/testimonials.yml` in the data directory of the theme.
In this file the header is put under the key `header` and Jekyll takes care of the rest.
For theme developers, this, at first sight, is of course a bigger effort than before.
However, for the consumers of the theme, the customization is greatly simplified.
Imagine the theme is used by a customer from Germany. In order for her to get the translated header for the testimonials design element in, she just has to create a data file in her project directory with the key `site.data.i18n.testimonials.header`, put the German translation or a header of her choice on top of it and the design element is already customized.
She no longer has to copy the included file into her project directory, customize it there and, what weighs heaviest, waiver all updates of the theme, simply because the theme developer offered her the possibility to make changes to text modules centrally via text files.
{: .note .warning}
Data files provide a high degree of flexibility. The place where theme developers put text modules may differ from that of the consumer of the theme which can cause unforeseen troubles!
Related to above example the overriding key `site.data.i18n.testimonials.header` from the theme's `_data/i18n/testimonials.yml` file on the consumer site can be located in three different locations:
- `_data/i18n.yml` with key `testimonials.header`
- `_data/i18n/testimonials.yml` with key `header` (which mirrors the layout of the given example)
- `_data/i18n/testimonials/header.yml` without any key, the headline can go straight into the file
Theme developers should have this ambiguity in mind, when supporting consumers that feel lost in setting their text modules for the design elements the theme provides.
{: .note .info}
When using the data feature ask yourself, is the key that you introduce something that changes the behaviour of the theme when present or not, or is it just data that's displayed anyway. If it's changing the behaviour of the theme it should go into `site.config` otherwise it's fine to be provided via `site.data`.
Bundling data that modifies the behavior of a theme is considered an **anti-pattern** whose use is strongly discouraged. It is solely up to the author of the theme to ensure that every provided data can be easily overridden by the consumer of the theme if they desire to.
## Converting gem-based themes to regular themes
Suppose you want to get rid of the gem-based theme and convert it to a regular theme, where all files are present in your Jekyll site directory, with nothing stored in the theme gem.
@@ -395,4 +350,4 @@ Themes are published via [RubyGems.org](https://rubygems.org). You will need a R
gem push jekyll-theme-awesome-*.gem
```
4. To release a new version of your theme, update the version number in the gemspec file, ( `jekyll-theme-awesome.gemspec` in this example ), and then repeat Steps 1 - 3 above. We recommend that you follow [Semantic Versioning](https://semver.org) while bumping your theme-version.
4. To release a new version of your theme, update the version number in the gemspec file, ( `jekyll-theme-awesome.gemspec` in this example ), and then repeat Steps 1 - 3 above. We recommend that you follow [Semantic Versioning](http://semver.org/) while bumping your theme-version.

View File

@@ -317,7 +317,7 @@ The issue is caused by trying to copy a non-existing symlink.
<h5>Please report issues you encounter!</h5>
<p>
If you come across a bug, please <a href="{{ site.repository }}/issues/new">create an issue</a>
on GitHub describing the problem and any workarounds you find so we can
on GitHub describing the problem and any work-arounds you find so we can
document it here for others.
</p>
</div>

View File

@@ -89,11 +89,11 @@ then the layout can access that via {% raw %}`{{ layout.class }}`{% endraw %}.
For the first time, the default syntax highlighter has changed for the
`highlight` tag and for backtick code blocks. Instead of [Pygments.rb](https://github.com/tmm1/pygments.rb),
it's now [Rouge](https://github.com/rouge-ruby/rouge). If you were using the `highlight` tag with certain
it's now [Rouge](http://rouge.jneen.net/). If you were using the `highlight` tag with certain
options, such as `hl_lines`, they may not be available when using Rouge. To
go back to using Pygments, set `highlighter: pygments` in your
`_config.yml` file and run `gem install pygments.rb` or add
`gem "pygments.rb"` to your project's `Gemfile`.
`gem 'pygments.rb'` to your project's `Gemfile`.
### Relative Permalink support removed

View File

@@ -123,7 +123,7 @@ Jekyll has dropped support for `kramdown-1.x` entirely.
From [`v2.0` onwards](https://kramdown.gettalong.org/news.html#kramdown-200-released)
kramdown requires specific extensions to be additionally installed to use
certain desired features outside of kramdown's core functionality.
certain features are desired outside of kramdown's core functionality.
Out of all the extensions listed in the report linked above, gem
`kramdown-parser-gfm` is automatically installed along with Jekyll 4.0. The

View File

@@ -34,15 +34,6 @@ The following is a reference of the available data.
</p>
</div>
## Jekyll Variables
{% include docs_variables_table.html scope=site.data.jekyll_variables.jekyll %}
## Theme Variables {%- include docs_version_badge.html version="4.3.0" -%}
{: #theme-variables }
{% include docs_variables_table.html scope=site.data.jekyll_variables.theme %}
## Paginator
{% include docs_variables_table.html scope=site.data.jekyll_variables.paginator %}

View File

@@ -1,33 +1,33 @@
<script>
/* Creates an anchor element with the given ID and link for the permalink*/
const anchorForId = (id) => {
const anchor = document.createElement("a");
anchor.className = "header-link";
anchor.href = `#${id}`;
anchor.innerHTML = `<span class="sr-only">Permalink</span><i class="fa fa-link" aria-hidden="true"></i>`;
anchor.title = "Permalink";
return anchor;
};
var anchorForId = function (id) {
var anchor = document.createElement("a");
anchor.className = "header-link";
anchor.href = "#" + id;
anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
anchor.title = "Permalink";
return anchor;
};
/* Finds all headers of the specified level within the given element, and adds a permalink to each header*/
const linkifyAnchors = (level, containingElement) => {
const headers = Array.from(containingElement.getElementsByTagName(`h${level}`));
headers.forEach((header) => {
if (header.id) {
header.appendChild(anchorForId(header.id));
}
});
};
var linkifyAnchors = function (level, containingElement) {
var headers = containingElement.getElementsByTagName("h" + level);
for (var h = 0; h < headers.length; h++) {
var header = headers[h];
/* Executes the function when the document is ready */
document.onreadystatechange = () => {
if (document.readyState === "complete") {
const contentBlock = document.getElementsByClassName("docs")[0]
?? document.getElementsByClassName("news")[0];
if (!contentBlock) { return; }
for (let level = 1; level <= 6; level++) {
linkifyAnchors(level, contentBlock);
if (typeof header.id !== "undefined" && header.id !== "") {
header.appendChild(anchorForId(header.id));
}
}
}
};
};
document.onreadystatechange = function () {
if (this.readyState === "complete") {
var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
if (!contentBlock) {
return;
}
for (var level = 1; level <= 6; level++) {
linkifyAnchors(level, contentBlock);
}
}
};
</script>

View File

@@ -1,17 +1,14 @@
<div class="unit one-fifth hide-on-mobiles">
<aside>
{% for section in site.data.docs_nav %}
{% for section in site.data.docs_nav -%}
<h4>{{ section.title }}</h4>
<ul>
{%- for item in section.docs -%}
{%- assign item_page = site.docs | where: "url", item.link | first -%}
{%- capture item_html -%}
<a href="{{ item_page.url | relative_url }}">
{{ item_page.menu_name | default: item_page.title }}
</a>
{% endcapture %}
<li{% unless item_page.url != page.url %} class="current"{% endunless %}>{{ item_html }}</li>
{% endfor %}
{%- for item in section.docs -%}
{%- assign p = site.docs | where: "url", item.link | first %}
<li {%- if page.url == p.url %} class="current" {%- endif -%}><a href="{{ p.url | relative_url }}">
{{- p.menu_name | default: p.title -}}
</a></li>
{%- endfor %}
</ul>
{% endfor -%}
</aside>

View File

@@ -1,15 +1,15 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select id="doc-nav" onchange="navigateToUrl(this)" aria-label="Select a page from the documentation">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docs…</option>
{% for section in site.data.docs_nav %}
<optgroup label="{{ section.title }}">
{%- for item in section.docs -%}
{% assign item_page = site.docs | where: "url", item.link | first %}
<option value="{{ item_page.url | relative_url }}">
{{- item_page.menu_name | default: item_page.title -}}
</option>
{%- endfor %}
</optgroup>
{% endfor %}
{% for section in site.data.docs_nav -%}
<optgroup label="{{ section.title }}">
{%- for item in section.docs -%}
{% assign p = site.docs | where: "url", item.link | first %}
<option value="{{ p.url | relative_url }}">
{{- p.menu_name | default: p.title -}}
</option>
{%- endfor %}
</optgroup>
{% endfor -%}
</select>
</div>

View File

@@ -1,18 +1,23 @@
<footer>
<div class="grid">
<div class="unit two-thirds center-on-mobiles">
<div class="unit one-third center-on-mobiles">
<p>Jekyll is lovingly maintained by the <a href="{{ '/team/' | relative_url }}">core team</a> of volunteers. </p>
<p>The contents of this website are <br />&copy;&nbsp;{{ site.time | date: '%Y' }} under the terms of the <a href="{{ site.repository }}/blob/master/LICENSE">MIT License</a>.</p>
<p>The contents of this website are <br />&copy;&nbsp;{{ site.time | date: '%Y' }} under the terms of the <a href="{{ site.repository }}/blob/master/LICENSE">MIT&nbsp;License</a>.</p>
</div>
<div class="unit one-third align-right center-on-mobiles">
<div class="unit two-thirds align-right center-on-mobiles">
<p>
Proudly hosted by
<a href="https://github.com">
<img src="{{ 'img/footer-logo.png' | relative_url }}" width="100" height="30" alt="GitHub • Social coding">
</a>
</p>
</div>
<div class="unit two-thirds align-right center-on-mobiles">
<p>
Jekyll is funded thanks to its <a href="https://github.com/jekyll/jekyll#sponsors">sponsors!</a>
Jekyll is funded thanks to its
<a href="https://github.com/jekyll/jekyll#sponsors">
sponsors!
</a>
</p>
</div>
</div>

View File

@@ -1,5 +0,0 @@
<div class="improve right hide-on-mobiles">
<a data-proofer-ignore href="{{ site.repository }}/edit/{{ site.site_branch }}/docs/{{ page.path }}">
<i class="fa fa-pencil"></i> &nbsp;Improve this page
</a>
</div>

View File

@@ -3,12 +3,12 @@
{% if p.show_on_mobile -%}
<li
{%- if p.link == '/' -%}
{%- if page.url == '/' %} class="current" aria-current="page" {% endif -%}
{%- if page.url == '/' %} class="current" {% endif -%}
{% else -%}
{%- if page.url contains p.link %} class="current" aria-current="page" {% endif -%}
{%- if page.url contains p.link %} class="current" {% endif -%}
{% endif -%}
><a href="{{ p.link | relative_url }}">{{ p.title }}</a></li>
{% endif -%}
{% endfor -%}
<li><a href="{{ site.repository }}" target="_blank" rel="noopener">GitHub</a></li>
</ul>
<li><a href="{{ site.repository }}">GitHub</a></li>
</ul>

View File

@@ -1,10 +1,10 @@
<div class="unit one-fifth hide-on-mobiles">
<aside>
<ul>
<li {% if page.title == 'News' %} class="current" {% endif %}>
<li {%- if page.title == 'News' %} class="current" {%- endif %}>
<a href="{{ '/news/' | relative_url }}">All News</a>
</li>
<li {% if page.title == 'Releases' %} class="current" {% endif %}>
<li {%- if page.title == 'Releases' %} class="current" {%- endif %}>
<a href="{{ '/news/releases/' | relative_url }}">Jekyll Releases</a>
</li>
</ul>
@@ -23,7 +23,7 @@
<ul>
{% for post in site.posts -%}
{% unless post.categories contains 'release' -%}
<li {% if page.title == post.title %} class="current" {% endif %}>
<li {%- if page.title == post.title %} class="current" {%- endif %}>
<a href="{{ post.url | relative_url }}">{{ post.title }}</a>
</li>
{% endunless -%}

View File

@@ -1,5 +1,5 @@
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select id="news-nav" onchange="navigateToUrl(this)" aria-label="Select a post from the blog">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the blog…</option>
<option value="{{ '/news/' | relative_url }}">Home</option>
<optgroup label="posts">
@@ -8,4 +8,4 @@
{% endfor -%}
</optgroup>
</select>
</div>
</div>

View File

@@ -1,5 +1,5 @@
<article itemscope itemtype="http://schema.org/NewsArticle">
<h2 itemprop="headline">
<article>
<h2>
<a href="{{ post.url | relative_url }}">
{{- post.title -}}
</a>
@@ -10,16 +10,16 @@
</span>
</span>
<div class="post-meta">
<span class="post-date" itemprop="datePublished" content="{{ post.date | date: "%Y-%m-%d" }}">
<span class="post-date">
{{- post.date | date_to_string -}}
</span>
{% assign author = post.author -%}
<a class="post-author" itemprop="author" itemscope itemtype="http://schema.org/Person" target="_blank" href="https://github.com/{{ author }}">
<a href="https://github.com/{{ author }}" class="post-author">
{% avatar user=author size=24 -%}
<span class="author-name" itemprop="name">{{ author }}</span>
<span class="author-name">{{ author }}</span>
</a>
</div>
<div class="post-content" itemprop="articleBody">
<div class="post-content">
{{- post.content -}}
</div>
</article>

Some files were not shown because too many files have changed in this diff Show More