jekyll-theme-hydeout-funfox 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.md +11 -0
- data/README.md +189 -0
- data/_includes/back-link.html +6 -0
- data/_includes/category-links.html +12 -0
- data/_includes/comments.html +6 -0
- data/_includes/copyright.html +4 -0
- data/_includes/custom-foot.html +1 -0
- data/_includes/custom-head.html +1 -0
- data/_includes/custom-icon-links.html +1 -0
- data/_includes/custom-nav-links.html +1 -0
- data/_includes/disqus.html +43 -0
- data/_includes/favicons.html +2 -0
- data/_includes/font-includes.html +6 -0
- data/_includes/google-analytics.html +11 -0
- data/_includes/head.html +30 -0
- data/_includes/page-links.html +13 -0
- data/_includes/pagination-newer.html +8 -0
- data/_includes/pagination-older.html +8 -0
- data/_includes/post-meta.html +29 -0
- data/_includes/post-tags.html +21 -0
- data/_includes/related_posts.html +15 -0
- data/_includes/search-form.html +17 -0
- data/_includes/sidebar-icon-links.html +53 -0
- data/_includes/sidebar-nav-links.html +20 -0
- data/_includes/sidebar.html +21 -0
- data/_includes/svg/back-arrow.svg +4 -0
- data/_includes/svg/download.svg +4 -0
- data/_includes/svg/feed.svg +5 -0
- data/_includes/svg/github.svg +2 -0
- data/_includes/svg/search.svg +4 -0
- data/_includes/svg/tags.svg +4 -0
- data/_includes/tags-list.html +41 -0
- data/_layouts/category.html +21 -0
- data/_layouts/default.html +16 -0
- data/_layouts/index.html +42 -0
- data/_layouts/page.html +11 -0
- data/_layouts/post.html +18 -0
- data/_layouts/search.html +10 -0
- data/_layouts/tags.html +5 -0
- data/_sass/hydeout/_back-link.scss +10 -0
- data/_sass/hydeout/_base.scss +131 -0
- data/_sass/hydeout/_code.scss +78 -0
- data/_sass/hydeout/_layout.scss +332 -0
- data/_sass/hydeout/_masthead.scss +27 -0
- data/_sass/hydeout/_message.scss +11 -0
- data/_sass/hydeout/_pagination.scss +74 -0
- data/_sass/hydeout/_posts.scss +95 -0
- data/_sass/hydeout/_search.scss +19 -0
- data/_sass/hydeout/_syntax.scss +80 -0
- data/_sass/hydeout/_tags.scss +37 -0
- data/_sass/hydeout/_type.scss +142 -0
- data/_sass/hydeout/_variables.scss +53 -0
- data/_sass/hydeout.scss +18 -0
- data/assets/css/main.scss +6 -0
- metadata +180 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9ef4f22c05f4e2dbf097b31552c62402fa9ff77c9bddf756cf769d1f609303ce
|
4
|
+
data.tar.gz: c648f8334e8314528c549b81cc3f6be723a2b50b7c8566db1a9e108eaabd90a2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 748192c13264869ddaed8a924b13d7816d5cde0a627504cdb6ff10ddb8c84042ebbdabfd9cfa0e3cdd042caa61453521960f132258d76a7a6cce7c27c7081ece
|
7
|
+
data.tar.gz: 1d6c563fa80130a4394747b0c480e786596897f0d94adc238c7249a3d9723a81ade7dacf5fc366f44492e318f222bbe77b61e4cddf4d1f787e58ec8756f38bdf
|
data/LICENSE.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# Released under MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2013 Mark Otto.
|
4
|
+
|
5
|
+
Copyright (c) 2017 Andrew Fong.
|
6
|
+
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
8
|
+
|
9
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
10
|
+
|
11
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
# Hydeout
|
2
|
+
|
3
|
+
This project is a fork of the [original Hydeout theme](https://github.com/fongandrew/hydeout) by Andrew Fong.
|
4
|
+
This fork exists to remove SASS code that is now considered deprecated.
|
5
|
+
|
6
|
+
Hydeout updates the original [Hyde](https://github.com/poole/hyde)
|
7
|
+
theme for [Jekyll](http://jekyllrb.com) 3.x and 4.x and adds new functionality.
|
8
|
+
|
9
|
+

|
10
|
+
<img alt="Mobile home page" src="/_screenshots/2.png?raw=true" width="300px" />
|
11
|
+
<img alt="Mobile post page" src="/_screenshots/3.png?raw=true" width="300px" />
|
12
|
+
|
13
|
+
### Usage
|
14
|
+
|
15
|
+
Hydeout is available as the `jekyll-theme-hydeout-funfox` Ruby Gem.
|
16
|
+
Add `gem "jekyll-theme-hydeout-funfox", "~> 1.0"` to your Gemfile and run
|
17
|
+
`bundle install`.
|
18
|
+
|
19
|
+
If you're installing on GitHub pages, you may also have to add
|
20
|
+
`remote_theme: functional-fox/hydeout` to your `_config.yml`. [See the GitHub
|
21
|
+
instructions for more details.](https://help.github.com/articles/adding-a-jekyll-theme-to-your-github-pages-site/)
|
22
|
+
|
23
|
+
Hydeout uses pagination, so if you have an `index.md`, you'll need to swap
|
24
|
+
it with an `index.html` that uses the `index` layout:
|
25
|
+
|
26
|
+
```
|
27
|
+
---
|
28
|
+
layout: index
|
29
|
+
title: Home
|
30
|
+
---
|
31
|
+
```
|
32
|
+
|
33
|
+
You'll also need to add a setting to `_config.yml` telling Jekyll how many posts
|
34
|
+
to include per page (e.g. `paginate: 5`).
|
35
|
+
|
36
|
+
### Keep It Simple
|
37
|
+
|
38
|
+
In keeping with the original Hyde theme, Hydeout aims to keep the overall
|
39
|
+
design lightweight and plugin-free. JavaScript is currently limited only
|
40
|
+
to Disqus and Google Analytics (and is only loaded if you provide configuration
|
41
|
+
variables).
|
42
|
+
|
43
|
+
Hydeout makes heavy use of Flexbox in its CSS. If Flexbox is not available,
|
44
|
+
the CSS degrades into a single column layout.
|
45
|
+
|
46
|
+
### Customization
|
47
|
+
|
48
|
+
Hydeout replaces Hyde's class-based theming with the use
|
49
|
+
of the following SASS variables:
|
50
|
+
|
51
|
+
```scss
|
52
|
+
$sidebar-bg-color: #202020 !default;
|
53
|
+
$sidebar-fg-color: white !default;
|
54
|
+
$sidebar-sticky: true !default;
|
55
|
+
$layout-reverse: false !default;
|
56
|
+
$link-color: #268bd2 !default;
|
57
|
+
```
|
58
|
+
|
59
|
+
To override these variables, define your own variables inside a SASS file
|
60
|
+
in the `assets/css/` directory.
|
61
|
+
Then `@use` that file in your own `assets/css/main.scss` file, like so:
|
62
|
+
|
63
|
+
```scss
|
64
|
+
---
|
65
|
+
# Jekyll needs front matter for SCSS files
|
66
|
+
---
|
67
|
+
|
68
|
+
@use "colours";
|
69
|
+
@use "hydeout/variables" with (
|
70
|
+
$body-bg: colours.$grey,
|
71
|
+
$body-color: white,
|
72
|
+
$heading-color: colours.$light-pink,
|
73
|
+
$link-color: colours.$green,
|
74
|
+
$sidebar-bg-color: colours.$dark-pink,
|
75
|
+
$sidebar-sticky: false,
|
76
|
+
);
|
77
|
+
@use "hydeout";
|
78
|
+
```
|
79
|
+
|
80
|
+
Example content of `assets/css/colours.scss`:
|
81
|
+
|
82
|
+
```scss
|
83
|
+
$green: #61c200;
|
84
|
+
$grey: #363636;
|
85
|
+
$dark-pink: #9f0647;
|
86
|
+
$light-pink: #f0a2c3;
|
87
|
+
```
|
88
|
+
|
89
|
+
See the [_variables](_sass/hydeout/_variables.scss) file for other variables
|
90
|
+
you can override.
|
91
|
+
|
92
|
+
**Pay attention to the namespace of the variables you intend to override, otherwise, you will probably experience errors.**
|
93
|
+
|
94
|
+
You can see the full set of partials you can replace in the
|
95
|
+
[`_includes`](_includes) folder, but there are a few worth noting:
|
96
|
+
|
97
|
+
* `_includes/copyright.html` - Insert your own copyright here.
|
98
|
+
|
99
|
+
* `_includes/custom-head.html` - Insert custom head tags (e.g. to load your
|
100
|
+
own stylesheets)
|
101
|
+
|
102
|
+
* `_includes/custom-foot.html` - Insert custom elements at the end of the
|
103
|
+
body (e.g. for custom JS)
|
104
|
+
|
105
|
+
* `_includes/custom-nav-links.html` - Additional nav links to insert at the
|
106
|
+
end of the list of links in the sidebar.
|
107
|
+
|
108
|
+
Pro-tip: The `nav`s in the sidebar are flexboxes. Use the `order` property
|
109
|
+
to order your links.
|
110
|
+
|
111
|
+
* `_includes/custom-icon-links.html`- Additional icon links to insert at the
|
112
|
+
end of the icon links at the bottom of the sidebar. You can use the `order`
|
113
|
+
property to re-order.
|
114
|
+
|
115
|
+
* `_includes/favicons.html` - Replace references to `favicon.ico` and
|
116
|
+
`favicon.png` with your own favicons references.
|
117
|
+
|
118
|
+
* `_includes/font-includes.html` - The Abril Fatface font used for the site
|
119
|
+
title is loaded here. If you're overriding that font in the CSS, be sure
|
120
|
+
to also remove the font load reference here.
|
121
|
+
|
122
|
+
### New Features
|
123
|
+
|
124
|
+
* Hydeout adds a new tags page (accessible in the sidebar). Just create a
|
125
|
+
new page with the tags layout:
|
126
|
+
|
127
|
+
```
|
128
|
+
---
|
129
|
+
layout: tags
|
130
|
+
title: Tags
|
131
|
+
---
|
132
|
+
```
|
133
|
+
|
134
|
+
* Hydeout adds a new "category" layout for dedicated category pages.
|
135
|
+
Category pages are automatically added to the sidebar. All other pages
|
136
|
+
must have `sidebar_link: true` in their front matter to show up in
|
137
|
+
the sidebar. To create a category page, use the `category` layout"
|
138
|
+
|
139
|
+
```
|
140
|
+
---
|
141
|
+
layout: category
|
142
|
+
title: My Category
|
143
|
+
---
|
144
|
+
|
145
|
+
Description of "My Category"
|
146
|
+
```
|
147
|
+
|
148
|
+
* You can control how pages are sorted by using the `sidebar_sort_order`
|
149
|
+
parameter in the front matter. This works for both category and non-category
|
150
|
+
pages, although non-category pages will always come first. Take a look at
|
151
|
+
[`_includes/sidebar-nav-links.html`](./_includes/sidebar-nav-links.html) if
|
152
|
+
you want to customize this behavior.
|
153
|
+
|
154
|
+
```
|
155
|
+
---
|
156
|
+
layout: page
|
157
|
+
title: My page
|
158
|
+
sidebar_sort_order: 123
|
159
|
+
---
|
160
|
+
|
161
|
+
Some content.
|
162
|
+
```
|
163
|
+
|
164
|
+
* A simple redirect-to-Google search is available. Just create a page with
|
165
|
+
the `search` layout.
|
166
|
+
|
167
|
+
```
|
168
|
+
---
|
169
|
+
layout: search
|
170
|
+
title: Google Search
|
171
|
+
---
|
172
|
+
```
|
173
|
+
|
174
|
+
* Disqus integration is ready out of the box. Just add the following to
|
175
|
+
your config file:
|
176
|
+
|
177
|
+
```yaml
|
178
|
+
disqus:
|
179
|
+
shortname: my-disqus-shortname
|
180
|
+
```
|
181
|
+
|
182
|
+
If you don't want Disqus or want to use something else, override
|
183
|
+
`comments.html`.
|
184
|
+
|
185
|
+
* For Google Analytics support, define a `google_analytics` variable with
|
186
|
+
your property ID in your config file.
|
187
|
+
|
188
|
+
There's also a bunch of minor tweaks and adjustments throughout the
|
189
|
+
theme. Hope this works for you!
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{% assign back_page = site.pages | find: "name", page.back_page %}
|
2
|
+
{% if back_page != null %}
|
3
|
+
<p class="back-link">
|
4
|
+
<a href="{{ back_page.url | relative_url }}"><span class="back-arrow icon">{% include svg/back-arrow.svg %}</span>{{ back_page.short_title | default: back_page.title }}</a>
|
5
|
+
</p>
|
6
|
+
{% endif %}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{% comment %}
|
2
|
+
Dynamically generate list of links to all category pages
|
3
|
+
{% endcomment %}
|
4
|
+
{% assign pages_list = site.pages|sort:"sidebar_sort_order" %}
|
5
|
+
{% for node in pages_list %}
|
6
|
+
{% if node.title != null %}
|
7
|
+
{% if node.layout == "category" %}
|
8
|
+
<a class="category-link {% if page.url == node.url %} active{% endif %}"
|
9
|
+
href="{{ node.url | relative_url }}">{{ node.title }}</a>
|
10
|
+
{% endif %}
|
11
|
+
{% endif %}
|
12
|
+
{% endfor %}
|
@@ -0,0 +1 @@
|
|
1
|
+
<!-- Optional footer content -->
|
@@ -0,0 +1 @@
|
|
1
|
+
<!-- Additional head bits without overriding original head -->
|
@@ -0,0 +1 @@
|
|
1
|
+
<!-- Optional additional links to insert for icons links -->
|
@@ -0,0 +1 @@
|
|
1
|
+
<!-- Optional additional links to insert in sidebar nav -->
|
@@ -0,0 +1,43 @@
|
|
1
|
+
{% if site.disqus.shortname %}
|
2
|
+
<div id="disqus_thread">
|
3
|
+
<button class="disqus-load" onClick="loadDisqusComments()">
|
4
|
+
Load Comments
|
5
|
+
</button>
|
6
|
+
</div>
|
7
|
+
<script>
|
8
|
+
|
9
|
+
/**
|
10
|
+
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW
|
11
|
+
* TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
|
12
|
+
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT:s
|
13
|
+
* https://disqus.com/admin/universalcode/#configuration-variables
|
14
|
+
*/
|
15
|
+
var disqus_config = function () {
|
16
|
+
this.page.url = "{{ page.url | absolute_url }}";
|
17
|
+
this.page.identifier = "{{ page.guid or page.id }}" ||
|
18
|
+
"{{ page.url | absolute_url }}";
|
19
|
+
}
|
20
|
+
function loadDisqusComments() { // DON'T EDIT BELOW THIS LINE
|
21
|
+
var d = document, s = d.createElement('script');
|
22
|
+
s.src = '//{{ site.disqus.shortname }}.disqus.com/embed.js';
|
23
|
+
s.setAttribute('data-timestamp', +new Date());
|
24
|
+
(d.head || d.body).appendChild(s);
|
25
|
+
}
|
26
|
+
</script>
|
27
|
+
<noscript>
|
28
|
+
Please enable JavaScript to view the
|
29
|
+
<a href="https://disqus.com/?ref_noscript">comments powered by Disqus</a>.
|
30
|
+
</noscript>
|
31
|
+
|
32
|
+
{% elsif jekyll.environment != "production" %}
|
33
|
+
<p>
|
34
|
+
You are seeing this because your Disqus shortname is not properly set. To
|
35
|
+
configure Disqus, you should edit your <code>_config.yml</code> to include
|
36
|
+
either a <code>disqus.shortname</code> variable.
|
37
|
+
</p>
|
38
|
+
|
39
|
+
<p>
|
40
|
+
If you do not wish to use Disqus, override the
|
41
|
+
<code>comments.html</code> partial for this theme.
|
42
|
+
</p>
|
43
|
+
{% endif %}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{% if jekyll.environment == 'production' and site.google_analytics %}
|
2
|
+
<script>
|
3
|
+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
4
|
+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
5
|
+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
6
|
+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
7
|
+
|
8
|
+
ga('create', '{{ site.google_analytics }}', 'auto');
|
9
|
+
ga('send', 'pageview');
|
10
|
+
</script>
|
11
|
+
{% endif %}
|
data/_includes/head.html
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
<head>
|
2
|
+
<link href="https://gmpg.org/xfn/11" rel="profile" />
|
3
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
4
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
5
|
+
|
6
|
+
<!-- Enable responsiveness on mobile devices-->
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1" />
|
8
|
+
|
9
|
+
<title>
|
10
|
+
{% if page.title == "Home" %}
|
11
|
+
{{ site.title }}{% if site.tagline %} · {{ site.tagline }}{% endif %}
|
12
|
+
{% else %}
|
13
|
+
{{ page.title }} · {{ site.title }}
|
14
|
+
{% endif %}
|
15
|
+
</title>
|
16
|
+
|
17
|
+
{% include google-analytics.html %}
|
18
|
+
|
19
|
+
<!-- CSS -->
|
20
|
+
<link rel="stylesheet" href="{{ "/assets/css/main.css" | relative_url }}" />
|
21
|
+
{% include font-includes.html %}
|
22
|
+
|
23
|
+
<!-- Icons -->
|
24
|
+
{% include favicons.html %}
|
25
|
+
|
26
|
+
<!-- RSS -->
|
27
|
+
<link rel="alternate" type="application/rss+xml" title="RSS" href="{{ site.feed.path | default: 'feed.xml' | relative_url }}" />
|
28
|
+
|
29
|
+
{% include custom-head.html %}
|
30
|
+
</head>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{% comment %}
|
2
|
+
The code below dynamically generates a sidebar nav of pages with
|
3
|
+
`sidebar_link: true` in the front-matter. See readme for usage.
|
4
|
+
{% endcomment %}
|
5
|
+
{% assign pages_list = site.pages|sort:"sidebar_sort_order" %}
|
6
|
+
{% for node in pages_list %}
|
7
|
+
{% if node.title != null %}
|
8
|
+
{% if node.sidebar_link %}
|
9
|
+
<a class="page-link {% if page.url == node.url %} active{% endif %}"
|
10
|
+
href="{{ node.url | relative_url }}">{% if node.short_title != null %}{{ node.short_title }}{% else %}{{ node.title }}{% endif %}</a>
|
11
|
+
{% endif %}
|
12
|
+
{% endif %}
|
13
|
+
{% endfor %}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<div class="post-meta">
|
2
|
+
<span class="post-date">{{ include.post.date | date_to_string }}</span>
|
3
|
+
<span class="post-categories">
|
4
|
+
{% for category in include.post.categories %}
|
5
|
+
•
|
6
|
+
|
7
|
+
{% comment %}
|
8
|
+
Check if this category has a corresponding page before decide
|
9
|
+
to link to it. This is an O(n^2) operations so consider removing
|
10
|
+
it and linking for all categories (or no categories) if this
|
11
|
+
site has a lot of pages and/or a lot of categories.
|
12
|
+
{% endcomment %}
|
13
|
+
{% assign category_page = false %}
|
14
|
+
{% for node in site.pages %}
|
15
|
+
{% if node.category == category or node.title == category %}
|
16
|
+
{% assign category_page = node %}
|
17
|
+
{% endif %}
|
18
|
+
{% endfor %}
|
19
|
+
|
20
|
+
{% if category_page %}
|
21
|
+
<a href="{{ category_page.url | relative_url }}">
|
22
|
+
{{ category_page.title | default: category_page.category }}
|
23
|
+
</a>
|
24
|
+
{% else %}
|
25
|
+
{{ category }}
|
26
|
+
{% endif %}
|
27
|
+
{% endfor %}
|
28
|
+
</span>
|
29
|
+
</div>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{% comment %}
|
2
|
+
Check if we have a tags page active before linking to it.
|
3
|
+
{% endcomment %}
|
4
|
+
{% assign tags_page = false %}
|
5
|
+
{% for node in site.pages %}
|
6
|
+
{% if node.layout == "tags" %}
|
7
|
+
{% assign tags_page = node %}
|
8
|
+
{% endif %}
|
9
|
+
{% endfor %}
|
10
|
+
|
11
|
+
<div class="post-tags">
|
12
|
+
{% for tag in include.post.tags %}
|
13
|
+
{% if tags_page %}
|
14
|
+
<a href="{{ tags_page.url | relative_url }}#{{ tag | slugify }}">
|
15
|
+
{% else %}<span>{% endif %}
|
16
|
+
<span class="icon">
|
17
|
+
{% include svg/tags.svg %}
|
18
|
+
</span> <span class="tag-name">{{ tag }}</span>
|
19
|
+
{% if tags_page %}</a>{% else %}</span>{% endif %}
|
20
|
+
{% endfor %}
|
21
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<section class="related">
|
2
|
+
<h2>Related Posts</h2>
|
3
|
+
<ul class="posts-list">
|
4
|
+
{% for post in site.related_posts limit:3 %}
|
5
|
+
<li>
|
6
|
+
<h3>
|
7
|
+
<a href="{{ post.url | relative_url }}">
|
8
|
+
{{ post.title }}
|
9
|
+
<small>{{ post.date | date_to_string }}</small>
|
10
|
+
</a>
|
11
|
+
</h3>
|
12
|
+
</li>
|
13
|
+
{% endfor %}
|
14
|
+
</ul>
|
15
|
+
</section>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<form action="https://google.com/search" class="search-form">
|
2
|
+
<div class="search-row">
|
3
|
+
<input id="search-bar" type="search" name="q" />
|
4
|
+
|
5
|
+
{% comment %}
|
6
|
+
Hacky strip of protocol to the sitesearch value we pass to Google
|
7
|
+
{% endcomment %}
|
8
|
+
{% assign url = site.url | replace_first: 'https://', '' %}
|
9
|
+
{% assign url = url | replace_first: 'http://', '' %}
|
10
|
+
{% assign url = url | replace_first: 'spdy://', '' %}
|
11
|
+
{% assign url = url | replace_first: '//', '' %}
|
12
|
+
<input name="sitesearch" type="hidden"
|
13
|
+
value="{{ url }}{{ "/" | relative_url }}" />
|
14
|
+
|
15
|
+
<input type="submit" value="Search" />
|
16
|
+
</div>
|
17
|
+
</form>
|
@@ -0,0 +1,53 @@
|
|
1
|
+
<nav id="sidebar-icon-links">
|
2
|
+
{% if site.hydeout.repo %}
|
3
|
+
<a id="github-link"
|
4
|
+
class="icon" title="Github Project" aria-label="Github Project"
|
5
|
+
href="{{ site.hydeout.repo }}">
|
6
|
+
{% include svg/github.svg %}
|
7
|
+
</a>
|
8
|
+
<a id="github-download-link"
|
9
|
+
class="icon" title="Download" aria-label="Download"
|
10
|
+
href="{{ site.hydeout.repo }}/archive/v{{ site.hydeout.version }}.zip">
|
11
|
+
{% include svg/download.svg %}
|
12
|
+
</a>
|
13
|
+
{% endif %}
|
14
|
+
|
15
|
+
<a id="subscribe-link"
|
16
|
+
class="icon" title="Subscribe" aria-label="Subscribe"
|
17
|
+
href="{{ site.feed.path | default: 'feed.xml' | relative_url }}">
|
18
|
+
{% include svg/feed.svg %}
|
19
|
+
</a>
|
20
|
+
|
21
|
+
{% comment %}
|
22
|
+
Check if we have tag or search pages page active before linking to it.
|
23
|
+
{% endcomment %}
|
24
|
+
{% assign tags_page = false %}
|
25
|
+
{% assign search_page = false %}
|
26
|
+
{% for node in site.pages %}
|
27
|
+
{% if node.layout == "tags" %}
|
28
|
+
{% assign tags_page = node %}
|
29
|
+
{% elsif node.layout == "search" %}
|
30
|
+
{% assign search_page = node %}
|
31
|
+
{% endif %}
|
32
|
+
{% endfor %}
|
33
|
+
|
34
|
+
{% if tags_page %}
|
35
|
+
<a id="tags-link"
|
36
|
+
class="icon{% if page.url == '/tags' %} active{% endif %}"
|
37
|
+
title="Tags" aria-label="Tags"
|
38
|
+
href="{{ tags_page.url | relative_url }}">
|
39
|
+
{% include svg/tags.svg %}
|
40
|
+
</a>
|
41
|
+
{% endif %}
|
42
|
+
|
43
|
+
{% if search_page %}
|
44
|
+
<a id="search-link"
|
45
|
+
class="icon{% if page.url == '/search' %} active{% endif %}"
|
46
|
+
title="Search" aria-label="Search"
|
47
|
+
href="{{ search_page.url | relative_url }}">
|
48
|
+
{% include svg/search.svg %}
|
49
|
+
</a>
|
50
|
+
{% endif %}
|
51
|
+
|
52
|
+
{% include custom-icon-links.html %}
|
53
|
+
</nav>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<nav id="sidebar-nav-links">
|
2
|
+
{% if site.sidebar_home_link %}
|
3
|
+
<a class="home-link {% if page.url == '/' %} active{% endif %}"
|
4
|
+
href="{{ "/" | relative_url }}">Home</a>
|
5
|
+
{% endif %}
|
6
|
+
{% if site.sidebar_blog_link %}
|
7
|
+
<a class="page-link {% if page.url == site.sidebar_blog_link %} active{% endif %}"
|
8
|
+
href="{{ site.sidebar_blog_link | relative_url }}">Blog</a>
|
9
|
+
{% endif %}
|
10
|
+
|
11
|
+
{% comment %}
|
12
|
+
The code below dynamically generates a sidebar nav of pages with
|
13
|
+
`sidebar_link: true` in the front-matter. See readme for usage.
|
14
|
+
{% endcomment %}
|
15
|
+
|
16
|
+
{% include page-links.html %}
|
17
|
+
{% include category-links.html %}
|
18
|
+
|
19
|
+
{% include custom-nav-links.html %}
|
20
|
+
</nav>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<div id="sidebar">
|
2
|
+
<header>
|
3
|
+
<{% if page.layout == "index" %}h1{% else %}div{% endif %} class="site-title">
|
4
|
+
<a href="{{ "/" | relative_url }}">
|
5
|
+
{% unless page.url == "/" %}
|
6
|
+
<span class="back-arrow icon">{% include svg/back-arrow.svg %}</span>
|
7
|
+
{% endunless %}
|
8
|
+
{{ site.title }}
|
9
|
+
</a>
|
10
|
+
</{% if page.layout == "index" %}h1{% else %}div{% endif %}>
|
11
|
+
<p class="lead">{{ site.description }}</p>
|
12
|
+
</header>
|
13
|
+
{% include sidebar-nav-links.html %}
|
14
|
+
|
15
|
+
{% if site.version %}
|
16
|
+
<span class="site-version">Currently v{{ site.version }}</span>
|
17
|
+
{% endif %}
|
18
|
+
|
19
|
+
{% include sidebar-icon-links.html %}
|
20
|
+
{% include copyright.html %}
|
21
|
+
</div>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<path d="M0 0h24v24H0z" fill="none"/>
|
3
|
+
<circle cx="6.18" cy="17.82" r="2.18"/>
|
4
|
+
<path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/>
|
5
|
+
</svg>
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 28" height="24" width="28"><path d="M12 2c6.625 0 12 5.375 12 12 0 5.297-3.437 9.797-8.203 11.391-0.609 0.109-0.828-0.266-0.828-0.578 0-0.391 0.016-1.687 0.016-3.297 0-1.125-0.375-1.844-0.812-2.219 2.672-0.297 5.484-1.313 5.484-5.922 0-1.313-0.469-2.375-1.234-3.219 0.125-0.313 0.531-1.531-0.125-3.187-1-0.313-3.297 1.234-3.297 1.234-0.953-0.266-1.984-0.406-3-0.406s-2.047 0.141-3 0.406c0 0-2.297-1.547-3.297-1.234-0.656 1.656-0.25 2.875-0.125 3.187-0.766 0.844-1.234 1.906-1.234 3.219 0 4.594 2.797 5.625 5.469 5.922-0.344 0.313-0.656 0.844-0.766 1.609-0.688 0.313-2.438 0.844-3.484-1-0.656-1.141-1.844-1.234-1.844-1.234-1.172-0.016-0.078 0.734-0.078 0.734 0.781 0.359 1.328 1.75 1.328 1.75 0.703 2.141 4.047 1.422 4.047 1.422 0 1 0.016 1.937 0.016 2.234 0 0.313-0.219 0.688-0.828 0.578-4.766-1.594-8.203-6.094-8.203-11.391 0-6.625 5.375-12 12-12zM4.547 19.234c0.031-0.063-0.016-0.141-0.109-0.187-0.094-0.031-0.172-0.016-0.203 0.031-0.031 0.063 0.016 0.141 0.109 0.187 0.078 0.047 0.172 0.031 0.203-0.031zM5.031 19.766c0.063-0.047 0.047-0.156-0.031-0.25-0.078-0.078-0.187-0.109-0.25-0.047-0.063 0.047-0.047 0.156 0.031 0.25 0.078 0.078 0.187 0.109 0.25 0.047zM5.5 20.469c0.078-0.063 0.078-0.187 0-0.297-0.063-0.109-0.187-0.156-0.266-0.094-0.078 0.047-0.078 0.172 0 0.281s0.203 0.156 0.266 0.109zM6.156 21.125c0.063-0.063 0.031-0.203-0.063-0.297-0.109-0.109-0.25-0.125-0.313-0.047-0.078 0.063-0.047 0.203 0.063 0.297 0.109 0.109 0.25 0.125 0.313 0.047zM7.047 21.516c0.031-0.094-0.063-0.203-0.203-0.25-0.125-0.031-0.266 0.016-0.297 0.109s0.063 0.203 0.203 0.234c0.125 0.047 0.266 0 0.297-0.094zM8.031 21.594c0-0.109-0.125-0.187-0.266-0.172-0.141 0-0.25 0.078-0.25 0.172 0 0.109 0.109 0.187 0.266 0.172 0.141 0 0.25-0.078 0.25-0.172zM8.937 21.438c-0.016-0.094-0.141-0.156-0.281-0.141-0.141 0.031-0.234 0.125-0.219 0.234 0.016 0.094 0.141 0.156 0.281 0.125s0.234-0.125 0.219-0.219z"></path>
|
2
|
+
</svg>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
|
3
|
+
<path d="M0 0h24v24H0z" fill="none"/>
|
4
|
+
</svg>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<path d="M0 0h24v24H0z" fill="none"/>
|
3
|
+
<path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/>
|
4
|
+
</svg>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<!-- See https://blog.lanyonm.org/articles/2013/11/21/alphabetize-jekyll-page-tags-pure-liquid.html -->
|
2
|
+
<!-- With added pipe to handle lack of sort_natural -->
|
3
|
+
{% capture site_tags %}{% for tag in site.tags %}{{ tag | first | downcase }}|{{ tag | first }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
|
4
|
+
<!-- site_tags: {{ site_tags }} -->
|
5
|
+
{% assign tag_words = site_tags | split:',' | sort %}
|
6
|
+
<!-- tag_words: {{ tag_words }} -->
|
7
|
+
|
8
|
+
<div id="tags-page">
|
9
|
+
<div class="tags-list">
|
10
|
+
{% for tag_pair in tag_words %}
|
11
|
+
{% assign tag = tag_pair | split:'|' | last %}
|
12
|
+
<a href="#{{ tag | slugify }}" class="tag-link">
|
13
|
+
<span class="tag-name">{{ tag }}</span>
|
14
|
+
<span class="tag-count">{{ site.tags[tag] | size }}</span>
|
15
|
+
</a>
|
16
|
+
{% endfor %}
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<hr/>
|
20
|
+
|
21
|
+
<div class="posts-by-tag">
|
22
|
+
{% for tag_pair in tag_words %}
|
23
|
+
{% assign tag = tag_pair | split:'|' | last %}
|
24
|
+
<div id="{{ tag | slugify }}" class="posts-for-tag">
|
25
|
+
<h2>{{ tag }}</h2>
|
26
|
+
<ul class="posts-list">
|
27
|
+
{% for post in site.tags[tag] %}
|
28
|
+
<li>
|
29
|
+
<h3>
|
30
|
+
<a href="{{ post.url | relative_url }}">
|
31
|
+
{{ post.title }}
|
32
|
+
<small>{{ post.date | date_to_string }}</small>
|
33
|
+
</a>
|
34
|
+
</h3>
|
35
|
+
</li>
|
36
|
+
{% endfor %}
|
37
|
+
</ul>
|
38
|
+
</div>
|
39
|
+
{% endfor %}
|
40
|
+
</div>
|
41
|
+
</div>
|