forked from mmistakes/minimal-mistakes
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request mmistakes#388 from pmarsceill/v0.3.2
v0.3.2
- Loading branch information
Showing
81 changed files
with
1,493 additions
and
132 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
--- | ||
layout: default | ||
title: Page not found | ||
title: 404 | ||
permalink: /404 | ||
nav_exclude: true | ||
search_exclude: true | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
FROM ruby:2.6 | ||
|
||
ENV LC_ALL C.UTF-8 | ||
ENV LANG en_US.UTF-8 | ||
ENV LANGUAGE en_US.UTF-8 | ||
|
||
WORKDIR /usr/src/app | ||
|
||
COPY Gemfile just-the-docs.gemspec ./ | ||
RUN gem install bundler && bundle install | ||
|
||
EXPOSE 4000 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
{%- comment -%} | ||
This file can be used to fix the HTML produced by Jekyll for highlighted | ||
code with line numbers. | ||
|
||
It works with `{% highlight some_language linenos %}...{% endhighlight %}` | ||
and with the Kramdown option to add line numbers to fenced code. | ||
|
||
The implementation was derived from the workaround provided by | ||
Dmitry Hrabrov (DeXP) at | ||
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901 | ||
|
||
EXPLANATION | ||
|
||
The HTML produced by Rouge highlighting with lie numbers is of the form | ||
`code table`. Jekyll (<= 4.1.1) always wraps the highlighted HTML | ||
with `pre`. This wrapping is not only unnecessary, but also transforms | ||
the conforming HTML produced by Rouge to non-conforming HTML, which | ||
results in HTML validation error reports. | ||
|
||
The fix removes the outer `pre` tags whenever they contain the pattern | ||
`<table class="rouge-table">`. | ||
|
||
Apart from avoiding HTML validation errors, the fix allows the use of | ||
the [Jekyll layout for compressing HTML](http://jch.penibelst.de), | ||
which relies on `pre` tags not being nested, according to | ||
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-172069842 | ||
|
||
USAGE | ||
|
||
(Any names can be used for `some_var` and `some_language`.) | ||
|
||
{% capture some_var %} | ||
{% highlight some_language linenos %} | ||
Some code | ||
{% endhighlight %} | ||
{% endcapture %} | ||
{% include fix_linenos.html code=some_var %} | ||
|
||
For code fences: | ||
|
||
{% capture some_var %} | ||
```some_language | ||
Some code | ||
``` | ||
{% endcapture %} | ||
{% assign some_var = some_var | markdownify %} | ||
{% include fix_linenos.html code=some_var %} | ||
|
||
CAVEATS | ||
|
||
The above does not work when `Some code` happens to contain the matched string | ||
`<table class="rouge-table">`. | ||
|
||
The use of this file overwrites the variable `fix_linenos_code` with `nil`. | ||
|
||
{%- endcomment -%} | ||
|
||
{% assign fix_linenos_code = include.code %} | ||
{% if fix_linenos_code contains '<table class="rouge-table">' %} | ||
{% assign fix_linenos_code = fix_linenos_code | replace: '<pre class="highlight">', '<pre>' %} | ||
{% assign fix_linenos_code = fix_linenos_code | replace: "<pre><code", "<code" %} | ||
{% assign fix_linenos_code = fix_linenos_code | replace: "</code></pre>", "</code>" %} | ||
{% endif %} | ||
{{ fix_linenos_code }} | ||
{% assign fix_linenos_code = nil %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,100 @@ | ||
<ul class="nav-list"> | ||
{%- assign ordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order != nil" -%} | ||
{%- assign unordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order == nil" -%} | ||
{%- assign included_pages = include.pages | ||
| where_exp:"item", "item.nav_exclude != true" | ||
| where_exp:"item", "item.title != nil" -%} | ||
|
||
{%- comment -%} | ||
The values of `title` and `nav_order` can be numbers or strings. | ||
Jekyll gives build failures when sorting on mixtures of different types, | ||
so numbers and strings need to be sorted separately. | ||
|
||
Here, numbers are sorted by their values, and come before all strings. | ||
An omitted `nav_order` value is equivalent to the page's `title` value | ||
(except that a numerical `title` value is treated as a string). | ||
|
||
The case-sensitivity of string sorting is determined by `site.nav_sort`. | ||
{%- endcomment -%} | ||
|
||
{%- assign string_ordered_pages = included_pages | ||
| where_exp:"item", "item.nav_order == nil" -%} | ||
{%- assign nav_ordered_pages = included_pages | ||
| where_exp:"item", "item.nav_order != nil" -%} | ||
|
||
{%- comment -%} | ||
The nav_ordered_pages have to be added to number_ordered_pages and | ||
string_ordered_pages, depending on the nav_order value. | ||
The first character of the jsonify result is `"` only for strings. | ||
{%- endcomment -%} | ||
{%- assign nav_ordered_groups = nav_ordered_pages | ||
| group_by_exp:"item", "item.nav_order | jsonify | slice: 0" -%} | ||
{%- assign number_ordered_pages = "" | split:"X" -%} | ||
{%- for group in nav_ordered_groups -%} | ||
{%- if group.name == '"' -%} | ||
{%- assign string_ordered_pages = string_ordered_pages | concat: group.items -%} | ||
{%- else -%} | ||
{%- assign number_ordered_pages = number_ordered_pages | concat: group.items -%} | ||
{%- endif -%} | ||
{%- endfor -%} | ||
|
||
{%- assign sorted_number_ordered_pages = number_ordered_pages | sort:"nav_order" -%} | ||
|
||
{%- comment -%} | ||
The string_ordered_pages have to be sorted by nav_order, and otherwise title | ||
(where appending the empty string to a numeric title converts it to a string). | ||
After grouping them by those values, the groups are sorted, then the items | ||
of each group are concatenated. | ||
{%- endcomment -%} | ||
{%- assign string_ordered_groups = string_ordered_pages | ||
| group_by_exp:"item", "item.nav_order | default: item.title | append:''" -%} | ||
{%- if site.nav_sort == 'case_insensitive' -%} | ||
{%- assign sorted_ordered_pages_list = ordered_pages_list | sort_natural:"nav_order" -%} | ||
{%- assign sorted_unordered_pages_list = unordered_pages_list | sort_natural:"title" -%} | ||
{%- assign sorted_string_ordered_groups = string_ordered_groups | sort_natural:"name" -%} | ||
{%- else -%} | ||
{%- assign sorted_ordered_pages_list = ordered_pages_list | sort:"nav_order" -%} | ||
{%- assign sorted_unordered_pages_list = unordered_pages_list | sort:"title" -%} | ||
{%- assign sorted_string_ordered_groups = string_ordered_groups | sort:"name" -%} | ||
{%- endif -%} | ||
{%- assign pages_list = sorted_ordered_pages_list | concat: sorted_unordered_pages_list -%} | ||
{%- assign sorted_string_ordered_pages = "" | split:"X" -%} | ||
{%- for group in sorted_string_ordered_groups -%} | ||
{%- assign sorted_string_ordered_pages = sorted_string_ordered_pages | concat: group.items -%} | ||
{%- endfor -%} | ||
|
||
{%- assign pages_list = sorted_number_ordered_pages | concat: sorted_string_ordered_pages -%} | ||
|
||
{%- for node in pages_list -%} | ||
{%- unless node.nav_exclude -%} | ||
{%- if node.parent == nil and node.title -%} | ||
<li class="nav-list-item{% if page.url == node.url or page.parent == node.title or page.grand_parent == node.title %} active{% endif %}"> | ||
{%- if page.parent == node.title or page.grand_parent == node.title -%} | ||
{%- assign first_level_url = node.url | absolute_url -%} | ||
{%- endif -%} | ||
{%- if node.has_children -%} | ||
<a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a> | ||
{%- endif -%} | ||
<a href="{{ node.url | absolute_url }}" class="nav-list-link{% if page.url == node.url %} active{% endif %}">{{ node.title }}</a> | ||
{%- if node.has_children -%} | ||
{%- assign children_list = pages_list | where: "parent", node.title -%} | ||
<ul class="nav-list "> | ||
{%- for child in children_list -%} | ||
{%- unless child.nav_exclude -%} | ||
<li class="nav-list-item {% if page.url == child.url or page.parent == child.title %} active{% endif %}"> | ||
{%- if page.url == child.url or page.parent == child.title -%} | ||
{%- assign second_level_url = child.url | absolute_url -%} | ||
{%- endif -%} | ||
{%- if child.has_children -%} | ||
<a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a> | ||
{%- endif -%} | ||
<a href="{{ child.url | absolute_url }}" class="nav-list-link{% if page.url == child.url %} active{% endif %}">{{ child.title }}</a> | ||
{%- if child.has_children -%} | ||
{%- assign grand_children_list = pages_list | where: "parent", child.title | where: "grand_parent", node.title -%} | ||
<ul class="nav-list"> | ||
{%- for grand_child in grand_children_list -%} | ||
<li class="nav-list-item {% if page.url == grand_child.url %} active{% endif %}"> | ||
<a href="{{ grand_child.url | absolute_url }}" class="nav-list-link{% if page.url == grand_child.url %} active{% endif %}">{{ grand_child.title }}</a> | ||
</li> | ||
{%- endfor -%} | ||
</ul> | ||
{%- endif -%} | ||
</li> | ||
{%- endunless -%} | ||
{%- endfor -%} | ||
</ul> | ||
{%- endif -%} | ||
</li> | ||
{%- endif -%} | ||
{%- endunless -%} | ||
{%- if node.parent == nil -%} | ||
<li class="nav-list-item{% if page.url == node.url or page.parent == node.title or page.grand_parent == node.title %} active{% endif %}"> | ||
{%- if page.parent == node.title or page.grand_parent == node.title -%} | ||
{%- assign first_level_url = node.url | absolute_url -%} | ||
{%- endif -%} | ||
{%- if node.has_children -%} | ||
<a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a> | ||
{%- endif -%} | ||
<a href="{{ node.url | absolute_url }}" class="nav-list-link{% if page.url == node.url %} active{% endif %}">{{ node.title }}</a> | ||
{%- if node.has_children -%} | ||
{%- assign children_list = pages_list | where: "parent", node.title -%} | ||
<ul class="nav-list "> | ||
{%- for child in children_list -%} | ||
<li class="nav-list-item {% if page.url == child.url or page.parent == child.title %} active{% endif %}"> | ||
{%- if page.url == child.url or page.parent == child.title -%} | ||
{%- assign second_level_url = child.url | absolute_url -%} | ||
{%- endif -%} | ||
{%- if child.has_children -%} | ||
<a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a> | ||
{%- endif -%} | ||
<a href="{{ child.url | absolute_url }}" class="nav-list-link{% if page.url == child.url %} active{% endif %}">{{ child.title }}</a> | ||
{%- if child.has_children -%} | ||
{%- assign grand_children_list = pages_list | where: "parent", child.title | where: "grand_parent", node.title -%} | ||
<ul class="nav-list"> | ||
{%- for grand_child in grand_children_list -%} | ||
<li class="nav-list-item {% if page.url == grand_child.url %} active{% endif %}"> | ||
<a href="{{ grand_child.url | absolute_url }}" class="nav-list-link{% if page.url == grand_child.url %} active{% endif %}">{{ grand_child.title }}</a> | ||
</li> | ||
{%- endfor -%} | ||
</ul> | ||
{%- endif -%} | ||
</li> | ||
{%- endfor -%} | ||
</ul> | ||
{%- endif -%} | ||
</li> | ||
{%- endif -%} | ||
{%- endfor -%} | ||
</ul> |
Oops, something went wrong.