diff --git a/History.markdown b/History.markdown
index 02f4091d..84a1b586 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,3 +1,15 @@
+## HEAD
+
+### Site Enhancements
+
+ * Enable site excerpts (#5150)
+ * Initial 404 page (#5143)
+ * Remove the "this feature is unreleased" warning from the theme docs (#5158)
+
+### Bug Fixes
+
+ * Include theme directories in default gemspec (#5152)
+
## 3.2.0 / 2016-07-26
### Minor Enhancements
diff --git a/lib/jekyll/static_file.rb b/lib/jekyll/static_file.rb
index 6126820c..0f8544ee 100644
--- a/lib/jekyll/static_file.rb
+++ b/lib/jekyll/static_file.rb
@@ -3,9 +3,7 @@ module Jekyll
attr_reader :relative_path, :extname
class << self
- #
- # The cache of last modification times
- # [path] -> mtime.
+ # The cache of last modification times [path] -> mtime.
def mtimes
@mtimes ||= {}
end
@@ -31,29 +29,25 @@ module Jekyll
@relative_path = File.join(*[@dir, @name].compact)
@extname = File.extname(@name)
end
-
# rubocop: enable ParameterLists
+
# Returns source file path.
def path
- File.join(
- *[@base, @dir, @name].compact
- )
+ File.join(*[@base, @dir, @name].compact)
end
# Obtain destination path.
+ #
# dest - The String path to the destination dir.
+ #
# Returns destination file path.
def destination(dest)
- @site.in_dest_dir(
- *[dest, destination_rel_dir, @name].compact
- )
+ @site.in_dest_dir(*[dest, destination_rel_dir, @name].compact)
end
def destination_rel_dir
if @collection
- File.dirname(
- url
- )
+ File.dirname(url)
else
@dir
end
@@ -69,12 +63,14 @@ module Jekyll
end
# Is source path modified?
+ #
# Returns true if modified since last write.
def modified?
self.class.mtimes[path] != mtime
end
# Whether to write the file to the filesystem
+ #
# Returns true unless the defaults for the destination path from
# _config.yml contain `published: false`.
def write?
@@ -82,18 +78,20 @@ module Jekyll
end
# Write the static file to the destination directory (if modified).
- # Returns false if the file was not modified since last time (no-op).
+ #
# dest - The String path to the destination dir.
+ #
+ # Returns false if the file was not modified since last time (no-op).
def write(dest)
dest_path = destination(dest)
- if File.exist?(dest_path) && !modified?
- return false
- end
+ return false if File.exist?(dest_path) && !modified?
self.class.mtimes[path] = mtime
+
FileUtils.mkdir_p(File.dirname(dest_path))
FileUtils.rm(dest_path) if File.exist?(dest_path)
copy_file(dest_path)
+
true
end
@@ -108,12 +106,11 @@ module Jekyll
def placeholders
{
:collection => @collection.label,
+ :path => relative_path[
+ @collection.relative_directory.size..relative_path.size],
:output_ext => "",
:name => "",
- :title => "",
- :path => relative_path[
- @collection.relative_directory.size..relative_path.size
- ]
+ :title => ""
}
end
@@ -121,16 +118,14 @@ module Jekyll
# the collection's URL template into account. The default URL template can
# be overriden in the collection's configuration in _config.yml.
def url
- @url ||=
- if @collection.nil?
- relative_path
- else
- ::Jekyll::URL.new({
- :template => @collection.url_template,
- :placeholders => placeholders
- })
- end
- .to_s.gsub(%r!/$!, "")
+ @url ||= if @collection.nil?
+ relative_path
+ else
+ ::Jekyll::URL.new({
+ :template => @collection.url_template,
+ :placeholders => placeholders
+ })
+ end.to_s.gsub(%r!/$!, "")
end
# Returns the type of the collection if present, nil otherwise.
@@ -141,28 +136,17 @@ module Jekyll
# Returns the front matter defaults defined for the file's URL and/or type
# as defined in _config.yml.
def defaults
- @defaults ||= @site.frontmatter_defaults.all(
- url, type
- )
+ @defaults ||= @site.frontmatter_defaults.all url, type
end
private
def copy_file(dest_path)
if @site.safe || Jekyll.env == "production"
- FileUtils.cp(
- path, dest_path
- )
+ FileUtils.cp(path, dest_path)
else
- FileUtils.copy_entry(
- path, dest_path
- )
+ FileUtils.copy_entry(path, dest_path)
end
-
- File.utime(
- self.class.mtimes[path],
- self.class.mtimes[path],
- dest_path
- )
+ File.utime(self.class.mtimes[path], self.class.mtimes[path], dest_path)
end
end
end
diff --git a/lib/theme_template/theme.gemspec.erb b/lib/theme_template/theme.gemspec.erb
index dac6ed39..d403d674 100644
--- a/lib/theme_template/theme.gemspec.erb
+++ b/lib/theme_template/theme.gemspec.erb
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
spec.homepage = "TODO: Put your gem's website or public repo URL here."
spec.license = "MIT"
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(<%= theme_directories.join("|") %>)/}) }
+ spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(<%= theme_directories.join("|") %>|LICENSE|README)/i}) }
spec.add_development_dependency "jekyll", "~> <%= jekyll_version_with_minor %>"
spec.add_development_dependency "bundler", "~> 1.12"
diff --git a/site/404.html b/site/404.html
new file mode 100644
index 00000000..e21f2323
--- /dev/null
+++ b/site/404.html
@@ -0,0 +1,40 @@
+---
+layout: error
+permalink: /404.html
+sitemap: false
+---
+
+ Huh. It seems that page is The resource you requested was not found. Here are some links to help you find your way:
Hyde-ing...
- Jekyll 3.0 and 3.1 do NOT have the ability to add themes in this way. - The documentation below is for an unreleased version of Jekyll and - cannot be used at the moment. -
-