diff --git a/lib/jekyll/commands/new.rb b/lib/jekyll/commands/new.rb
index 2658383c..9c3d06eb 100644
--- a/lib/jekyll/commands/new.rb
+++ b/lib/jekyll/commands/new.rb
@@ -72,6 +72,9 @@ ruby RUBY_VERSION
# Happy Jekylling!
gem "jekyll", "#{Jekyll::VERSION}"
+# This is the default theme for new Jekyll sites. You may change this to anything you like.
+gem "minima"
+
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
diff --git a/lib/jekyll/theme_builder.rb b/lib/jekyll/theme_builder.rb
index 5f834250..b0e82e3a 100644
--- a/lib/jekyll/theme_builder.rb
+++ b/lib/jekyll/theme_builder.rb
@@ -1,6 +1,6 @@
class Jekyll::ThemeBuilder
SCAFFOLD_DIRECTORIES = %w(
- _layouts _includes _sass example example/_posts
+ _layouts _includes _sass
).freeze
attr_reader :name, :path
@@ -12,6 +12,7 @@ class Jekyll::ThemeBuilder
def create!
create_directories
+ create_starter_files
create_gemspec
create_accessories
create_example_site
@@ -55,6 +56,13 @@ class Jekyll::ThemeBuilder
def create_directories
mkdir_p(SCAFFOLD_DIRECTORIES)
+ mkdir_p(%w(example example/_posts))
+ end
+
+ def create_starter_files
+ %w(page post default).each do |layout|
+ write_file("_layouts/#{layout}.html", template("_layouts/#{layout}.html"))
+ end
end
def create_gemspec
@@ -81,6 +89,7 @@ class Jekyll::ThemeBuilder
def initialize_git_repo
Jekyll.logger.info "initialize", path.join(".git").to_s
Dir.chdir(path.to_s) { `git init` }
+ write_file(".gitignore", template("gitignore"))
end
def user_name
@@ -102,7 +111,7 @@ class Jekyll::ThemeBuilder
@theme_builder = theme_builder
end
- def jekyll_pessimistic_version
+ def jekyll_version_with_minor
Jekyll::VERSION.split(".").take(2).join(".")
end
diff --git a/lib/site_template/_config.yml b/lib/site_template/_config.yml
index 0f5a6088..9bed54e4 100644
--- a/lib/site_template/_config.yml
+++ b/lib/site_template/_config.yml
@@ -4,6 +4,7 @@
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing these this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
+#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'jekyll serve'. If you change this file, please restart the server process.
@@ -25,3 +26,4 @@ github_username: jekyll
# Build settings
markdown: kramdown
+theme: minima
diff --git a/lib/site_template/_includes/footer.html b/lib/site_template/_includes/footer.html
deleted file mode 100644
index 1e4b2bc9..00000000
--- a/lib/site_template/_includes/footer.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
diff --git a/lib/site_template/_includes/head.html b/lib/site_template/_includes/head.html
deleted file mode 100644
index c6a6e0bc..00000000
--- a/lib/site_template/_includes/head.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
- {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}
-
-
-
-
-
-
diff --git a/lib/site_template/_includes/header.html b/lib/site_template/_includes/header.html
deleted file mode 100644
index 5043f539..00000000
--- a/lib/site_template/_includes/header.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
diff --git a/lib/site_template/_includes/icon-github.html b/lib/site_template/_includes/icon-github.html
deleted file mode 100644
index e501a16b..00000000
--- a/lib/site_template/_includes/icon-github.html
+++ /dev/null
@@ -1 +0,0 @@
-{% include icon-github.svg %} {{ include.username }}
diff --git a/lib/site_template/_includes/icon-github.svg b/lib/site_template/_includes/icon-github.svg
deleted file mode 100644
index 4422c4f5..00000000
--- a/lib/site_template/_includes/icon-github.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/lib/site_template/_includes/icon-twitter.html b/lib/site_template/_includes/icon-twitter.html
deleted file mode 100644
index e623dbd6..00000000
--- a/lib/site_template/_includes/icon-twitter.html
+++ /dev/null
@@ -1 +0,0 @@
-{{ include.username }}
diff --git a/lib/site_template/_includes/icon-twitter.svg b/lib/site_template/_includes/icon-twitter.svg
deleted file mode 100644
index dcf660e7..00000000
--- a/lib/site_template/_includes/icon-twitter.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/lib/site_template/_layouts/default.html b/lib/site_template/_layouts/default.html
deleted file mode 100644
index 81aa4ec6..00000000
--- a/lib/site_template/_layouts/default.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
- {% include head.html %}
-
-
-
- {% include header.html %}
-
-
-
- {{ content }}
-
-
-
- {% include footer.html %}
-
-
-
-
diff --git a/lib/site_template/_layouts/page.html b/lib/site_template/_layouts/page.html
deleted file mode 100644
index 01e4b2a9..00000000
--- a/lib/site_template/_layouts/page.html
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default
----
-
-
-
-
-
- {{ content }}
-
-
-
diff --git a/lib/site_template/_layouts/post.html b/lib/site_template/_layouts/post.html
deleted file mode 100644
index 2592391f..00000000
--- a/lib/site_template/_layouts/post.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: default
----
-
-
-
-
-
- {{ content }}
-
-
-
diff --git a/lib/site_template/_sass/_base.scss b/lib/site_template/_sass/_base.scss
deleted file mode 100644
index 9b8f292d..00000000
--- a/lib/site_template/_sass/_base.scss
+++ /dev/null
@@ -1,200 +0,0 @@
-/**
- * Reset some basic elements
- */
-body, h1, h2, h3, h4, h5, h6,
-p, blockquote, pre, hr,
-dl, dd, ol, ul, figure {
- margin: 0;
- padding: 0;
-}
-
-
-
-/**
- * Basic styling
- */
-body {
- font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
- color: $text-color;
- background-color: $background-color;
- -webkit-text-size-adjust: 100%;
- -webkit-font-feature-settings: "kern" 1;
- -moz-font-feature-settings: "kern" 1;
- -o-font-feature-settings: "kern" 1;
- font-feature-settings: "kern" 1;
- font-kerning: normal;
-}
-
-
-
-/**
- * Set `margin-bottom` to maintain vertical rhythm
- */
-h1, h2, h3, h4, h5, h6,
-p, blockquote, pre,
-ul, ol, dl, figure,
-%vertical-rhythm {
- margin-bottom: $spacing-unit / 2;
-}
-
-
-
-/**
- * Images
- */
-img {
- max-width: 100%;
- vertical-align: middle;
-}
-
-
-
-/**
- * Figures
- */
-figure > img {
- display: block;
-}
-
-figcaption {
- font-size: $small-font-size;
-}
-
-
-
-/**
- * Lists
- */
-ul, ol {
- margin-left: $spacing-unit;
-}
-
-li {
- > ul,
- > ol {
- margin-bottom: 0;
- }
-}
-
-
-
-/**
- * Headings
- */
-h1, h2, h3, h4, h5, h6 {
- font-weight: $base-font-weight;
-}
-
-
-
-/**
- * Links
- */
-a {
- color: $brand-color;
- text-decoration: none;
-
- &:visited {
- color: darken($brand-color, 15%);
- }
-
- &:hover {
- color: $text-color;
- text-decoration: underline;
- }
-}
-
-
-
-/**
- * Blockquotes
- */
-blockquote {
- color: $grey-color;
- border-left: 4px solid $grey-color-light;
- padding-left: $spacing-unit / 2;
- font-size: 18px;
- letter-spacing: -1px;
- font-style: italic;
-
- > :last-child {
- margin-bottom: 0;
- }
-}
-
-
-
-/**
- * Code formatting
- */
-pre,
-code {
- font-size: 15px;
- border: 1px solid $grey-color-light;
- border-radius: 3px;
- background-color: #eef;
-}
-
-code {
- padding: 1px 5px;
-}
-
-pre {
- padding: 8px 12px;
- overflow-x: auto;
-
- > code {
- border: 0;
- padding-right: 0;
- padding-left: 0;
- }
-}
-
-
-
-/**
- * Wrapper
- */
-.wrapper {
- max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
- max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
- margin-right: auto;
- margin-left: auto;
- padding-right: $spacing-unit;
- padding-left: $spacing-unit;
- @extend %clearfix;
-
- @include media-query($on-laptop) {
- max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
- max-width: calc(#{$content-width} - (#{$spacing-unit}));
- padding-right: $spacing-unit / 2;
- padding-left: $spacing-unit / 2;
- }
-}
-
-
-
-/**
- * Clearfix
- */
-%clearfix:after {
- content: "";
- display: table;
- clear: both;
-}
-
-
-
-/**
- * Icons
- */
-.icon > svg {
- display: inline-block;
- width: 16px;
- height: 16px;
- vertical-align: middle;
-
- path {
- fill: $grey-color;
- }
-}
diff --git a/lib/site_template/_sass/_layout.scss b/lib/site_template/_sass/_layout.scss
deleted file mode 100644
index 9cbfddef..00000000
--- a/lib/site_template/_sass/_layout.scss
+++ /dev/null
@@ -1,242 +0,0 @@
-/**
- * Site header
- */
-.site-header {
- border-top: 5px solid $grey-color-dark;
- border-bottom: 1px solid $grey-color-light;
- min-height: 56px;
-
- // Positioning context for the mobile navigation icon
- position: relative;
-}
-
-.site-title {
- font-size: 26px;
- font-weight: 300;
- line-height: 56px;
- letter-spacing: -1px;
- margin-bottom: 0;
- float: left;
-
- &,
- &:visited {
- color: $grey-color-dark;
- }
-}
-
-.site-nav {
- float: right;
- line-height: 56px;
-
- .menu-icon {
- display: none;
- }
-
- .page-link {
- color: $text-color;
- line-height: $base-line-height;
-
- // Gaps between nav items, but not on the last one
- &:not(:last-child) {
- margin-right: 20px;
- }
- }
-
- @include media-query($on-palm) {
- position: absolute;
- top: 9px;
- right: $spacing-unit / 2;
- background-color: $background-color;
- border: 1px solid $grey-color-light;
- border-radius: 5px;
- text-align: right;
-
- .menu-icon {
- display: block;
- float: right;
- width: 36px;
- height: 26px;
- line-height: 0;
- padding-top: 10px;
- text-align: center;
-
- > svg {
- width: 18px;
- height: 15px;
-
- path {
- fill: $grey-color-dark;
- }
- }
- }
-
- .trigger {
- clear: both;
- display: none;
- }
-
- &:hover .trigger {
- display: block;
- padding-bottom: 5px;
- }
-
- .page-link {
- display: block;
- padding: 5px 10px;
-
- &:not(:last-child) {
- margin-right: 0;
- }
- margin-left: 20px;
- }
- }
-}
-
-
-
-/**
- * Site footer
- */
-.site-footer {
- border-top: 1px solid $grey-color-light;
- padding: $spacing-unit 0;
-}
-
-.footer-heading {
- font-size: 18px;
- margin-bottom: $spacing-unit / 2;
-}
-
-.contact-list,
-.social-media-list {
- list-style: none;
- margin-left: 0;
-}
-
-.footer-col-wrapper {
- font-size: 15px;
- color: $grey-color;
- margin-left: -$spacing-unit / 2;
- @extend %clearfix;
-}
-
-.footer-col {
- float: left;
- margin-bottom: $spacing-unit / 2;
- padding-left: $spacing-unit / 2;
-}
-
-.footer-col-1 {
- width: -webkit-calc(35% - (#{$spacing-unit} / 2));
- width: calc(35% - (#{$spacing-unit} / 2));
-}
-
-.footer-col-2 {
- width: -webkit-calc(20% - (#{$spacing-unit} / 2));
- width: calc(20% - (#{$spacing-unit} / 2));
-}
-
-.footer-col-3 {
- width: -webkit-calc(45% - (#{$spacing-unit} / 2));
- width: calc(45% - (#{$spacing-unit} / 2));
-}
-
-@include media-query($on-laptop) {
- .footer-col-1,
- .footer-col-2 {
- width: -webkit-calc(50% - (#{$spacing-unit} / 2));
- width: calc(50% - (#{$spacing-unit} / 2));
- }
-
- .footer-col-3 {
- width: -webkit-calc(100% - (#{$spacing-unit} / 2));
- width: calc(100% - (#{$spacing-unit} / 2));
- }
-}
-
-@include media-query($on-palm) {
- .footer-col {
- float: none;
- width: -webkit-calc(100% - (#{$spacing-unit} / 2));
- width: calc(100% - (#{$spacing-unit} / 2));
- }
-}
-
-
-
-/**
- * Page content
- */
-.page-content {
- padding: $spacing-unit 0;
-}
-
-.page-heading {
- font-size: 20px;
-}
-
-.post-list {
- margin-left: 0;
- list-style: none;
-
- > li {
- margin-bottom: $spacing-unit;
- }
-}
-
-.post-meta {
- font-size: $small-font-size;
- color: $grey-color;
-}
-
-.post-link {
- display: block;
- font-size: 24px;
-}
-
-
-
-/**
- * Posts
- */
-.post-header {
- margin-bottom: $spacing-unit;
-}
-
-.post-title {
- font-size: 42px;
- letter-spacing: -1px;
- line-height: 1;
-
- @include media-query($on-laptop) {
- font-size: 36px;
- }
-}
-
-.post-content {
- margin-bottom: $spacing-unit;
-
- h2 {
- font-size: 32px;
-
- @include media-query($on-laptop) {
- font-size: 28px;
- }
- }
-
- h3 {
- font-size: 26px;
-
- @include media-query($on-laptop) {
- font-size: 22px;
- }
- }
-
- h4 {
- font-size: 20px;
-
- @include media-query($on-laptop) {
- font-size: 18px;
- }
- }
-}
diff --git a/lib/site_template/_sass/_syntax-highlighting.scss b/lib/site_template/_sass/_syntax-highlighting.scss
deleted file mode 100644
index 8fac5977..00000000
--- a/lib/site_template/_sass/_syntax-highlighting.scss
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * Syntax highlighting styles
- */
-.highlight {
- background: #fff;
- @extend %vertical-rhythm;
-
- .highlighter-rouge & {
- background: #eef;
- }
-
- .c { color: #998; font-style: italic } // Comment
- .err { color: #a61717; background-color: #e3d2d2 } // Error
- .k { font-weight: bold } // Keyword
- .o { font-weight: bold } // Operator
- .cm { color: #998; font-style: italic } // Comment.Multiline
- .cp { color: #999; font-weight: bold } // Comment.Preproc
- .c1 { color: #998; font-style: italic } // Comment.Single
- .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
- .gd { color: #000; background-color: #fdd } // Generic.Deleted
- .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
- .ge { font-style: italic } // Generic.Emph
- .gr { color: #a00 } // Generic.Error
- .gh { color: #999 } // Generic.Heading
- .gi { color: #000; background-color: #dfd } // Generic.Inserted
- .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
- .go { color: #888 } // Generic.Output
- .gp { color: #555 } // Generic.Prompt
- .gs { font-weight: bold } // Generic.Strong
- .gu { color: #aaa } // Generic.Subheading
- .gt { color: #a00 } // Generic.Traceback
- .kc { font-weight: bold } // Keyword.Constant
- .kd { font-weight: bold } // Keyword.Declaration
- .kp { font-weight: bold } // Keyword.Pseudo
- .kr { font-weight: bold } // Keyword.Reserved
- .kt { color: #458; font-weight: bold } // Keyword.Type
- .m { color: #099 } // Literal.Number
- .s { color: #d14 } // Literal.String
- .na { color: #008080 } // Name.Attribute
- .nb { color: #0086B3 } // Name.Builtin
- .nc { color: #458; font-weight: bold } // Name.Class
- .no { color: #008080 } // Name.Constant
- .ni { color: #800080 } // Name.Entity
- .ne { color: #900; font-weight: bold } // Name.Exception
- .nf { color: #900; font-weight: bold } // Name.Function
- .nn { color: #555 } // Name.Namespace
- .nt { color: #000080 } // Name.Tag
- .nv { color: #008080 } // Name.Variable
- .ow { font-weight: bold } // Operator.Word
- .w { color: #bbb } // Text.Whitespace
- .mf { color: #099 } // Literal.Number.Float
- .mh { color: #099 } // Literal.Number.Hex
- .mi { color: #099 } // Literal.Number.Integer
- .mo { color: #099 } // Literal.Number.Oct
- .sb { color: #d14 } // Literal.String.Backtick
- .sc { color: #d14 } // Literal.String.Char
- .sd { color: #d14 } // Literal.String.Doc
- .s2 { color: #d14 } // Literal.String.Double
- .se { color: #d14 } // Literal.String.Escape
- .sh { color: #d14 } // Literal.String.Heredoc
- .si { color: #d14 } // Literal.String.Interpol
- .sx { color: #d14 } // Literal.String.Other
- .sr { color: #009926 } // Literal.String.Regex
- .s1 { color: #d14 } // Literal.String.Single
- .ss { color: #990073 } // Literal.String.Symbol
- .bp { color: #999 } // Name.Builtin.Pseudo
- .vc { color: #008080 } // Name.Variable.Class
- .vg { color: #008080 } // Name.Variable.Global
- .vi { color: #008080 } // Name.Variable.Instance
- .il { color: #099 } // Literal.Number.Integer.Long
-}
diff --git a/lib/site_template/css/main.scss b/lib/site_template/css/main.scss
index f2e566e2..c91fac8d 100644
--- a/lib/site_template/css/main.scss
+++ b/lib/site_template/css/main.scss
@@ -3,8 +3,6 @@
---
@charset "utf-8";
-
-
// Our variables
$base-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
$base-font-size: 16px;
@@ -28,8 +26,7 @@ $content-width: 800px;
$on-palm: 600px;
$on-laptop: 800px;
-
-
+// Minima also includes a mixin for defining media queries.
// Use media queries like this:
// @include media-query($on-palm) {
// .wrapper {
@@ -37,17 +34,6 @@ $on-laptop: 800px;
// padding-left: $spacing-unit / 2;
// }
// }
-@mixin media-query($device) {
- @media screen and (max-width: $device) {
- @content;
- }
-}
-
-
-// Import partials from `sass_dir` (defaults to `_sass`)
-@import
- "base",
- "layout",
- "syntax-highlighting"
-;
+// Import partials from the `minima` theme.
+@import "minima";
diff --git a/lib/theme_template/_layouts/default.html b/lib/theme_template/_layouts/default.html
new file mode 100644
index 00000000..cddd0709
--- /dev/null
+++ b/lib/theme_template/_layouts/default.html
@@ -0,0 +1 @@
+{{ content }}
diff --git a/lib/theme_template/_layouts/page.html b/lib/theme_template/_layouts/page.html
new file mode 100644
index 00000000..5e711268
--- /dev/null
+++ b/lib/theme_template/_layouts/page.html
@@ -0,0 +1,5 @@
+---
+layout: default
+---
+
+{{ content }}
diff --git a/lib/theme_template/_layouts/post.html b/lib/theme_template/_layouts/post.html
new file mode 100644
index 00000000..5e711268
--- /dev/null
+++ b/lib/theme_template/_layouts/post.html
@@ -0,0 +1,5 @@
+---
+layout: default
+---
+
+{{ content }}
diff --git a/lib/theme_template/example/_post.md b/lib/theme_template/example/_post.md
index cf40b7f0..145b21de 100644
--- a/lib/theme_template/example/_post.md
+++ b/lib/theme_template/example/_post.md
@@ -1,6 +1,5 @@
---
-# Specify a layout from your theme!
-# This will be the layout users specify for their posts.
+layout: post
---
Eos eu docendi tractatos sapientem, brute option menandri in vix, quando vivendo accommodare te ius. Nec melius fastidii constituam id, viderer theophrastus ad sit, hinc semper periculis cum id. Noluisse postulant assentior est in, no choro sadipscing repudiandae vix. Vis in euismod delenit dignissim. Ex quod nostrum sit, suas decore animal id ius, nobis solet detracto quo te.
diff --git a/lib/theme_template/example/index.html b/lib/theme_template/example/index.html
index 858e5a11..b688538c 100644
--- a/lib/theme_template/example/index.html
+++ b/lib/theme_template/example/index.html
@@ -1,11 +1,11 @@
---
-# Specify a layout from your theme!
+layout: page
---
Lorem ipsum dolor sit amet, quo id prima corrumpit pertinacia, id ius dolor dolores, an veri pertinax explicari mea. Agam solum et qui, his id ludus graeco adipiscing. Duis theophrastus nam in, at his vidisse atomorum. Tantas gloriatur scripserit ne eos. Est wisi tempor habemus at, ei graeco dissentiet eos. Ne usu aliquip sanctus conceptam, te vis ignota animal, modus latine contentiones ius te.
{% for post in site.posts %}
-{{ post.title }}
+
{{ post.excerpt }}
{% endfor %}
diff --git a/lib/theme_template/gitignore.erb b/lib/theme_template/gitignore.erb
new file mode 100644
index 00000000..64eb653f
--- /dev/null
+++ b/lib/theme_template/gitignore.erb
@@ -0,0 +1,4 @@
+.bundle
+.sass-cache
+_site
+Gemfile.lock
diff --git a/lib/theme_template/theme.gemspec.erb b/lib/theme_template/theme.gemspec.erb
index 0bd7c365..1c3b7ee4 100644
--- a/lib/theme_template/theme.gemspec.erb
+++ b/lib/theme_template/theme.gemspec.erb
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
- spec.add_development_dependency "jekyll", "~> <%= jekyll_pessimistic_version %>"
+ spec.add_development_dependency "jekyll", "~> <%= jekyll_version_with_minor %>"
spec.add_development_dependency "bundler", "~> 1.12"
spec.add_development_dependency "rake", "~> 10.0"
end