jekyll 4.2.1 → 4.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +350 -350
- data/LICENSE +21 -21
- data/README.markdown +86 -86
- data/exe/jekyll +57 -57
- data/lib/blank_template/_config.yml +3 -3
- data/lib/blank_template/_layouts/default.html +12 -12
- data/lib/blank_template/_sass/main.scss +9 -9
- data/lib/blank_template/assets/css/main.scss +4 -4
- data/lib/blank_template/index.md +8 -8
- data/lib/jekyll/cache.rb +190 -190
- data/lib/jekyll/cleaner.rb +111 -111
- data/lib/jekyll/collection.rb +309 -309
- data/lib/jekyll/command.rb +105 -105
- data/lib/jekyll/commands/build.rb +93 -93
- data/lib/jekyll/commands/clean.rb +45 -45
- data/lib/jekyll/commands/doctor.rb +177 -177
- data/lib/jekyll/commands/help.rb +34 -34
- data/lib/jekyll/commands/new.rb +172 -169
- data/lib/jekyll/commands/new_theme.rb +40 -40
- data/lib/jekyll/commands/serve/live_reload_reactor.rb +122 -122
- data/lib/jekyll/commands/serve/livereload_assets/livereload.js +1183 -1183
- data/lib/jekyll/commands/serve/servlet.rb +202 -202
- data/lib/jekyll/commands/serve/websockets.rb +81 -81
- data/lib/jekyll/commands/serve.rb +362 -362
- data/lib/jekyll/configuration.rb +313 -313
- data/lib/jekyll/converter.rb +54 -54
- data/lib/jekyll/converters/identity.rb +41 -41
- data/lib/jekyll/converters/markdown/kramdown_parser.rb +199 -199
- data/lib/jekyll/converters/markdown.rb +113 -113
- data/lib/jekyll/converters/smartypants.rb +70 -70
- data/lib/jekyll/convertible.rb +257 -257
- data/lib/jekyll/deprecator.rb +50 -50
- data/lib/jekyll/document.rb +544 -544
- data/lib/jekyll/drops/collection_drop.rb +20 -20
- data/lib/jekyll/drops/document_drop.rb +70 -70
- data/lib/jekyll/drops/drop.rb +293 -293
- data/lib/jekyll/drops/excerpt_drop.rb +19 -19
- data/lib/jekyll/drops/jekyll_drop.rb +32 -32
- data/lib/jekyll/drops/site_drop.rb +66 -66
- data/lib/jekyll/drops/static_file_drop.rb +14 -14
- data/lib/jekyll/drops/unified_payload_drop.rb +26 -26
- data/lib/jekyll/drops/url_drop.rb +140 -140
- data/lib/jekyll/entry_filter.rb +121 -121
- data/lib/jekyll/errors.rb +20 -20
- data/lib/jekyll/excerpt.rb +201 -201
- data/lib/jekyll/external.rb +79 -79
- data/lib/jekyll/filters/date_filters.rb +110 -110
- data/lib/jekyll/filters/grouping_filters.rb +64 -64
- data/lib/jekyll/filters/url_filters.rb +98 -98
- data/lib/jekyll/filters.rb +535 -535
- data/lib/jekyll/frontmatter_defaults.rb +240 -240
- data/lib/jekyll/generator.rb +5 -5
- data/lib/jekyll/hooks.rb +107 -107
- data/lib/jekyll/inclusion.rb +32 -32
- data/lib/jekyll/layout.rb +67 -67
- data/lib/jekyll/liquid_extensions.rb +22 -22
- data/lib/jekyll/liquid_renderer/file.rb +77 -77
- data/lib/jekyll/liquid_renderer/table.rb +55 -55
- data/lib/jekyll/liquid_renderer.rb +80 -80
- data/lib/jekyll/log_adapter.rb +151 -151
- data/lib/jekyll/mime.types +866 -866
- data/lib/jekyll/page.rb +217 -217
- data/lib/jekyll/page_excerpt.rb +25 -25
- data/lib/jekyll/page_without_a_file.rb +14 -14
- data/lib/jekyll/path_manager.rb +74 -74
- data/lib/jekyll/plugin.rb +92 -92
- data/lib/jekyll/plugin_manager.rb +115 -115
- data/lib/jekyll/profiler.rb +58 -58
- data/lib/jekyll/publisher.rb +23 -23
- data/lib/jekyll/reader.rb +192 -192
- data/lib/jekyll/readers/collection_reader.rb +23 -23
- data/lib/jekyll/readers/data_reader.rb +79 -79
- data/lib/jekyll/readers/layout_reader.rb +62 -62
- data/lib/jekyll/readers/page_reader.rb +25 -25
- data/lib/jekyll/readers/post_reader.rb +85 -85
- data/lib/jekyll/readers/static_file_reader.rb +25 -25
- data/lib/jekyll/readers/theme_assets_reader.rb +52 -52
- data/lib/jekyll/regenerator.rb +195 -195
- data/lib/jekyll/related_posts.rb +52 -52
- data/lib/jekyll/renderer.rb +265 -265
- data/lib/jekyll/site.rb +551 -551
- data/lib/jekyll/static_file.rb +208 -208
- data/lib/jekyll/stevenson.rb +60 -60
- data/lib/jekyll/tags/highlight.rb +110 -110
- data/lib/jekyll/tags/include.rb +275 -275
- data/lib/jekyll/tags/link.rb +42 -42
- data/lib/jekyll/tags/post_url.rb +106 -106
- data/lib/jekyll/theme.rb +86 -86
- data/lib/jekyll/theme_builder.rb +121 -121
- data/lib/jekyll/url.rb +167 -167
- data/lib/jekyll/utils/ansi.rb +57 -57
- data/lib/jekyll/utils/exec.rb +26 -26
- data/lib/jekyll/utils/internet.rb +37 -37
- data/lib/jekyll/utils/platforms.rb +67 -67
- data/lib/jekyll/utils/thread_event.rb +31 -31
- data/lib/jekyll/utils/win_tz.rb +75 -75
- data/lib/jekyll/utils.rb +367 -367
- data/lib/jekyll/version.rb +5 -5
- data/lib/jekyll.rb +195 -195
- data/lib/site_template/.gitignore +5 -5
- data/lib/site_template/404.html +25 -25
- data/lib/site_template/_config.yml +55 -55
- data/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb +29 -29
- data/lib/site_template/about.markdown +18 -18
- data/lib/site_template/index.markdown +6 -6
- data/lib/theme_template/CODE_OF_CONDUCT.md.erb +74 -74
- data/lib/theme_template/Gemfile +4 -4
- data/lib/theme_template/LICENSE.txt.erb +21 -21
- data/lib/theme_template/README.md.erb +52 -52
- data/lib/theme_template/_layouts/default.html +1 -1
- data/lib/theme_template/_layouts/page.html +5 -5
- data/lib/theme_template/_layouts/post.html +5 -5
- data/lib/theme_template/example/_config.yml.erb +1 -1
- data/lib/theme_template/example/_post.md +12 -12
- data/lib/theme_template/example/index.html +14 -14
- data/lib/theme_template/example/style.scss +7 -7
- data/lib/theme_template/gitignore.erb +6 -6
- data/lib/theme_template/theme.gemspec.erb +16 -16
- data/rubocop/jekyll/assert_equal_literal_actual.rb +149 -149
- data/rubocop/jekyll/no_p_allowed.rb +23 -23
- data/rubocop/jekyll/no_puts_allowed.rb +23 -23
- data/rubocop/jekyll.rb +5 -5
- metadata +3 -3
data/lib/jekyll/version.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Jekyll
|
|
4
|
-
VERSION = "4.2.
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Jekyll
|
|
4
|
+
VERSION = "4.2.2"
|
|
5
|
+
end
|
data/lib/jekyll.rb
CHANGED
|
@@ -1,195 +1,195 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
$LOAD_PATH.unshift __dir__ # For use/testing when no gem is installed
|
|
4
|
-
|
|
5
|
-
# Require all of the Ruby files in the given directory.
|
|
6
|
-
#
|
|
7
|
-
# path - The String relative path from here to the directory.
|
|
8
|
-
#
|
|
9
|
-
# Returns nothing.
|
|
10
|
-
def require_all(path)
|
|
11
|
-
glob = File.join(__dir__, path, "*.rb")
|
|
12
|
-
Dir[glob].sort.each do |f|
|
|
13
|
-
require f
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# rubygems
|
|
18
|
-
require "rubygems"
|
|
19
|
-
|
|
20
|
-
# stdlib
|
|
21
|
-
require "forwardable"
|
|
22
|
-
require "fileutils"
|
|
23
|
-
require "time"
|
|
24
|
-
require "English"
|
|
25
|
-
require "pathname"
|
|
26
|
-
require "logger"
|
|
27
|
-
require "set"
|
|
28
|
-
require "csv"
|
|
29
|
-
require "json"
|
|
30
|
-
|
|
31
|
-
# 3rd party
|
|
32
|
-
require "pathutil"
|
|
33
|
-
require "addressable/uri"
|
|
34
|
-
require "safe_yaml/load"
|
|
35
|
-
require "liquid"
|
|
36
|
-
require "kramdown"
|
|
37
|
-
require "colorator"
|
|
38
|
-
require "i18n"
|
|
39
|
-
|
|
40
|
-
SafeYAML::OPTIONS[:suppress_warnings] = true
|
|
41
|
-
|
|
42
|
-
module Jekyll
|
|
43
|
-
# internal requires
|
|
44
|
-
autoload :Cleaner, "jekyll/cleaner"
|
|
45
|
-
autoload :Collection, "jekyll/collection"
|
|
46
|
-
autoload :Configuration, "jekyll/configuration"
|
|
47
|
-
autoload :Convertible, "jekyll/convertible"
|
|
48
|
-
autoload :Deprecator, "jekyll/deprecator"
|
|
49
|
-
autoload :Document, "jekyll/document"
|
|
50
|
-
autoload :EntryFilter, "jekyll/entry_filter"
|
|
51
|
-
autoload :Errors, "jekyll/errors"
|
|
52
|
-
autoload :Excerpt, "jekyll/excerpt"
|
|
53
|
-
autoload :PageExcerpt, "jekyll/page_excerpt"
|
|
54
|
-
autoload :External, "jekyll/external"
|
|
55
|
-
autoload :FrontmatterDefaults, "jekyll/frontmatter_defaults"
|
|
56
|
-
autoload :Hooks, "jekyll/hooks"
|
|
57
|
-
autoload :Layout, "jekyll/layout"
|
|
58
|
-
autoload :Inclusion, "jekyll/inclusion"
|
|
59
|
-
autoload :Cache, "jekyll/cache"
|
|
60
|
-
autoload :CollectionReader, "jekyll/readers/collection_reader"
|
|
61
|
-
autoload :DataReader, "jekyll/readers/data_reader"
|
|
62
|
-
autoload :LayoutReader, "jekyll/readers/layout_reader"
|
|
63
|
-
autoload :PostReader, "jekyll/readers/post_reader"
|
|
64
|
-
autoload :PageReader, "jekyll/readers/page_reader"
|
|
65
|
-
autoload :StaticFileReader, "jekyll/readers/static_file_reader"
|
|
66
|
-
autoload :ThemeAssetsReader, "jekyll/readers/theme_assets_reader"
|
|
67
|
-
autoload :LogAdapter, "jekyll/log_adapter"
|
|
68
|
-
autoload :Page, "jekyll/page"
|
|
69
|
-
autoload :PageWithoutAFile, "jekyll/page_without_a_file"
|
|
70
|
-
autoload :PathManager, "jekyll/path_manager"
|
|
71
|
-
autoload :PluginManager, "jekyll/plugin_manager"
|
|
72
|
-
autoload :Publisher, "jekyll/publisher"
|
|
73
|
-
autoload :Profiler, "jekyll/profiler"
|
|
74
|
-
autoload :Reader, "jekyll/reader"
|
|
75
|
-
autoload :Regenerator, "jekyll/regenerator"
|
|
76
|
-
autoload :RelatedPosts, "jekyll/related_posts"
|
|
77
|
-
autoload :Renderer, "jekyll/renderer"
|
|
78
|
-
autoload :LiquidRenderer, "jekyll/liquid_renderer"
|
|
79
|
-
autoload :Site, "jekyll/site"
|
|
80
|
-
autoload :StaticFile, "jekyll/static_file"
|
|
81
|
-
autoload :Stevenson, "jekyll/stevenson"
|
|
82
|
-
autoload :Theme, "jekyll/theme"
|
|
83
|
-
autoload :ThemeBuilder, "jekyll/theme_builder"
|
|
84
|
-
autoload :URL, "jekyll/url"
|
|
85
|
-
autoload :Utils, "jekyll/utils"
|
|
86
|
-
autoload :VERSION, "jekyll/version"
|
|
87
|
-
|
|
88
|
-
# extensions
|
|
89
|
-
require "jekyll/plugin"
|
|
90
|
-
require "jekyll/converter"
|
|
91
|
-
require "jekyll/generator"
|
|
92
|
-
require "jekyll/command"
|
|
93
|
-
require "jekyll/liquid_extensions"
|
|
94
|
-
require "jekyll/filters"
|
|
95
|
-
|
|
96
|
-
class << self
|
|
97
|
-
# Public: Tells you which Jekyll environment you are building in so you can skip tasks
|
|
98
|
-
# if you need to. This is useful when doing expensive compression tasks on css and
|
|
99
|
-
# images and allows you to skip that when working in development.
|
|
100
|
-
|
|
101
|
-
def env
|
|
102
|
-
ENV["JEKYLL_ENV"] || "development"
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
# Public: Generate a Jekyll configuration Hash by merging the default
|
|
106
|
-
# options with anything in _config.yml, and adding the given options on top.
|
|
107
|
-
#
|
|
108
|
-
# override - A Hash of config directives that override any options in both
|
|
109
|
-
# the defaults and the config file.
|
|
110
|
-
# See Jekyll::Configuration::DEFAULTS for a
|
|
111
|
-
# list of option names and their defaults.
|
|
112
|
-
#
|
|
113
|
-
# Returns the final configuration Hash.
|
|
114
|
-
def configuration(override = {})
|
|
115
|
-
config = Configuration.new
|
|
116
|
-
override = Configuration[override].stringify_keys
|
|
117
|
-
unless override.delete("skip_config_files")
|
|
118
|
-
config = config.read_config_files(config.config_files(override))
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
# Merge DEFAULTS < _config.yml < override
|
|
122
|
-
Configuration.from(Utils.deep_merge_hashes(config, override)).tap do |obj|
|
|
123
|
-
set_timezone(obj["timezone"]) if obj["timezone"]
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
# Public: Set the TZ environment variable to use the timezone specified
|
|
128
|
-
#
|
|
129
|
-
# timezone - the IANA Time Zone
|
|
130
|
-
#
|
|
131
|
-
# Returns nothing
|
|
132
|
-
# rubocop:disable Naming/AccessorMethodName
|
|
133
|
-
def set_timezone(timezone)
|
|
134
|
-
ENV["TZ"] = if Utils::Platforms.really_windows?
|
|
135
|
-
Utils::WinTZ.calculate(timezone)
|
|
136
|
-
else
|
|
137
|
-
timezone
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
# rubocop:enable Naming/AccessorMethodName
|
|
141
|
-
|
|
142
|
-
# Public: Fetch the logger instance for this Jekyll process.
|
|
143
|
-
#
|
|
144
|
-
# Returns the LogAdapter instance.
|
|
145
|
-
def logger
|
|
146
|
-
@logger ||= LogAdapter.new(Stevenson.new, (ENV["JEKYLL_LOG_LEVEL"] || :info).to_sym)
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
# Public: Set the log writer.
|
|
150
|
-
# New log writer must respond to the same methods
|
|
151
|
-
# as Ruby's interal Logger.
|
|
152
|
-
#
|
|
153
|
-
# writer - the new Logger-compatible log transport
|
|
154
|
-
#
|
|
155
|
-
# Returns the new logger.
|
|
156
|
-
def logger=(writer)
|
|
157
|
-
@logger = LogAdapter.new(writer, (ENV["JEKYLL_LOG_LEVEL"] || :info).to_sym)
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
# Public: An array of sites
|
|
161
|
-
#
|
|
162
|
-
# Returns the Jekyll sites created.
|
|
163
|
-
def sites
|
|
164
|
-
@sites ||= []
|
|
165
|
-
end
|
|
166
|
-
|
|
167
|
-
# Public: Ensures the questionable path is prefixed with the base directory
|
|
168
|
-
# and prepends the questionable path with the base directory if false.
|
|
169
|
-
#
|
|
170
|
-
# base_directory - the directory with which to prefix the questionable path
|
|
171
|
-
# questionable_path - the path we're unsure about, and want prefixed
|
|
172
|
-
#
|
|
173
|
-
# Returns the sanitized path.
|
|
174
|
-
def sanitized_path(base_directory, questionable_path)
|
|
175
|
-
return base_directory if base_directory.eql?(questionable_path)
|
|
176
|
-
return base_directory if questionable_path.nil?
|
|
177
|
-
|
|
178
|
-
+Jekyll::PathManager.sanitized_path(base_directory, questionable_path)
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
# Conditional optimizations
|
|
182
|
-
Jekyll::External.require_if_present("liquid/c")
|
|
183
|
-
end
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
require "jekyll/drops/drop"
|
|
187
|
-
require "jekyll/drops/document_drop"
|
|
188
|
-
require_all "jekyll/commands"
|
|
189
|
-
require_all "jekyll/converters"
|
|
190
|
-
require_all "jekyll/converters/markdown"
|
|
191
|
-
require_all "jekyll/drops"
|
|
192
|
-
require_all "jekyll/generators"
|
|
193
|
-
require_all "jekyll/tags"
|
|
194
|
-
|
|
195
|
-
require "jekyll-sass-converter"
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
$LOAD_PATH.unshift __dir__ # For use/testing when no gem is installed
|
|
4
|
+
|
|
5
|
+
# Require all of the Ruby files in the given directory.
|
|
6
|
+
#
|
|
7
|
+
# path - The String relative path from here to the directory.
|
|
8
|
+
#
|
|
9
|
+
# Returns nothing.
|
|
10
|
+
def require_all(path)
|
|
11
|
+
glob = File.join(__dir__, path, "*.rb")
|
|
12
|
+
Dir[glob].sort.each do |f|
|
|
13
|
+
require f
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# rubygems
|
|
18
|
+
require "rubygems"
|
|
19
|
+
|
|
20
|
+
# stdlib
|
|
21
|
+
require "forwardable"
|
|
22
|
+
require "fileutils"
|
|
23
|
+
require "time"
|
|
24
|
+
require "English"
|
|
25
|
+
require "pathname"
|
|
26
|
+
require "logger"
|
|
27
|
+
require "set"
|
|
28
|
+
require "csv"
|
|
29
|
+
require "json"
|
|
30
|
+
|
|
31
|
+
# 3rd party
|
|
32
|
+
require "pathutil"
|
|
33
|
+
require "addressable/uri"
|
|
34
|
+
require "safe_yaml/load"
|
|
35
|
+
require "liquid"
|
|
36
|
+
require "kramdown"
|
|
37
|
+
require "colorator"
|
|
38
|
+
require "i18n"
|
|
39
|
+
|
|
40
|
+
SafeYAML::OPTIONS[:suppress_warnings] = true
|
|
41
|
+
|
|
42
|
+
module Jekyll
|
|
43
|
+
# internal requires
|
|
44
|
+
autoload :Cleaner, "jekyll/cleaner"
|
|
45
|
+
autoload :Collection, "jekyll/collection"
|
|
46
|
+
autoload :Configuration, "jekyll/configuration"
|
|
47
|
+
autoload :Convertible, "jekyll/convertible"
|
|
48
|
+
autoload :Deprecator, "jekyll/deprecator"
|
|
49
|
+
autoload :Document, "jekyll/document"
|
|
50
|
+
autoload :EntryFilter, "jekyll/entry_filter"
|
|
51
|
+
autoload :Errors, "jekyll/errors"
|
|
52
|
+
autoload :Excerpt, "jekyll/excerpt"
|
|
53
|
+
autoload :PageExcerpt, "jekyll/page_excerpt"
|
|
54
|
+
autoload :External, "jekyll/external"
|
|
55
|
+
autoload :FrontmatterDefaults, "jekyll/frontmatter_defaults"
|
|
56
|
+
autoload :Hooks, "jekyll/hooks"
|
|
57
|
+
autoload :Layout, "jekyll/layout"
|
|
58
|
+
autoload :Inclusion, "jekyll/inclusion"
|
|
59
|
+
autoload :Cache, "jekyll/cache"
|
|
60
|
+
autoload :CollectionReader, "jekyll/readers/collection_reader"
|
|
61
|
+
autoload :DataReader, "jekyll/readers/data_reader"
|
|
62
|
+
autoload :LayoutReader, "jekyll/readers/layout_reader"
|
|
63
|
+
autoload :PostReader, "jekyll/readers/post_reader"
|
|
64
|
+
autoload :PageReader, "jekyll/readers/page_reader"
|
|
65
|
+
autoload :StaticFileReader, "jekyll/readers/static_file_reader"
|
|
66
|
+
autoload :ThemeAssetsReader, "jekyll/readers/theme_assets_reader"
|
|
67
|
+
autoload :LogAdapter, "jekyll/log_adapter"
|
|
68
|
+
autoload :Page, "jekyll/page"
|
|
69
|
+
autoload :PageWithoutAFile, "jekyll/page_without_a_file"
|
|
70
|
+
autoload :PathManager, "jekyll/path_manager"
|
|
71
|
+
autoload :PluginManager, "jekyll/plugin_manager"
|
|
72
|
+
autoload :Publisher, "jekyll/publisher"
|
|
73
|
+
autoload :Profiler, "jekyll/profiler"
|
|
74
|
+
autoload :Reader, "jekyll/reader"
|
|
75
|
+
autoload :Regenerator, "jekyll/regenerator"
|
|
76
|
+
autoload :RelatedPosts, "jekyll/related_posts"
|
|
77
|
+
autoload :Renderer, "jekyll/renderer"
|
|
78
|
+
autoload :LiquidRenderer, "jekyll/liquid_renderer"
|
|
79
|
+
autoload :Site, "jekyll/site"
|
|
80
|
+
autoload :StaticFile, "jekyll/static_file"
|
|
81
|
+
autoload :Stevenson, "jekyll/stevenson"
|
|
82
|
+
autoload :Theme, "jekyll/theme"
|
|
83
|
+
autoload :ThemeBuilder, "jekyll/theme_builder"
|
|
84
|
+
autoload :URL, "jekyll/url"
|
|
85
|
+
autoload :Utils, "jekyll/utils"
|
|
86
|
+
autoload :VERSION, "jekyll/version"
|
|
87
|
+
|
|
88
|
+
# extensions
|
|
89
|
+
require "jekyll/plugin"
|
|
90
|
+
require "jekyll/converter"
|
|
91
|
+
require "jekyll/generator"
|
|
92
|
+
require "jekyll/command"
|
|
93
|
+
require "jekyll/liquid_extensions"
|
|
94
|
+
require "jekyll/filters"
|
|
95
|
+
|
|
96
|
+
class << self
|
|
97
|
+
# Public: Tells you which Jekyll environment you are building in so you can skip tasks
|
|
98
|
+
# if you need to. This is useful when doing expensive compression tasks on css and
|
|
99
|
+
# images and allows you to skip that when working in development.
|
|
100
|
+
|
|
101
|
+
def env
|
|
102
|
+
ENV["JEKYLL_ENV"] || "development"
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# Public: Generate a Jekyll configuration Hash by merging the default
|
|
106
|
+
# options with anything in _config.yml, and adding the given options on top.
|
|
107
|
+
#
|
|
108
|
+
# override - A Hash of config directives that override any options in both
|
|
109
|
+
# the defaults and the config file.
|
|
110
|
+
# See Jekyll::Configuration::DEFAULTS for a
|
|
111
|
+
# list of option names and their defaults.
|
|
112
|
+
#
|
|
113
|
+
# Returns the final configuration Hash.
|
|
114
|
+
def configuration(override = {})
|
|
115
|
+
config = Configuration.new
|
|
116
|
+
override = Configuration[override].stringify_keys
|
|
117
|
+
unless override.delete("skip_config_files")
|
|
118
|
+
config = config.read_config_files(config.config_files(override))
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
# Merge DEFAULTS < _config.yml < override
|
|
122
|
+
Configuration.from(Utils.deep_merge_hashes(config, override)).tap do |obj|
|
|
123
|
+
set_timezone(obj["timezone"]) if obj["timezone"]
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# Public: Set the TZ environment variable to use the timezone specified
|
|
128
|
+
#
|
|
129
|
+
# timezone - the IANA Time Zone
|
|
130
|
+
#
|
|
131
|
+
# Returns nothing
|
|
132
|
+
# rubocop:disable Naming/AccessorMethodName
|
|
133
|
+
def set_timezone(timezone)
|
|
134
|
+
ENV["TZ"] = if Utils::Platforms.really_windows?
|
|
135
|
+
Utils::WinTZ.calculate(timezone)
|
|
136
|
+
else
|
|
137
|
+
timezone
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
# rubocop:enable Naming/AccessorMethodName
|
|
141
|
+
|
|
142
|
+
# Public: Fetch the logger instance for this Jekyll process.
|
|
143
|
+
#
|
|
144
|
+
# Returns the LogAdapter instance.
|
|
145
|
+
def logger
|
|
146
|
+
@logger ||= LogAdapter.new(Stevenson.new, (ENV["JEKYLL_LOG_LEVEL"] || :info).to_sym)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Public: Set the log writer.
|
|
150
|
+
# New log writer must respond to the same methods
|
|
151
|
+
# as Ruby's interal Logger.
|
|
152
|
+
#
|
|
153
|
+
# writer - the new Logger-compatible log transport
|
|
154
|
+
#
|
|
155
|
+
# Returns the new logger.
|
|
156
|
+
def logger=(writer)
|
|
157
|
+
@logger = LogAdapter.new(writer, (ENV["JEKYLL_LOG_LEVEL"] || :info).to_sym)
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
# Public: An array of sites
|
|
161
|
+
#
|
|
162
|
+
# Returns the Jekyll sites created.
|
|
163
|
+
def sites
|
|
164
|
+
@sites ||= []
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# Public: Ensures the questionable path is prefixed with the base directory
|
|
168
|
+
# and prepends the questionable path with the base directory if false.
|
|
169
|
+
#
|
|
170
|
+
# base_directory - the directory with which to prefix the questionable path
|
|
171
|
+
# questionable_path - the path we're unsure about, and want prefixed
|
|
172
|
+
#
|
|
173
|
+
# Returns the sanitized path.
|
|
174
|
+
def sanitized_path(base_directory, questionable_path)
|
|
175
|
+
return base_directory if base_directory.eql?(questionable_path)
|
|
176
|
+
return base_directory if questionable_path.nil?
|
|
177
|
+
|
|
178
|
+
+Jekyll::PathManager.sanitized_path(base_directory, questionable_path)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Conditional optimizations
|
|
182
|
+
Jekyll::External.require_if_present("liquid/c")
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
require "jekyll/drops/drop"
|
|
187
|
+
require "jekyll/drops/document_drop"
|
|
188
|
+
require_all "jekyll/commands"
|
|
189
|
+
require_all "jekyll/converters"
|
|
190
|
+
require_all "jekyll/converters/markdown"
|
|
191
|
+
require_all "jekyll/drops"
|
|
192
|
+
require_all "jekyll/generators"
|
|
193
|
+
require_all "jekyll/tags"
|
|
194
|
+
|
|
195
|
+
require "jekyll-sass-converter"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
_site
|
|
2
|
-
.sass-cache
|
|
3
|
-
.jekyll-cache
|
|
4
|
-
.jekyll-metadata
|
|
5
|
-
vendor
|
|
1
|
+
_site
|
|
2
|
+
.sass-cache
|
|
3
|
+
.jekyll-cache
|
|
4
|
+
.jekyll-metadata
|
|
5
|
+
vendor
|
data/lib/site_template/404.html
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
---
|
|
2
|
-
permalink: /404.html
|
|
3
|
-
layout: default
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<style type="text/css" media="screen">
|
|
7
|
-
.container {
|
|
8
|
-
margin: 10px auto;
|
|
9
|
-
max-width: 600px;
|
|
10
|
-
text-align: center;
|
|
11
|
-
}
|
|
12
|
-
h1 {
|
|
13
|
-
margin: 30px 0;
|
|
14
|
-
font-size: 4em;
|
|
15
|
-
line-height: 1;
|
|
16
|
-
letter-spacing: -1px;
|
|
17
|
-
}
|
|
18
|
-
</style>
|
|
19
|
-
|
|
20
|
-
<div class="container">
|
|
21
|
-
<h1>404</h1>
|
|
22
|
-
|
|
23
|
-
<p><strong>Page not found :(</strong></p>
|
|
24
|
-
<p>The requested page could not be found.</p>
|
|
25
|
-
</div>
|
|
1
|
+
---
|
|
2
|
+
permalink: /404.html
|
|
3
|
+
layout: default
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<style type="text/css" media="screen">
|
|
7
|
+
.container {
|
|
8
|
+
margin: 10px auto;
|
|
9
|
+
max-width: 600px;
|
|
10
|
+
text-align: center;
|
|
11
|
+
}
|
|
12
|
+
h1 {
|
|
13
|
+
margin: 30px 0;
|
|
14
|
+
font-size: 4em;
|
|
15
|
+
line-height: 1;
|
|
16
|
+
letter-spacing: -1px;
|
|
17
|
+
}
|
|
18
|
+
</style>
|
|
19
|
+
|
|
20
|
+
<div class="container">
|
|
21
|
+
<h1>404</h1>
|
|
22
|
+
|
|
23
|
+
<p><strong>Page not found :(</strong></p>
|
|
24
|
+
<p>The requested page could not be found.</p>
|
|
25
|
+
</div>
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
# Welcome to Jekyll!
|
|
2
|
-
#
|
|
3
|
-
# This config file is meant for settings that affect your whole blog, values
|
|
4
|
-
# which you are expected to set up once and rarely edit after that. If you find
|
|
5
|
-
# yourself editing this file very often, consider using Jekyll's data files
|
|
6
|
-
# feature for the data you need to update frequently.
|
|
7
|
-
#
|
|
8
|
-
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
|
9
|
-
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
|
|
10
|
-
#
|
|
11
|
-
# If you need help with YAML syntax, here are some quick references for you:
|
|
12
|
-
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
|
|
13
|
-
# https://learnxinyminutes.com/docs/yaml/
|
|
14
|
-
#
|
|
15
|
-
# Site settings
|
|
16
|
-
# These are used to personalize your new site. If you look in the HTML files,
|
|
17
|
-
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
|
|
18
|
-
# You can create any custom variable you would like, and they will be accessible
|
|
19
|
-
# in the templates via {{ site.myvariable }}.
|
|
20
|
-
|
|
21
|
-
title: Your awesome title
|
|
22
|
-
email: your-email@example.com
|
|
23
|
-
description: >- # this means to ignore newlines until "baseurl:"
|
|
24
|
-
Write an awesome description for your new site here. You can edit this
|
|
25
|
-
line in _config.yml. It will appear in your document head meta (for
|
|
26
|
-
Google search results) and in your feed.xml site description.
|
|
27
|
-
baseurl: "" # the subpath of your site, e.g. /blog
|
|
28
|
-
url: "" # the base hostname & protocol for your site, e.g. http://example.com
|
|
29
|
-
twitter_username: jekyllrb
|
|
30
|
-
github_username: jekyll
|
|
31
|
-
|
|
32
|
-
# Build settings
|
|
33
|
-
theme: minima
|
|
34
|
-
plugins:
|
|
35
|
-
- jekyll-feed
|
|
36
|
-
|
|
37
|
-
# Exclude from processing.
|
|
38
|
-
# The following items will not be processed, by default.
|
|
39
|
-
# Any item listed under the `exclude:` key here will be automatically added to
|
|
40
|
-
# the internal "default list".
|
|
41
|
-
#
|
|
42
|
-
# Excluded items can be processed by explicitly listing the directories or
|
|
43
|
-
# their entries' file path in the `include:` list.
|
|
44
|
-
#
|
|
45
|
-
# exclude:
|
|
46
|
-
# - .sass-cache/
|
|
47
|
-
# - .jekyll-cache/
|
|
48
|
-
# - gemfiles/
|
|
49
|
-
# - Gemfile
|
|
50
|
-
# - Gemfile.lock
|
|
51
|
-
# - node_modules/
|
|
52
|
-
# - vendor/bundle/
|
|
53
|
-
# - vendor/cache/
|
|
54
|
-
# - vendor/gems/
|
|
55
|
-
# - vendor/ruby/
|
|
1
|
+
# Welcome to Jekyll!
|
|
2
|
+
#
|
|
3
|
+
# This config file is meant for settings that affect your whole blog, values
|
|
4
|
+
# which you are expected to set up once and rarely edit after that. If you find
|
|
5
|
+
# yourself editing this file very often, consider using Jekyll's data files
|
|
6
|
+
# feature for the data you need to update frequently.
|
|
7
|
+
#
|
|
8
|
+
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
|
9
|
+
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
|
|
10
|
+
#
|
|
11
|
+
# If you need help with YAML syntax, here are some quick references for you:
|
|
12
|
+
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
|
|
13
|
+
# https://learnxinyminutes.com/docs/yaml/
|
|
14
|
+
#
|
|
15
|
+
# Site settings
|
|
16
|
+
# These are used to personalize your new site. If you look in the HTML files,
|
|
17
|
+
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
|
|
18
|
+
# You can create any custom variable you would like, and they will be accessible
|
|
19
|
+
# in the templates via {{ site.myvariable }}.
|
|
20
|
+
|
|
21
|
+
title: Your awesome title
|
|
22
|
+
email: your-email@example.com
|
|
23
|
+
description: >- # this means to ignore newlines until "baseurl:"
|
|
24
|
+
Write an awesome description for your new site here. You can edit this
|
|
25
|
+
line in _config.yml. It will appear in your document head meta (for
|
|
26
|
+
Google search results) and in your feed.xml site description.
|
|
27
|
+
baseurl: "" # the subpath of your site, e.g. /blog
|
|
28
|
+
url: "" # the base hostname & protocol for your site, e.g. http://example.com
|
|
29
|
+
twitter_username: jekyllrb
|
|
30
|
+
github_username: jekyll
|
|
31
|
+
|
|
32
|
+
# Build settings
|
|
33
|
+
theme: minima
|
|
34
|
+
plugins:
|
|
35
|
+
- jekyll-feed
|
|
36
|
+
|
|
37
|
+
# Exclude from processing.
|
|
38
|
+
# The following items will not be processed, by default.
|
|
39
|
+
# Any item listed under the `exclude:` key here will be automatically added to
|
|
40
|
+
# the internal "default list".
|
|
41
|
+
#
|
|
42
|
+
# Excluded items can be processed by explicitly listing the directories or
|
|
43
|
+
# their entries' file path in the `include:` list.
|
|
44
|
+
#
|
|
45
|
+
# exclude:
|
|
46
|
+
# - .sass-cache/
|
|
47
|
+
# - .jekyll-cache/
|
|
48
|
+
# - gemfiles/
|
|
49
|
+
# - Gemfile
|
|
50
|
+
# - Gemfile.lock
|
|
51
|
+
# - node_modules/
|
|
52
|
+
# - vendor/bundle/
|
|
53
|
+
# - vendor/cache/
|
|
54
|
+
# - vendor/gems/
|
|
55
|
+
# - vendor/ruby/
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
---
|
|
2
|
-
layout: post
|
|
3
|
-
title: "Welcome to Jekyll!"
|
|
4
|
-
date: <%= Time.now.strftime('%Y-%m-%d %H:%M:%S %z') %>
|
|
5
|
-
categories: jekyll update
|
|
6
|
-
---
|
|
7
|
-
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
|
|
8
|
-
|
|
9
|
-
Jekyll requires blog post files to be named according to the following format:
|
|
10
|
-
|
|
11
|
-
`YEAR-MONTH-DAY-title.MARKUP`
|
|
12
|
-
|
|
13
|
-
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
|
|
14
|
-
|
|
15
|
-
Jekyll also offers powerful support for code snippets:
|
|
16
|
-
|
|
17
|
-
{% highlight ruby %}
|
|
18
|
-
def print_hi(name)
|
|
19
|
-
puts "Hi, #{name}"
|
|
20
|
-
end
|
|
21
|
-
print_hi('Tom')
|
|
22
|
-
#=> prints 'Hi, Tom' to STDOUT.
|
|
23
|
-
{% endhighlight %}
|
|
24
|
-
|
|
25
|
-
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
|
|
26
|
-
|
|
27
|
-
[jekyll-docs]: https://jekyllrb.com/docs/home
|
|
28
|
-
[jekyll-gh]: https://github.com/jekyll/jekyll
|
|
29
|
-
[jekyll-talk]: https://talk.jekyllrb.com/
|
|
1
|
+
---
|
|
2
|
+
layout: post
|
|
3
|
+
title: "Welcome to Jekyll!"
|
|
4
|
+
date: <%= Time.now.strftime('%Y-%m-%d %H:%M:%S %z') %>
|
|
5
|
+
categories: jekyll update
|
|
6
|
+
---
|
|
7
|
+
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
|
|
8
|
+
|
|
9
|
+
Jekyll requires blog post files to be named according to the following format:
|
|
10
|
+
|
|
11
|
+
`YEAR-MONTH-DAY-title.MARKUP`
|
|
12
|
+
|
|
13
|
+
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
|
|
14
|
+
|
|
15
|
+
Jekyll also offers powerful support for code snippets:
|
|
16
|
+
|
|
17
|
+
{% highlight ruby %}
|
|
18
|
+
def print_hi(name)
|
|
19
|
+
puts "Hi, #{name}"
|
|
20
|
+
end
|
|
21
|
+
print_hi('Tom')
|
|
22
|
+
#=> prints 'Hi, Tom' to STDOUT.
|
|
23
|
+
{% endhighlight %}
|
|
24
|
+
|
|
25
|
+
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
|
|
26
|
+
|
|
27
|
+
[jekyll-docs]: https://jekyllrb.com/docs/home
|
|
28
|
+
[jekyll-gh]: https://github.com/jekyll/jekyll
|
|
29
|
+
[jekyll-talk]: https://talk.jekyllrb.com/
|