jekyll-theme-horizon-flow 0.1.1

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.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +675 -0
  4. data/_config.yml +103 -0
  5. data/_includes/404.html +26 -0
  6. data/_includes/footer.html +104 -0
  7. data/_includes/header.html +23 -0
  8. data/_includes/read_time.html +39 -0
  9. data/_includes/toc.html +182 -0
  10. data/_layouts/archive.html +82 -0
  11. data/_layouts/categories.html +85 -0
  12. data/_layouts/default.html +26 -0
  13. data/_layouts/home.html +58 -0
  14. data/_layouts/post.html +73 -0
  15. data/_layouts/search.html +45 -0
  16. data/_layouts/tags.html +77 -0
  17. data/_posts/2021-01-01-markdown-test-page.md +179 -0
  18. data/_posts/2022-01-18-pirates.md +44 -0
  19. data/_posts/2022-06-21-leopards.md +42 -0
  20. data/_posts/2022-12-12-chatgpt-testpost-all-markdown-elements.md +121 -0
  21. data/_posts/2023-06-01-getting-started-with-jekyll.md +49 -0
  22. data/_posts/2023-06-03-customizing-your-jekyll-site.md +25 -0
  23. data/_posts/2023-06-06-welcome-to-jekyll.md +29 -0
  24. data/_posts/2023-07-13-title-for-champions.md +284 -0
  25. data/_sass/default/_base.scss +31 -0
  26. data/_sass/default/_footer.scss +162 -0
  27. data/_sass/default/_header.scss +62 -0
  28. data/_sass/external/_highlighter_rougify_base16dark.scss +84 -0
  29. data/_sass/external/_normalize.scss +349 -0
  30. data/_sass/functions/_mixins.scss +192 -0
  31. data/_sass/functions/_values.scss +21 -0
  32. data/_sass/jekyll-theme-horizon-flow.scss +16 -0
  33. data/_sass/layouts/_archive.scss +89 -0
  34. data/_sass/layouts/_categories.scss +93 -0
  35. data/_sass/layouts/_home.scss +120 -0
  36. data/_sass/layouts/_post.scss +322 -0
  37. data/_sass/layouts/_search.scss +66 -0
  38. data/_sass/layouts/_tags.scss +91 -0
  39. data/assets/search.json +20 -0
  40. data/assets/style.scss +6 -0
  41. metadata +182 -0
