jekyll-theme-horizon-flow 1.0.3 → 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 +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
|
[![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)
|
30
30
|
[![Jekyll](https://img.shields.io/badge/jekyll-%3E%3D%203.6-blue.svg?style=flat-square)](https://jekyllrb.com/)
|
31
|
-
[![
|
31
|
+
[![Gem Version](https://badge.fury.io/rb/jekyll-theme-horizon-flow.svg)](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
|
![Horizon Flow Screenshots](https://papierkorp.github.io/jekyll-theme-horizon-flow/screenshot.png)
|
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
|