Compare commits

..

82 Commits

Author SHA1 Message Date
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
88 changed files with 841 additions and 325 deletions

View File

@@ -0,0 +1,5 @@
statictastic
Statictastic
Linting
hakiri
built-ins

View File

@@ -128,6 +128,7 @@ Debian
debuggability
defunkt
delegators
dependabot
deployer
deps
dest
@@ -565,6 +566,7 @@ SFTP
shingo
shopify
shortlog
shortlinks
shoulda
sieversii
sigpipe

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

@@ -22,13 +22,10 @@ jobs:
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"
- label: Liquid 4
ruby_version: 3.1
liquid_version: "~> 4.0"
- label: Ruby 3.1.2
ruby_version: "3.1.2"
- label: JRuby 9.4.0.0
ruby_version: "jruby-9.4.0.0"
steps:
- name: Checkout Repository
uses: actions/checkout@v3
@@ -37,8 +34,6 @@ jobs:
with:
ruby-version: ${{ matrix.ruby_version }}
bundler-cache: true
env:
LIQUID_VERSION: ${{ matrix.liquid_version }}
- name: Run Minitest based tests
run: bash script/test
- name: Run Cucumber based tests

View File

@@ -12,11 +12,28 @@ on:
- "*-stable"
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.20
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

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:

15
Gemfile
View File

@@ -5,10 +5,6 @@ gemspec :name => "jekyll"
gem "rake", "~> 13.0"
if ENV["LIQUID_VERSION"] && ENV["LIQUID_VERSION"] != ""
gem "liquid", ENV["LIQUID_VERSION"]
end
group :development do
gem "launchy", "~> 2.3"
gem "pry"
@@ -19,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"
@@ -27,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"
@@ -79,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,105 @@
## HEAD
## 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 +117,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 +145,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 +164,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

@@ -28,7 +28,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,5 +1,7 @@
version: "{build}"
image: Visual Studio 2019
clone_depth: 5
branches:
@@ -13,22 +15,22 @@ build: off
environment:
BUNDLE_WITHOUT: "benchmark:development"
matrix:
- RUBY_FOLDER_VER: "26"
- RUBY_FOLDER_VER: "27"
TZINFO_VERSION: "~> 1.2"
TEST_SUITE: "test"
- RUBY_FOLDER_VER: "26"
- RUBY_FOLDER_VER: "27"
TZINFO_VERSION: "~> 2.0"
TEST_SUITE: "test"
- RUBY_FOLDER_VER: "26"
- RUBY_FOLDER_VER: "27"
TEST_SUITE: "default-site"
- RUBY_FOLDER_VER: "26"
- RUBY_FOLDER_VER: "27"
TEST_SUITE: "profile-docs"
- RUBY_FOLDER_VER: "26"
- RUBY_FOLDER_VER: "27"
TEST_SUITE: "memprof"
- RUBY_FOLDER_VER: "26"
- RUBY_FOLDER_VER: "27"
TZINFO_VERSION: "~> 1.2"
TEST_SUITE: "cucumber"
- RUBY_FOLDER_VER: "26"
- RUBY_FOLDER_VER: "27"
TZINFO_VERSION: "~> 2.0"
TEST_SUITE: "cucumber"

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,20 @@ 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.
- 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

@@ -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}

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

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

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

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

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

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", "< 6.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
@@ -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"]
@@ -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,36 @@
# frozen_string_literal: true
module Jekyll
module Drops
class ThemeDrop < Drop
delegate_methods :root
delegate_method_as :runtime_dependencies, :dependencies
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)
@@ -398,17 +398,11 @@ module Jekyll
# `where` filter helper
#
def compare_property_vs_target(property, target)
# Liquid v4 handles 'empty' and 'blank' keywords separately from v5.
# Delete when we remove Liquid v5 support.
if Liquid::VERSION.start_with?("4.") && target.is_a?(Liquid::Expression::MethodLiteral)
target = target.to_s
return true if property == target || Array(property).join == target
end
case target
when NilClass
return true if property.nil?
when "", Liquid::Expression::MethodLiteral # empty/blank hashes and arrays will match this
when Liquid::Expression::MethodLiteral # `empty` or `blank`
target = target.to_s
return true if property == target || Array(property).join == target
else
target = target.to_s
@@ -484,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.3"
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