data/_config.yml ADDED
@@ -0,0 +1,103 @@
1
+ # Welcome to Jekyll!
2
+ #
3
+ # This config file is meant for settings that affect your whole blog, values
4
+ # which you are expected to set up once and rarely edit after that. If you find
5
+ # yourself editing this file very often, consider using Jekyll's data files
6
+ # feature for the data you need to update frequently.
7
+ #
8
+ # For technical reasons, this file is *NOT* reloaded automatically when you use
9
+ # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10
+ #
11
+ # If you need help with YAML syntax, here are some quick references for you:
12
+ # https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
13
+ # https://learnxinyminutes.com/docs/yaml/
14
+ #
15
+ # Site settings
16
+ # These are used to personalize your new site. If you look in the HTML files,
17
+ # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
18
+ # You can create any custom variable you would like, and they will be accessible
19
+ # in the templates via {{ site.myvariable }}.
20
+
21
+ title: Horizon Flow
22
+ description: >- # this means to ignore newlines until "baseurl:"
23
+ Write an awesome description for your new site here. You can edit this
24
+ line in _config.yml. It will appear in your document head meta (for
25
+ Google search results) and in your feed.xml site description.
26
+ baseurl: "" # the subpath of your site, e.g. /blog
27
+ url: "" # the base hostname & protocol for your site, e.g. http://example.com
28
+
29
+ # Build settings
30
+ theme: jekyll-theme-horizon-flow
31
+ plugins:
32
+ - jekyll-feed
33
+ - jekyll-paginate
34
+ - jekyll-seo-tag
35
+ - jekyll-sitemap
36
+
37
+ # Exclude from processing.
38
+ # The following items will not be processed, by default.
39
+ # Any item listed under the `exclude:` key here will be automatically added to
40
+ # the internal "default list".
41
+ #
42
+ # Excluded items can be processed by explicitly listing the directories or
43
+ # their entries' file path in the `include:` list.
44
+ #
45
+ # exclude:
46
+ # - .sass-cache/
47
+ # - .jekyll-cache/
48
+ # - gemfiles/
49
+ # - Gemfile
50
+ # - Gemfile.lock
51
+ # - node_modules/
52
+ # - vendor/bundle/
53
+ # - vendor/cache/
54
+ # - vendor/gems/
55
+ # - vendor/ruby/
56
+
57
+ #------------------------------------Horizon Flow specific------------------------------------
58
+
59
+ navigation:
60
+ - title: Home
61
+ url: /index.html
62
+
63
+ footer_sidebar:
64
+ arrangement:
65
+ - description
66
+ - tags
67
+ - categories
68
+ - recentposts
69
+ description:
70
+ enabled: true
71
+ categories:
72
+ enabled: true
73
+ count: 100
74
+ columns: 1
75
+ tags:
76
+ enabled: true
77
+ count: 100
78
+ columns: 3
79
+ recentposts:
80
+ enabled: true
81
+ count: 10
82
+ columns: 2
83
+
84
+ footer_links:
85
+ - title: Feed
86
+ url: /feed.xml
87
+ icon: fa fa-rss
88
+
89
+ defaults:
90
+ -
91
+ scope:
92
+ path: "_posts"
93
+ values:
94
+ toc: yes
95
+ display_toc: true
96
+
97
+ paginate: 5
98
+ paginate_path: "/:num/"
99
+
100
+ read_time_after: "min read"
101
+ words_per_minute: 180
102
+
103
+ permalink: /posts/:title #remove date from link
@@ -0,0 +1,26 @@
1
+ ---
2
+ permalink: /404.html
3
+ layout: default
4
+ ---
5
+
6
+ <style type="text/css" media="screen">
7
+ .container {
8
+ margin: 10px auto;
9
+ margin-top: 4em;
10
+ max-width: 600px;
11
+ text-align: center;
12
+ }
13
+ h1 {
14
+ margin: 30px 0;
15
+ font-size: 4em;
16
+ line-height: 1;
17
+ letter-spacing: -1px;
18
+ }
19
+ </style>
20
+
21
+ <div class="container">
22
+ <h1>404</h1>
23
+
24
+ <p><strong>Page not found :(</strong></p>
25
+ <p>The requested page could not be found.</p>
26
+ </div>
@@ -0,0 +1,104 @@
1
+ <link
2
+ rel="stylesheet"
3
+ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css"
4
+ integrity="sha512-5A8nwdMOWrSz20fDsjczgUidUBR8liPYU+WymTZP1lmY9G6Oc7HlZv156XqnsgNUzTyMefFTcsFH/tnJE/+xBg=="
5
+ crossorigin="anonymous"
6
+ referrerpolicy="no-referrer" />
7
+
8
+
9
+ <footer>
10
+
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">
17
+ {{ site.description }}
18
+ </section>
19
+ {% elsif section == 'extracontent' and site.footer_sidebar.extracontent.enabled %}
20
+ <section class="footer_extracontent">
21
+ {{ site.footer_sidebar.extracontent.data }}
22
+ </section>
23
+ {% elsif section == 'extracontent2' and site.footer_sidebar.extracontent2.enabled %}
24
+ <section class="footer_extracontent">
25
+ {{ site.footer_sidebar.extracontent2.data }}
26
+ </section>
27
+ {% elsif section == 'categories' and site.footer_sidebar.categories.enabled %}
28
+ <section class="footer_categories">
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: "," %}
36
+ {% 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="categories.html#{{ category }}">{{ category }}</a></li>
45
+ {% endfor %}
46
+ </ul>
47
+ </section>
48
+ {% elsif section == 'tags' and site.footer_sidebar.tags.enabled %}
49
+ <section class="footer_tags">
50
+ <h3>Tags</h3>
51
+ <ul>
52
+ {% assign all_tags = "" %}
53
+ {% for post in site.posts %}
54
+ {% assign post_tags = post.tags %}
55
+ {% for tag in post_tags %}
56
+ {% assign all_tags = all_tags | append: tag | append: "," %}
57
+ {% 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="/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">
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="{{ post.url }}">{{ post.title }}</a></li>
77
+ {% endfor %}
78
+ </ul>
79
+ </section>
80
+ {% endif %}
81
+ {% endfor %}
82
+ </aside>
83
+ {% endif %}
84
+
85
+
86
+
87
+
88
+
89
+ {% if site.footer_links.size > 0 %}
90
+ <div class="social-icons item3">
91
+ {% for link in site.footer_links %}
92
+ {% if link.icon %}
93
+ <a href="{{ link.url }}" class="{{ link.icon }}" target="_blank"></a>
94
+ {% else %}
95
+ <a href="{{ link.url }}">{{ link.title }}</a>
96
+ {% endif %}
97
+ {% unless forloop.last %}
98
+ <span class="divider"></span>
99
+ {% endunless %}
100
+ {% endfor %}
101
+ </div>
102
+ {% endif %}
103
+
104
+ </footer>
@@ -0,0 +1,23 @@
1
+ {% assign current = page.url | downcase | split: '/' %}
2
+
3
+ <header>
4
+
5
+ <hr id="header_hr" />
6
+
7
+ <nav>
8
+ <ul>
9
+ {% for item in site.navigation %}
10
+ {% assign class = nil %}
11
+ {% if page.url contains item.url %} <!--or (page.url == '/' and item.url == '/index.html')-->
12
+ {% assign class = 'navi_current' %}
13
+ {% endif %}
14
+ <li><a href="{{ item.url }}" class="{{ class }}">
15
+ {{ item.title }}
16
+ </a></li>
17
+ {% endfor %}
18
+ </ul>
19
+ </nav>
20
+ </header>
21
+
22
+
23
+
@@ -0,0 +1,39 @@
1
+ <!-- https://carlosbecker.com/posts/jekyll-reading-time-without-plugins/ -->
2
+
3
+ {% if post.content.size > 0 %}
4
+ {% assign words = post.content | number_of_words %}
5
+ {% endif %}
6
+ {% if content.size > 0 %}
7
+ {% assign words = content | number_of_words %}
8
+ {% endif %}
9
+ {% if words < site.words_per_minute %}
10
+ <i class="fa fa-clock-o"></i> {% if site.data.configurable_lables.read_time_before and site.data.configurable_lables.read_time_after %}
11
+ {{ site.data.configurable_lables.read_time_before }} 1 {{ site.data.configurable_lables.read_time_after }}
12
+ {% elsif site.data.configurable_lables.read_time_before %}
13
+ {{ site.data.configurable_lables.read_time_before }} 1
14
+ {% elsif site.data.configurable_lables.read_time_after %}
15
+ 1 {{ site.data.configurable_lables.read_time_after }}
16
+ {% else %}
17
+ 1 min read
18
+ {% endif %}
19
+ {% elsif words < site.words_per_minute*2 %}
20
+ <i class="fa fa-clock-o"></i> {% if site.data.configurable_lables.read_time_before and site.data.configurable_lables.read_time_after %}
21
+ {{ site.data.configurable_lables.read_time_before }} 2 {{ site.data.configurable_lables.read_time_after }}
22
+ {% elsif site.data.configurable_lables.read_time_before %}
23
+ {{ site.data.configurable_lables.read_time_before }} 2
24
+ {% elsif site.data.configurable_lables.read_time_after %}
25
+ 2 {{ site.data.configurable_lables.read_time_after }}
26
+ {% else %}
27
+ 2 min read
28
+ {% endif %}
29
+ {% else %}
30
+ <i class="fa fa-clock-o"></i> {% if site.data.configurable_lables.read_time_before and site.data.configurable_lables.read_time_after %}
31
+ {{ site.data.configurable_lables.read_time_before }} {{ words | divided_by:site.words_per_minute }} {{ site.data.configurable_lables.read_time_after }}
32
+ {% elsif site.data.configurable_lables.read_time_before %}
33
+ {{ site.data.configurable_lables.read_time_before }} {{ words | divided_by:site.words_per_minute }}
34
+ {% elsif site.data.configurable_lables.read_time_after %}
35
+ {{ words | divided_by:site.words_per_minute }} {{ site.data.configurable_lables.read_time_after }}
36
+ {% else %}
37
+ {{ words | divided_by:site.words_per_minute }} min read
38
+ {% endif %}
39
+ {% endif %}
@@ -0,0 +1,182 @@
1
+ {% capture tocWorkspace %}
2
+ {% comment %}
3
+ Copyright (c) 2017 Vladimir "allejo" Jimenez
4
+
5
+ Permission is hereby granted, free of charge, to any person
6
+ obtaining a copy of this software and associated documentation
7
+ files (the "Software"), to deal in the Software without
8
+ restriction, including without limitation the rights to use,
9
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the
11
+ Software is furnished to do so, subject to the following
12
+ conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ OTHER DEALINGS IN THE SOFTWARE.
25
+ {% endcomment %}
26
+ {% comment %}
27
+ Version 1.2.0
28
+ https://github.com/allejo/jekyll-toc
29
+
30
+ "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
31
+
32
+ Usage:
33
+ {% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
34
+
35
+ Parameters:
36
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
37
+
38
+ Optional Parameters:
39
+ * sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
40
+ * class (string) : '' - a CSS class assigned to the TOC
41
+ * id (string) : '' - an ID to assigned to the TOC
42
+ * h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
43
+ * h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
44
+ * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
45
+ * item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
46
+ * submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level
47
+ * base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
48
+ * anchor_class (string) : '' - add custom class(es) for each anchor element
49
+ * skip_no_ids (bool) : false - skip headers that do not have an `id` attribute
50
+
51
+ Output:
52
+ An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
53
+ generate the table of contents and will NOT output the markdown given to it
54
+ {% endcomment %}
55
+
56
+ {% capture newline %}
57
+ {% endcapture %}
58
+ {% assign newline = newline | rstrip %} <!-- Remove the extra spacing but preserve the newline -->
59
+
60
+ {% capture deprecation_warnings %}{% endcapture %}
61
+
62
+ {% if include.baseurl %}
63
+ {% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "baseurl" has been deprecated, use "base_url" instead -->{{ newline }}{% endcapture %}
64
+ {% endif %}
65
+
66
+ {% if include.skipNoIDs %}
67
+ {% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "skipNoIDs" has been deprecated, use "skip_no_ids" instead -->{{ newline }}{% endcapture %}
68
+ {% endif %}
69
+
70
+ {% capture jekyll_toc %}{% endcapture %}
71
+ {% assign orderedList = include.ordered | default: false %}
72
+ {% assign baseURL = include.base_url | default: include.baseurl | default: '' %}
73
+ {% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %}
74
+ {% assign minHeader = include.h_min | default: 1 %}
75
+ {% assign maxHeader = include.h_max | default: 6 %}
76
+ {% assign nodes = include.html | strip | split: '<h' %}
77
+
78
+ {% assign firstHeader = true %}
79
+ {% assign currLevel = 0 %}
80
+ {% assign lastLevel = 0 %}
81
+
82
+ {% capture listModifier %}{% if orderedList %}ol{% else %}ul{% endif %}{% endcapture %}
83
+
84
+ {% for node in nodes %}
85
+ {% if node == "" %}
86
+ {% continue %}
87
+ {% endif %}
88
+
89
+ {% assign currLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
90
+
91
+ {% if currLevel < minHeader or currLevel > maxHeader %}
92
+ {% continue %}
93
+ {% endif %}
94
+
95
+ {% assign _workspace = node | split: '</h' %}
96
+
97
+ {% assign _idWorkspace = _workspace[0] | split: 'id="' %}
98
+ {% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
99
+ {% assign htmlID = _idWorkspace[0] %}
100
+
101
+ {% assign _classWorkspace = _workspace[0] | split: 'class="' %}
102
+ {% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
103
+ {% assign htmlClass = _classWorkspace[0] %}
104
+
105
+ {% if htmlClass contains "no_toc" %}
106
+ {% continue %}
107
+ {% endif %}
108
+
109
+ {% if firstHeader %}
110
+ {% assign minHeader = currLevel %}
111
+ {% endif %}
112
+
113
+ {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
114
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
115
+
116
+ {% if include.item_class and include.item_class != blank %}
117
+ {% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %}
118
+ {% endif %}
119
+
120
+ {% if include.submenu_class and include.submenu_class != blank %}
121
+ {% assign subMenuLevel = currLevel | minus: 1 %}
122
+ {% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %}
123
+ {% endif %}
124
+
125
+ {% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
126
+
127
+ {% if htmlID %}
128
+ {% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %}
129
+
130
+ {% if include.anchor_class %}
131
+ {% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %}
132
+ {% endif %}
133
+
134
+ {% capture listItem %}<a{{ anchorAttributes }}>{{ anchorBody }}</a>{% endcapture %}
135
+ {% elsif skipNoIDs == true %}
136
+ {% continue %}
137
+ {% else %}
138
+ {% capture listItem %}{{ anchorBody }}{% endcapture %}
139
+ {% endif %}
140
+
141
+ {% if currLevel > lastLevel %}
142
+ {% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
143
+ {% elsif currLevel < lastLevel %}
144
+ {% assign repeatCount = lastLevel | minus: currLevel %}
145
+
146
+ {% for i in (1..repeatCount) %}
147
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
148
+ {% endfor %}
149
+
150
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
151
+ {% else %}
152
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
153
+ {% endif %}
154
+
155
+ {% capture jekyll_toc %}{{ jekyll_toc }}<li{{ listItemClass }}>{{ listItem }}{% endcapture %}
156
+
157
+ {% assign lastLevel = currLevel %}
158
+ {% assign firstHeader = false %}
159
+ {% endfor %}
160
+
161
+ {% assign repeatCount = minHeader | minus: 1 %}
162
+ {% assign repeatCount = lastLevel | minus: repeatCount %}
163
+ {% for i in (1..repeatCount) %}
164
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
165
+ {% endfor %}
166
+
167
+ {% if jekyll_toc != '' %}
168
+ {% assign rootAttributes = '' %}
169
+ {% if include.class and include.class != blank %}
170
+ {% capture rootAttributes %} class="{{ include.class | split: '.' | join: ' ' }}"{% endcapture %}
171
+ {% endif %}
172
+
173
+ {% if include.id and include.id != blank %}
174
+ {% capture rootAttributes %}{{ rootAttributes }} id="{{ include.id }}"{% endcapture %}
175
+ {% endif %}
176
+
177
+ {% if rootAttributes %}
178
+ {% assign nodes = jekyll_toc | split: '>' %}
179
+ {% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %}
180
+ {% endif %}
181
+ {% endif %}
182
+ {% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc -}}
@@ -0,0 +1,82 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <main id="archive">
6
+ <section>
7
+ <h1>{% if site.data.configurable_lables.archive_title %}{{site.data.configurable_lables.archive_title}}{% else %}Archive{% endif %}</h1>
8
+
9
+ {% if site.posts.size > 0 %}
10
+ <!-- show all years -->
11
+ <div class="archive_all_years{% if site.layouts.archive.columns and site.layouts.archive.columns >= 1 and site.layouts.archive.columns <= 5 %}{{site.layouts.archive.columns}}{% else %}2{% endif %}">
12
+ <ul>
13
+ {% assign postsByYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %}
14
+ {% for year in postsByYear %}
15
+ <li>
16
+ <a href="#{{ year.name }}">
17
+ <span class="archive_linktitle">{{ year.name }}</span>
18
+ <span class="archive_yearcount">{{ year.items | size }}</span>
19
+ </a>
20
+ </li>
21
+ {% endfor %}
22
+ </ul>
23
+ </div>
24
+ {% else %}
25
+ <!-- Display an empty list when there are no posts -->
26
+ <div class="archive_all_years">
27
+ <ul>
28
+ <li>{% if site.data.configurable_lables.archive_found %}{{site.data.configurable_lables.archive_found}}{% else %}No archive years available.{% endif %}</li>
29
+ </ul>
30
+ </div>
31
+ {% endif %}
32
+
33
+
34
+
35
+
36
+ <!-- show posts for certain year -->
37
+ <div class="archive_results">
38
+ {% if site.data.configurable_lables.archive_found %}{{site.data.configurable_lables.archive_found}}{% else %}Found Posts per selected Year{% endif %}
39
+ <br/><br/><br/><br/>
40
+
41
+ {% assign postsByYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %}
42
+ {% for year in postsByYear %}
43
+ <div id="{{ year.name }}" class="archive_year" >
44
+ <h2>{{ year.name }}</h2>
45
+
46
+ {% for post in year.items %}
47
+ {% if post.id %}
48
+ {% assign title = post.title | markdownify | strip_html %}
49
+ {% else %}
50
+ {% assign title = post.title %}
51
+ {% endif %}
52
+
53
+ <div class="archive_findresults">
54
+
55
+ <span class="archive_date">
56
+
57
+ <a href="{{ post.url }}">
58
+ <i class="archive_day">{{ post.date | date: "%d" }}</i>
59
+ </a>
60
+ <a href="{{ post.url }}">
61
+ <span>{{ post.date | date: "%b/%Y" }}</span>
62
+ </a>
63
+
64
+ </span>
65
+
66
+ <span class="archive_summary">
67
+ <h3>
68
+ <a href="{{ post.url | relative_url }}">{{ post.title }}</a>
69
+ </h3>
70
+ {{ post.content | markdownify | strip_html | truncatewords: 50 }}
71
+ </span>
72
+
73
+ </div>
74
+
75
+ {% endfor %}
76
+
77
+ </div>
78
+ {% endfor %}
79
+ </div>
80
+
81
+ </section>
82
+ </main>
@@ -0,0 +1,85 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <main id="categories">
6
+ <section>
7
+ <h1>{% if site.data.configurable_lables.categories_title %}{{site.data.configurable_lables.categories_title}}{% else %}Categories{% endif %}</h1>
8
+
9
+ <!-- Capture and sort categories by count -->
10
+ {% capture site_categories %}
11
+ {% for category in site.categories %}
12
+ {{ category[1] | size | plus: 1000 }}&#x1F;{{ category[0] }}
13
+ {% unless forloop.last %}&#x1E;{% endunless %}
14
+ {% endfor %}
15
+ {% endcapture %}
16
+ {% assign sortedCategories = site_categories | split: '&#x1E;' | sort | reverse %}
17
+
18
+ {% if sortedCategories.size > 0 %}
19
+ <!-- Show all categories sorted by count -->
20
+ <div class="categories_all{% if site.layouts.categories.columns and site.layouts.categories.columns >= 1 and site.layouts.categories.columns <= 5 %}{{site.layouts.categories.columns}}{% else %}3{% endif %}">
21
+ <ul>
22
+ {% for category in sortedCategories %}
23
+ {% assign categoryParts = category | split: '&#x1F;' %}
24
+ {% assign categoryName = categoryParts[1] %}
25
+ {% assign categoryCount = categoryParts[0] | minus: 1000 %}
26
+ <li>
27
+ <a href="#{{ categoryName }}">
28
+ <span class="category_linktitle">{{ categoryName }}</span>
29
+ <span class="category_count">{{ categoryCount }}</span>
30
+ </a>
31
+ </li>
32
+ {% endfor %}
33
+ </ul>
34
+ </div>
35
+ {% else %}
36
+ <!-- Display an empty list when sortedCategories is empty -->
37
+ <div class="categories_all">
38
+ <ul>
39
+ <li>{% if site.data.configurable_lables.categories_found %}{{site.data.configurable_lables.categories_found}}{% else %}No categories available.{% endif %}</li>
40
+ </ul>
41
+ </div>
42
+ {% endif %}
43
+
44
+
45
+
46
+
47
+ <!-- show posts for certain categorie -->
48
+ <div class="categories_results">
49
+ {% if site.data.configurable_lables.categories_found %}{{site.data.configurable_lables.categories_found}}{% else %}Found Posts per selected Categorie{% endif %}
50
+ <br/><br/><br/><br/>
51
+
52
+ {% for category in site.categories %}
53
+ <div id="{{ category[0] }}" class="category_posts">
54
+ <h2>{{category[0]}}</h2>
55
+
56
+ {% for post in category[1] %}
57
+ <div class="categories_findresult">
58
+ <span class="categories_date">
59
+
60
+ <a href="{{ post.url }}">
61
+ <i class="categories_day">{{ post.date | date: "%d" }}</i>
62
+ </a>
63
+ <a href="{{ post.url }}">
64
+ <span>{{ post.date | date: "%b/%Y" }}</span>
65
+ </a>
66
+
67
+ </span>
68
+
69
+ <span class="categories_summary">
70
+ <h3>
71
+ <a href="{{ post.url }}">{{ post.title }}</a>
72
+ </h3>
73
+ {{ post.content | markdownify | strip_html | truncatewords: 50 }}
74
+ </span>
75
+
76
+ </div>
77
+
78
+ {% endfor %}
79
+ </div>
80
+ {% endfor %}
81
+ </div>
82
+
83
+
84
+ </section>
85
+ </main>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <!--
3
+ Horizon Flow Theme 0.0.1
4
+ Copyright 2023 Markus Schiller - https://papierkorp.github.io/
5
+ Free for personal and commercial use under the MIT license
6
+ https://github.com/papierkorp/jekyll-theme-horizon-flow/blob/main/LICENSE.txt
7
+ -->
8
+ <html>
9
+ <head lang="{{ site.locale | default: "en" }}">
10
+ {% seo %}
11
+ {% feed_meta %}
12
+ <title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title>
13
+ <meta name="description" content="{{ page.excerpt | default: site.description | strip_html | normalize_whitespace | truncate: 160 | escape }}">
14
+ <link rel="canonical" href="{{ page.url | replace:'index.html', '' | absolute_url }}">
15
+ </head>
16
+
17
+ <body>
18
+ <link rel="stylesheet" href="{{ '/assets/style.css' | relative_url }}">
19
+ {% include header.html %}
20
+
21
+ {{ content }}
22
+
23
+ {% include footer.html %}
24
+ </body>
25
+
26
+ </html>