jekyll-theme-horizon-flow 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +41 -21
- data/_config.yml +32 -8
- data/_includes/comments.html +127 -0
- data/_includes/footer.html +72 -70
- data/_layouts/archive.html +6 -10
- data/_layouts/categories.html +5 -11
- data/_layouts/home.html +3 -2
- data/_layouts/post.html +61 -46
- data/_layouts/search.html +1 -1
- data/_layouts/tags.html +6 -9
- data/_posts/2021-01-01-markdown-test-page.md +1 -0
- data/_posts/2022-12-12-chatgpt-testpost-all-markdown-elements.md +1 -1
- data/_posts/2023-07-13-title-for-champions.md +3 -0
- data/_sass/default/_base.scss +34 -6
- data/_sass/default/_footer.scss +131 -57
- data/_sass/default/_header.scss +6 -12
- data/_sass/external/_comments.scss +106 -0
- data/_sass/external/_normalize.scss +3 -0
- data/_sass/functions/_mixins.scss +134 -8
- data/_sass/functions/_values.scss +10 -1
- data/_sass/jekyll-theme-horizon-flow.scss +4 -3
- data/_sass/layouts/_archive.scss +4 -6
- data/_sass/layouts/_categories.scss +5 -4
- data/_sass/layouts/_home.scss +26 -40
- data/_sass/layouts/_post.scss +139 -37
- data/_sass/layouts/_tags.scss +5 -0
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c647058ba28712037b2b276685ef637181cebaf265936fa6fe33851bfd33dbd
|
4
|
+
data.tar.gz: cecdc33724d7eb33c8f82f478b7350467521716b16928e03d178e3b586421794
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 135dfa6cfba4c0de80dff89de1e9d8c9faea873f01614290b43c61b5546d1f1889232de0f1c9933ac1ec8443c97efca37189b93904f5a6a135beadef6821548e
|
7
|
+
data.tar.gz: 2bf8d58ff86af1d06aa699f6242c9d3491063dc32cb927eeafa73b5a6637c9aeaa14f6d0309c5354732c576c0cef54741f60d4752b23e1e4f95345dfe249ebe5
|
data/README.md
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# [Horizon Flow Jekyll Theme](https://papierkorp.github.io/jekyll-theme-horizon-flow/)
|
2
2
|
|
3
|
-
<!-- MarkdownTOC -->
|
4
|
-
|
5
3
|
- [Installation](#installation)
|
6
4
|
- [Configuration](#configuration)
|
7
5
|
- [Site URL](#site-url)
|
@@ -15,6 +13,7 @@
|
|
15
13
|
- [Read Time](#read-time)
|
16
14
|
- [default plugins](#default-plugins)
|
17
15
|
- [Configurable Labels](#configurable-labels)
|
16
|
+
- [Comments](#comments)
|
18
17
|
- [Front Matter](#front-matter)
|
19
18
|
- [Layouts](#layouts-1)
|
20
19
|
- [`layout: default`](#layout-default)
|
@@ -26,13 +25,11 @@
|
|
26
25
|
- [`layout: tags`](#layout-tags)
|
27
26
|
- [whislist](#whislist)
|
28
27
|
|
29
|
-
<!-- /MarkdownTOC -->
|
30
|
-
|
31
|
-
|
32
28
|
|
33
29
|
[![LICENSE](https://img.shields.io/badge/license-MIT-lightgrey.svg?style=flat-square)](https://raw.githubusercontent.com/papierkorp/jekyll-theme-horizon-flow/main/LICENSE.txt)
|
34
30
|
[![Jekyll](https://img.shields.io/badge/jekyll-%3E%3D%203.6-blue.svg?style=flat-square)](https://jekyllrb.com/)
|
35
|
-
[![
|
31
|
+
[![Gem Version](https://badge.fury.io/rb/jekyll-theme-horizon-flow.svg)](https://badge.fury.io/rb/jekyll-theme-horizon-flow)
|
32
|
+
|
36
33
|
|
37
34
|
This is my first ever theme or anything like this so I got a whole damn LOT of Inspiration and Ideas of the [So Simple](https://github.com/mmistakes/so-simple-theme/tree/master) theme from [mmistakes](https://github.com/mmistakes). Also i almost completly copied his readme pls forgive me <3.
|
38
35
|
|
@@ -40,20 +37,19 @@ This theme can offer:
|
|
40
37
|
|
41
38
|
* Custom Navigation
|
42
39
|
* Dynamically created Footer with Font Awesome Icons and Social Links
|
43
|
-
*
|
40
|
+
* optional, flexible and customizable Footer-Sidebar (above the Footer)
|
41
|
+
* include up to 5 elements in the Footer-sidebar, choosen between 4 premade ones and self created ones
|
44
42
|
* SEO best practices via [Jekyll SEO Tag](https://github.com/jekyll/jekyll-seo-tag)
|
45
|
-
* Javascript free besides the optional search page
|
43
|
+
* Javascript free besides the optional search page and the optional comments
|
46
44
|
* supports tags and categories
|
47
45
|
* offers an archive
|
48
46
|
* Carefully designed posts for almost all Markup elements
|
49
47
|
* Activateable TOC and to the TOP Buttons for each post
|
48
|
+
* Mobile Friendly
|
49
|
+
* Highly Customizable
|
50
|
+
* optional server-free [Comments](https://www.aleksandrhovhannisyan.com/blog/jekyll-comment-system-github-issues/#how-to-add-comments-to-a-jekyll-blog) with Github Issues (hosted on Github)
|
50
51
|
|
51
52
|
![Horizon Flow Screenshots](https://papierkorp.github.io/jekyll-theme-horizon-flow/screenshot.png)
|
52
|
-
![Horizon Flow Screenshots](https://papierkorp.github.io/jekyll-theme-horizon-flow/post.png)
|
53
|
-
![Horizon Flow Screenshots](https://papierkorp.github.io/jekyll-theme-horizon-flow/post_toc.png)
|
54
|
-
![Horizon Flow Screenshots](https://papierkorp.github.io/jekyll-theme-horizon-flow/categories.png)
|
55
|
-
![Horizon Flow Screenshots](https://papierkorp.github.io/jekyll-theme-horizon-flow/tags.png)
|
56
|
-
![Horizon Flow Screenshots](https://papierkorp.github.io/jekyll-theme-horizon-flow/archive.png)
|
57
53
|
|
58
54
|
|
59
55
|
## Installation
|
@@ -220,6 +216,7 @@ As for the possible Configurations this theme offers take note of the following:
|
|
220
216
|
* [Read Time](#read-time)
|
221
217
|
* [default plugins](#default-plugins)
|
222
218
|
* [Configurable Labels](#configurable-labels)
|
219
|
+
* [Comments](#comments)
|
223
220
|
|
224
221
|
### Site URL
|
225
222
|
|
@@ -371,7 +368,7 @@ footer_links:
|
|
371
368
|
### Layouts
|
372
369
|
|
373
370
|
In here you can define the amount of columns used to display all tags/categories/years via the `_config`.
|
374
|
-
Available values are `
|
371
|
+
Available values are `0-5`.
|
375
372
|
|
376
373
|
```yaml
|
377
374
|
layouts:
|
@@ -387,7 +384,7 @@ layouts:
|
|
387
384
|
### Footer Sidebar
|
388
385
|
|
389
386
|
The footer Sidebar is the content directly above the footer.
|
390
|
-
Per default there are
|
387
|
+
Per default there are 6 elements available:
|
391
388
|
|
392
389
|
**description:** Uses the `description:` of `_config` to display all the data from there. For the best experience you should use an <h1></h1> on the top.
|
393
390
|
**categories:** Shows random categories according to the count.
|
@@ -410,6 +407,8 @@ description: >- # this means to ignore newlines until
|
|
410
407
|
</p>
|
411
408
|
|
412
409
|
footer_sidebar:
|
410
|
+
enabled: true
|
411
|
+
auto: false # false = all elements will have the same width, true = each element takes what it needs
|
413
412
|
arrangement: # you can rearrange the positions of the elements
|
414
413
|
- description # will be the first one to be displayed
|
415
414
|
- tags # second in the row ...
|
@@ -417,25 +416,34 @@ footer_sidebar:
|
|
417
416
|
- recentposts # will be displayed last
|
418
417
|
description:
|
419
418
|
enabled: true # default: true
|
419
|
+
columns: 2 # default: 0 - if you include a list
|
420
420
|
categories:
|
421
421
|
enabled: true # default: false
|
422
422
|
count: 100 # default: 100
|
423
|
+
columns: 5 # default: 0
|
423
424
|
tags:
|
424
425
|
enabled: true # default: false
|
425
426
|
count: 100 # default: 100
|
427
|
+
columns: 5 # default: 0
|
426
428
|
recentposts:
|
427
429
|
enabled: true # default: true
|
428
|
-
count: 10 # default:
|
430
|
+
count: 10 # default: 5
|
431
|
+
columns: 2 # default: 0
|
429
432
|
custom_content:
|
430
433
|
enabled: true
|
431
434
|
data: >-
|
432
435
|
<h3>EXTRACONTENT</h3>
|
433
436
|
<p>not really content though...</p>
|
437
|
+
columns: 2 # default: 0 - if you include a list
|
434
438
|
custom_content2:
|
435
439
|
enabled: false
|
436
440
|
data: "<h3>mhm</h3>"
|
441
|
+
columns: 2 # default: 0 - if you include a list
|
437
442
|
```
|
438
443
|
|
444
|
+
The default of `0` stands for automatic alignment.
|
445
|
+
|
446
|
+
|
439
447
|
### Table of Contents
|
440
448
|
|
441
449
|
Take a look at the [Front Matter](#front-matter) on how to disable the TOC.
|
@@ -520,6 +528,21 @@ categories_nothing_found: "No categories available."
|
|
520
528
|
```
|
521
529
|
|
522
530
|
|
531
|
+
### Comments
|
532
|
+
|
533
|
+
This theme enables the use of Comments per Github Issues API (taken from [here](https://www.aleksandrhovhannisyan.com/blog/jekyll-comment-system-github-issues/#how-to-add-comments-to-a-jekyll-blog)).
|
534
|
+
To enable comments you will need the following Config:
|
535
|
+
|
536
|
+
```yaml
|
537
|
+
issues_repo: YourUsername/RepoName # e.g.: issues_repo: papierkorp/blog
|
538
|
+
```
|
539
|
+
|
540
|
+
In addition you will have to open up a Issue for each blog post manually and copy the ID of this Issue.
|
541
|
+
Afterwards add this Front Matter to your Post:
|
542
|
+
|
543
|
+
```yaml
|
544
|
+
comments_id: 1
|
545
|
+
```
|
523
546
|
|
524
547
|
---
|
525
548
|
|
@@ -533,6 +556,7 @@ This theme offers the following Front-Matter:
|
|
533
556
|
|--------|------------------|-----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
|
534
557
|
| `post` | subtitle | Adds a subtitle to the post (optional) | ---<br>subtitle: "You're going to love this." <br>--- |
|
535
558
|
| `post` | display_toc | true or false, shows the toc button on the bottom right (default: true) | ---<br>display_toc: false <br>--- |
|
559
|
+
| `post` | display_toc2 | true or false, shows another toc on the right side permanently (default: false) | ---<br>display_toc2: true <br>--- |
|
536
560
|
| `post` | last_modified_at | Add extra meta-data when the post was last modified. It takes the date as you write it like a string. | ---<br>last_modified_at: 10.09.2023 <br>--- |
|
537
561
|
| `post` | search_keywords | Add extra data to the [search.json](#layout-:-search) file | ---<br>search_keywords: "words i didnt use in the tags" <br>--- |
|
538
562
|
| `post` | toTop | true or false, shows the "To the Top" button on the bottom left (default: true) | ---<br>toTop: false <br>--- |
|
@@ -540,6 +564,7 @@ This theme offers the following Front-Matter:
|
|
540
564
|
| `post` | noheader | Disable the whole header and only show the Content. (default: false) | ---<br>noheader: true <br>--- |
|
541
565
|
| `post` | searchable | The post wont be included in the search. | ---<br>searchable: false <br>--- |
|
542
566
|
| `post` | show_supplements | The supplements (date, readtime, tags...) wont be shown. | ---<br>show_supplements: false<br><br>--- |
|
567
|
+
| `post` | comments_id | If you want to enable comments (hosted on Github - needs the neccessary config set) | ---<br>comments_id: 1<br><br>--- |
|
543
568
|
| `home` | noheader | Disable the whole header and only show the Content. (default: false) | ---<br>noheader: true <br>--- |
|
544
569
|
|
545
570
|
---
|
@@ -610,9 +635,4 @@ There is no front matter for it.
|
|
610
635
|
|
611
636
|
# whislist
|
612
637
|
|
613
|
-
- footer
|
614
|
-
+ make the columns in the footer-sidebar (tags, categories, recent posts) configurable
|
615
|
-
+ fix for mobile screens
|
616
|
-
- post
|
617
|
-
+ fix TOC for mobile screens
|
618
638
|
- more colors
|
data/_config.yml
CHANGED
@@ -54,13 +54,27 @@ plugins:
|
|
54
54
|
# - vendor/gems/
|
55
55
|
# - vendor/ruby/
|
56
56
|
|
57
|
+
#------------------------------------AddOns------------------------------------
|
58
|
+
|
59
|
+
issues_repo: papierkorp/blog
|
60
|
+
|
57
61
|
#------------------------------------Horizon Flow specific------------------------------------
|
58
62
|
|
59
63
|
navigation:
|
60
64
|
- title: Home
|
61
65
|
url: /index.html
|
66
|
+
- title: Categories
|
67
|
+
url: /categories.html
|
68
|
+
- title: Tags
|
69
|
+
url: /tags.html
|
70
|
+
- title: Archive
|
71
|
+
url: /archive.html
|
72
|
+
- title: Search
|
73
|
+
url: /search.html
|
62
74
|
|
63
75
|
footer_sidebar:
|
76
|
+
enabled: true
|
77
|
+
auto: true
|
64
78
|
arrangement:
|
65
79
|
- description
|
66
80
|
- tags
|
@@ -70,31 +84,41 @@ footer_sidebar:
|
|
70
84
|
enabled: true
|
71
85
|
categories:
|
72
86
|
enabled: true
|
73
|
-
count: 100
|
74
|
-
columns: 1
|
75
87
|
tags:
|
76
88
|
enabled: true
|
77
|
-
count: 100
|
78
|
-
columns: 3
|
79
89
|
recentposts:
|
80
90
|
enabled: true
|
81
|
-
count: 10
|
82
|
-
columns: 2
|
83
91
|
|
84
92
|
footer_links:
|
85
93
|
- title: Feed
|
86
94
|
url: /feed.xml
|
87
95
|
icon: fa fa-rss
|
96
|
+
- title: GitHub
|
97
|
+
url: https://github.com/papierkorp
|
98
|
+
icon: fa fa-github
|
99
|
+
- title: Email
|
100
|
+
url: mailto:xxx@test.de
|
101
|
+
icon: fa fa-envelope
|
102
|
+
- title: Twitter
|
103
|
+
url: https://twitter.com
|
104
|
+
icon: fa fa-twitter
|
105
|
+
- title: Facebook
|
106
|
+
url: https://facebook.com
|
107
|
+
icon: fa fa-facebook
|
108
|
+
- title: Instagram
|
109
|
+
url: https://instagram.com
|
110
|
+
icon: fa fa-instagram
|
111
|
+
- title: Impressum
|
112
|
+
url: /impressum.html
|
88
113
|
|
89
114
|
defaults:
|
90
115
|
-
|
91
116
|
scope:
|
92
117
|
path: "_posts"
|
93
118
|
values:
|
94
|
-
toc: yes
|
95
119
|
display_toc: true
|
96
120
|
|
97
|
-
paginate:
|
121
|
+
paginate: 3
|
98
122
|
paginate_path: "/:num/"
|
99
123
|
|
100
124
|
read_time_after: "min read"
|
@@ -0,0 +1,127 @@
|
|
1
|
+
{% assign issues_repo = site.issues_repo %}
|
2
|
+
{% assign issue_id = include.issue_id %}
|
3
|
+
|
4
|
+
<section id="comments">
|
5
|
+
<div class="comment-actions">
|
6
|
+
<h2><span id="comments-count"></span> Comments</h2>
|
7
|
+
<a
|
8
|
+
class="comment_button"
|
9
|
+
href="https://github.com/{{ issues_repo }}/issues/{{ issue_id }}"
|
10
|
+
target="_blank"
|
11
|
+
>
|
12
|
+
Comment on Github
|
13
|
+
<i class="fa fa-external-link" aria-hidden="true">
|
14
|
+
|
15
|
+
</i>
|
16
|
+
</a>
|
17
|
+
</div>
|
18
|
+
<div id="comments-wrapper">
|
19
|
+
Loading...
|
20
|
+
</div>
|
21
|
+
</section>
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
<script>
|
26
|
+
const commentsSection = document.getElementById('comments');
|
27
|
+
const commentsWrapper = commentsSection.querySelector('#comments-wrapper');
|
28
|
+
const commentsCount = commentsSection.querySelector('#comments-count');
|
29
|
+
|
30
|
+
const commentsObserver = new IntersectionObserver((entries, self) => {
|
31
|
+
entries.forEach((entry) => {
|
32
|
+
if (entry.isIntersecting) {
|
33
|
+
fetchComments(); // this is the important part
|
34
|
+
self.unobserve(entry.target);
|
35
|
+
}
|
36
|
+
});
|
37
|
+
}, { rootMargin: '200px 0px 0px 0px' });
|
38
|
+
|
39
|
+
commentsObserver.observe(commentsSection);
|
40
|
+
|
41
|
+
const fetchComments = async () => {
|
42
|
+
try {
|
43
|
+
const comments = await (await fetch(
|
44
|
+
'https://api.github.com/repos/{{ issues_repo }}/issues/{{ issue_id }}/comments'
|
45
|
+
)).json();
|
46
|
+
initRenderComments(comments);
|
47
|
+
} catch (e) {
|
48
|
+
commentsWrapper.innerHTML = `<p>Unable to retrieve the comments for this post.</p>`;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
const loadScript = (src) => {
|
53
|
+
const scriptElement = document.createElement('script');
|
54
|
+
document.body.appendChild(scriptElement);
|
55
|
+
|
56
|
+
return new Promise((resolve) => {
|
57
|
+
scriptElement.onload = resolve;
|
58
|
+
|
59
|
+
// Important to register onload before setting src
|
60
|
+
scriptElement.src = src;
|
61
|
+
});
|
62
|
+
}
|
63
|
+
|
64
|
+
const commentScripts = [
|
65
|
+
'https://unpkg.com/marked@0.3.6/marked.min.js',
|
66
|
+
'https://unpkg.com/dompurify@1.0.8/dist/purify.min.js',
|
67
|
+
'https://unpkg.com/dayjs@1.8.21/dayjs.min.js',
|
68
|
+
'https://unpkg.com/dayjs@1.7.8/plugin/relativeTime.js',
|
69
|
+
];
|
70
|
+
|
71
|
+
// Reminder: this gets called when the viewport intersects with the comments section
|
72
|
+
const initRenderComments = async (comments) => {
|
73
|
+
if (!comments.length) {
|
74
|
+
commentsWrapper.innerHTML = `<p>No comments yet 👀 Be the first to post!</p>`;
|
75
|
+
return;
|
76
|
+
}
|
77
|
+
|
78
|
+
// Load all comment script dependencies async
|
79
|
+
await Promise.all(commentScripts.map((script) => loadScript(script)));
|
80
|
+
renderComments(comments);
|
81
|
+
}
|
82
|
+
|
83
|
+
const renderComments = (comments) => {
|
84
|
+
// load the relativeTime plugin for dayjs so we can express dates relative to now
|
85
|
+
dayjs.extend(dayjs_plugin_relativeTime);
|
86
|
+
|
87
|
+
commentsCount.innerText = `${comments.length}`;
|
88
|
+
|
89
|
+
const commentsList = document.createElement('ol');
|
90
|
+
commentsList.className = 'comments-list';
|
91
|
+
commentsList.setAttribute('aria-label', 'Comments on this blog post');
|
92
|
+
|
93
|
+
commentsList.innerHTML = comments
|
94
|
+
.sort((comment1, comment2) => {
|
95
|
+
return comment1.created_at < comment2.created_at ? 1 : -1;
|
96
|
+
})
|
97
|
+
.map(comment => {
|
98
|
+
const datePosted = dayjs(comment.created_at).fromNow();
|
99
|
+
const user = comment.user;
|
100
|
+
const body = DOMPurify.sanitize(marked(comment.body));
|
101
|
+
const postedByAuthor = comment.author_association === 'OWNER';
|
102
|
+
const edited = comment.created_at !== comment.updated_at;
|
103
|
+
|
104
|
+
return `<li class="comment">
|
105
|
+
<div class="commenter">
|
106
|
+
<img src="${user.avatar_url}" alt="" aria-hidden="true" class="avatar" />
|
107
|
+
<a
|
108
|
+
href="https://github.com/${user.login}"
|
109
|
+
class="username"
|
110
|
+
target="_blank"
|
111
|
+
>${user.login}</a
|
112
|
+
>
|
113
|
+
<div class="date-posted">commented <time datetime="${comment.created_at}">${datePosted}</time></div>
|
114
|
+
${postedByAuthor ? '<span class="tag author-badge">Author</span>' : ''}
|
115
|
+
${edited ? `<span class="comment-edited">Edited</span>` : ''}
|
116
|
+
</div>
|
117
|
+
<div class="comment-body">${body}</div>
|
118
|
+
</li>`;
|
119
|
+
})
|
120
|
+
.join('');
|
121
|
+
|
122
|
+
commentsWrapper.innerHTML = '';
|
123
|
+
commentsWrapper.appendChild(commentsList);
|
124
|
+
}
|
125
|
+
|
126
|
+
|
127
|
+
</script>
|
data/_includes/footer.html
CHANGED
@@ -9,77 +9,79 @@
|
|
9
9
|
<footer>
|
10
10
|
|
11
11
|
|
12
|
-
{% if site.footer_sidebar.
|
13
|
-
|
14
|
-
{%
|
15
|
-
{%
|
16
|
-
|
17
|
-
{
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
{
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
{
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
<
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
{%
|
34
|
-
|
35
|
-
{%
|
12
|
+
{% if site.footer_sidebar.enabled %}
|
13
|
+
{% if site.footer_sidebar.arrangement %}
|
14
|
+
<aside class="footer_sidebar footer_aside{% if site.footer_sidebar.auto %}_auto{% endif %}">
|
15
|
+
{% for section in site.footer_sidebar.arrangement %}
|
16
|
+
{% if section == 'description' and site.footer_sidebar.description.enabled %}
|
17
|
+
<section class="footer_sitedescription footer_sitedescription{% if site.footer_sidebar.description.columns and site.footer_sidebar.description.columns >= 0 and site.footer_sidebar.description.columns <= 5 %}{{site.footer_sidebar.description.columns}}{% else %}0{% endif %}">
|
18
|
+
{{ site.description }}
|
19
|
+
</section>
|
20
|
+
{% elsif section == 'customcontent' and site.footer_sidebar.customcontent.enabled %}
|
21
|
+
<section class="footer_customcontent footer_customcontent{% if site.footer_sidebar.customcontent.columns and site.footer_sidebar.customcontent.columns >= 0 and site.footer_sidebar.customcontent.columns <= 5 %}{{site.footer_sidebar.customcontent.columns}}{% else %}0{% endif %}">
|
22
|
+
{{ site.footer_sidebar.customcontent.data }}
|
23
|
+
</section>
|
24
|
+
{% elsif section == 'customcontent2' and site.footer_sidebar.customcontent2.enabled %}
|
25
|
+
<section class="footer_customcontent2 footer_customcontent2{% if site.footer_sidebar.customcontent2.columns and site.footer_sidebar.customcontent2.columns >= 0 and site.footer_sidebar.customcontent2.columns <= 5 %}{{site.footer_sidebar.customcontent2.columns}}{% else %}0{% endif %}">
|
26
|
+
{{ site.footer_sidebar.customcontent2.data }}
|
27
|
+
</section>
|
28
|
+
{% elsif section == 'categories' and site.footer_sidebar.categories.enabled %}
|
29
|
+
<section class="footer_categories footer_categories{% if site.footer_sidebar.categories.columns and site.footer_sidebar.categories.columns >= 0 and site.footer_sidebar.categories.columns <= 5 %}{{site.footer_sidebar.categories.columns}}{% else %}0{% endif %}">
|
30
|
+
<h3>Categories</h3>
|
31
|
+
<ul>
|
32
|
+
{% assign all_categories = "" %}
|
33
|
+
{% for post in site.posts %}
|
34
|
+
{% assign post_categories = post.categories %}
|
35
|
+
{% for category in post_categories %}
|
36
|
+
{% assign all_categories = all_categories | append: category | append: "," %}
|
37
|
+
{% endfor %}
|
36
38
|
{% endfor %}
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
<li><a href="{{ site.baseurl }}/categories.html#{{ category }}">{{ category }}</a></li>
|
45
|
-
{% endfor %}
|
46
|
-
</ul>
|
47
|
-
</section>
|
48
|
-
{% elsif section == 'tags' and site.footer_sidebar.tags.enabled %}
|
49
|
-
<section class="footer_tags">
|
50
|
-
<h3>Tags</h3>
|
51
|
-
<ul>
|
52
|
-
{% assign all_tags = "" %}
|
53
|
-
{% for post in site.posts %}
|
54
|
-
{% assign post_tags = post.tags %}
|
55
|
-
{% for tag in post_tags %}
|
56
|
-
{% assign all_tags = all_tags | append: tag | append: "," %}
|
39
|
+
{% assign unique_categories = all_categories | split: "," | uniq %}
|
40
|
+
|
41
|
+
{% assign categories_count = site.footer_sidebar.categories.count | default: 100 %}
|
42
|
+
{% assign categories_to_display = unique_categories | slice: 0, categories_count %}
|
43
|
+
|
44
|
+
{% for category in categories_to_display %}
|
45
|
+
<li><a href="{{ site.baseurl }}/categories.html#{{ category }}">{{ category }}</a></li>
|
57
46
|
{% endfor %}
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
47
|
+
</ul>
|
48
|
+
</section>
|
49
|
+
{% elsif section == 'tags' and site.footer_sidebar.tags.enabled %}
|
50
|
+
<section class="footer_tags footer_tags{% if site.footer_sidebar.tags.columns and site.footer_sidebar.tags.columns >= 0 and site.footer_sidebar.tags.columns <= 5 %}{{site.footer_sidebar.tags.columns}}{% else %}0{% endif %}">
|
51
|
+
<h3>Tags</h3>
|
52
|
+
<ul>
|
53
|
+
{% assign all_tags = "" %}
|
54
|
+
{% for post in site.posts %}
|
55
|
+
{% assign post_tags = post.tags %}
|
56
|
+
{% for tag in post_tags %}
|
57
|
+
{% assign all_tags = all_tags | append: tag | append: "," %}
|
58
|
+
{% endfor %}
|
59
|
+
{% endfor %}
|
60
|
+
{% assign unique_tags = all_tags | split: "," | uniq %}
|
61
|
+
|
62
|
+
{% assign tags_count = site.footer_sidebar.tags.count | default: 100 %}
|
63
|
+
{% assign tags_to_display = unique_tags | slice: 0, tags_count %}
|
64
|
+
|
65
|
+
{% for tag in tags_to_display %}
|
66
|
+
<li><a href="{{ site.baseurl }}/tags#{{ tag }}">{{ tag }}</a></li>
|
67
|
+
{% endfor %}
|
68
|
+
</ul>
|
69
|
+
</section>
|
70
|
+
{% elsif section == 'recentposts' and site.footer_sidebar.recentposts.enabled %}
|
71
|
+
<section class="footer_recentposts footer_recentposts{% if site.footer_sidebar.recentposts.columns and site.footer_sidebar.recentposts.columns >= 0 and site.footer_sidebar.recentposts.columns <= 5 %}{{site.footer_sidebar.recentposts.columns}}{% else %}0{% endif %}">
|
72
|
+
<h3>Recent Posts</h3>
|
73
|
+
<ul>
|
74
|
+
{% assign recentposts_count = site.footer_sidebar.recentposts.count | default: 5 %}
|
75
|
+
{% assign recent_posts = site.posts | reverse %}
|
76
|
+
{% for post in recent_posts limit:recentposts_count %}
|
77
|
+
<li><a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></li>
|
78
|
+
{% endfor %}
|
79
|
+
</ul>
|
80
|
+
</section>
|
81
|
+
{% endif %}
|
82
|
+
{% endfor %}
|
83
|
+
</aside>
|
84
|
+
{% endif %}
|
83
85
|
{% endif %}
|
84
86
|
|
85
87
|
|
@@ -101,4 +103,4 @@
|
|
101
103
|
</div>
|
102
104
|
{% endif %}
|
103
105
|
|
104
|
-
</footer>
|
106
|
+
</footer>
|
data/_layouts/archive.html
CHANGED
@@ -8,7 +8,7 @@ layout: default
|
|
8
8
|
|
9
9
|
{% if site.posts.size > 0 %}
|
10
10
|
<!-- show all years -->
|
11
|
-
<div class="archive_all_years{% if site.layouts.archive.columns and site.layouts.archive.columns >= 1 and site.layouts.archive.columns <= 5 %}{{site.layouts.archive.columns}}{% else %}2{% endif %}">
|
11
|
+
<div class="archive_all_years archive_all_years{% if site.layouts.archive.columns and site.layouts.archive.columns >= 1 and site.layouts.archive.columns <= 5 %}{{site.layouts.archive.columns}}{% else %}2{% endif %}">
|
12
12
|
<ul>
|
13
13
|
{% assign postsByYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %}
|
14
14
|
{% for year in postsByYear %}
|
@@ -52,16 +52,12 @@ layout: default
|
|
52
52
|
|
53
53
|
<div class="archive_findresults">
|
54
54
|
|
55
|
-
|
55
|
+
|
56
56
|
|
57
|
-
|
58
|
-
|
59
|
-
</
|
60
|
-
|
61
|
-
<span>{{ post.date | date: "%b/%Y" }}</span>
|
62
|
-
</a>
|
63
|
-
|
64
|
-
</span>
|
57
|
+
<a class="archive_date" href="{{ site.baseurl }}{{ post.url }}">
|
58
|
+
<i class="archive_day">{{ post.date | date: "%d" }}</i>
|
59
|
+
<span>{{ post.date | date: "%b/%Y" }}</span>
|
60
|
+
</a>
|
65
61
|
|
66
62
|
<span class="archive_summary">
|
67
63
|
<h3>
|
data/_layouts/categories.html
CHANGED
@@ -17,7 +17,7 @@ layout: default
|
|
17
17
|
|
18
18
|
{% if sortedCategories.size > 0 %}
|
19
19
|
<!-- Show all categories sorted by count -->
|
20
|
-
<div class="categories_all{% if site.
|
20
|
+
<div class="categories_all categories_all{% if site.footer_sidebar.categories.columns and site.footer_sidebar.categories.columns >= 1 and site.footer_sidebar.categories.columns <= 5 %}{{site.footer_sidebar.categories.columns}}{% else %}3{% endif %}">
|
21
21
|
<ul>
|
22
22
|
{% for category in sortedCategories %}
|
23
23
|
{% assign categoryParts = category | split: '' %}
|
@@ -55,16 +55,10 @@ layout: default
|
|
55
55
|
|
56
56
|
{% for post in category[1] %}
|
57
57
|
<div class="categories_findresult">
|
58
|
-
<
|
59
|
-
|
60
|
-
<
|
61
|
-
|
62
|
-
</a>
|
63
|
-
<a href="{{ site.baseurl }}{{ post.url }}">
|
64
|
-
<span>{{ post.date | date: "%b/%Y" }}</span>
|
65
|
-
</a>
|
66
|
-
|
67
|
-
</span>
|
58
|
+
<a href="{{ site.baseurl }}{{ post.url }}" class="categories_date">
|
59
|
+
<i class="categories_day">{{ post.date | date: "%d" }}</i>
|
60
|
+
<span>{{ post.date | date: "%b/%Y" }}</span>
|
61
|
+
</a>
|
68
62
|
|
69
63
|
<span class="categories_summary">
|
70
64
|
<h3>
|
data/_layouts/home.html
CHANGED
@@ -42,16 +42,17 @@ layout: default
|
|
42
42
|
</p>
|
43
43
|
|
44
44
|
</article>
|
45
|
+
<hr class="article-divider">
|
45
46
|
{% endfor %}
|
46
47
|
|
47
48
|
<!-- Pagination links -->
|
48
49
|
<div class="pagination">
|
49
50
|
{% if paginator.previous_page %}
|
50
|
-
<a class="previous" href="{{ site.baseurl}}{{ paginator.previous_page_path }}"><span class="spanprevious"><i class="arrow
|
51
|
+
<a class="previous" href="{{ site.baseurl}}{{ paginator.previous_page_path }}"><span class="spanprevious"><i class="fa fa-arrow-left" title="previous page"></i></span></a>
|
51
52
|
{% endif %}
|
52
53
|
<p class="page_count">{{ paginator.page }} / {{ paginator.total_pages }}</p>
|
53
54
|
{% if paginator.next_page %}
|
54
|
-
<a class="next" href="{{ site.baseurl}}{{ paginator.next_page_path }}"><span class="spannext"><i class="arrow
|
55
|
+
<a class="next" href="{{ site.baseurl}}{{ paginator.next_page_path }}"><span class="spannext"><i class="fa fa-arrow-right" title="next page"></i></span></a>
|
55
56
|
{% endif %}
|
56
57
|
</div>
|
57
58
|
</section>
|