Merge branch 'master' into build-the-site

* master:
  Update history to reflect merge of #5152 [ci skip]
  Missing trailing |
  Update history to reflect merge of #5158 [ci skip]
  Also include LICENSE and README
  note that themes have been released
  Update history to reflect merge of #5143 [ci skip]
  Update history to reflect merge of #5150 [ci skip]
  Revert "Readability: lib/jekyll/static_file.rb."
  include theme directories in default gemspec
  [site] enable excerpts
  Centre align text and use nav styles on helpful links.
  Puns FTW
  Add helpful links and minor alignment tweak.
  Create error template that has no main nav or footer.
  Use more generic wording.
  sitemap: false so that the error page is not indexed
  Initial 404 page
This commit is contained in:
Parker Moore 2016-08-01 17:28:05 -07:00
commit dc8c6e0e43
No known key found for this signature in database
GPG Key ID: 193CDEBA72063C58
7 changed files with 106 additions and 57 deletions

View File

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

View File

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

View File

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

40
site/404.html Normal file
View File

@ -0,0 +1,40 @@
---
layout: error
permalink: /404.html
sitemap: false
---
<section class="intro">
<div class="grid">
<div class="unit whole align-center">
<p class="first">Huh. It seems that page is<br/>Hyde-ing...</p>
</div>
</div>
</section>
<section class="error">
<div class="grid">
<div class="unit whole align-center">
<p>The resource you requested was not found. Here are some links to help you find your way:</p>
<nav class="main-nav">
<ul>
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/docs/home/">Documentation</a>
</li>
<li>
<a href="/news/">News</a>
</li>
<li>
<a href="/community/">Community</a>
</li>
<li>
<a href="/help/">Help</a>
</li>
</ul>
</nav>
</div>
</div>
</section>

View File

@ -1,7 +1,6 @@
markdown: kramdown
highlighter: rouge
permalink: /news/:year/:month/:day/:title/
excerpt_separator: ""
gauges_id: 503c5af6613f5d0f19000027
google_analytics_id: UA-50755011-1

View File

@ -4,15 +4,6 @@ title: Themes
permalink: /docs/themes/
---
<div class="note unreleased">
<h5>This feature is unreleased!</h5>
<p>
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.
</p>
</div>
Jekyll has an extensive theme system, which allows you to leverage community-maintained templates and styles to customize your site's presentation. Jekyll themes package layouts, includes, and stylesheets in a way that can be overridden by your site's content.
## Installing a theme

23
site/_layouts/error.html Normal file
View File

@ -0,0 +1,23 @@
{% include top.html %}
<body class="wrap">
<header>
<div class="grid">
<div class="unit whole align-center">
<h1>
<a href="/">
<span class="sr-only">Jekyll</span>
<img src="/img/logo-2x.png" width="249" height="115" alt="Jekyll Logo">
</a>
</h1>
</div>
</div>
</header>
{{ content }}
{% include anchor_links.html %}
{% include analytics.html %}
</body>
</html>