@@ -105,8 +105,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 +165,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
@@ -918,13 +918,13 @@ class TestFilters < JekyllUnitTest
# `{{ hash | where: 'tags', empty }}`
assert_equal(
[{ "tags" => {} }, { "tags" => "" }, { "tags" => nil }, { "tags" => [] }],
@filter.where(hash, "tags", Liquid::Condition.parse_expression(nil, "empty"))
@filter.where(hash, "tags", Liquid::Expression::LITERALS["empty"])
)
# `{{ `hash | where: 'tags', blank }}`
assert_equal(
[{ "tags" => {} }, { "tags" => "" }, { "tags" => nil }, { "tags" => [] }],
@filter.where(hash, "tags", Liquid::Condition.parse_expression(nil, "blank"))
@filter.where(hash, "tags", Liquid::Expression::LITERALS["blank"])
)
end
@@ -1151,13 +1151,13 @@ class TestFilters < JekyllUnitTest
# `{{ hash | find: 'tags', empty }}`
assert_equal(
{ "tags" => {} },
@filter.find(hash, "tags", Liquid::Condition.parse_expression(nil, "empty"))
@filter.find(hash, "tags", Liquid::Expression::LITERALS["empty"])
)
# `{{ `hash | find: 'tags', blank }}`
assert_equal(
{ "tags" => {} },
@filter.find(hash, "tags", Liquid::Condition.parse_expression(nil, "blank"))
@filter.find(hash, "tags", Liquid::Expression::LITERALS["blank"])
)
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

View File

@@ -97,6 +97,12 @@ class TestSite < JekyllUnitTest
)
end
should "load config file from theme-gem as Jekyll::Configuration instance" do
site = fixture_site("theme" => "test-theme")
assert_instance_of Jekyll::Configuration, site.config
assert_equal "Hello World", site.config["title"]
end
context "with a custom cache_dir configuration" do
should "have the custom cache_dir hidden from Git" do
site = fixture_site("cache_dir" => "../../custom-cache-dir")
@@ -615,8 +621,8 @@ class TestSite < JekyllUnitTest
site = fixture_site("theme" => {})
assert_nil site.theme
end
expected_msg = "Theme: value of 'theme' in config should be String " \
"to use gem-based themes, but got Hash\n"
expected_msg = "Theme: value of 'theme' in config should be String to use " \
"gem-based themes, but got Hash\n"
assert_includes output, expected_msg
end
@@ -743,5 +749,14 @@ class TestSite < JekyllUnitTest
assert_includes site.static_files.map(&:relative_path), "_methods/extensionless_static_file"
end
should "not be revisited in `Site#each_site_file`" do
site = fixture_site("collections" => { "methods" => { "output" => true } })
site.read
visited_files = []
site.each_site_file { |file| visited_files << file }
assert_equal visited_files.count, visited_files.uniq.count
end
end
end

View File

