jekyll-theme-horizon-flow 1.0.3 → 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 +37 -14
- data/_config.yml +38 -4
- data/_includes/comments.html +127 -0
- data/_includes/footer.html +74 -72
- data/_layouts/post.html +61 -46
- data/_posts/2021-01-01-markdown-test-page.md +1 -0
- data/_posts/2023-07-13-title-for-champions.md +3 -0
- data/_sass/default/_base.scss +1 -0
- data/_sass/default/_footer.scss +54 -10
- data/_sass/external/_comments.scss +106 -0
- data/_sass/functions/_mixins.scss +40 -1
- data/_sass/functions/_values.scss +8 -1
- data/_sass/jekyll-theme-horizon-flow.scss +4 -3
- data/_sass/layouts/_home.scss +7 -1
- data/_sass/layouts/_post.scss +94 -26
- metadata +4 -2
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
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
- [Read Time](#read-time)
|
|
14
14
|
- [default plugins](#default-plugins)
|
|
15
15
|
- [Configurable Labels](#configurable-labels)
|
|
16
|
+
- [Comments](#comments)
|
|
16
17
|
- [Front Matter](#front-matter)
|
|
17
18
|
- [Layouts](#layouts-1)
|
|
18
19
|
- [`layout: default`](#layout-default)
|
|
@@ -25,10 +26,10 @@
|
|
|
25
26
|
- [whislist](#whislist)
|
|
26
27
|
|
|
27
28
|
|
|
28
|
-
|
|
29
29
|
[](https://raw.githubusercontent.com/papierkorp/jekyll-theme-horizon-flow/main/LICENSE.txt)
|
|
30
30
|
[](https://jekyllrb.com/)
|
|
31
|
-
[](https://badge.fury.io/rb/jekyll-theme-horizon-flow)
|
|
32
|
+
|
|
32
33
|
|
|
33
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.
|
|
34
35
|
|
|
@@ -36,15 +37,17 @@ This theme can offer:
|
|
|
36
37
|
|
|
37
38
|
* Custom Navigation
|
|
38
39
|
* Dynamically created Footer with Font Awesome Icons and Social Links
|
|
39
|
-
*
|
|
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
|
|
40
42
|
* SEO best practices via [Jekyll SEO Tag](https://github.com/jekyll/jekyll-seo-tag)
|
|
41
|
-
* Javascript free besides the optional search page
|
|
43
|
+
* Javascript free besides the optional search page and the optional comments
|
|
42
44
|
* supports tags and categories
|
|
43
45
|
* offers an archive
|
|
44
46
|
* Carefully designed posts for almost all Markup elements
|
|
45
47
|
* Activateable TOC and to the TOP Buttons for each post
|
|
46
48
|
* Mobile Friendly
|
|
47
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)
|
|
48
51
|
|
|
49
52
|

|
|
50
53
|
|
|
@@ -213,6 +216,7 @@ As for the possible Configurations this theme offers take note of the following:
|
|
|
213
216
|
* [Read Time](#read-time)
|
|
214
217
|
* [default plugins](#default-plugins)
|
|
215
218
|
* [Configurable Labels](#configurable-labels)
|
|
219
|
+
* [Comments](#comments)
|
|
216
220
|
|
|
217
221
|
### Site URL
|
|
218
222
|
|
|
@@ -364,7 +368,7 @@ footer_links:
|
|
|
364
368
|
### Layouts
|
|
365
369
|
|
|
366
370
|
In here you can define the amount of columns used to display all tags/categories/years via the `_config`.
|
|
367
|
-
Available values are `
|
|
371
|
+
Available values are `0-5`.
|
|
368
372
|
|
|
369
373
|
```yaml
|
|
370
374
|
layouts:
|
|
@@ -380,7 +384,7 @@ layouts:
|
|
|
380
384
|
### Footer Sidebar
|
|
381
385
|
|
|
382
386
|
The footer Sidebar is the content directly above the footer.
|
|
383
|
-
Per default there are
|
|
387
|
+
Per default there are 6 elements available:
|
|
384
388
|
|
|
385
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.
|
|
386
390
|
**categories:** Shows random categories according to the count.
|
|
@@ -403,6 +407,8 @@ description: >- # this means to ignore newlines until
|
|
|
403
407
|
</p>
|
|
404
408
|
|
|
405
409
|
footer_sidebar:
|
|
410
|
+
enabled: true
|
|
411
|
+
auto: false # false = all elements will have the same width, true = each element takes what it needs
|
|
406
412
|
arrangement: # you can rearrange the positions of the elements
|
|
407
413
|
- description # will be the first one to be displayed
|
|
408
414
|
- tags # second in the row ...
|
|
@@ -410,32 +416,32 @@ footer_sidebar:
|
|
|
410
416
|
- recentposts # will be displayed last
|
|
411
417
|
description:
|
|
412
418
|
enabled: true # default: true
|
|
413
|
-
|
|
419
|
+
columns: 2 # default: 0 - if you include a list
|
|
414
420
|
categories:
|
|
415
421
|
enabled: true # default: false
|
|
416
422
|
count: 100 # default: 100
|
|
417
|
-
columns: 5 # default:
|
|
423
|
+
columns: 5 # default: 0
|
|
418
424
|
tags:
|
|
419
425
|
enabled: true # default: false
|
|
420
426
|
count: 100 # default: 100
|
|
421
|
-
columns: 5 # default:
|
|
427
|
+
columns: 5 # default: 0
|
|
422
428
|
recentposts:
|
|
423
429
|
enabled: true # default: true
|
|
424
|
-
count: 10 # default:
|
|
425
|
-
|
|
430
|
+
count: 10 # default: 5
|
|
431
|
+
columns: 2 # default: 0
|
|
426
432
|
custom_content:
|
|
427
433
|
enabled: true
|
|
428
434
|
data: >-
|
|
429
435
|
<h3>EXTRACONTENT</h3>
|
|
430
436
|
<p>not really content though...</p>
|
|
431
|
-
columns: 2 # default:
|
|
437
|
+
columns: 2 # default: 0 - if you include a list
|
|
432
438
|
custom_content2:
|
|
433
439
|
enabled: false
|
|
434
440
|
data: "<h3>mhm</h3>"
|
|
435
|
-
columns: 2 # default:
|
|
441
|
+
columns: 2 # default: 0 - if you include a list
|
|
436
442
|
```
|
|
437
443
|
|
|
438
|
-
|
|
444
|
+
The default of `0` stands for automatic alignment.
|
|
439
445
|
|
|
440
446
|
|
|
441
447
|
### Table of Contents
|
|
@@ -522,6 +528,21 @@ categories_nothing_found: "No categories available."
|
|
|
522
528
|
```
|
|
523
529
|
|
|
524
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
|
+
```
|
|
525
546
|
|
|
526
547
|
---
|
|
527
548
|
|
|
@@ -535,6 +556,7 @@ This theme offers the following Front-Matter:
|
|
|
535
556
|
|--------|------------------|-----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
|
|
536
557
|
| `post` | subtitle | Adds a subtitle to the post (optional) | ---<br>subtitle: "You're going to love this." <br>--- |
|
|
537
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>--- |
|
|
538
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>--- |
|
|
539
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>--- |
|
|
540
562
|
| `post` | toTop | true or false, shows the "To the Top" button on the bottom left (default: true) | ---<br>toTop: false <br>--- |
|
|
@@ -542,6 +564,7 @@ This theme offers the following Front-Matter:
|
|
|
542
564
|
| `post` | noheader | Disable the whole header and only show the Content. (default: false) | ---<br>noheader: true <br>--- |
|
|
543
565
|
| `post` | searchable | The post wont be included in the search. | ---<br>searchable: false <br>--- |
|
|
544
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>--- |
|
|
545
568
|
| `home` | noheader | Disable the whole header and only show the Content. (default: false) | ---<br>noheader: true <br>--- |
|
|
546
569
|
|
|
547
570
|
---
|
data/_config.yml
CHANGED
|
@@ -54,37 +54,71 @@ 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
|
|
80
|
+
- tags
|
|
81
|
+
- categories
|
|
66
82
|
- recentposts
|
|
67
83
|
description:
|
|
68
84
|
enabled: true
|
|
85
|
+
categories:
|
|
86
|
+
enabled: true
|
|
87
|
+
tags:
|
|
88
|
+
enabled: true
|
|
69
89
|
recentposts:
|
|
70
90
|
enabled: true
|
|
71
|
-
count: 10
|
|
72
|
-
columns: 2
|
|
73
91
|
|
|
74
92
|
footer_links:
|
|
75
93
|
- title: Feed
|
|
76
94
|
url: /feed.xml
|
|
77
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
|
|
78
113
|
|
|
79
114
|
defaults:
|
|
80
115
|
-
|
|
81
116
|
scope:
|
|
82
117
|
path: "_posts"
|
|
83
118
|
values:
|
|
84
|
-
toc: yes
|
|
85
119
|
display_toc: true
|
|
86
120
|
|
|
87
|
-
paginate:
|
|
121
|
+
paginate: 3
|
|
88
122
|
paginate_path: "/:num/"
|
|
89
123
|
|
|
90
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 footer_tags{% if site.footer_sidebar.tags.columns and site.footer_sidebar.tags.columns >= 1 and site.footer_sidebar.tags.columns <= 5 %}{{site.footer_sidebar.tags.columns}}{% else %}5{% endif %}">
|
|
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
|
|
|
@@ -90,9 +92,9 @@
|
|
|
90
92
|
<div class="social-icons item3">
|
|
91
93
|
{% for link in site.footer_links %}
|
|
92
94
|
{% if link.icon %}
|
|
93
|
-
<a href="{{
|
|
95
|
+
<a href="{{ link.url }}" class="{{ link.icon }}" target="_blank"></a>
|
|
94
96
|
{% else %}
|
|
95
|
-
<a href="{{
|
|
97
|
+
<a href="{{ link.url }}">{{ link.title }}</a>
|
|
96
98
|
{% endif %}
|
|
97
99
|
{% unless forloop.last %}
|
|
98
100
|
<span class="divider"></span>
|
|
@@ -101,4 +103,4 @@
|
|
|
101
103
|
</div>
|
|
102
104
|
{% endif %}
|
|
103
105
|
|
|
104
|
-
</footer>
|
|
106
|
+
</footer>
|
data/_layouts/post.html
CHANGED
|
@@ -4,6 +4,7 @@ layout: default
|
|
|
4
4
|
|
|
5
5
|
<main id="post">
|
|
6
6
|
<article>
|
|
7
|
+
|
|
7
8
|
{% if page.display_toc %}
|
|
8
9
|
<div class="toc">
|
|
9
10
|
<input type="checkbox" id="tocMenuButton">
|
|
@@ -16,58 +17,72 @@ layout: default
|
|
|
16
17
|
</div>
|
|
17
18
|
</div>
|
|
18
19
|
{% endif %}
|
|
19
|
-
|
|
20
|
-
<div class="
|
|
21
|
-
<h1>{{page.title}}</h1>
|
|
22
|
-
<h3>{{page.subtitle}}</h3>
|
|
23
|
-
|
|
20
|
+
|
|
21
|
+
<div class="grid">
|
|
24
22
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
23
|
+
|
|
24
|
+
{% if page.no_header != true %}
|
|
25
|
+
<div class="post_header">
|
|
26
|
+
<h1>{{page.title}}</h1>
|
|
27
|
+
<h3>{{page.subtitle}}</h3>
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
{% if page.show_supplements != false %}
|
|
31
|
+
<p class="supplements">
|
|
32
|
+
<span>
|
|
33
|
+
<i class="fa fa-calendar"></i> {{ page.date | date: "%B %d, %Y" }}
|
|
34
|
+
</span>
|
|
35
|
+
<span class="supplements-sep"></span>
|
|
36
|
+
<span class="reading-time" title="Estimated read time">
|
|
37
|
+
{% include read_time.html %}
|
|
38
|
+
</span>
|
|
39
|
+
{% if page.categories != nil and page.categories.size > 0 %}
|
|
40
|
+
<span class="supplements-sep"></span>
|
|
41
|
+
<span class="supplements-category">
|
|
42
|
+
<i class="fa fa-bars"></i>
|
|
43
|
+
{% for category in page.categories %}
|
|
44
|
+
<a href="{{ site.baseurl }}/categories#{{ category | slugify }}">{{ category }}</a>{% if forloop.last == false %},{% endif %}
|
|
45
|
+
{% endfor %}
|
|
46
|
+
</span>
|
|
47
|
+
{% endif %}
|
|
48
|
+
{% if page.tags != nil and page.tags.size > 0 %}
|
|
49
|
+
<span class="supplements-sep"></span>
|
|
50
|
+
<span>
|
|
51
|
+
<i class="fa fa-tags"></i>
|
|
52
|
+
{% for tag in page.tags %}
|
|
53
|
+
<a href="{{ site.baseurl }}/tags#{{ tag | slugify }}">{{ tag }}</a>{% if forloop.last == false %},{% endif %}
|
|
54
|
+
{% endfor %}
|
|
55
|
+
</span>
|
|
56
|
+
{% endif %}
|
|
57
|
+
{%- if page.last_modified_at -%}
|
|
58
|
+
<br /> <br />
|
|
59
|
+
<span class="last_modified_at">{% if site.data.configurable_lables.last_modified_at %}{{site.data.configurable_lables.last_modified_at}}{% else %}Last Modified at:{% endif %} {{ page.last_modified_at }}</span>
|
|
60
|
+
{% endif %}
|
|
61
|
+
</p>
|
|
62
|
+
{% endif %}
|
|
63
|
+
</div>
|
|
57
64
|
{% endif %}
|
|
58
65
|
|
|
66
|
+
<div class ="post_content">
|
|
67
|
+
{{content}}
|
|
68
|
+
{% if page.toTop != false %}
|
|
69
|
+
<a href="#" id="toTopButton">
|
|
70
|
+
<i class="fa fa-arrow-circle-o-up"></i>
|
|
71
|
+
</a>
|
|
72
|
+
{% endif %}
|
|
73
|
+
</div>
|
|
59
74
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
{% if page.toTop != false %}
|
|
65
|
-
<a href="#" id="toTopButton">
|
|
66
|
-
<i class="fa fa-arrow-circle-o-up"></i>
|
|
67
|
-
</a>
|
|
75
|
+
{% if page.display_toc2 %}
|
|
76
|
+
<div id="toc2">
|
|
77
|
+
{% include toc.html html=content %}
|
|
78
|
+
</div>
|
|
68
79
|
{% endif %}
|
|
80
|
+
|
|
81
|
+
|
|
69
82
|
</div>
|
|
70
|
-
|
|
71
83
|
|
|
72
84
|
</article>
|
|
85
|
+
{% if page.comments_id %}
|
|
86
|
+
{% include comments.html issue_id=page.comments_id %}
|
|
87
|
+
{% endif %}
|
|
73
88
|
</main>
|
data/_sass/default/_base.scss
CHANGED
data/_sass/default/_footer.scss
CHANGED
|
@@ -57,50 +57,72 @@ footer aside {
|
|
|
57
57
|
max-height: max-content;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
footer .footer_aside_auto section {
|
|
61
|
+
padding: 0 0 0 1em;
|
|
62
|
+
flex-grow: 1;
|
|
63
|
+
max-width: fit-content;
|
|
64
|
+
}
|
|
60
65
|
|
|
61
66
|
/* one item */
|
|
62
|
-
footer
|
|
67
|
+
footer .footer_aside section:first-child:nth-last-child(1) {
|
|
63
68
|
padding: 0 0 0 1em;
|
|
64
69
|
flex-grow: 1;
|
|
65
70
|
max-width: 100%;
|
|
66
71
|
}
|
|
67
72
|
|
|
68
73
|
/* two items */
|
|
69
|
-
footer
|
|
70
|
-
footer
|
|
74
|
+
footer .footer_aside section:first-child:nth-last-child(2),
|
|
75
|
+
footer .footer_aside section:first-child:nth-last-child(2) ~ section {
|
|
71
76
|
padding: 0 0 0 1em;
|
|
72
77
|
flex-grow: 1;
|
|
73
78
|
max-width: 50%;
|
|
74
79
|
}
|
|
75
80
|
|
|
76
81
|
/* three items */
|
|
77
|
-
footer
|
|
78
|
-
footer
|
|
82
|
+
footer .footer_aside section:first-child:nth-last-child(3),
|
|
83
|
+
footer .footer_aside section:first-child:nth-last-child(3) ~ section {
|
|
79
84
|
padding: 0 0 0 1em;
|
|
80
85
|
flex-grow: 1;
|
|
81
86
|
max-width: 33%;
|
|
82
87
|
}
|
|
83
88
|
|
|
84
89
|
/* four items */
|
|
85
|
-
footer
|
|
86
|
-
footer
|
|
90
|
+
footer .footer_aside section:first-child:nth-last-child(4),
|
|
91
|
+
footer .footer_aside section:first-child:nth-last-child(4) ~ section {
|
|
87
92
|
padding: 0 0 0 1em;
|
|
88
93
|
flex-grow: 1;
|
|
89
94
|
max-width: 25%;
|
|
90
95
|
}
|
|
91
96
|
|
|
92
97
|
/* five items */
|
|
93
|
-
footer
|
|
94
|
-
footer
|
|
98
|
+
footer .footer_aside section:first-child:nth-last-child(5),
|
|
99
|
+
footer .footer_aside section:first-child:nth-last-child(5) ~ section {
|
|
95
100
|
padding: 0 0 0 1em;
|
|
96
101
|
flex-grow: 1;
|
|
97
102
|
max-width: 20%;
|
|
98
103
|
}
|
|
99
104
|
|
|
100
|
-
|
|
105
|
+
/* six items */
|
|
106
|
+
footer .footer_aside section:first-child:nth-last-child(6),
|
|
107
|
+
footer .footer_aside section:first-child:nth-last-child(6) ~ section {
|
|
108
|
+
padding: 0 0 0 1em;
|
|
109
|
+
flex-grow: 1;
|
|
110
|
+
max-width: 16%;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
footer .footer_aside section:first-child {
|
|
101
114
|
padding: 0;
|
|
102
115
|
}
|
|
103
116
|
|
|
117
|
+
.footer_sitedescription0,
|
|
118
|
+
.footer_customcontent0,
|
|
119
|
+
.footer_customcontent20,
|
|
120
|
+
.footer_recentposts0,
|
|
121
|
+
.footer_categories0,
|
|
122
|
+
.footer_tags0 {
|
|
123
|
+
@include footer_elements_auto();
|
|
124
|
+
}
|
|
125
|
+
|
|
104
126
|
.footer_sitedescription1,
|
|
105
127
|
.footer_customcontent1,
|
|
106
128
|
.footer_customcontent21,
|
|
@@ -146,7 +168,29 @@ footer aside section:first-child {
|
|
|
146
168
|
@include footer_elements(5);
|
|
147
169
|
}
|
|
148
170
|
|
|
171
|
+
.footer_recentposts,
|
|
172
|
+
.footer_recentposts0,
|
|
173
|
+
.footer_recentposts1,
|
|
174
|
+
.footer_recentposts2,
|
|
175
|
+
.footer_recentposts3,
|
|
176
|
+
.footer_recentposts4,
|
|
177
|
+
.footer_recentposts5 {
|
|
178
|
+
ul li a {
|
|
179
|
+
text-transform: none;
|
|
180
|
+
border: none;
|
|
181
|
+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
149
184
|
|
|
185
|
+
.footer_recentposts0, .footer_recentposts1 {
|
|
186
|
+
ul li {
|
|
187
|
+
flex-basis: 100%;
|
|
188
|
+
}
|
|
189
|
+
ul li a {
|
|
190
|
+
border: none;
|
|
191
|
+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
150
194
|
|
|
151
195
|
@media (width >= $small) and (max-width: $large) {
|
|
152
196
|
footer {
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<main id="post">
|
|
3
|
+
<section id="comments">
|
|
4
|
+
<div class="comment-actions">
|
|
5
|
+
<h2>
|
|
6
|
+
<a>
|
|
7
|
+
<i>
|
|
8
|
+
</div>
|
|
9
|
+
<div id="comments-wrapper">
|
|
10
|
+
<ol>
|
|
11
|
+
<li class="comment">
|
|
12
|
+
<div class="commenter">
|
|
13
|
+
<img>
|
|
14
|
+
<a>
|
|
15
|
+
<div class="date-posted">
|
|
16
|
+
<span class="author-badge">
|
|
17
|
+
<div class="comment-body">
|
|
18
|
+
<p>
|
|
19
|
+
<li class="comment">
|
|
20
|
+
</div>
|
|
21
|
+
</section>
|
|
22
|
+
</main>
|
|
23
|
+
|
|
24
|
+
$primary-color:#032539;
|
|
25
|
+
$secondary-color: #1c768f;
|
|
26
|
+
$background-color: #fbf3f2;
|
|
27
|
+
$accent-color: #fa991c;
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
#comments {
|
|
32
|
+
word-break: keep-all;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.comment-actions {
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
a {
|
|
41
|
+
background-color: $primary-color;
|
|
42
|
+
color: $background-color;
|
|
43
|
+
padding: 12px;
|
|
44
|
+
margin-left: auto;
|
|
45
|
+
border-radius: 4px;
|
|
46
|
+
text-decoration: none;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#comments-wrapper {
|
|
51
|
+
|
|
52
|
+
ol {
|
|
53
|
+
list-style-type: none;
|
|
54
|
+
padding: 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.commenter {
|
|
58
|
+
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
|
|
62
|
+
img {
|
|
63
|
+
border-radius: 50%;
|
|
64
|
+
width: 50px;
|
|
65
|
+
margin-right: 10px;
|
|
66
|
+
vertical-align: middle;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
a {
|
|
70
|
+
font-weight: bold;
|
|
71
|
+
color: $primary-color;
|
|
72
|
+
margin-right: 10px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.date-posted {
|
|
76
|
+
font-style: italic;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.author-badge {
|
|
80
|
+
margin-left: auto;
|
|
81
|
+
padding: 8px;
|
|
82
|
+
background-color: $secondary-color;
|
|
83
|
+
border-radius: 24px;
|
|
84
|
+
font-weight: bold;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.comment-body {
|
|
89
|
+
margin-left: 70px; //50px width of image + 10px margin +10px???
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@media screen and (max-width: $large) {
|
|
96
|
+
.comment-actions, #comments-wrapper .commenter, #comments-wrapper .commenter .date-posted {
|
|
97
|
+
display: block;
|
|
98
|
+
font-size: 0.9em;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
#comments-wrapper .commenter .date-posted {
|
|
102
|
+
margin-bottom: 16px;
|
|
103
|
+
margin-top: 8px;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
}
|
|
@@ -98,7 +98,6 @@
|
|
|
98
98
|
flex-direction: column;
|
|
99
99
|
align-items: center;
|
|
100
100
|
// gap: -5px;
|
|
101
|
-
margin: auto;
|
|
102
101
|
min-width: 6em;
|
|
103
102
|
|
|
104
103
|
@media screen and (max-width: $large) {
|
|
@@ -271,6 +270,46 @@
|
|
|
271
270
|
}
|
|
272
271
|
}
|
|
273
272
|
|
|
273
|
+
.archive_linktitle {
|
|
274
|
+
flex: 1;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
@mixin footer_elements_auto() {
|
|
281
|
+
ul {
|
|
282
|
+
list-style: none;
|
|
283
|
+
padding: 0;
|
|
284
|
+
margin: 0;
|
|
285
|
+
display: flex;
|
|
286
|
+
flex-wrap: wrap;
|
|
287
|
+
row-gap: 0;
|
|
288
|
+
column-gap: 0;
|
|
289
|
+
width: fit-content;
|
|
290
|
+
|
|
291
|
+
li {
|
|
292
|
+
display: flex;
|
|
293
|
+
justify-content: space-between;
|
|
294
|
+
align-items: left;
|
|
295
|
+
cursor: pointer;
|
|
296
|
+
overflow-wrap: break-word;
|
|
297
|
+
a {
|
|
298
|
+
text-decoration: none;
|
|
299
|
+
color: $background-color;
|
|
300
|
+
text-transform: lowercase;
|
|
301
|
+
letter-spacing: -1px;
|
|
302
|
+
width: 100%;
|
|
303
|
+
display: flex;
|
|
304
|
+
justify-content: space-between;
|
|
305
|
+
padding: 0.5em;
|
|
306
|
+
text-align: left;
|
|
307
|
+
|
|
308
|
+
&:hover {
|
|
309
|
+
@include hover();
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
274
313
|
.archive_linktitle {
|
|
275
314
|
flex: 1;
|
|
276
315
|
}
|
|
@@ -20,4 +20,11 @@ $darkblue: #032539;
|
|
|
20
20
|
$primary-color:#032539;
|
|
21
21
|
$secondary-color: #1c768f;
|
|
22
22
|
$background-color: #fbf3f2;
|
|
23
|
-
$accent-color: #fa991c;
|
|
23
|
+
$accent-color: #fa991c;
|
|
24
|
+
|
|
25
|
+
@media (prefers-color-scheme: dark) {
|
|
26
|
+
$primary-color: #fbf3f2;
|
|
27
|
+
$secondary-color: #1c768f;
|
|
28
|
+
$background-color: #032539;
|
|
29
|
+
$accent-color: #fa991c;
|
|
30
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
@import "external/_normalize.scss";
|
|
2
|
-
@import "external/_highlighter_rougify_base16dark.scss";
|
|
3
|
-
|
|
4
1
|
@import "functions/_mixins.scss";
|
|
5
2
|
@import "functions/_values.scss";
|
|
6
3
|
|
|
4
|
+
@import "external/_normalize.scss";
|
|
5
|
+
@import "external/_highlighter_rougify_base16dark.scss";
|
|
6
|
+
@import "external/_comments.scss";
|
|
7
|
+
|
|
7
8
|
@import "layouts/_archive.scss";
|
|
8
9
|
@import "layouts/_categories.scss";
|
|
9
10
|
@import "layouts/_home.scss";
|
data/_sass/layouts/_home.scss
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
a {
|
|
34
|
-
color:
|
|
34
|
+
color: $secondary-color;
|
|
35
35
|
text-decoration: none;
|
|
36
36
|
|
|
37
37
|
&:hover {
|
|
@@ -73,6 +73,12 @@
|
|
|
73
73
|
color: $primary-color;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
span {
|
|
77
|
+
&:hover {
|
|
78
|
+
@include hover();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
76
82
|
|
|
77
83
|
.page_count {
|
|
78
84
|
margin: 0 auto;
|
data/_sass/layouts/_post.scss
CHANGED
|
@@ -5,6 +5,30 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
/* ---------------------------------------------------- */
|
|
9
|
+
/* ---------------------------------------------------- */
|
|
10
|
+
/* grid */
|
|
11
|
+
/* ---------------------------------------------------- */
|
|
12
|
+
/* ---------------------------------------------------- */
|
|
13
|
+
|
|
14
|
+
.grid {
|
|
15
|
+
display: grid;
|
|
16
|
+
grid-template-columns: repeat(12,minmax(0,1fr));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
.post_header {
|
|
21
|
+
grid-column: span 12/span 12;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.post_content {
|
|
25
|
+
grid-column: span 10/span 10;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
#toc2 {
|
|
29
|
+
grid-column: span 2/span 2;
|
|
30
|
+
}
|
|
31
|
+
|
|
8
32
|
/* ---------------------------------------------------- */
|
|
9
33
|
/* ---------------------------------------------------- */
|
|
10
34
|
/* content layout */
|
|
@@ -29,6 +53,9 @@
|
|
|
29
53
|
overflow-wrap: break-word;
|
|
30
54
|
}
|
|
31
55
|
|
|
56
|
+
h1:first-child{
|
|
57
|
+
margin-top: 0;
|
|
58
|
+
}
|
|
32
59
|
|
|
33
60
|
h2 {
|
|
34
61
|
@include default_header(0);
|
|
@@ -63,7 +90,7 @@
|
|
|
63
90
|
padding: 16px;
|
|
64
91
|
|
|
65
92
|
i {
|
|
66
|
-
color: $
|
|
93
|
+
color: $primary-color;
|
|
67
94
|
font-size: 1.8em;
|
|
68
95
|
}
|
|
69
96
|
}
|
|
@@ -148,20 +175,12 @@
|
|
|
148
175
|
code.highlighter-rouge {
|
|
149
176
|
font-style: italic;
|
|
150
177
|
color: $primary-color;
|
|
151
|
-
background-color:
|
|
178
|
+
background-color: rgba(0, 0, 0, 33%);
|
|
152
179
|
padding: 0 5px;
|
|
153
180
|
}
|
|
154
181
|
}
|
|
155
182
|
|
|
156
183
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
184
|
/* ---------------------------------------------------- */
|
|
166
185
|
/* ---------------------------------------------------- */
|
|
167
186
|
/* TOC */
|
|
@@ -188,11 +207,11 @@ article {
|
|
|
188
207
|
|
|
189
208
|
#tocMenuButtonLabel {
|
|
190
209
|
font-size: 2em;
|
|
191
|
-
color: $
|
|
210
|
+
color: $primary-color;
|
|
192
211
|
position: fixed;
|
|
193
212
|
bottom: 0;
|
|
194
213
|
right: 0;
|
|
195
|
-
padding: 1rem;
|
|
214
|
+
padding: 1rem;
|
|
196
215
|
z-index: 1;
|
|
197
216
|
}
|
|
198
217
|
|
|
@@ -200,28 +219,31 @@ article {
|
|
|
200
219
|
display: block;
|
|
201
220
|
border: 1px solid $primary-color;
|
|
202
221
|
position: fixed;
|
|
203
|
-
top:
|
|
204
|
-
right:
|
|
222
|
+
top: 4vw;
|
|
223
|
+
right: 4vw;
|
|
205
224
|
min-width: 10vw;
|
|
206
225
|
max-width: 40vw;
|
|
207
226
|
background-color: $background-color;
|
|
208
|
-
z-index:
|
|
227
|
+
z-index: 2;
|
|
209
228
|
overflow-x: hidden;
|
|
210
229
|
min-height: 10vh;
|
|
211
230
|
max-height: 80vh;
|
|
212
231
|
|
|
213
232
|
h1 {
|
|
214
|
-
text-shadow: 0px 0.1em 0.2em rgba(100, 100, 100, 0.5);
|
|
233
|
+
text-shadow: 0px 0.1em 0.2em rgba(100, 100, 100, 0.5);
|
|
215
234
|
color: $primary-color;
|
|
216
235
|
font-size: 2em;
|
|
217
236
|
font-weight: bold;
|
|
218
|
-
letter-spacing: 1rem;
|
|
237
|
+
letter-spacing: 1rem;
|
|
219
238
|
text-align: center;
|
|
220
239
|
}
|
|
221
240
|
|
|
222
241
|
ul {
|
|
223
242
|
list-style: none;
|
|
224
|
-
padding-
|
|
243
|
+
padding-inline-start: 0;
|
|
244
|
+
ul {
|
|
245
|
+
padding-left: 1em;
|
|
246
|
+
}
|
|
225
247
|
}
|
|
226
248
|
|
|
227
249
|
li a {
|
|
@@ -229,7 +251,7 @@ article {
|
|
|
229
251
|
opacity: 0.8;
|
|
230
252
|
width: 80%;
|
|
231
253
|
display: block;
|
|
232
|
-
margin: 1rem auto;
|
|
254
|
+
margin: 1rem auto;
|
|
233
255
|
}
|
|
234
256
|
|
|
235
257
|
a {
|
|
@@ -274,7 +296,59 @@ article {
|
|
|
274
296
|
}
|
|
275
297
|
|
|
276
298
|
|
|
299
|
+
#toc2 {
|
|
300
|
+
font-size: 0.75em;
|
|
301
|
+
position: sticky;
|
|
302
|
+
top: 2vw;
|
|
303
|
+
z-index: 1;
|
|
304
|
+
transform: translate(2.5em);
|
|
305
|
+
color: $secondary-color;
|
|
306
|
+
align-self: start;
|
|
307
|
+
letter-spacing: -1px;
|
|
277
308
|
|
|
309
|
+
ul {
|
|
310
|
+
padding: 0;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
ul ul {
|
|
314
|
+
padding-left: 0.8em;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
li::marker {
|
|
320
|
+
content: ' > ';
|
|
321
|
+
font-size: 0.8em;
|
|
322
|
+
font-weight: bold;
|
|
323
|
+
font-family: "Georgia";
|
|
324
|
+
vertical-align: middle;
|
|
325
|
+
position: relative;
|
|
326
|
+
top: -3px;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
li a {
|
|
330
|
+
text-decoration: none;
|
|
331
|
+
color: $primary-color;
|
|
332
|
+
line-height: 1.5em;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
li a:hover {
|
|
336
|
+
@include hover();
|
|
337
|
+
//font-size: 1.2em;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
@media screen and (max-width: $xlarge) {
|
|
342
|
+
#toc2 {
|
|
343
|
+
font-size: 0.5em;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
@media screen and (max-width: $large) {
|
|
348
|
+
#toc2 {
|
|
349
|
+
display: none;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
278
352
|
|
|
279
353
|
|
|
280
354
|
/* ---------------------------------------------------- */
|
|
@@ -331,18 +405,12 @@ article {
|
|
|
331
405
|
}
|
|
332
406
|
|
|
333
407
|
.supplements a {
|
|
334
|
-
/* Set links to display as block-level elements so capitalize works*/
|
|
335
|
-
display: inline-block;
|
|
336
408
|
word-break: break-all;
|
|
337
409
|
&:hover {
|
|
338
410
|
@include hover();
|
|
339
411
|
}
|
|
340
412
|
}
|
|
341
413
|
|
|
342
|
-
.supplements a::first-letter {
|
|
343
|
-
text-transform: capitalize;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
414
|
.supplements-sep::before {
|
|
347
415
|
content: "\2022";
|
|
348
416
|
padding-left: 0.5em;
|
|
@@ -353,4 +421,4 @@ article {
|
|
|
353
421
|
.post_header_content_parting_line {
|
|
354
422
|
margin: 2em 0;
|
|
355
423
|
}
|
|
356
|
-
}
|
|
424
|
+
}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jekyll-theme-horizon-flow
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Markus Schiller
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-08-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|
|
@@ -118,6 +118,7 @@ files:
|
|
|
118
118
|
- README.md
|
|
119
119
|
- _config.yml
|
|
120
120
|
- _includes/404.html
|
|
121
|
+
- _includes/comments.html
|
|
121
122
|
- _includes/footer.html
|
|
122
123
|
- _includes/header.html
|
|
123
124
|
- _includes/read_time.html
|
|
@@ -140,6 +141,7 @@ files:
|
|
|
140
141
|
- _sass/default/_base.scss
|
|
141
142
|
- _sass/default/_footer.scss
|
|
142
143
|
- _sass/default/_header.scss
|
|
144
|
+
- _sass/external/_comments.scss
|
|
143
145
|
- _sass/external/_highlighter_rougify_base16dark.scss
|
|
144
146
|
- _sass/external/_normalize.scss
|
|
145
147
|
- _sass/functions/_mixins.scss
|