diff --git a/.gitattributes b/.gitattributes
index ebe019920..a12b5fb4e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,5 +1,6 @@
-_assets/css/vendor/* linguist-vendored
-_assets/js/plugins/* linguist-vendored
-_assets/js/vendor/* linguist-vendored
assets/fonts/* linguist-vendored
-assets/js/vendor/* linguist-vendored
\ No newline at end of file
+assets/js/main.min.js linguist-vendored
+assets/js/lunr/* linguist-vendored
+assets/js/plugins/* linguist-vendored
+assets/js/vendor/* linguist-vendored
+_sass/minimal-mistakes/vendor/* linguist-vendored
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 000000000..921330e6a
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,76 @@
+require "bundler/gem_tasks"
+require "jekyll"
+require "listen"
+
+def listen_ignore_paths(base, options)
+ [
+ /_config\.ya?ml/,
+ /_site/,
+ /\.jekyll-metadata/
+ ]
+end
+
+def listen_handler(base, options)
+ site = Jekyll::Site.new(options)
+ Jekyll::Command.process_site(site)
+ proc do |modified, added, removed|
+ t = Time.now
+ c = modified + added + removed
+ n = c.length
+ relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s }
+ print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ")
+ begin
+ Jekyll::Command.process_site(site)
+ puts "regenerated in #{Time.now - t} seconds."
+ rescue => e
+ puts "error:"
+ Jekyll.logger.warn "Error:", e.message
+ Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
+ end
+ end
+end
+
+task :preview do
+ base = Pathname.new('.').expand_path
+ options = {
+ "source" => base.join('test').to_s,
+ "destination" => base.join('test/_site').to_s,
+ "force_polling" => false,
+ "serving" => true,
+ "theme" => "minimal-mistakes-jekyll"
+ }
+
+ options = Jekyll.configuration(options)
+
+ ENV["LISTEN_GEM_DEBUGGING"] = "1"
+ listener = Listen.to(
+ base.join("_data"),
+ base.join("_includes"),
+ base.join("_layouts"),
+ base.join("_sass"),
+ base.join("assets"),
+ options["source"],
+ :ignore => listen_ignore_paths(base, options),
+ :force_polling => options['force_polling'],
+ &(listen_handler(base, options))
+ )
+
+ begin
+ listener.start
+ Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'"
+
+ unless options['serving']
+ trap("INT") do
+ listener.stop
+ puts " Halting auto-regeneration."
+ exit 0
+ end
+
+ loop { sleep 1000 }
+ end
+ rescue ThreadError
+ # You pressed Ctrl-C, oh my!
+ end
+
+ Jekyll::Commands::Serve.process(options)
+end
diff --git a/_layouts/archive-taxonomy.html b/_layouts/archive-taxonomy.html
index a9087a2b7..6939122d8 100644
--- a/_layouts/archive-taxonomy.html
+++ b/_layouts/archive-taxonomy.html
@@ -12,4 +12,4 @@ author_profile: false
{% include archive-single.html %}
{% endfor %}
-
+
\ No newline at end of file
diff --git a/_layouts/archive.html b/_layouts/archive.html
index bece6045d..08beb89af 100644
--- a/_layouts/archive.html
+++ b/_layouts/archive.html
@@ -19,8 +19,8 @@ layout: default
{% unless page.header.overlay_color or page.header.overlay_image %}
-
{{ page.title }}
+ {{ page.title }}
{% endunless %}
{{ content }}
-
+
\ No newline at end of file
diff --git a/_layouts/categories.html b/_layouts/categories.html
new file mode 100644
index 000000000..aa2c6e80e
--- /dev/null
+++ b/_layouts/categories.html
@@ -0,0 +1,42 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+{% assign categories_max = 0 %}
+{% for category in site.categories %}
+ {% if category[1].size > categories_max %}
+ {% assign categories_max = category[1].size %}
+ {% endif %}
+{% endfor %}
+
+
+ {% for i in (1..categories_max) reversed %}
+ {% for category in site.categories %}
+ {% if category[1].size == i %}
+ -
+
+ {{ category[0] }} {{ i }}
+
+
+ {% endif %}
+ {% endfor %}
+ {% endfor %}
+
+
+{% for i in (1..categories_max) reversed %}
+ {% for category in site.categories %}
+ {% if category[1].size == i %}
+
+ {% endif %}
+ {% endfor %}
+{% endfor %}
diff --git a/_layouts/category.html b/_layouts/category.html
new file mode 100644
index 000000000..79b81ce09
--- /dev/null
+++ b/_layouts/category.html
@@ -0,0 +1,9 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+
+ {% include posts-category.html taxonomy=page.taxonomy type=page.entries_layout %}
+
diff --git a/_layouts/collection.html b/_layouts/collection.html
new file mode 100644
index 000000000..3bcd916a6
--- /dev/null
+++ b/_layouts/collection.html
@@ -0,0 +1,9 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+
+ {% include documents-collection.html collection=page.collection sort_by=page.sort_by sort_order=page.sort_order type=page.entries_layout %}
+
diff --git a/_layouts/compress.html b/_layouts/compress.html
index 8248010b4..bb34487d2 100644
--- a/_layouts/compress.html
+++ b/_layouts/compress.html
@@ -1,10 +1,10 @@
---
# Jekyll layout that compresses HTML
-# v3.0.2
+# v3.1.0
# http://jch.penibelst.de/
# © 2014–2015 Anatol Broder
# MIT License
---
{% capture _LINE_FEED %}
-{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "
" %}{% endif %}{% unless _pre_before contains "
" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " ;; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} Step | Bytes |
raw | {{ content | size }}{% if _profile_endings %} |
endings | {{ _profile_endings }}{% endif %}{% if _profile_startings %} |
startings | {{ _profile_startings }}{% endif %}{% if _profile_comments %} |
comments | {{ _profile_comments }}{% endif %}{% if _profile_collapse %} |
collapse | {{ _profile_collapse }}{% endif %}{% if _profile_clippings %} |
clippings | {{ _profile_clippings }}{% endif %} |
{% endif %}{% endif %}
+{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "
" %}{% endif %}{% unless _pre_before contains "
" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " ;; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} Step | Bytes |
raw | {{ content | size }}{% if _profile_endings %} |
endings | {{ _profile_endings }}{% endif %}{% if _profile_startings %} |
startings | {{ _profile_startings }}{% endif %}{% if _profile_comments %} |
comments | {{ _profile_comments }}{% endif %}{% if _profile_collapse %} |
collapse | {{ _profile_collapse }}{% endif %}{% if _profile_clippings %} |
clippings | {{ _profile_clippings }}{% endif %} |
{% endif %}{% endif %}
diff --git a/_layouts/default.html b/_layouts/default.html
index 739b9f059..a3dfd7009 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -3,10 +3,10 @@
@@ -15,16 +15,24 @@
+ {% include_cached skip-links.html %}
+ {% include_cached browser-upgrade.html %}
+ {% include_cached masthead.html %}
- {% include browser-upgrade.html %}
- {% include masthead.html %}
+
+ {{ content }}
+
- {{ content }}
+ {% if site.search == true %}
+
+ {% include_cached search/search_form.html %}
+
+ {% endif %}
-