@@ -42,8 +42,12 @@ class TestTags < JekyllUnitTest
end
def highlight_block_with_opts(options_string)
template = Liquid::Template.parse("{% highlight #{options_string} %}test{% endhighlight %}")
template.root.nodelist.first
Jekyll::Tags::HighlightBlock.parse(
"highlight",
options_string,
Liquid::Tokenizer.new("test{% endhighlight %}\n"),
Liquid::ParseContext.new
)
end
context "language name" do
@@ -446,10 +450,10 @@ class TestTags < JekyllUnitTest
end
should "throw a deprecation warning" do
deprecation_warning = " Deprecation: A call to "\
"'{% post_url 2008-11-21-nested %}' 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."
deprecation_warning = " Deprecation: A call to '{% post_url 2008-11-21-nested %}' " \
"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."
assert_includes Jekyll.logger.messages, deprecation_warning
end
end
@@ -689,7 +693,7 @@ class TestTags < JekyllUnitTest
context "include tag with parameters" do
context "with symlink'd include" do
should "not allow symlink includes" do
File.open("tmp/pages-test", "w") { |file| file.write("SYMLINK TEST") }
File.write("tmp/pages-test", "SYMLINK TEST")
assert_raises IOError do
content = <<~CONTENT
---
@@ -1138,7 +1142,7 @@ class TestTags < JekyllUnitTest
context "with symlink'd include" do
should "not allow symlink includes" do
File.open("tmp/pages-test", "w") { |file| file.write("SYMLINK TEST") }
File.write("tmp/pages-test", "SYMLINK TEST")
assert_raises IOError do
content = <<~CONTENT
---
@@ -1177,7 +1181,7 @@ class TestTags < JekyllUnitTest
"safe" => true)
end
assert_match(
"Ensure it exists in one of those directories and is not a symlink "\
"Ensure it exists in one of those directories and is not a symlink " \
"as those are not allowed in safe mode.",
ex.message
)

View File

@@ -14,15 +14,14 @@ class TestThemeAssetsReader < JekyllUnitTest
def assert_file_with_relative_path(haystack, relative_path)
assert haystack.any? { |f|
f.relative_path == relative_path
}, "Site should read in the #{relative_path} file, " \
"but it was not found in #{haystack.inspect}"
}, "Site should read in the #{relative_path} file, but it was not found in #{haystack.inspect}"
end
def refute_file_with_relative_path(haystack, relative_path)
refute haystack.any? { |f|
f.relative_path == relative_path
}, "Site should not have read in the #{relative_path} file, " \
"but it was found in #{haystack.inspect}"
}, "Site should not have read in the #{relative_path} file, but it was found in " \
"#{haystack.inspect}"
end
context "with a valid theme" do
@@ -39,7 +38,7 @@ class TestThemeAssetsReader < JekyllUnitTest
file = @site.pages.find { |f| f.relative_path == "assets/style.scss" }
refute_nil file
assert_equal @site.in_dest_dir("assets/style.css"), file.destination(@site.dest)
assert_includes file.output, ".sample { color: black; }"
assert_includes file.output, ".sample {\n color: black;\n}"
end
should "not overwrite site content with the same relative path" do
@@ -82,7 +81,7 @@ class TestThemeAssetsReader < JekyllUnitTest
begin
tmp_dir = Dir.mktmpdir("jekyll-theme-test")
File.open(File.join(tmp_dir, "test.txt"), "wb") { |f| f.write "content" }
File.binwrite(File.join(tmp_dir, "test.txt"), "content")
theme_dir = File.join(__dir__, "fixtures", "test-theme-symlink")
File.symlink(tmp_dir, File.join(theme_dir, "assets"))

34
test/test_theme_drop.rb Normal file
View File

@@ -0,0 +1,34 @@
# frozen_string_literal: true
require "helper"
class TestThemeDrop < JekyllUnitTest
should "be initialized only for gem-based themes" do
assert_nil fixture_site.to_liquid.theme
end
context "a theme drop" do
setup do
@drop = fixture_site("theme" => "test-theme").to_liquid.theme
end
should "respond to `key?`" do
assert_respond_to @drop, :key?
end
should "export relevant data to Liquid templates" do
expected = {
"authors" => "Jekyll",
"dependencies" => [],
"description" => "This is a theme used to test Jekyll",
"metadata" => {},
"root" => theme_dir,
"version" => "0.1.0",
}
expected.each_key do |key|
assert @drop.key?(key)
assert_equal expected[key], @drop[key]
end
end
end
end