jekyll-theme-horizon-flow 1.0.2 → 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 +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
|
[](https://raw.githubusercontent.com/papierkorp/jekyll-theme-horizon-flow/main/LICENSE.txt)
|
34
30
|
[](https://jekyllrb.com/)
|
35
|
-
[](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
|

|
52
|
-

|
53
|
-

|
54
|
-

|
55
|
-

|
56
|
-

|
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>
|