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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd4a3025c5c7dee3341d1b781738590518af5ec7d17438132723a39a13758e9d
4
- data.tar.gz: 8606bb51af10a0e4e3fbd022b2ce394d9cf299e9e06ccceb52f06741af34c29d
3
+ metadata.gz: 9c647058ba28712037b2b276685ef637181cebaf265936fa6fe33851bfd33dbd
4
+ data.tar.gz: cecdc33724d7eb33c8f82f478b7350467521716b16928e03d178e3b586421794
5
5
  SHA512:
6
- metadata.gz: 6f296954fdad793ba6945194ce91b40e1fc71933df88d0e4b07442084fcc3a6c5beb62c0f0af2a0d9a4564c793a36e3bce0de2a9db94e7df849d7813e2412301
7
- data.tar.gz: 32617a1c81c5d929a9e6bf5c73d59f47e6d29bbec9f0dfc774e688e986eb5771bd7d8dac0ed07df6f2c030cbe8e3f1223cac2aefde9f58f187c4c13bd4efa024
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
- [![Ruby gem](https://img.shields.io/gem/v/jekyll-theme-so-simple.svg?style=flat-square)](https://rubygems.org/gems/jekyll-theme-horizon-flow)
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
- * Flexible customizable Footer-Sidebar (above the Footer) where you can include up to 5 elements. You can choose between 4 premade ones and self created ones
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 `1-5`.
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 4 elements available:
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
- coluns: 2 # default: 2 - if you include a list
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: 5
423
+ columns: 5 # default: 0
418
424
  tags:
419
425
  enabled: true # default: false
420
426
  count: 100 # default: 100
421
- columns: 5 # default: 5
427
+ columns: 5 # default: 0
422
428
  recentposts:
423
429
  enabled: true # default: true
424
- count: 10 # default: 10
425
- columsn: 2 # default: 2
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: 2 - if you include a list
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: 2 - if you include a list
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: 5
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>
@@ -9,77 +9,79 @@
9
9
  <footer>
10
10
 
11
11
 
12
- {% if site.footer_sidebar.arrangement %}
13
- <aside class="footer_sidebar">
14
- {% for section in site.footer_sidebar.arrangement %}
15
- {% if section == 'description' and site.footer_sidebar.description.enabled %}
16
- <section class="footer_sitedescription footer_sitedescription{% if site.footer_sidebar.description.columns and site.footer_sidebar.description.columns >= 1 and site.footer_sidebar.description.columns <= 5 %}{{site.footer_sidebar.description.columns}}{% else %}2{% endif %}">
17
- {{ site.description }}
18
- </section>
19
- {% elsif section == 'customcontent' and site.footer_sidebar.customcontent.enabled %}
20
- <section class="footer_customcontent footer_customcontent{% if site.footer_sidebar.customcontent.columns and site.footer_sidebar.customcontent.columns >= 1 and site.footer_sidebar.customcontent.columns <= 5 %}{{site.footer_sidebar.customcontent.columns}}{% else %}2{% endif %}">
21
- {{ site.footer_sidebar.customcontent.data }}
22
- </section>
23
- {% elsif section == 'customcontent2' and site.footer_sidebar.customcontent2.enabled %}
24
- <section class="footer_customcontent2 footer_customcontent2{% if site.footer_sidebar.customcontent2.columns and site.footer_sidebar.customcontent2.columns >= 1 and site.footer_sidebar.customcontent2.columns <= 5 %}{{site.footer_sidebar.customcontent2.columns}}{% else %}2{% endif %}">
25
- {{ site.footer_sidebar.customcontent2.data }}
26
- </section>
27
- {% elsif section == 'categories' and site.footer_sidebar.categories.enabled %}
28
- <section class="footer_categories footer_categories{% 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 %}5{% endif %}">
29
- <h3>Categories</h3>
30
- <ul>
31
- {% assign all_categories = "" %}
32
- {% for post in site.posts %}
33
- {% assign post_categories = post.categories %}
34
- {% for category in post_categories %}
35
- {% assign all_categories = all_categories | append: category | append: "," %}
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
- {% endfor %}
38
- {% assign unique_categories = all_categories | split: "," | uniq %}
39
-
40
- {% assign categories_count = site.footer_sidebar.categories.count | default: 100 %}
41
- {% assign categories_to_display = unique_categories | slice: 0, categories_count %}
42
-
43
- {% for category in categories_to_display %}
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
- {% endfor %}
59
- {% assign unique_tags = all_tags | split: "," | uniq %}
60
-
61
- {% assign tags_count = site.footer_sidebar.tags.count | default: 100 %}
62
- {% assign tags_to_display = unique_tags | slice: 0, tags_count %}
63
-
64
- {% for tag in tags_to_display %}
65
- <li><a href="{{ site.baseurl }}/tags#{{ tag }}">{{ tag }}</a></li>
66
- {% endfor %}
67
- </ul>
68
- </section>
69
- {% elsif section == 'recentposts' and site.footer_sidebar.recentposts.enabled %}
70
- <section class="footer_recentposts footer_recentposts{% if site.footer_sidebar.recentposts.columns and site.footer_sidebar.recentposts.columns >= 1 and site.footer_sidebar.recentposts.columns <= 5 %}{{site.footer_sidebar.recentposts.columns}}{% else %}2{% endif %}">
71
- <h3>Recent Posts</h3>
72
- <ul>
73
- {% assign recentposts_count = site.footer_sidebar.recentposts.count | default: 10 %}
74
- {% assign recent_posts = site.posts | reverse | limit: recentposts_count %}
75
- {% for post in recent_posts %}
76
- <li><a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></li>
77
- {% endfor %}
78
- </ul>
79
- </section>
80
- {% endif %}
81
- {% endfor %}
82
- </aside>
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="{{ site.baseurl }}{{ link.url }}" class="{{ link.icon }}" target="_blank"></a>
95
+ <a href="{{ link.url }}" class="{{ link.icon }}" target="_blank"></a>
94
96
  {% else %}
95
- <a href="{{ site.baseurl }}{{ link.url }}">{{ link.title }}</a>
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
- {% if page.no_header != true %}
20
- <div class="post_header">
21
- <h1>{{page.title}}</h1>
22
- <h3>{{page.subtitle}}</h3>
23
-
20
+
21
+ <div class="grid">
24
22
 
25
- {% if page.show_supplements != false %}
26
- <p class="supplements">
27
- <span>
28
- <i class="fa fa-calendar"></i> {{ page.date | date: "%B %d, %Y" }}
29
- </span>
30
- <span class="supplements-sep"></span>
31
- <span class="reading-time" title="Estimated read time">
32
- {% include read_time.html %}
33
- </span>
34
- {% if page.categories != nil and page.categories.size > 0 %}
35
- <span class="supplements-sep"></span>
36
- <span class="supplements-category">
37
- <i class="fa fa-bars"></i>
38
- {% for category in page.categories %}
39
- <a href="{{ site.baseurl }}/categories#{{ category | slugify }}">{{ category }}</a>{% if forloop.last == false %},{% endif %}
40
- {% endfor %}
41
- </span>
42
- {% endif %}
43
- {% if page.tags != nil and page.tags.size > 0 %}
44
- <span class="supplements-sep"></span>
45
- <span>
46
- <i class="fa fa-tags"></i>
47
- {% for tag in page.tags %}
48
- <a href="{{ site.baseurl }}/tags#{{ tag | slugify }}">{{ tag }}</a>{% if forloop.last == false %},{% endif %}
49
- {% endfor %}
50
- </span>
51
- {% endif %}
52
- {%- if page.last_modified_at -%}
53
- <br /> <br />
54
- <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>
55
- {% endif %}
56
- </p>
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
- </div>
61
- {% endif %}
62
- <div class ="post_content">
63
- {{content}}
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>
@@ -4,6 +4,7 @@ title: "Markdown Test Page"
4
4
  date: 2021-01-01
5
5
  tags: markdown test
6
6
  subtitle: "copied from https://github.com/fullpipe/markdown-test-page/tree/master"
7
+ comments_id: 1
7
8
  ---
8
9
  # **bold title**
9
10
 
@@ -6,6 +6,9 @@ tags: champion test
6
6
  subtitle: "You're going to love this."
7
7
  categories: rest
8
8
  last_modified_at: 10.09.202
9
+ display_toc2: true
10
+ display_toc: false
11
+ toTop: false
9
12
  ---
10
13
  # Code Block tests
11
14
 
@@ -18,6 +18,7 @@ body {
18
18
  display: flex;
19
19
  flex-direction: column;
20
20
  word-break: break-word;
21
+ color: $primary-color;
21
22
  }
22
23
 
23
24
  header {
@@ -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 aside section:first-child:nth-last-child(1) {
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 aside section:first-child:nth-last-child(2),
70
- footer aside section:first-child:nth-last-child(2) ~ section {
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 aside section:first-child:nth-last-child(3),
78
- footer aside section:first-child:nth-last-child(3) ~ section {
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 aside section:first-child:nth-last-child(4),
86
- footer aside section:first-child:nth-last-child(4) ~ section {
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 aside section:first-child:nth-last-child(5),
94
- footer aside section:first-child:nth-last-child(5) ~ section {
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
- footer aside section:first-child {
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";
@@ -31,7 +31,7 @@
31
31
  }
32
32
 
33
33
  a {
34
- color: #022539;
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;
@@ -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: $accent-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: $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: $accent-color;
210
+ color: $primary-color;
192
211
  position: fixed;
193
212
  bottom: 0;
194
213
  right: 0;
195
- padding: 1rem; /* Adjust padding as needed */
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: 3vw; /* Adjust top, right, bottom, and left as needed */
204
- right: 3vw;
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: 1;
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); /* Adjust text-shadow as needed */
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; /* Adjust letter-spacing as needed */
237
+ letter-spacing: 1rem;
219
238
  text-align: center;
220
239
  }
221
240
 
222
241
  ul {
223
242
  list-style: none;
224
- padding-left: 24px; /* Remove default list 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; /* Adjust margin as needed */
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.3
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: 2023-09-14 00:00:00.000000000 Z
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