Compare commits

...

89 Commits

Author SHA1 Message Date
Ashwin Maroli
a09a8dea05 Release 💎 v4.3.4 2024-09-16 21:35:27 +05:30
Ashwin Maroli
4854cab130 Update history to reflect merge of #9684 [ci skip] 2024-09-16 21:31:26 +05:30
Ashwin Maroli
c0a92daf48 Backport #9680 for v4.3.x: Render theme-gem root only in development (#9684)
This backports 32074ef to 4.3-stable
2024-09-16 21:28:06 +05:30
Ashwin Maroli
e139840078 Update history to reflect merge of #9683 [ci skip] 2024-09-16 21:07:58 +05:30
Ashwin Maroli
02d3bf2353 Backport #9662 for v4.3.x: Relax version constraint on wdm in new Gemfile (#9683)
This backports 3a8b282 to 4.3-stable
2024-09-16 21:03:45 +05:30
Ashwin Maroli
e3d4d2eb92 Update history to reflect merge of #9681 [ci skip] 2024-09-16 20:33:02 +05:30
Ashwin Maroli
c5183479e9 Sync workflows with counterparts on master (#9681)
Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2024-09-16 20:20:21 +05:30
Matt Rogers
33a5a803d4 Release 💎 v4.3.3 2023-12-27 12:25:58 -06:00
Matt Rogers
fb364ba91b Merge pull request #9285 from oturpe/ruby-3.2-fix-for-4.3.-stable
Backport #9237 to 4.3-stable "test: use hash explicitly for Struct initializer for ruby 3.2"
2023-12-27 10:31:02 -06:00
Matt Rogers
a6b18000b2 Merge pull request #9510 from ntkme/cherry-pick-fix-ruby-3.3
Cherry pick logger fix for Ruby 3.3
2023-12-27 10:28:16 -06:00
Ashwin Maroli
b52339004e Stop testing with Rubies older than 2.7 on Windows 2023-12-27 03:54:42 -08:00
Ashwin Maroli
935a7a99e2 Lock Ruby in CI to v3.1.2 and bump JRuby to v9.4.0.0 (#9196)
Merge pull request 9196
2023-12-27 02:58:09 -08:00
Matt Rogers
abd2cd9471 Keep activesupport at version 7.0.x (#9469)
Merge pull request 9469
2023-12-27 02:54:04 -08:00
Sutou Kouhei
595cc23067 Add support for upcoming logger 1.4.3 (#9392)
Merge pull request 9392
2023-12-27 02:16:46 -08:00
Mamoru TASAKA
9ff6eb78db test: use hash explicitly for Struct initializer for ruby 3.2 (#9237)
Merge pull request 9237
2023-01-30 08:30:13 +02:00
Ashwin Maroli
3874e124d7 Release 💎 v4.3.2 2023-01-20 23:39:01 +05:30
Ashwin Maroli
2a6efa2373 Update history to reflect merge of #9262 [ci skip] 2023-01-19 17:11:01 +05:30
Ashwin Maroli
e0f339a1e5 Backport #9257 for v4.3.x: Rename sass partial created for new blank site (#9262)
This backports 3a18480 to 4.3-stable
2023-01-19 17:10:41 +05:30
Ashwin Maroli
4df3d241ab Update history to reflect merge of #9256 [ci skip] 2023-01-16 18:01:52 +05:30
Ashwin Maroli
14a9c9c01a Backport #9187 for v4.3.x: Optimize Site#each_site_file (#9256)
This backports b2891a4 to 4.3-stable
2023-01-16 18:00:37 +05:30
Ashwin Maroli
a079df52bd Update history to reflect merge of #9255 [ci skip] 2023-01-16 14:25:52 +05:30
Ashwin Maroli
7a6e0f1802 Backport #9186 for v4.3.x: Remove totals in profile table properly
This backports 82bb271 to 4.3-stable
2023-01-16 14:25:16 +05:30
Ashwin Maroli
da570f02d7 Update history to reflect merge of #9254 [ci skip] 2023-01-15 18:58:22 +05:30
なつき
868d96948b Backport #9223 for 4.3.x
Update sass related tests for jekyll-sass-converter 3.x
This backports 572c86e to 4.3-stable
2023-01-15 18:51:23 +05:30
Ashwin Maroli
a260cabb89 Lock Ruby in CI to v3.1.2 2022-12-18 20:45:46 +05:30
Ashwin Maroli
7979f480b3 Lock psych to v4.x
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.
2022-12-18 19:25:30 +05:30
Ashwin Maroli
4d439407a9 Release 💎 v4.3.1 2022-10-26 23:25:48 +05:30
jekyllbot
8810223544 Update history to reflect merge of #9171 [ci skip] 2022-10-26 23:19:17 +05:30
Ashwin Maroli
f519371e5d Release post for v4.3.1 (#9171)
Merge pull request 9171
2022-10-26 23:19:15 +05:30
jekyllbot
e83680e487 Update history to reflect merge of #9170 [ci skip] 2022-10-26 22:08:16 +05:30
Ashwin Maroli
590d0b58b9 Revert "Incrementally rebuild when a data file is changed (#8771)" (#9170)
Merge pull request 9170
2022-10-26 22:08:14 +05:30
jekyllbot
f3fa91e7c7 Update history to reflect merge of #9167 [ci skip] 2022-10-26 22:06:34 +05:30
Ashwin Maroli
6408c0f264 Respect user-defined name attribute in documents (#9167)
Merge pull request 9167
2022-10-26 22:06:32 +05:30
Ashwin Maroli
2b56ad4f6d Fix spelling errors in History document 2022-10-20 21:57:37 +05:30
Ashwin Maroli
9c2c01bb7a Release 💎 v4.3.0 2022-10-20 21:32:59 +05:30
jekyllbot
a81cd42768 Update history to reflect merge of #9157 [ci skip] 2022-10-20 08:57:37 -07:00
Ashwin Maroli
b32293cf67 Release post for v4.3.0 (#9157)
Merge pull request 9157
2022-10-20 08:57:35 -07:00
Ashwin Maroli
e27605e380 Clean up HEAD section in History document 2022-10-20 18:58:29 +05:30
Giuseppe Bertone
520326406c Document xz dependency on macOS (#9098)
Signed-off-by: Giuseppe Bertone <giuseppe.bertone@swirldslabs.com>
2022-10-20 15:52:08 +05:30
Kaben
f030e55f70 Fix URL to Liquid documentation (#9158) 2022-10-20 15:45:40 +05:30
Ashwin Maroli
6d3dc74c7d Bump RuboCop to v1.37.x 2022-10-20 14:47:52 +05:30
jekyllbot
35e08eb9db Update history to reflect merge of #9132 [ci skip] 2022-10-16 07:37:06 -07:00
なつき
03f7ddc801 Support jekyll-sass-converter 3.x (#9132)
Merge pull request 9132
2022-10-16 07:37:05 -07:00
jekyllbot
3554b73b7f Update history to reflect merge of #9141 [ci skip] 2022-10-16 04:48:26 -07:00
Youssef Boulkaid
6903f0b0f4 Fix false positive conflicts for static files in a collection (#9141)
Merge pull request 9141
2022-10-16 04:48:24 -07:00
jekyllbot
bb851e235d Update history to reflect merge of #9151 [ci skip] 2022-10-06 23:04:42 -07:00
Kaben
5d5d975672 Update posts.md (#9151)
Merge pull request 9151
2022-10-06 23:04:40 -07:00
jekyllbot
fe45439b6c Update history to reflect merge of #9142 [ci skip] 2022-10-02 03:16:54 -07:00
Youssef Boulkaid
823c8f94d2 Relax RDoc version dependency (#9142)
Merge pull request 9142
2022-10-02 03:16:53 -07:00
jekyllbot
2cc51e6aba Update history to reflect merge of #8771 [ci skip] 2022-09-29 05:46:26 -07:00
Ashwin Maroli
160a6816af Incrementally rebuild when a data file is changed (#8771)
Merge pull request 8771
2022-09-29 05:46:24 -07:00
jekyllbot
d45fb96477 Update history to reflect merge of #9136 [ci skip] 2022-09-29 03:37:44 -07:00
Youssef Boulkaid
daca7e53a1 Disable pending cops when running rubocop (#9136)
Merge pull request 9136
2022-09-29 03:37:42 -07:00
jekyllbot
e05a25a668 Update history to reflect merge of #9135 [ci skip] 2022-09-29 00:16:34 -07:00
Youssef Boulkaid
7a70a3ae5e Unlock Psych dependency (#9135)
Merge pull request 9135
2022-09-29 00:16:32 -07:00
jekyllbot
1baded9acd Update history to reflect merge of #9134 [ci skip] 2022-09-28 03:54:48 -07:00
Ashwin Maroli
1a3d85a8a5 Relax version constraint to allow Rouge 4.x (#9134)
Merge pull request 9134
2022-09-28 03:54:46 -07:00
Ashwin Maroli
b632afd2db Add version badge to documentation header 2022-09-25 20:42:58 +05:30
Ashwin Maroli
d09c5105d7 Document keys of the theme drop
Follow-up to #9129
2022-09-25 20:23:04 +05:30
jekyllbot
6633fd2335 Update history to reflect merge of #9129 [ci skip] 2022-09-24 06:54:57 -07:00
Ashwin Maroli
b8cf7cf96d Introduce theme drop to expose theme details (#9129)
Merge pull request 9129
2022-09-24 06:54:56 -07:00
jekyllbot
5b64b27b2c Update history to reflect merge of #9111 [ci skip] 2022-09-23 10:27:23 -07:00
Josh Soref
d1e392f301 Use check-spelling/check-spelling@v0.0.20 (#9111)
Merge pull request 9111
2022-09-23 10:27:21 -07:00
jekyllbot
7d9b6403c0 Update history to reflect merge of #9125 [ci skip] 2022-09-21 10:25:51 -07:00
Ashwin Maroli
911e249d72 Bump RuboCop to 1.36.x (#9125)
Merge pull request 9125
2022-09-21 10:25:50 -07:00
jekyllbot
d2c7c43c3f Update history to reflect merge of #9093 [ci skip] 2022-08-01 07:21:36 -07:00
Nemo
7a698d4d14 Bump rubocop to 1.32 (#9093)
Merge pull request 9093
2022-08-01 07:21:34 -07:00
jekyllbot
a03e972378 Update history to reflect merge of #9086 [ci skip] 2022-07-13 16:45:38 -07:00
Andrii Abramov
18e5e5223b Update ruby version for macos guide (#9086)
Merge pull request 9086
2022-07-13 16:45:36 -07:00
jekyllbot
3d23171d22 Update history to reflect merge of #9064 [ci skip] 2022-06-20 20:35:43 -07:00
Andreas Deininger
a0c6b4c595 Improve links (http -> https) (#9064)
Merge pull request 9064
2022-06-20 20:35:42 -07:00
jekyllbot
66dd820648 Update history to reflect merge of #9049 [ci skip] 2022-06-20 12:19:38 -07:00
Kirstin Heidler
25369429a7 Windows: describe which option to choose (#9049)
Merge pull request 9049
2022-06-20 12:19:37 -07:00
Ashwin Maroli
8896e125ef Bump RuboCop to v1.30.x 2022-05-26 15:11:58 +05:30
jekyllbot
4537ccac41 Update history to reflect merge of #9057 [ci skip] 2022-05-16 06:51:32 -07:00
Takuya N
674bcfb37e Remove Ionic Framework site from showcase (#9057)
Merge pull request 9057
2022-05-16 06:51:30 -07:00
Ashwin Maroli
0f5f5ba8d1 Bump RuboCop to v1.29.x
Closes #9053
2022-05-09 11:30:27 +05:30
Ashwin Maroli
796ae15c31 Fix alignment of home page section-units on mobile 2022-05-05 16:46:09 +05:30
Ashwin Maroli
d70ffd2a20 Fix news-archive list renders on small-devices
Resolves #8839
2022-05-05 12:49:26 +05:30
jekyllbot
2c0e51330b Update history to reflect merge of #9045 [ci skip] 2022-04-28 05:14:23 -07:00
Andrew Gutekanst
ac93d22df1 Remove git.io shortlinks from repo (#9045)
Merge pull request 9045
2022-04-28 05:14:22 -07:00
jekyllbot
124ce72be8 Update history to reflect merge of #9039 [ci skip] 2022-04-27 23:57:35 -07:00
Ashwin Maroli
6077ed6a01 Remove misleading total row from --profile table (#9039)
Merge pull request 9039
2022-04-27 23:57:33 -07:00
Ashwin Maroli
7c28eb5f7e Bump RuboCop to v1.28.x 2022-04-21 20:20:49 +05:30
jekyllbot
c254533c3b Update history to reflect merge of #8995 [ci skip] 2022-04-08 07:22:30 -07:00
Emily Grace Seville
64dbf46a3b Add clarity to docs on permalinks placeholders and builtins (#8995)
Merge pull request 8995
2022-04-08 07:22:29 -07:00
Ashwin Maroli
1cde234d41 Bump RuboCop to v1.27.x 2022-04-08 18:59:55 +05:30
jekyllbot
b02b070d86 Update history to reflect merge of #8988 [ci skip] 2022-04-08 02:13:22 -07:00
Ashwin Maroli
3b3f845846 Ensure theme config is a Jekyll::Configuration object (#8988)
Merge pull request 8988
2022-04-08 02:13:21 -07:00
104 changed files with 1771 additions and 422 deletions

2
.github/CODEOWNERS vendored
View File

@@ -65,8 +65,6 @@
# @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 work around? 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 workaround? 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.

View File

@@ -8,8 +8,10 @@ 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.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)
[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)
Note: you can replace any of these files with a directory by the same name (minus the `.txt` extension) and
then include multiple files (with a `.txt` extension) inside that directory to merge multiple files together.
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,28 +1,25 @@
<!-- 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.
If not, try writing one and adding it to the `patterns.txt` file.
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.
</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](
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](
`^` 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>
* 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](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
</details>

View File

@@ -0,0 +1,17 @@
built-ins
github
hakiri
https
Linting
Microsoft
ssh
Statictastic
statictastic
ubuntu
Wikipedia
workaround
workaround
workarounds
WSL
decapcms
tina

View File

@@ -0,0 +1,520 @@
# 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

@@ -2,6 +2,8 @@
(?:^|/)(?i)COPYRIGHT
(?:^|/)(?i)LICEN[CS]E
(?:^|/)3rdparty/
(?:^|/)go\.sum$
(?:^|/)package(?:-lock|)\.json$
(?:^|/)vendor/
@@ -9,20 +11,52 @@
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$
\.svg$
\.psd$
\.pyc$
\.s$
\.svgz?$
\.tar$
\.tiff?$
\.ttf$
\.wav$
\.webm$
\.webp$
\.woff$
\.woff2$
\.xlsx?$
\.zip$
^docs/pages/redirects/github\.html$
^lib/jekyll/mime\.types$
@@ -33,3 +67,4 @@ 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

@@ -36,6 +36,7 @@ awscli
backend
backport
backtick
backticks
barcamp
baseurl
bashrc
@@ -51,6 +52,7 @@ bitbucket
blog
Blogger
blogging
blogs
bonafide
Bou
breadcrumbs
@@ -60,6 +62,7 @@ bridgetownrb
brightbox
brighterplanet
buddyworks
builtatlightspeed
Bugfix
Burela
byparker
@@ -128,6 +131,7 @@ Debian
debuggability
defunkt
delegators
dependabot
deployer
deps
dest
@@ -177,6 +181,7 @@ exe
execjs
extensionpack
extname
extnames
exts
favicon
Fengyun
@@ -202,6 +207,7 @@ formx
Forwardable
frameborder
freenode
frontend
frontmatter
fsnotify
ftp
@@ -312,6 +318,7 @@ Kewin
keycdn
kickster
Kinnula
kinsta
kiwifruit
Kolesky
konklone
@@ -375,6 +382,7 @@ mergable
Mertcan
mertkahyaoglu
metadata
metadatas
microdata
microsoft
mimetype
@@ -420,6 +428,7 @@ nakanishi
namespace
namespaced
navbar
navbars
nbsp
nearlyfreespeech
nethack
@@ -459,6 +468,7 @@ pathawks
Pathutil
paywall
pdf
PDFs
Pelykh
permalink
PHP
@@ -479,6 +489,7 @@ Posterous
postfiles
postlayout
postmodern
prefetching
preinstalled
prepends
Prioritise
@@ -509,6 +520,8 @@ redgreen
redhat
refactor
refactoring
refactorings
Refactors
Refheap
regen
regex
@@ -551,6 +564,7 @@ Schwartzian
scp
screenshot
scrollbar
scrollbars
scroller
scss
scssify
@@ -564,8 +578,9 @@ setenv
SFTP
shingo
shopify
shortlinks
shortlog
shoulda
Shoulda
sieversii
sigpipe
simplecov
@@ -608,6 +623,7 @@ subdir
subdomain
subfolder
subfolderitems
subfolders
subnav
subpages
subpath
@@ -647,6 +663,7 @@ throughs
Tidelift
timeago
timezone
timezones
titleize
TLS
tmm
@@ -685,6 +702,7 @@ uri
url
urlset
username
usernames
usr
utf
utils
@@ -726,6 +744,7 @@ woff
wordpress
Workaround
workflow
workflows
wsl
www
xcode
@@ -756,5 +775,3 @@ Zsh
zshrc
zypper
zzot
frontend
prefetching

View File

@@ -0,0 +1,62 @@
# 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

@@ -71,5 +71,94 @@ 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,7 +1,10 @@
^attache$
benefitting
occurence
occurences?
^dependan.*
^oer$
Sorce
^[Ss]pae
^untill
^wether
^[Ss]pae.*
^untill$
^untilling$
^wether.*

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](http://www.firsttimersonly.com/).
[About First Timers Only](https://www.firsttimersonly.com/).
### 🤔 What you will need to know.

View File

@@ -5,34 +5,39 @@ on:
branches:
- master
- "*-stable"
paths-ignore:
- "docs/**"
pull_request:
branches:
- master
- "*-stable"
paths-ignore:
- "docs/**"
jobs:
ci:
name: "Run Tests (${{ matrix.label }})"
runs-on: "ubuntu-latest"
name: "Run Tests (${{ matrix.ruby.label }} on ${{ matrix.os.label }})"
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
include:
ruby:
- label: Ruby 2.7
ruby_version: "2.7"
- label: Ruby 3.0
ruby_version: "3.0"
- label: Ruby 3.1
ruby_version: "3.1"
- label: JRuby 9.3.4.0
ruby_version: "jruby-9.3.4.0"
version: "2.7"
- label: Ruby 3.3
version: "3.3"
os:
- label: Linux
image: "ubuntu-latest"
- label: Windows
image: "windows-latest"
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: "Set up ${{ matrix.label }}"
uses: actions/checkout@v4
- name: "Set up ${{ matrix.ruby.label }}"
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby_version }}
ruby-version: ${{ matrix.ruby.version }}
bundler-cache: true
- name: Run Minitest based tests
run: bash script/test
@@ -42,24 +47,36 @@ jobs:
run: bash script/default-site
xtras:
name: "${{ matrix.job_name }} (Ruby ${{ matrix.ruby_version }})"
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"
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: "Set up Ruby ${{ matrix.ruby_version }}"
uses: actions/checkout@v4
- name: "Set up ${{ matrix.setup_label }}"
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby_version }}

View File

@@ -20,7 +20,7 @@ jobs:
- 2.7
steps:
- name: Checkout Repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: "Set up Ruby ${{ matrix.ruby_version }}"
uses: ruby/setup-ruby@v1
with:

View File

@@ -1,22 +1,90 @@
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
on:
push:
branches:
- master
- "*-stable"
# 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'
jobs:
build:
spelling:
name: Spell Check
runs-on: "ubuntu-latest"
permissions:
contents: read
pull-requests: read
actions: read
outputs:
followup: ${{ steps.spelling.outputs.followup }}
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: Checkout Repository
uses: actions/checkout@v3
- name: Check Spellings
uses: check-spelling/check-spelling@v0.0.19
- name: check-spelling
id: spelling
uses: check-spelling/check-spelling@v0.0.21
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/src/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: ''
# This workflow has opted not to use comments (users can view the report in GitHub Step Summary)

View File

@@ -25,8 +25,11 @@ AllCops:
- vendor/**/*
- tmp/**/*
Gemspec/DateAssignment:
Gemspec/DeprecatedAttributeAssignment:
Enabled: true
Gemspec/RequireMFA:
Enabled: false
Layout/BeginEndAlignment:
Enabled: true
Layout/EmptyComment:
@@ -43,6 +46,12 @@ Layout/HashAlignment:
EnforcedHashRocketStyle: table
Layout/IndentationWidth:
Severity: error
Layout/LineContinuationLeadingSpace:
Enabled: true
Layout/LineContinuationSpacing:
Enabled: true
Layout/LineEndStringConcatenationIndentation:
Enabled: true
Layout/LineLength:
Exclude:
- !ruby/regexp /features\/.*.rb/
@@ -66,12 +75,18 @@ Layout/SpaceInsideHashLiteralBraces:
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
Lint/DeprecatedConstants:
Enabled: true
Lint/DeprecatedOpenSSLConstant:
@@ -123,6 +138,10 @@ Lint/RedundantDirGlobSort:
Enabled: true
Lint/RedundantSafeNavigation:
Enabled: true
Lint/RequireRangeParentheses:
Enabled: true
Lint/RequireRelativeSelfPath:
Enabled: true
Lint/SelfAssignment:
Enabled: true
Lint/StructNewOverride:
@@ -187,6 +206,8 @@ Metrics/ParameterLists:
Metrics/PerceivedComplexity:
Max: 13
Minitest/AssertEmptyLiteral:
Enabled: false
Minitest/AssertInDelta:
Enabled: true
Minitest/AssertionInLifecycleHook:
@@ -199,6 +220,8 @@ Minitest/AssertPathExists:
Enabled: true
Minitest/AssertSilent:
Enabled: true
Minitest/AssertWithExpectedArgument:
Enabled: true
Minitest/LiteralAsActualArgument:
Enabled: true
Minitest/TestMethodName:
@@ -211,10 +234,10 @@ Minitest/RefuteKindOf:
Enabled: true
Minitest/RefutePathExists:
Enabled: true
Minitest/UnreachableAssertion:
Enabled: true
Minitest/UnspecifiedException:
Enabled: true
Minitest/AssertEmptyLiteral:
Enabled: false
Naming/FileName:
Enabled: false
@@ -242,10 +265,16 @@ Performance/CollectionLiteralInLoop:
Enabled: true
Performance/ConstantRegexp:
Enabled: true
Performance/MapCompact:
Enabled: true
Performance/MethodObjectAsBlock:
Enabled: true
Performance/RedundantEqualityComparisonBlock:
Enabled: false
Performance/RedundantSortBlock:
Enabled: true
Performance/RedundantSplitRegexpArgument:
Enabled: true
Performance/RedundantStringChars:
Enabled: true
Performance/ReverseFirst:
@@ -254,6 +283,8 @@ Performance/SortReverse:
Enabled: false
Performance/Squeeze:
Enabled: true
Performance/StringIdentifierArgument:
Enabled: true
Performance/StringInclude:
Enabled: true
Exclude:
@@ -261,6 +292,10 @@ Performance/StringInclude:
Performance/Sum:
Enabled: true
Security/CompoundHash:
Enabled: true
Security/IoMethods:
Enabled: true
Security/MarshalLoad:
Exclude:
- !ruby/regexp /test\/.*.rb$/
@@ -303,12 +338,20 @@ Style/Documentation:
Enabled: false
Style/DoubleNegation:
Enabled: false
Style/EmptyHeredoc:
Enabled: true
Style/EndlessMethod:
Enabled: true
Style/ExplicitBlockArgument:
Enabled: false
Style/ExponentialNotation:
Enabled: true
Style/EnvHome:
Enabled: true
Style/FetchEnvVar:
Enabled: false
Style/FileRead:
Enabled: false
Style/FormatStringToken:
Exclude:
- lib/jekyll/utils/ansi.rb
@@ -316,6 +359,8 @@ Style/FormatStringToken:
- lib/jekyll/profiler.rb
Style/FrozenStringLiteralComment:
EnforcedStyle: always
Style/FileWrite:
Enabled: true
Style/GlobalStdStream:
Enabled: true
Style/GuardClause:
@@ -341,6 +386,12 @@ Style/IfWithBooleanLiteralBranches:
Enabled: true
Style/KeywordParametersOrder:
Enabled: true
Style/MagicCommentFormat:
Enabled: true
Style/MapCompactWithConditionalBlock:
Enabled: true
Style/MapToHash:
Enabled: true
Style/MixinUsage:
Exclude:
- test/helper.rb
@@ -350,10 +401,14 @@ Style/MultilineTernaryOperator:
Severity: error
Style/NegatedIfElseCondition:
Enabled: true
Style/NestedFileDirname:
Enabled: true
Style/NilLambda:
Enabled: true
Style/OptionalBooleanParameter:
Enabled: true
Exclude:
- lib/jekyll/log_adapter.rb
Style/PercentLiteralDelimiters:
PreferredDelimiters:
"%Q": "{}"
@@ -363,6 +418,8 @@ Style/PercentLiteralDelimiters:
"%s": ()
"%w": ()
"%x": ()
Style/QuotedSymbols:
Enabled: true
Style/RedundantArgument:
Enabled: true
Style/RedundantAssignment:
@@ -371,12 +428,18 @@ Style/RedundantFetchBlock:
Enabled: false
Style/RedundantFileExtensionInRequire:
Enabled: true
Style/RedundantInitialize:
Enabled: true
Exclude:
- lib/jekyll/plugin.rb
Style/RedundantRegexpCharacterClass:
Enabled: true
Style/RedundantRegexpEscape:
Enabled: true
Style/RedundantSelfAssignment:
Enabled: true
Style/RedundantSelfAssignmentBranch:
Enabled: true
Style/RegexpLiteral:
EnforcedStyle: percent_r
Style/RescueModifier:

11
Gemfile
View File

@@ -15,6 +15,7 @@ end
#
group :test do
gem "activesupport", "~> 7.0.0"
gem "cucumber", RUBY_VERSION >= "2.5" ? "~> 5.1.2" : "~> 4.1"
gem "httpclient"
gem "jekyll_test_plugin"
@@ -23,7 +24,7 @@ group :test do
gem "nokogiri", "~> 1.7"
gem "rspec"
gem "rspec-mocks"
gem "rubocop", "~> 1.26.0"
gem "rubocop", "~> 1.37.0"
gem "rubocop-minitest"
gem "rubocop-performance"
gem "rubocop-rake"
@@ -75,7 +76,13 @@ group :jekyll_optional_dependencies do
gem "kramdown-syntax-coderay"
gem "matrix"
gem "mime-types", "~> 3.0"
gem "rdoc", "~> 6.3.0"
# 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"
gem "tomlrb"
platforms :ruby, :mswin, :mingw, :x64_mingw do

View File

@@ -1,6 +1,116 @@
## HEAD
## 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)
## 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
@@ -18,7 +128,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 cicd added (#8656)
* Razorops CI/CD 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)
@@ -46,7 +156,7 @@
* Add Security Policy document (#8823)
* Manage repository meta documents consistently (#8908)
* docs: add Layer0 deployment guide (#8915)
* docs: Update REAMDE generated by `jekyll new-theme` (#8919)
* 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)
@@ -65,59 +175,13 @@
* Simplify macOS installation docs (#8993)
* Improve document about Github Actions section (#8853)
* Update permalinks.md (#9017)
### Bug Fixes
* Add webrick as a dependency (#8524)
* 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)
### 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)
* 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)
### 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)
* Propagate _data folder from theme (#8815)
* Support both tzinfo v1 and v2 alongwith 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)
* 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)
### Site Enhancements

View File

@@ -1,8 +1,7 @@
# [Jekyll](https://jekyllrb.com/)
[![Gem Version](https://img.shields.io/gem/v/jekyll.svg)][ruby-gems]
[![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]
[![Build Status](https://github.com/jekyll/jekyll/workflows/Continuous%20Integration/badge.svg)][ci-workflow]
[![Backers on Open Collective](https://opencollective.com/jekyll/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/jekyll/sponsors/badge.svg)](#sponsors)
@@ -28,7 +27,7 @@ See: [https://jekyllrb.com/philosophy](https://jekyllrb.com/philosophy)
## Diving In
* [Migrate](http://import.jekyllrb.com/docs/home/) from your previous system
* [Migrate](https://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

View File

@@ -1,47 +0,0 @@
version: "{build}"
clone_depth: 5
branches:
only:
- master
- themes
- /.*-stable/
build: off
environment:
BUNDLE_WITHOUT: "benchmark:development"
matrix:
- RUBY_FOLDER_VER: "26"
TZINFO_VERSION: "~> 1.2"
TEST_SUITE: "test"
- RUBY_FOLDER_VER: "26"
TZINFO_VERSION: "~> 2.0"
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"
TZINFO_VERSION: "~> 1.2"
TEST_SUITE: "cucumber"
- RUBY_FOLDER_VER: "26"
TZINFO_VERSION: "~> 2.0"
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,5 +1,5 @@
---
version: 4.2.2
version: 4.3.1
name: Jekyll • Simple, blog-aware, static sites
description: Transform your plain text into static websites and blogs
url: https://jekyllrb.com

View File

@@ -16,6 +16,10 @@ 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: 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.
@@ -150,6 +154,22 @@ 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.
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,3 +1,3 @@
min_version: 2.5.0
current_version: 3.1.1
current_version_output: ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236)
current_version: 3.1.2
current_version_output: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a)

View File

@@ -1,5 +1,5 @@
- name: Tom Preston Werner Blog
url: http://tom.preston-werner.com/
url: https://tom.preston-werner.com/
image: tom-preston-werner.png
categories:
- personal
@@ -26,7 +26,7 @@
- marketing-site
- name: Vesterheim Norwegian-American Museum
url: http://vesterheim.org/
url: https://vesterheim.org/
image: vesterheim.png
categories:
- marketing-site
@@ -139,7 +139,7 @@
- marketing-site
- name: Rehan Butt
url: http://rehanbutt.com/
url: https://rehanbutt.com/
image: rehn.png
categories:
- personal
@@ -178,19 +178,19 @@
- other
- name: Digital Democracy
url: http://www.digital-democracy.org/
url: https://www.digital-democracy.org/
image: digital-democracy.png
categories:
- other
- name: HTML Reference
url: http://htmlreference.io/
url: https://htmlreference.io/
image: htmlreference.png
categories:
- documentation
- name: CSS Reference
url: http://cssreference.io/
url: https://cssreference.io/
image: cssreference.png
categories:
- documentation
@@ -272,7 +272,7 @@
- documentation
- name: Yeoman
url: http://yeoman.io/
url: https://yeoman.io/
image: yeoman.png
categories:
- open-source
@@ -292,13 +292,6 @@
- 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
@@ -315,7 +308,7 @@
- marketing-site
- name: Ruby on Rails
url: http://rubyonrails.org/
url: https://rubyonrails.org/
image: ruby-on-rails.png
categories:
- marketing-site

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]: http://forum.buddy.works/
[buddy-forum]: https://forum.buddy.works/

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 work around? 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 workaround? 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.

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](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.
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.
Note that CSV and TSV files *must* contain a header row.
This powerful feature allows you to avoid repetition in your templates and to

View File

@@ -35,9 +35,9 @@ The [Jekyll hosting tutorial](https://www.keycdn.com/support/jekyll-hosting) pro
## Kickster
Use [Kickster](http://kickster.nielsenramon.com/) for automated deploys to GitHub Pages when using unsupported plugins on GitHub Pages.
Use [Kickster](https://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 practises 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 practices 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 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).

View File

@@ -4,6 +4,172 @@ permalink: "/docs/history/"
note: This file is autogenerated. Edit /History.markdown instead.
---
## 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}
@@ -1171,7 +1337,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 Add CODEOWNERS file to help automate reviews. ([#6320]({{ site.repository }}/issues/6320))
- 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))
@@ -2330,7 +2496,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 non-existent `hl_linenos` to `hl_lines` to allow passthrough in safe mode ([#3787]({{ site.repository }}/issues/3787))
- Change nonexistent `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))
@@ -2667,7 +2833,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 in to Jekyll ([#2751]({{ site.repository }}/issues/2751))
- Remove tag plugins that are built into 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="http://jekyllrb.com">
<a href="https://jekyllrb.com">
<img src="logo.png" style="max-width: 200px;"
alt="Jekyll logo" />
</a>

View File

@@ -48,7 +48,7 @@ Jekyll on your Mac, or if you run into any issues, read that guide.
Install `chruby` and `ruby-install` with Homebrew:
```sh
brew install chruby ruby-install
brew install chruby ruby-install xz
```
Install the latest stable version of Ruby:
@@ -63,7 +63,7 @@ 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
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,

View File

@@ -23,7 +23,8 @@ 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)
[RubyInstaller Documentation](https://github.com/oneclick/rubyinstaller2#using-the-installer-on-a-target-system).
From the options choose `MSYS2 and MINGW development tool chain`.
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`

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 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?
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?
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

@@ -278,6 +278,14 @@ Here's the full list of placeholders available:
</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>
</tbody>
</table>
</div>
@@ -325,7 +333,10 @@ For posts, Jekyll also provides the following built-in styles for convenience:
<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>
<p>
<code>/:categories/:year/W:week/:short_day/:title:output_ext</code><br/>
<small>(<code>W</code> will be prefixed to the value of <code>:week</code>)</small>
</p>
</td>
</tr>
<tr>

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://docs.shopify.com/themes/liquid/basics) and its tags. Heres a
[Liquid](https://shopify.github.io/liquid/) 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 `_post` will be read-in as a category. For example,
Any directory above `_posts` 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

@@ -394,4 +394,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](http://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](https://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 work-arounds you find so we can
on GitHub describing the problem and any workarounds you find so we can
document it here for others.
</p>
</div>

View File

@@ -34,6 +34,11 @@ The following is a reference of the available data.
</p>
</div>
## 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

@@ -0,0 +1,88 @@
---
title: 'Jekyll 4.3.0 Released'
date: 2022-10-20 10:20:22 -0500
author: ashmaroli
version: 4.3.0
category: release
---
Hello Jekyllers!
The Jekyll team is happy to announce the release of `v4.3.0` shipping with some nice improvements and bug-fixes.
## Improvements
### Dependencies
- Gem `webrick` is now a listed dependency. You no longer have to add the gem to your Gemfile when using Jekyll with
Ruby 3.0 or newer.
- You may now use Rouge v4 or continue using Rouge v3.x by explicitly mentioning the version in your Gemfile.
- Support for gem `tzinfo` v2 and non-half-hour offsets have been added.
- You will be able to use v3 of `jekyll-sass-converter` when it ships.
### Builds
- Added support for bundling and loading data files from within a theme-gem similar to existing theme-gem contents.
- Changes to data files at source will now be respected during incremental builds.
- `site.static_files` now include static files within a collection.
- You may now configure converters for CSV data.
- `.jekyll-cache` or its equivalent custom cache directory will be automatically ignored by Git.
- Vendor the current latest mime-types dataset for use with local development server.
{% raw %}
### Liquid Templates
- `basename` attribute of documents are now exposed to Liquid as `name`, for example `{{ page.name }}`. Excerpts delegate
to associated document attribute.
- Top-level variable `{{ theme }}` introduced to expose gemspec details of theme-gem. (Valid only when using theme-gem)
{% endraw %}
## Bug-fixes
Some noteworthy bug-fixes include:
- Respect `BUNDLE_GEMFILE` when loading Jekyll plugins via Bundler.
- Prevent loading versions older than kramdown-2.3.1 as a security measure.
- Trigger livereloading even if the site has *no pages*.
- Ensure the expected class of theme config is returned following a merger.
- Enable BOM encoding only if configured encoding is 'UTF-8'.
- Respect server protocol while injecting livereload script.
- The table output for `--profile` stops printing incorrect "TOTALS" row.
[The full list of changes](/docs/history/#v4-3-0) may be perused if interested.
As always, we are grateful to the many contributors that helped improve the project codebase and documentation:
<small>Ashwin Maroli, Frank Taillandier, Matt Rogers, Parker Moore, Kelvin M. Klann, Josh Soref, Youssef Boulkaid,
Emily Grace Seville, Robert Martin, jaybe@jekyll, Ben Keith, Jonathan Darrer, Kaben, Mike Kasberg, Moncef Belyamani,
Phil Ross, Sesh Sadasivam, Adam Bell, Alaz Tetik, Alex Malaszkiewicz, Alex Saveau, Andreas Deininger, Andrew Davis,
Andrew Gutekanst, Andrii Abramov, Aram Akhavan, Atlas Cove, Attaphong Rattanaveerachanon, Ben Whetton, Chris Keefe,
Clayton Smith, Craig H Maynard, Curious Cat, Daniel Haim, Daniel Kehoe, Daryl Hepting, David Bruant, David Zhang,
Edson Jiménez, Eric Cousineau, Gary, Giuseppe Bertone, Ikko Ashimine, JJ, JT, Jeff Wilcox, Jeffrey Veen,
Jesse van der Pluijm, John Losito, Kantanat-Stamp, Kirstin Heidler, Korbs, Laurence Andrews, Liam Bigelow, Maik Riechert,
Meet Gor, Meg Gutshall, Michael Gerzabek, MichaelCordingley, Miguel Brandão, Nahin Khan, Nemo, Nicholas Paxford,
Nick Coish, Otto Urpelainen, Parikshit87, Phil Kirlin, Qasim Qureshi, Ricardo N Feliciano, Rishi Raj Jain, SNVMK,
SaintMalik, Sampath Sukesh Ravolaparthi, Shannon Kularathna, Shyam Mohan K, Takuya N, Tejas Bubane, Toshimaru, Tyler887,
Vinhas Kevin, alena-ko, fauno, lm, lucafrance, nusu, shorty, なつき</small>
---
### Announcement
I would like to inform you that following this release, Jekyll will start developing towards a v5.0 milestone that will
**definitely contain breaking changes**. I have set up a [tentative roadmap at the GitHub repository][roadmap] to give everyone
a glimpse of the PROBABLE OUTCOME. Towards that end, we will no longer accept documentation fixes on `master`. The `4.3-stable`
branch will be used to build and deploy the site for https://jekyllrb.com.
Jekyll 3.x series is now under security-maintenance phase. Only security patches will be released when necessary.
Jekyll 4.x series will continue receiving bug-fixes and security-patches only. Depending on the state of progress towards v5.0,
there will be *at least* one minor version release serving as a transitionary version containing deprecations and bridge code
to ease the eventual upgrade to v5.0.
[roadmap]: {{ site.repository }}/issues/9156
---
That is all for now.
Happy Jekyllin'!!

View File

@@ -0,0 +1,21 @@
---
title: 'Jekyll 4.3.1 Released'
date: 2022-10-26 19:09:42 +0530
author: ashmaroli
version: 4.3.1
category: release
---
Hello Jekyllers!
We're shipping `v4.3.1` containing fixes for two issues with v4.3.0:
- Jekyll now respects user-defined `name` attribute for collection documents when accessed in Liquid templates.
- Revert the changes made to trigger incremental rebuilds when data files are changed.
Thanks to the users who took the time to report the issues to us.
Happy Jekyllin'
P.S. Development towards v5 has taken a back seat as of now. I plan on releasing a v4.4.0 instead.
That said, please feel free to comment on the [tentative roadmap to v5][roadmap].
[roadmap]: {{ site.repository }}/issues/9156

View File

@@ -679,7 +679,8 @@ article h2:first-child { margin-top: 0; }
.news article + article {
margin-top: -6px;
padding: 15px 40px;
padding-top: 15px;
padding-bottom: 15px;
border-top: 1px solid #555;
border-radius: 0;
@include box-shadow(0 -1px 0 #2f2f2f);
@@ -687,24 +688,6 @@ article h2:first-child { margin-top: 0; }
h2.post-title {
margin-bottom: 0.45em;
}
.post-category {
margin-right: 20px;
padding-left: 0;
width: 150px;
box-sizing: border-box;
.label {
float: right;
}
}
.cell-left, .cell-right {
display: inline-block;
}
.cell-left {
max-width: 180px;
}
.cell-right {
width: calc(100% - 130px);
}
.post-date { margin-left: 0 }
}

View File

@@ -1 +1 @@
4.2.2
4.3.1

View File

@@ -11,7 +11,7 @@ permalink: /
</div>
</div>
</section>
<section class="features">
<section class="features center-on-mobiles">
<div class="grid">
<div class="unit one-third">
<h2>Simple</h2>
@@ -30,7 +30,7 @@ permalink: /
<p>
Permalinks, categories, pages, posts, and custom layouts are all first-class citizens here.
</p>
<a href="http://import.jekyllrb.com">Migrate your blog &rarr;</a>
<a href="https://import.jekyllrb.com">Migrate your blog &rarr;</a>
</div>
<div class="clear"></div>
</div>

View File

@@ -4,7 +4,7 @@ title: JekyllConf
permalink: /jekyllconf/
---
[JekyllConf](http://jekyllconf.com) is a free, online conference for all things Jekyll hosted by [CloudCannon](http://cloudcannon.com). Each year members of the Jekyll community speak about interesting use cases, tricks they've learned, or meta Jekyll topics.
[JekyllConf](https://jekyllconf.com) is a free, online conference for all things Jekyll hosted by [CloudCannon](https://cloudcannon.com). Each year members of the Jekyll community speak about interesting use cases, tricks they've learned, or meta Jekyll topics.
## Featured

View File

@@ -78,7 +78,7 @@ Use a SaaS service as a backend for functionality on your Jekyll site
- [markdown-writer](https://atom.io/packages/markdown-writer): An Atom package for Jekyll. It can create new posts/drafts, manage tags/categories, insert link/images and add many useful key mappings.
- [sublime-jekyll](https://github.com/23maverick23/sublime-jekyll): A Sublime Text package for Jekyll static sites. This package should help creating Jekyll sites and posts easier by providing access to key template tags and filters, as well as common completions and a current date/datetime command (for dating posts). You can install this package manually via GitHub, or via [Package Control](https://packagecontrol.io/packages/Jekyll).
- [vim-jekyll](https://github.com/parkr/vim-jekyll): A vim plugin to generate new posts and run `jekyll build` all without leaving vim.
- [WordPress2Jekyll](https://wordpress.org/plugins/wp2jekyll/): A WordPress plugin that allows you to use WordPress as your editor and (automatically) export content in to Jekyll. WordPress2Jekyll attempts to marry these two systems together in order to make a site that can be easily managed from all devices.
- [WordPress2Jekyll](https://wordpress.org/plugins/wp2jekyll/): A WordPress plugin that allows you to use WordPress as your editor and (automatically) export content into Jekyll. WordPress2Jekyll attempts to marry these two systems together in order to make a site that can be easily managed from all devices.
## Posts
@@ -91,7 +91,7 @@ Use a SaaS service as a backend for functionality on your Jekyll site
> "Jekyll is everything that I ever wanted in a blogging engine. Really. It isn't perfect, but what's excellent about it is that if there's something wrong, I know exactly how it works and how to fix it. It runs on the your machine only, and is essentially an added"build" step between you and the browser. I coded this entire site in TextMate using standard HTML5 and CSS3, and then at the end I added just a few little variables to the markup. Presto-chango, my site is built and I am at peace with the world."
- A way to [extend Jekyll](https://github.com/rfelix/jekyll_ext) without forking and modifying the Jekyll gem codebase and some [portable Jekyll extensions](https://github.com/rfelix/jekyll_ext/wiki/Extensions) that can be reused and shared.
- [Using your Rails layouts in Jekyll](http://numbers.brighterplanet.com/2010/08/09/sharing-rails-views-with-jekyll)
- [Using your Rails layouts in Jekyll](https://numbers.brighterplanet.com/2010/08/09/sharing-rails-views-with-jekyll)
## Forks

View File

@@ -82,8 +82,8 @@ Feature: Collections
When I run jekyll build
Then I should get a zero exit status
Then the _site directory should exist
And I should see "Collections: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/um_hi.md" in "_site/index.html" unless Windows
And I should see "Collections: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/yaml_with_dots.md" in "_site/index.html" if on Windows
And I should see "Collections: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/um_hi.md" in "_site/index.html" if platform supports symlinks
And I should see "Collections: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/yaml_with_dots.md" in "_site/index.html" if platform does not support symlinks
Scenario: Collections specified as an hash
Given I have an "index.html" page that contains "Collections: {% for method in site.methods %}{{ method.relative_path }} {% endfor %}"
@@ -96,8 +96,8 @@ Feature: Collections
When I run jekyll build
Then I should get a zero exit status
Then the _site directory should exist
And I should see "Collections: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/um_hi.md" in "_site/index.html" unless Windows
And I should see "Collections: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/yaml_with_dots.md" in "_site/index.html" if on Windows
And I should see "Collections: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/um_hi.md" in "_site/index.html" if platform supports symlinks
And I should see "Collections: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/yaml_with_dots.md" in "_site/index.html" if platform does not support symlinks
Scenario: Rendered collection with document with future date
Given I have a _puppies directory
@@ -377,8 +377,8 @@ Feature: Collections
When I run jekyll build
Then I should get a zero exit status
Then the _site directory should exist
And I should see "All documents: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/um_hi.md" in "_site/index.html" unless Windows
And I should see "All documents: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/yaml_with_dots.md" in "_site/index.html" if on Windows
And I should see "All documents: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/um_hi.md" in "_site/index.html" if platform supports symlinks
And I should see "All documents: _methods/3940394-21-9393050-fifif1323-test.md _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/trailing-dots...md _methods/yaml_with_dots.md" in "_site/index.html" if platform does not support symlinks
Scenario: Documents have an output attribute, which is the converted HTML
Given I have an "index.html" page that contains "Second document's output: {{ site.documents[2].output }}"
@@ -432,8 +432,8 @@ Feature: Collections
When I run jekyll build
Then I should get a zero exit status
And the _site directory should exist
And I should see "2. of 10: <p>Page without title.</p>" in "_site/index.html" unless Windows
And I should see "2. of 9: <p>Page without title.</p>" in "_site/index.html" if on Windows
And I should see "2. of 10: <p>Page without title.</p>" in "_site/index.html" if platform supports symlinks
And I should see "2. of 9: <p>Page without title.</p>" in "_site/index.html" if platform does not support symlinks
Scenario: Sort by relative_path
Given I have an "index.html" page that contains "Collections: {% assign methods = site.methods | sort: 'relative_path' %}{{ methods | map:"title" | join: ", " }}"
@@ -446,8 +446,8 @@ Feature: Collections
When I run jekyll build
Then I should get a zero exit status
Then the _site directory should exist
And I should see "Collections: this is a test!, Collection#entries, Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Ellipsis Path, Site#generate, YAML with Dots" in "_site/index.html" unless Windows
And I should see "Collections: this is a test!, Collection#entries, Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Ellipsis Path, YAML with Dots" in "_site/index.html" if on Windows
And I should see "Collections: this is a test!, Collection#entries, Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Ellipsis Path, Site#generate, YAML with Dots" in "_site/index.html" if platform supports symlinks
And I should see "Collections: this is a test!, Collection#entries, Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Ellipsis Path, YAML with Dots" in "_site/index.html" if platform does not support symlinks
Scenario: Sort all entries by a Front Matter key defined in all entries
Given I have an "index.html" page that contains "Collections: {{ site.tutorials | map: 'title' | join: ', ' }}"

View File

@@ -14,10 +14,15 @@ Feature: Create sites
And the test_blank/_sass directory should exist
And the test_blank/assets/css directory should exist
And the "test_blank/_layouts/default.html" file should exist
And the "test_blank/_sass/main.scss" file should exist
And the "test_blank/_sass/base.scss" file should exist
And the "test_blank/assets/css/main.scss" file should exist
And the "test_blank/_config.yml" file should exist
And the "test_blank/index.md" file should exist
When I run jekyll build --source test_blank --destination test_blank/_site
Then I should get a zero exit status
And the test_blank/_site directory should exist
And I should see "Start developing" in "test_blank/_site/index.html"
And I should see "body {" in "test_blank/_site/assets/css/main.css"
Scenario: Basic site
Given I have an "index.html" file that contains "Basic Site"

View File

@@ -168,7 +168,7 @@ Feature: Rendering
When I run jekyll build
Then I should get a zero exit status
And the _site directory should exist
And I should see ".foo-bar { color: red; }\n\n\/\*# sourceMappingURL=index.css.map \*\/" in "_site/index.css"
And I should see ".foo-bar {\n color: red;\n}\n\n\/\*# sourceMappingURL=index.css.map \*\/" in "_site/index.css"
Scenario: Not render liquid in CoffeeScript without explicitly including jekyll-coffeescript
Given I have an "index.coffee" page with animal "cicada" that contains "hey='for {{page.animal}}'"

View File

@@ -163,7 +163,7 @@ Given(%r!^I have a configuration file with "(.*)" set to "(.*)"$!) do |key, valu
else
{}
end
config[key] = YAML.load(value)
config[key] = SafeYAML.load(value)
Jekyll.set_timezone(value) if key == "timezone"
File.write("_config.yml", YAML.dump(config))
end
@@ -287,28 +287,28 @@ end
#
Then(%r!^I should (not )?see "(.*)" in "(.*)" if on Windows$!) do |negative, text, file|
Then(%r!^I should (not )?see "(.*)" in "(.*)" if platform does not support symlinks$!) do |negative, text, file|
step %(the "#{file}" file should exist)
regexp = Regexp.new(text, Regexp::MULTILINE)
if negative.nil? || negative.empty?
if Jekyll::Utils::Platforms.really_windows?
expect(file_contents(file)).to match regexp
else
if Platform.supports_symlink?
expect(file_contents(file)).not_to match regexp
else
expect(file_contents(file)).to match regexp
end
end
end
#
Then(%r!^I should (not )?see "(.*)" in "(.*)" unless Windows$!) do |negative, text, file|
Then(%r!^I should (not )?see "(.*)" in "(.*)" if platform supports symlinks$!) do |negative, text, file|
step %(the "#{file}" file should exist)
regexp = Regexp.new(text, Regexp::MULTILINE)
if negative.nil? || negative.empty?
if Jekyll::Utils::Platforms.really_windows?
expect(file_contents(file)).not_to match regexp
else
if Platform.supports_symlink?
expect(file_contents(file)).to match regexp
else
expect(file_contents(file)).not_to match regexp
end
end
end

View File

@@ -18,6 +18,13 @@ class Paths
def self.source_dir; SOURCE_DIR; end
end
class Platform
REF_FILE = File.expand_path("../../test/source/symlink-test/symlinked-file", __dir__)
def self.supports_symlink?; File.symlink?(REF_FILE); end
end
#
def file_content_from_hash(input_hash)

View File

@@ -19,7 +19,7 @@ Feature: Writing themes
When I run jekyll build
Then I should get a zero exit status
And the _site directory should exist
And I should see ".sample { color: red; }\n\n\/\*# sourceMappingURL=style.css.map \*\/" in "_site/assets/style.css"
And I should see ".sample {\n color: red;\n}\n\n\/\*# sourceMappingURL=style.css.map \*\/" in "_site/assets/style.css"
Scenario: Overriding a theme with SCSS
Given I have a configuration file with "theme" set to "test-theme"
@@ -28,7 +28,7 @@ Feature: Writing themes
When I run jekyll build
Then I should get a zero exit status
And the _site directory should exist
And I should see ".sample { color: black; }\n\n\/\*# sourceMappingURL=style.css.map \*\/" in "_site/assets/style.css"
And I should see ".sample {\n color: black;\n}\n\n\/\*# sourceMappingURL=style.css.map \*\/" in "_site/assets/style.css"
Scenario: A theme with an include
Given I have a configuration file with "theme" set to "test-theme"

View File

@@ -36,19 +36,14 @@ Gem::Specification.new do |s|
s.add_runtime_dependency("colorator", "~> 1.0")
s.add_runtime_dependency("em-websocket", "~> 0.5")
s.add_runtime_dependency("i18n", "~> 1.0")
s.add_runtime_dependency("jekyll-sass-converter", "~> 2.0")
s.add_runtime_dependency("jekyll-sass-converter", ">= 2.0", "< 4.0")
s.add_runtime_dependency("jekyll-watch", "~> 2.0")
s.add_runtime_dependency("kramdown", "~> 2.3", ">= 2.3.1")
s.add_runtime_dependency("kramdown-parser-gfm", "~> 1.0")
s.add_runtime_dependency("liquid", "~> 4.0")
s.add_runtime_dependency("mercenary", ">= 0.3.6", "< 0.5")
s.add_runtime_dependency("pathutil", "~> 0.9")
# Ruby 3.1.0 shipped with `psych-4.0.3` which caused some of our Cucumber-based tests to fail.
# TODO: Remove lock once we implement a way to use Psych 4 without breaking anything.
s.add_runtime_dependency("psych", "~> 3.3")
s.add_runtime_dependency("rouge", "~> 3.0")
s.add_runtime_dependency("rouge", ">= 3.0", "< 5.0")
s.add_runtime_dependency("safe_yaml", "~> 1.0")
s.add_runtime_dependency("terminal-table", ">= 1.8", "< 4.0")
s.add_runtime_dependency("webrick", "~> 1.7")

View File

@@ -1,4 +1,4 @@
---
---
@import "main";
@import "base";

View File

@@ -30,8 +30,8 @@ module Jekyll
site = Jekyll::Site.new(options)
if options.fetch("skip_initial_build", false)
Jekyll.logger.warn "Build Warning:", "Skipping the initial build." \
" This may result in an out-of-date site."
Jekyll.logger.warn "Build Warning:",
"Skipping the initial build. This may result in an out-of-date site."
else
build(site, options)
end

View File

@@ -7,8 +7,7 @@ module Jekyll
def init_with_program(prog)
prog.command(:clean) do |c|
c.syntax "clean [subcommand]"
c.description "Clean the site " \
"(removes site output and metadata file) without building."
c.description "Clean the site (removes site output and metadata file) without building."
add_build_options(c)

View File

@@ -53,14 +53,14 @@ module Jekyll
"Detected '_posts' directory outside custom `collections_dir`!"
Jekyll.logger.warn "",
"Please move '#{posts_at_root}' into the custom directory at " \
"'#{site.in_source_dir(site.config["collections_dir"])}'"
"'#{site.in_source_dir(site.config["collections_dir"])}'"
false
end
def deprecated_relative_permalinks(site)
if site.config["relative_permalinks"]
Jekyll::Deprecator.deprecation_message "Your site still uses relative permalinks," \
" which was removed in Jekyll v3.0.0."
Jekyll::Deprecator.deprecation_message "Your site still uses relative permalinks, " \
"which was removed in Jekyll v3.0.0."
true
end
end
@@ -88,7 +88,7 @@ module Jekyll
Jekyll.logger.error <<~STR
We have detected that there might be trouble using fsevent on your
operating system, you can read https://github.com/thibaudgg/rb-fsevent/wiki/no-fsevents-fired-(OSX-bug)
for possible work arounds or you can work around it immediately
for possible workarounds or you can work around it immediately
with `--force-polling`.
STR
@@ -105,9 +105,9 @@ module Jekyll
next unless real_urls.uniq.size > 1
urls_only_differ_by_case = true
Jekyll.logger.warn "Warning:", "The following URLs only differ" \
" by case. On a case-insensitive file system one of the URLs" \
" will be overwritten by the other: #{real_urls.join(", ")}"
Jekyll.logger.warn "Warning:", "The following URLs only differ by case. On a " \
"case-insensitive file system one of the URLs will be " \
"overwritten by the other: #{real_urls.join(", ")}"
end
urls_only_differ_by_case
end
@@ -148,8 +148,8 @@ module Jekyll
def url_exists?(url)
return true unless url.nil? || url.empty?
Jekyll.logger.warn "Warning:", "You didn't set an URL in the config file, "\
"you may encounter problems with some plugins."
Jekyll.logger.warn "Warning:", "You didn't set an URL in the config file, you may " \
"encounter problems with some plugins."
false
end
@@ -157,18 +157,18 @@ module Jekyll
Addressable::URI.parse(url)
true
# Addressable::URI#parse only raises a TypeError
# https://git.io/vFfbx
# https://github.com/sporkmonger/addressable/blob/0a0e96acb17225f9b1c9cab0bad332b448934c9a/lib/addressable/uri.rb#L103
rescue TypeError
Jekyll.logger.warn "Warning:", "The site URL does not seem to be valid, "\
"check the value of `url` in your config file."
Jekyll.logger.warn "Warning:", "The site URL does not seem to be valid, " \
"check the value of `url` in your config file."
false
end
def url_absolute(url)
return true if url.is_a?(String) && Addressable::URI.parse(url).absolute?
Jekyll.logger.warn "Warning:", "Your site URL does not seem to be absolute, "\
"check the value of `url` in your config file."
Jekyll.logger.warn "Warning:", "Your site URL does not seem to be absolute, " \
"check the value of `url` in your config file."
false
end
end

View File

@@ -28,8 +28,8 @@ module Jekyll
FileUtils.mkdir_p new_blog_path
if preserve_source_location?(new_blog_path, options)
Jekyll.logger.error "Conflict:", "#{new_blog_path} exists and is not empty."
Jekyll.logger.abort_with "", "Ensure #{new_blog_path} is empty or else " \
"try again with `--force` to proceed and overwrite any files."
Jekyll.logger.abort_with "", "Ensure #{new_blog_path} is empty or else try again " \
"with `--force` to proceed and overwrite any files."
end
if options["blank"]
@@ -97,7 +97,7 @@ module Jekyll
end
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
gem "wdm", "~> 0.1", :platforms => [:mingw, :x64_mingw, :mswin]
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
# do not have a Java counterpart.
@@ -108,13 +108,9 @@ module Jekyll
def create_site(new_blog_path)
create_sample_files new_blog_path
File.open(File.expand_path(initialized_post_name, new_blog_path), "w") do |f|
f.write(scaffold_post_content)
end
File.write(File.expand_path(initialized_post_name, new_blog_path), scaffold_post_content)
File.open(File.expand_path("Gemfile", new_blog_path), "w") do |f|
f.write(gemfile_contents)
end
File.write(File.expand_path("Gemfile", new_blog_path), gemfile_contents)
end
def preserve_source_location?(path, options)

View File

@@ -10,8 +10,7 @@ module Jekyll
prog.command(:"new-theme") do |c|
c.syntax "new-theme NAME"
c.description "Creates a new Jekyll theme scaffold"
c.option "code_of_conduct", \
"-c", "--code-of-conduct", \
c.option "code_of_conduct", "-c", "--code-of-conduct",
"Include a Code of Conduct. (defaults to false)"
c.action do |args, opts|
@@ -30,8 +29,8 @@ module Jekyll
Jekyll.logger.abort_with "Conflict:", "#{theme.path} already exists." if theme.path.exist?
theme.create!
Jekyll.logger.info "Your new Jekyll theme, #{theme.name.cyan}," \
" is ready for you in #{theme.path.to_s.cyan}!"
Jekyll.logger.info "Your new Jekyll theme, #{theme.name.cyan}, " \
"is ready for you in #{theme.path.to_s.cyan}!"
Jekyll.logger.info "For help getting started, read #{theme.path}/README.md."
end
end

View File

@@ -21,11 +21,11 @@ module Jekyll
"ssl_key" => ["--ssl-key [KEY]", "X.509 (SSL) Private Key."],
"port" => ["-P", "--port [PORT]", "Port to listen on"],
"show_dir_listing" => ["--show-dir-listing",
"Show a directory listing instead of loading" \
" your index file.",],
"Show a directory listing instead of loading " \
"your index file.",],
"skip_initial_build" => ["skip_initial_build", "--skip-initial-build",
"Skips the initial site build which occurs before" \
" the server is started.",],
"Skips the initial site build which occurs before " \
"the server is started.",],
"livereload" => ["-l", "--livereload",
"Use LiveReload to automatically refresh browsers",],
"livereload_ignore" => ["--livereload-ignore ignore GLOB1[,GLOB2[,...]]",
@@ -113,8 +113,8 @@ module Jekyll
def validate_options(opts)
if opts["livereload"]
if opts["detach"]
Jekyll.logger.warn "Warning:", "--detach and --livereload are mutually exclusive." \
" Choosing --livereload"
Jekyll.logger.warn "Warning:", "--detach and --livereload are mutually exclusive. " \
"Choosing --livereload"
opts["detach"] = false
end
if opts["ssl_cert"] || opts["ssl_key"]
@@ -132,9 +132,9 @@ module Jekyll
livereload_max_delay
livereload_ignore
livereload_port).any? { |o| opts[o] }
Jekyll.logger.abort_with "--livereload-min-delay, "\
"--livereload-max-delay, --livereload-ignore, and "\
"--livereload-port require the --livereload option."
Jekyll.logger.abort_with "--livereload-min-delay, --livereload-max-delay, " \
"--livereload-ignore, and --livereload-port require " \
"the --livereload option."
end
end
@@ -174,7 +174,8 @@ module Jekyll
# Do a base pre-setup of WEBRick so that everything is in place
# when we get ready to party, checking for an setting up an error page
# and making sure our destination exists.
#
# rubocop:disable Security/IoMethods
def setup(destination)
require_relative "serve/servlet"
@@ -188,6 +189,7 @@ module Jekyll
end
end
end
# rubocop:enable Security/IoMethods
def webrick_opts(opts)
opts = {
@@ -263,8 +265,7 @@ module Jekyll
return system "xdg-open", address if Utils::Platforms.linux?
return system "open", address if Utils::Platforms.osx?
Jekyll.logger.error "Refusing to launch browser; " \
"Platform launcher unknown."
Jekyll.logger.error "Refusing to launch browser. Platform launcher unknown."
end
# Keep in our area with a thread or detach the server as requested
@@ -277,9 +278,8 @@ module Jekyll
end
Process.detach(pid)
Jekyll.logger.info "Server detached with pid '#{pid}'.", \
"Run `pkill -f jekyll' or `kill -9 #{pid}'" \
" to stop the server."
Jekyll.logger.info "Server detached with pid '#{pid}'.",
"Run `pkill -f jekyll' or `kill -9 #{pid}' to stop the server."
else
t = Thread.new { server.start }
trap("INT") { server.shutdown }

View File

@@ -110,7 +110,7 @@ module Jekyll
def log_error(error)
Jekyll.logger.error "LiveReload experienced an error. " \
"Run with --trace for more information."
"Run with --trace for more information."
raise error
end
end

View File

@@ -128,7 +128,7 @@ module Jekyll
class Servlet < WEBrick::HTTPServlet::FileHandler
DEFAULTS = {
"Cache-Control" => "private, max-age=0, proxy-revalidate, " \
"no-store, no-cache, must-revalidate",
"no-store, no-cache, must-revalidate",
}.freeze
def initialize(server, root, callbacks)

View File

@@ -304,8 +304,8 @@ module Jekyll
return if config["plugins"].is_a?(Array)
Jekyll.logger.error "'plugins' should be set as an array of gem-names, but was: " \
"#{config["plugins"].inspect}. Use 'plugins_dir' instead to set the directory " \
"for your non-gemified Ruby plugins."
"#{config["plugins"].inspect}. Use 'plugins_dir' instead to set " \
"the directory for your non-gemified Ruby plugins."
raise Jekyll::Errors::InvalidConfigurationError,
"'plugins' should be set as an array, but was: #{config["plugins"].inspect}."
end

View File

@@ -1,4 +1,4 @@
# Frozen-string-literal: true
# frozen_string_literal: true
module Kramdown
# A Kramdown::Document subclass meant to optimize memory usage from initializing

View File

@@ -12,7 +12,6 @@ module Jekyll
mutable false
delegate_method_as :relative_path, :path
delegate_method_as :basename, :name
private delegate_method_as :data, :fallback_data
delegate_methods :id, :output, :content, :to_s, :relative_path, :url, :date
@@ -26,6 +25,10 @@ module Jekyll
fallback_data["excerpt"].to_s
end
def name
fallback_data["name"] || @obj.basename
end
def <=>(other)
return nil unless other.is_a? DocumentDrop

View File

@@ -16,7 +16,7 @@ module Jekyll
end
def name
@obj.doc.basename
@obj.doc.data["name"] || @obj.doc.basename
end
end
end

View File

@@ -0,0 +1,39 @@
# frozen_string_literal: true
module Jekyll
module Drops
class ThemeDrop < Drop
delegate_method_as :runtime_dependencies, :dependencies
def root
@root ||= ENV["JEKYLL_ENV"] == "development" ? @obj.root : ""
end
def authors
@authors ||= gemspec.authors.join(", ")
end
def version
@version ||= gemspec.version.to_s
end
def description
@description ||= gemspec.description || gemspec.summary
end
def metadata
@metadata ||= gemspec.metadata
end
private
def gemspec
@gemspec ||= @obj.send(:gemspec)
end
def fallback_data
@fallback_data ||= {}
end
end
end
end

View File

@@ -16,6 +16,10 @@ module Jekyll
@site_drop ||= SiteDrop.new(@obj)
end
def theme
@theme_drop ||= ThemeDrop.new(@obj.theme) if @obj.theme
end
private
def fallback_data

View File

@@ -190,8 +190,8 @@ module Jekyll
def print_build_warning
Jekyll.logger.warn "Warning:", "Excerpt modified in #{doc.relative_path}!"
Jekyll.logger.warn "", "Found a Liquid block containing the excerpt separator" \
" #{doc.excerpt_separator.inspect}. "
Jekyll.logger.warn "", "Found a Liquid block containing the excerpt separator " \
"#{doc.excerpt_separator.inspect}."
Jekyll.logger.warn "", "The block has been modified with the appropriate closing tag."
Jekyll.logger.warn "", "Feel free to define a custom excerpt or excerpt_separator in the"
Jekyll.logger.warn "", "document's Front Matter if the generated excerpt is unsatisfactory."

View File

@@ -311,7 +311,7 @@ module Jekyll
order = + 1
else
raise ArgumentError, "Invalid nils order: " \
"'#{nils}' is not a valid nils order. It must be 'first' or 'last'."
"'#{nils}' is not a valid nils order. It must be 'first' or 'last'."
end
sort_input(input, property, order)
@@ -478,7 +478,7 @@ module Jekyll
end
# ----------- The following set of code was *adapted* from Liquid::If
# ----------- ref: https://git.io/vp6K6
# ----------- ref: https://github.com/Shopify/liquid/blob/ffb0ace30315bbcf3548a0383fab531452060ae8/lib/liquid/tags/if.rb#L84-L107
# Parse a string to a Liquid Condition
def parse_condition(exp)

View File

@@ -78,8 +78,8 @@ module Jekyll
}
unless @registry[owner][event]
raise NotAvailable, "Invalid hook. #{owner} supports only the " \
"following hooks #{@registry[owner].keys.inspect}"
raise NotAvailable, "Invalid hook. #{owner} supports only the following hooks " \
"#{@registry[owner].keys.inspect}"
end
raise Uncallable, "Hooks must respond to :call" unless block.respond_to? :call

View File

@@ -15,16 +15,12 @@ module Jekyll
private
# rubocop:disable Metrics/AbcSize
def data_for_table(num_of_rows)
sorted = @stats.sort_by { |_, file_stats| -file_stats[:time] }
sorted = sorted.slice(0, num_of_rows)
table = [header_labels]
totals = Hash.new { |hash, key| hash[key] = 0 }
sorted.each do |filename, file_stats|
GAUGES.each { |gauge| totals[gauge] += file_stats[gauge] }
row = []
row << filename
row << file_stats[:count].to_s
@@ -33,14 +29,8 @@ module Jekyll
table << row
end
footer = []
footer << "TOTAL (for #{sorted.size} files)"
footer << totals[:count].to_s
footer << format_bytes(totals[:bytes])
footer << format("%.3f", totals[:time])
table << footer
table
end
# rubocop:enable Metrics/AbcSize
def header_labels
GAUGES.map { |gauge| gauge.to_s.capitalize }.unshift("Filename")

View File

@@ -113,9 +113,10 @@ module Jekyll
pagination_included = (site.config["plugins"] || []).include?("jekyll-paginate") ||
defined?(Jekyll::Paginate)
if site.config["paginate"] && !pagination_included
Jekyll::Deprecator.deprecation_message "You appear to have pagination " \
"turned on, but you haven't included the `jekyll-paginate` gem. " \
"Ensure you have `plugins: [jekyll-paginate]` in your configuration file."
Jekyll::Deprecator.deprecation_message <<~MSG
You appear to have pagination turned on, but you haven't included the `jekyll-paginate`
gem. Ensure you have `plugins: [jekyll-paginate]` in your configuration file.
MSG
end
end
end

View File

@@ -14,15 +14,12 @@ module Jekyll
rows = table_rows.dup
header = rows.shift
footer = rows.pop
output = +"\n"
table = Terminal::Table.new do |t|
t << header
t << :separator
rows.each { |row| t << row }
t << :separator
t << footer
t.style = TERMINAL_TABLE_STYLES
t.align_column(0, :left)
end
@@ -36,18 +33,14 @@ module Jekyll
def profile_process
profile_data = { "PHASE" => "TIME" }
total_time = 0
[:reset, :read, :generate, :render, :cleanup, :write].each do |method|
start_time = Time.now
@site.send(method)
end_time = (Time.now - start_time).round(4)
profile_data[method.to_s.upcase] = format("%.4f", end_time)
total_time += end_time
end
profile_data["TOTAL TIME"] = format("%.4f", total_time)
Jekyll.logger.info "\nBuild Process Summary:"
Jekyll.logger.info Profiler.tabulate(Array(profile_data))

View File

@@ -105,7 +105,7 @@ module Jekyll
converter.convert output
rescue StandardError => e
Jekyll.logger.error "Conversion error:",
"#{converter.class} encountered an error while "\
"#{converter.class} encountered an error while " \
"converting '#{document.relative_path}':"
Jekyll.logger.error("", e.to_s)
raise e
@@ -179,7 +179,7 @@ module Jekyll
return unless invalid_layout?(layout)
Jekyll.logger.warn "Build Warning:", "Layout '#{document.data["layout"]}' requested " \
"in #{document.relative_path} does not exist."
"in #{document.relative_path} does not exist."
end
# Render layout content into document.output

View File

@@ -328,11 +328,11 @@ module Jekyll
# Returns
def relative_permalinks_are_deprecated
if config["relative_permalinks"]
Jekyll.logger.abort_with "Since v3.0, permalinks for pages" \
" in subfolders must be relative to the" \
" site source directory, not the parent" \
" directory. Check https://jekyllrb.com/docs/upgrading/"\
" for more info."
Jekyll.logger.abort_with "Since v3.0, permalinks for pages " \
"in subfolders must be relative to the " \
"site source directory, not the parent " \
"directory. Check https://jekyllrb.com/docs/upgrading/ " \
"for more info."
end
end
@@ -360,11 +360,9 @@ module Jekyll
end
def each_site_file
%w(pages static_files_to_write docs_to_write).each do |type|
send(type).each do |item|
yield item
end
end
pages.each { |page| yield page }
static_files.each { |file| yield(file) if file.write? }
collections.each_value { |coll| coll.docs.each { |doc| yield(doc) if doc.write? } }
end
# Returns the FrontmatterDefaults or creates a new FrontmatterDefaults
@@ -476,7 +474,11 @@ module Jekyll
theme_config.delete_if { |key, _| Configuration::DEFAULTS.key?(key) }
# Override theme_config with existing config and return the result.
# Additionally ensure we return a `Jekyll::Configuration` instance instead of a Hash.
Utils.deep_merge_hashes(theme_config, config)
.each_with_object(Jekyll::Configuration.new) do |(key, value), conf|
conf[key] = value
end
end
# Limits the current posts; removes the posts which exceed the limit_posts
@@ -532,8 +534,8 @@ module Jekyll
if config["theme"].is_a?(String)
Jekyll::Theme.new(config["theme"])
else
Jekyll.logger.warn "Theme:", "value of 'theme' in config should be " \
"String to use gem-based themes, but got #{config["theme"].class}"
Jekyll.logger.warn "Theme:", "value of 'theme' in config should be String to use " \
"gem-based themes, but got #{config["theme"].class}"
nil
end
end

View File

@@ -3,13 +3,10 @@
module Jekyll
class Stevenson < ::Logger
def initialize
@progname = nil
@level = DEBUG
@default_formatter = Formatter.new
@logdev = $stdout
@formatter = proc do |_, _, _, msg|
formatter = proc do |_, _, _, msg|
msg.to_s
end
super($stdout, :formatter => formatter)
end
def add(severity, message = nil, progname = nil)

View File

@@ -104,8 +104,8 @@ module Jekyll
"class=\"language-#{@lang.to_s.tr("+", "-")}\"",
"data-lang=\"#{@lang}\"",
].join(" ")
"<figure class=\"highlight\"><pre><code #{code_attributes}>"\
"#{code.chomp}</code></pre></figure>"
"<figure class=\"highlight\"><pre><code #{code_attributes}>" \
"#{code.chomp}</code></pre></figure>"
end
end
end

View File

@@ -179,8 +179,8 @@ module Jekyll
private
def could_not_locate_message(file, includes_dirs, safe)
message = "Could not locate the included file '#{file}' in any of "\
"#{includes_dirs}. Ensure it exists in one of those directories and"
message = "Could not locate the included file '#{file}' in any of #{includes_dirs}. " \
"Ensure it exists in one of those directories and"
message + if safe
" is not a symlink as those are not allowed in safe mode."
else

View File

@@ -86,11 +86,11 @@ module Jekyll
site.posts.docs.each do |document|
next unless @post.deprecated_equality document
Jekyll::Deprecator.deprecation_message "A call to "\
"'{% post_url #{@post.name} %}' did not match " \
"a post using the new matching method of checking name " \
"(path-date-slug) equality. Please make sure that you " \
"change this tag to match the post's name exactly."
Jekyll::Deprecator.deprecation_message(
"A call to '{% post_url #{@post.name} %}' did not match a post using the new " \
"matching method of checking name (path-date-slug) equality. Please make sure " \
"that you change this tag to match the post's name exactly."
)
return relative_url(document)
end

View File

@@ -18,8 +18,8 @@ module Jekyll
# Otherwise, Jekyll.sanitized path with prepend the unresolved root
@root ||= File.realpath(gemspec.full_gem_path)
rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP
raise "Path #{gemspec.full_gem_path} does not exist, is not accessible "\
"or includes a symbolic link loop"
raise "Path #{gemspec.full_gem_path} does not exist, is not accessible or includes " \
"a symbolic link loop"
end
# The name of theme directory

View File

@@ -100,7 +100,7 @@ module Jekyll
winner = pool.find { |key| @placeholders.key?(key) }
if winner.nil?
raise NoMethodError,
"The URL template doesn't have #{pool.join(" or ")} keys. "\
"The URL template doesn't have #{pool.join(" or ")} keys. " \
"Check your permalink template!"
end

View File

@@ -1,4 +1,4 @@
# Frozen-string-literal: true
# frozen_string_literal: true
module Jekyll
module Utils

View File

@@ -25,7 +25,7 @@ module Jekyll
# e.g. Eastern Standard Time (EST) that is 5Hrs. to the 'west' of Prime Meridian
# is denoted as:
# EST+5 (or) EST+05:00
# Reference: http://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html
# Reference: https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html
sign = offset.positive? ? "-" : "+"
rational_hours = offset.abs.to_r / 3600

View File

@@ -1,5 +1,5 @@
# frozen_string_literal: true
module Jekyll
VERSION = "4.2.2"
VERSION = "4.3.4"
end

View File

@@ -1,6 +1,6 @@
#!/bin/bash
echo "RuboCop $(bundle exec rubocop --version)"
bundle exec rubocop -D $@
bundle exec rubocop -D --disable-pending-cops $@
success=$?
if ((success != 0)); then
echo -e "\nTry running \`script/fmt -a\` to automatically fix errors"

View File

@@ -93,6 +93,37 @@ module DirectoryHelpers
end
end
module Jekyll
#
# --- NOTE: ---
#
# This monkey-patch was introduced because GitHub Actions on Windows acknowledges symlinked test
# file `test/source/symlink-test/symlinked-file-outside-source` but errors out since the linked
# location `/etc/passwd` does not exist on Windows.
#
# --- TODO: ---
#
# Consider having the `symlinked-file-outside-source` point to a file that is outside the
# `source_dir` (defaults to `test/source`) yet is certain to exist on tested platforms.
# For example, `jekyll.gemspec` is a good candidate.
#
# This monkey-patch will then no longer be necessary.
#
class ModifiedReader < Reader
def read_directories(dir = "")
if dir.start_with?("/symlink") && Utils::Platforms.really_windows?
Jekyll.logger.debug "Skipping:", "Jekyll does not support symlinks on Windows"
else
super
end
end
end
Hooks.register :site, :after_init do |site|
site.instance_variable_set(:@reader, ModifiedReader.new(site))
end
end
class JekyllUnitTest < Minitest::Test
include ::RSpec::Mocks::ExampleMethods
include DirectoryHelpers
@@ -105,8 +136,7 @@ class JekyllUnitTest < Minitest::Test
end
def mocks_expect(*args)
RSpec::Mocks::ExampleMethods::ExpectHost.instance_method(:expect)\
.bind(self).call(*args)
RSpec::Mocks::ExampleMethods::ExpectHost.instance_method(:expect).bind(self).call(*args)
end
def before_setup
@@ -166,7 +196,7 @@ class JekyllUnitTest < Minitest::Test
def directory_with_contents(path)
FileUtils.rm_rf(path)
FileUtils.mkdir(path)
File.open("#{path}/index.html", "w") { |f| f.write("I was previously generated.") }
File.write("#{path}/index.html", "I was previously generated.")
end
def with_env(key, value)

View File

@@ -0,0 +1,5 @@
---
name: launcher
---
`name` defined in front matter.

View File

@@ -0,0 +1,4 @@
---
---
No `name` in front matter.

View File

@@ -5,8 +5,8 @@
Jekyll is a simple, blog-aware, static site generator. It takes a template
directory containing raw text files in various formats, runs it through
[Markdown](http://daringfireball.net/projects/markdown/) (or
[Textile](http://redcloth.org/textile)) and
[Markdown](https://daringfireball.net/projects/markdown/) (or
[Textile](https://www.promptworks.com/textile)) and
[Liquid](https://help.shopify.com/themes/liquid/basics)
converters, and spits out a complete, ready-to-publish static website suitable
for serving with your favorite web server. Jekyll also happens to be the engine

View File

@@ -5,5 +5,5 @@ approx_time: 30 mins
---
Jekyll converts Markdown documents to HTML by default. Don't know what's Markdown?
Read this [documentation](http://daringfireball.net/projects/markdown/)
Read this [documentation](https://daringfireball.net/projects/markdown/)
While you're at it, might as well learn about [Kramdown](https://kramdown.gettalong.org/)

View File

@@ -75,9 +75,7 @@ class TestCommandsServe < JekyllUnitTest
</html>
HTML
File.open(File.join(@destination, "hello.html"), "w") do |f|
f.write(simple_page)
end
File.write(File.join(@destination, "hello.html"), simple_page)
allow(Jekyll::Site).to receive(:new).and_return(site)
end

View File

@@ -22,6 +22,7 @@ class TestDoctorCommand < JekyllUnitTest
assert_equal "", output
end
# rubocop:disable Layout/LineLength
should "return warning for pages only differing by case" do
@site = Site.new(Jekyll.configuration(
"source" => File.join(source_dir, "/_urls_differ_by_case_invalid"),
@@ -32,9 +33,10 @@ class TestDoctorCommand < JekyllUnitTest
ret = Jekyll::Commands::Doctor.urls_only_differ_by_case(@site)
assert ret
end
assert_includes output, "Warning: The following URLs only differ by case. "\
"On a case-insensitive file system one of the URLs will be overwritten by the "\
"other: #{dest_dir}/about/index.html, #{dest_dir}/About/index.html"
assert_includes output, "Warning: The following URLs only differ by case. On a case-" \
"insensitive file system one of the URLs will be overwritten by the " \
"other: #{dest_dir}/about/index.html, #{dest_dir}/About/index.html"
end
# rubocop:enable Layout/LineLength
end
end

View File

@@ -159,6 +159,23 @@ class TestDocument < JekyllUnitTest
should "output its relative path as path in Liquid" do
assert_equal "_methods/configuration.md", @document.to_liquid["path"]
end
context "when rendered with Liquid" do
should "respect the front matter definition" do
site = fixture_site("collections" => ["roles"]).tap(&:process)
docs = site.collections["roles"].docs
# Ruby context: doc.basename is aliased as doc.to_liquid["name"] by default.
document = docs.detect { |d| d.relative_path == "_roles/unnamed.md" }
assert_equal "unnamed.md", document.basename
assert_equal "unnamed.md", document.to_liquid["name"]
document = docs.detect { |d| d.relative_path == "_roles/named.md" }
assert_equal "named.md", document.basename
assert_equal "launcher", document.to_liquid["name"]
end
end
end
context "a document as part of a collection with front matter defaults" do

View File

@@ -111,8 +111,7 @@ class TestExcerpt < JekyllUnitTest
context "#content" do
context "before render" do
should "be the first paragraph of the page" do
expected = "First paragraph with [link ref][link].\n\n[link]: "\
"https://jekyllrb.com/"
expected = "First paragraph with [link ref][link].\n\n[link]: https://jekyllrb.com/"
assert_equal expected, @excerpt.content
end
@@ -129,7 +128,7 @@ class TestExcerpt < JekyllUnitTest
end
should "be the first paragraph of the page" do
expected = "<p>First paragraph with <a href=\"https://jekyllrb.com/\">link "\
expected = "<p>First paragraph with <a href=\"https://jekyllrb.com/\">link " \
"ref</a>.</p>\n\n"
assert_equal expected, @extracted_excerpt.output
end
@@ -146,7 +145,7 @@ class TestExcerpt < JekyllUnitTest
end
should "contain all refs at the bottom of the page" do
(0..3).each do |i|
4.times do |i|
assert_match "[link_#{i}]: www.example.com/#{i}", @excerpt.content
end
end
@@ -159,7 +158,7 @@ class TestExcerpt < JekyllUnitTest
@rendered_post = @post.dup
do_render(@rendered_post)
output = @rendered_post.data["excerpt"].output
(0..3).each do |i|
4.times do |i|
assert_includes output, "<a href=\"www.example.com/#{i}\">"
end
end

View File

@@ -143,7 +143,7 @@ class TestFilters < JekyllUnitTest
should "sassify with simple string" do
assert_equal(
"p { color: #123456; }\n",
"p {\n color: #123456;\n}",
@filter.sassify(<<~SASS)
$blue: #123456
p
@@ -154,7 +154,7 @@ class TestFilters < JekyllUnitTest
should "scssify with simple string" do
assert_equal(
"p { color: #123456; }\n",
"p {\n color: #123456;\n}",
@filter.scssify("$blue:#123456; p{color: $blue}")
)
end
@@ -718,7 +718,7 @@ class TestFilters < JekyllUnitTest
{
"name" => name,
:v => 1,
:thing => M.new(:kay => "jewelers"),
:thing => M.new({:kay => "jewelers"}),
:stuff => true,
}
end

View File

@@ -164,8 +164,8 @@ class TestPageWithoutAFile < JekyllUnitTest
refute_path_exists(dest_dir("virtual-about", "index.html"))
end
should "be processed and written to destination when passed as "\
"an entry in 'site.pages' array" do
should "be processed and written to destination when passed as an entry in " \
"'site.pages' array" do
@page.content = "{{ site.title }}"
@page.data["permalink"] = "/virtual-about/"

View File

@@ -174,9 +174,7 @@ class TestRegenerator < JekyllUnitTest
metadata_file = source_dir(".jekyll-metadata")
@regenerator = Regenerator.new(@site)
File.open(metadata_file, "w") do |f|
f.write(@regenerator.metadata.to_yaml)
end
File.write(metadata_file, @regenerator.metadata.to_yaml)
@regenerator = Regenerator.new(@site)
assert_equal File.mtime(@path), @regenerator.metadata[@path]["mtime"]

View File

@@ -15,7 +15,9 @@ class TestSass < JekyllUnitTest
should "import SCSS partial" do
result = <<~CSS
.half { width: 50%; }
.half {
width: 50%;
}
/*# sourceMappingURL=main.css.map */
CSS

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