klise 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a7b9e5a649c9061c3bc5b95f9ec5e35d3b64142f2b5e2e9ed1c877a9dc9e3d34
4
+ data.tar.gz: 1fdb701edc67a471a1200c2429f9e4bcc0264c9e22d5193f609fef06e7fb307f
5
+ SHA512:
6
+ metadata.gz: 3980a7ee19dae324802266181ffddc007cc6dd94b971f12bcb33e925e28a87448d5b3db726219401da37cdb48350fdec3e3451a8e713116016b778296debcf2d
7
+ data.tar.gz: 9a6cf5513628c915d4e9eea29b0a0f99ebb9e637b5ca92cd4fce1b14ea60777d1e9d66d9d9674a4af4de232b1b453664e9ea4dd1b0fee97b369f38f019204956
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2019 Mahendrata Harpi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,59 @@
1
+ # Klisé
2
+
3
+ Klisé is minimalist Jekyll theme for running a personal site and blog running on Jekyll.<br>
4
+ For demo <a href="https://klise.now.sh" target="_blank" rel="noopener">klise.now.sh</a>
5
+
6
+ ## Features
7
+
8
+ - [x] Light & Dark Mode support :waxing_crescent_moon:
9
+ - [x] Customizable (using `.scss`)
10
+ - [x] Responsive (desktop, tab and mobile)
11
+ - [x] Mobile First Design
12
+ - [x] SEO Optimized
13
+ - [x] Images of post Organized ([`jekyll-postfiles`](https://github.com/nhoizey/jekyll-postfiles))
14
+ - [x] Generate Sitemap ([`jekyll-sitemap`](https://github.com/jekyll/jekyll-sitemap))
15
+ - [x] RSS Feed ([`jekyll-feed`](https://github.com/jekyll/jekyll-feed))
16
+ - [x] Syntax Highlighter ([`rouge`](https://github.com/rouge-ruby/rouge))
17
+ - [x] Next & Previous Post
18
+ - [x] Comment layout, enable in frontmatter if you wish
19
+ - [x] Google analytics
20
+ - [x] HTML Minify ([`jekyll-compress-html`](https://github.com/penibelst/jekyll-compress-html))
21
+ - [x] W3C **Validated**
22
+ - [x] Lighthouse and PageSpeed **Passed**
23
+
24
+ ![Lighthouse Result](./lighthouse.png)
25
+
26
+ ## Backlogs
27
+
28
+ - [ ] Intergrated with PhotoSwipe.
29
+ - [ ] Add schema.org meta information.
30
+ - [ ] Transform class selector to BEM metodology.
31
+
32
+ ## Installation
33
+
34
+ Run local server:
35
+
36
+ ```bash
37
+ git clone https://github.com/piharpi/jekyll-klise.git
38
+ cd jekyll-klise
39
+ bundle install
40
+ bundle exec jekyll serve
41
+ ```
42
+
43
+ Navigate to `localhost:4000`. You're Welcome, Fork and be Stargazer.
44
+
45
+ [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/piharpi/jekyll-klise) [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/piharpi/jekyll-klise)
46
+
47
+ ## Limitation
48
+
49
+ - Since [`jekyll-postfiles`](https://github.com/nhoizey/jekyll-postfiles#compatibility) plugin isn't supported by github pages, this cause will make your site problems, path broken or post images won't show up, you can host alternatively using likes [netlify.com](https://netlify.com), [vercel.com](https://vercel.com) or [surge.sh](https://surge.sh) services, which support 3rd party.
50
+
51
+ ## Contributing
52
+
53
+ If you see any typos or formatting errors in a post, or want to helping reduce backlogs or any other issue that needs to be addressed, please do not hesitate to open a pull request and fix it!, please read [contributing](./CONTRIBUTING.md) before PR.
54
+
55
+ Yeaaa feel free to open a pull request.
56
+
57
+ ## License
58
+
59
+ This project is open source and available under the [MIT License](LICENSE).
@@ -0,0 +1,105 @@
1
+ {% capture headingsWorkspace %}
2
+ {% comment %}
3
+ Version 1.0.4
4
+ https://github.com/allejo/jekyll-anchor-headings
5
+
6
+ "Be the pull request you wish to see in the world." ~Ben Balter
7
+
8
+ Usage:
9
+ {% include anchor_headings.html html=content %}
10
+
11
+ Parameters:
12
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
13
+
14
+ Optional Parameters:
15
+ * beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content
16
+ * anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `<a>` tag; you may NOT use `href`, `class` or `title`
17
+ * anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available
18
+ * anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space
19
+ * anchorTitle (string) : '' - The `title` attribute that will be used for anchors
20
+ * h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored
21
+ * h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored
22
+ * bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content
23
+ * bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content
24
+
25
+ Output:
26
+ The original HTML with the addition of anchors inside of all of the h1-h6 headings.
27
+ {% endcomment %}
28
+
29
+ {% assign minHeader = include.h_min | default: 1 %}
30
+ {% assign maxHeader = include.h_max | default: 6 %}
31
+ {% assign beforeHeading = include.beforeHeading %}
32
+ {% assign nodes = include.html | split: '<h' %}
33
+
34
+ {% capture edited_headings %}{% endcapture %}
35
+
36
+ {% for _node in nodes %}
37
+ {% capture node %}{{ _node | strip }}{% endcapture %}
38
+
39
+ {% if node == "" %}
40
+ {% continue %}
41
+ {% endif %}
42
+
43
+ {% assign nextChar = node | replace: '"', '' | strip | slice: 0, 1 %}
44
+ {% assign headerLevel = nextChar | times: 1 %}
45
+
46
+ <!-- If the level is cast to 0, it means it's not a h1-h6 tag, so let's try to fix it -->
47
+ {% if headerLevel == 0 %}
48
+ {% if nextChar != '<' and nextChar != '' %}
49
+ {% capture node %}<h{{ node }}{% endcapture %}
50
+ {% endif %}
51
+
52
+ {% capture edited_headings %}{{ edited_headings }}{{ node }}{% endcapture %}
53
+ {% continue %}
54
+ {% endif %}
55
+
56
+ {% assign _workspace = node | split: '</h' %}
57
+ {% assign _idWorkspace = _workspace[0] | split: 'id="' %}
58
+ {% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
59
+ {% assign html_id = _idWorkspace[0] %}
60
+
61
+ {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
62
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
63
+
64
+ <!-- Build the anchor to inject for our heading -->
65
+ {% capture anchor %}{% endcapture %}
66
+
67
+ {% if html_id and headerLevel >= minHeader and headerLevel <= maxHeader %}
68
+ {% capture anchor %}href="#{{ html_id }}"{% endcapture %}
69
+
70
+ {% if include.anchorClass %}
71
+ {% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %}
72
+ {% endif %}
73
+
74
+ {% if include.anchorTitle %}
75
+ {% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', header }}"{% endcapture %}
76
+ {% endif %}
77
+
78
+ {% if include.anchorAttrs %}
79
+ {% capture anchor %}{{ anchor }} {{ include.anchorAttrs }}{% endcapture %}
80
+ {% endif %}
81
+
82
+ {% capture anchor %}<a {{ anchor }}>{{ include.anchorBody | replace: '%heading%', header | default: '' }}</a>{% endcapture %}
83
+
84
+ <!-- In order to prevent adding extra space after a heading, we'll let the 'anchor' value contain it -->
85
+ {% if beforeHeading %}
86
+ {% capture anchor %}{{ anchor }} {% endcapture %}
87
+ {% else %}
88
+ {% capture anchor %} {{ anchor }}{% endcapture %}
89
+ {% endif %}
90
+ {% endif %}
91
+
92
+ {% capture new_heading %}
93
+ <h{{ _hAttrToStrip }}
94
+ {{ include.bodyPrefix }}
95
+ {% if beforeHeading %}
96
+ {{ anchor }}{{ header }}
97
+ {% else %}
98
+ {{ header }}{{ anchor }}
99
+ {% endif %}
100
+ {{ include.bodySuffix }}
101
+ </h{{ _workspace | last }}
102
+ {% endcapture %}
103
+ {% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %}
104
+ {% endfor %}
105
+ {% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }}
@@ -0,0 +1,9 @@
1
+ <div class="author">
2
+ <img
3
+ class="author-avatar"
4
+ src="{{ site.author.avatar }}"
5
+ alt="{{ site.author.username }}"
6
+ />
7
+ <h2 class="author-name">{{ site.author.name }}</h2>
8
+ <p class="author-bio">{{ site.author.bio }}</p>
9
+ </div>
@@ -0,0 +1,10 @@
1
+ <!-- unnecessary file, however you can still use for comment section, e.g disqus -->
2
+ <script
3
+ src="https://utteranc.es/client.js"
4
+ repo="username/reponame"
5
+ issue-term="pathname"
6
+ label="✨ comment ✨"
7
+ theme="github-light"
8
+ crossorigin="anonymous"
9
+ async
10
+ ></script>
@@ -0,0 +1,38 @@
1
+ <footer class="footer">
2
+ <a class="footer_item" href="/thanks">ack.</a>
3
+ <a class="footer_item" href="javascript::void(0)">resume</a>
4
+ <a class="footer_item" href="/feed.xml">rss</a>
5
+ <span class="footer_item">&copy; {{ site.time | date: "%Y" }}</span>
6
+ <small class="footer_copyright">
7
+ <!-- Klisé Theme: https://github.com/piharpi/jekyll-klise -->
8
+ <a
9
+ href="https://github.com/piharpi/jekyll-klise"
10
+ target="_blank"
11
+ rel="noreferrer noopener"
12
+ >klisé</a
13
+ >
14
+ theme on
15
+ <a href="https://jekyllrb.com" target="_blank" rel="noreferrer noopener"
16
+ >jekyll</a
17
+ >
18
+ </small>
19
+ </footer>
20
+ <script src="/assets/js/main.js" defer="defer"></script>
21
+
22
+ {%- if page.google_analytics -%}
23
+ <script src="/assets/js/galite.js"></script>
24
+ <script>
25
+ var galite = galite || {};
26
+ galite.UA = "{{ site.google_analytics }}";
27
+ </script>
28
+ {%- endif -%}
29
+ {%- if page.url == '/archive/' -%}
30
+ <script src="/assets/js/search.min.js"></script>
31
+ <script>
32
+ var sjs = SimpleJekyllSearch({
33
+ searchInput: document.getElementById('search-input'),
34
+ resultsContainer: document.getElementById('search-results'),
35
+ json: '/assets/search.json',
36
+ });
37
+ </script>
38
+ {%- endif -%}
@@ -0,0 +1,164 @@
1
+ <head prefix="og: http://ogp.me/ns#">
2
+ <meta charset="UTF-8" />
3
+ <meta http-equiv="X-UA-Compatible" content="ie=edge" />
4
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
5
+ <meta name="mobile-web-app-capable" content="yes" />
6
+ <meta name="apple-mobile-web-app-capable" content="yes" />
7
+ <meta name="application-name" content="{{ site.title }}" />
8
+ <meta name="apple-mobile-web-app-status-bar-style" content="#fff" />
9
+ <meta name="apple-mobile-web-app-title" content="{{ site.title }}" />
10
+ <title>
11
+ {% if page.title %}{{ page.title | escape }} - {{ site.title }}{% else %}{{
12
+ site.title | escape }}{% endif %}
13
+ </title>
14
+ <link
15
+ rel="alternate"
16
+ href="{{
17
+ page.url | remove: 'index.html' | remove: '.html' | absolute_url
18
+ }}"
19
+ hreflang="{{ site.lang }}"
20
+ />
21
+ <link
22
+ rel="canonical"
23
+ href="{{
24
+ page.url | remove: 'index.html' | remove: '.html' | absolute_url
25
+ }}"
26
+ />
27
+ {% if paginator.previous_page %}
28
+ <link
29
+ rel="prev"
30
+ href="{{
31
+ paginator.previous_page_path
32
+ | remove: 'index.html'
33
+ | remove: '.html'
34
+ }}"
35
+ />
36
+ {% endif %} {% if paginator.next_page %}
37
+ <link
38
+ rel="next"
39
+ href="{{
40
+ paginator.next_page_path
41
+ | remove: 'index.html'
42
+ | remove: '.html'
43
+ }}"
44
+ />
45
+ {% endif %}
46
+ <meta
47
+ name="description"
48
+ content="{{
49
+ page.description
50
+ | default: site.description
51
+ | strip_html
52
+ | normalize_whitespace
53
+ | truncate: 200
54
+ | escape
55
+ }}"
56
+ />
57
+ <meta name="referrer" content="no-referrer-when-downgrade" />
58
+ <meta property="fb:app_id" content="{{ site.fb_appid }}" />
59
+ <meta
60
+ property="og:site_name"
61
+ content="{% if page.title %}{{ page.title | escape }} | {{
62
+ site.author.facebook
63
+ }}{% else %}{{ site.title | escape }}{% endif %}"
64
+ />
65
+ <meta
66
+ property="og:title"
67
+ content="{% if page.title %}{{ page.title | escape }} | {{
68
+ site.author.facebook
69
+ }}{% else %}{{ site.title | escape }}{% endif %}"
70
+ />
71
+ {% if page.location %}
72
+ <meta property="og:type" content="article" />
73
+ <meta
74
+ property="article:publisher"
75
+ content="https://web.facebook.com/{{ site.author.facebook }}"
76
+ />
77
+ {% else %}
78
+ <meta property="og:type" content="website" />
79
+ {% endif %}
80
+ <meta
81
+ property="og:url"
82
+ content="{{
83
+ page.url | remove: 'index.html' | remove: '.html' | absolute_url
84
+ }}"
85
+ />
86
+ <meta
87
+ property="og:description"
88
+ content="{{
89
+ page.description
90
+ | default: site.description
91
+ | strip_html
92
+ | normalize_whitespace
93
+ | truncate: 200
94
+ | escape
95
+ }}"
96
+ />
97
+ {% if page.image %}
98
+ <meta property="og:image" content="{{ page.image | absolute_url }}" />
99
+ {% else %}
100
+ <meta property="og:image" content="{{ site.image | absolute_url }}" />
101
+ {% endif %}
102
+ <meta property="og:image:width" content="640" />
103
+ <meta property="og:image:height" content="640" />
104
+ <meta name="twitter:card" content="summary" />
105
+ <meta
106
+ name="twitter:title"
107
+ content="{% if page.title %}{{ page.title | escape }} | {{
108
+ site.author.twitter
109
+ }}{% else %}{{ site.title | escape }}{% endif %}"
110
+ />
111
+ <meta
112
+ name="twitter:url"
113
+ content="{{
114
+ page.url | remove: 'index.html' | remove: '.html' | absolute_url
115
+ }}"
116
+ />
117
+ <meta name="twitter:site" content="@{{ site.author.twitter }}" />
118
+ <meta name="twitter:creator" content="@{{ site.author.twitter }}" />
119
+ <meta
120
+ name="twitter:description"
121
+ content="{{
122
+ page.description
123
+ | default: site.description
124
+ | strip_html
125
+ | normalize_whitespace
126
+ | truncate: 200
127
+ | escape
128
+ }}"
129
+ />
130
+ {% if page.image %}
131
+ <meta name="twitter:image" content="{{ page.image | absolute_url }}" />
132
+ {% else %}
133
+ <meta name="twitter:image" content="{{ site.image | absolute_url }}" />
134
+ {% endif %} {% feed_meta %}
135
+ <link
136
+ rel="apple-touch-icon"
137
+ sizes="180x180"
138
+ href="/assets/favicons/apple-touch-icon.png"
139
+ />
140
+ <link
141
+ rel="icon"
142
+ type="image/png"
143
+ sizes="32x32"
144
+ href="/assets/favicons/favicon-32x32.png"
145
+ />
146
+ <link
147
+ rel="icon"
148
+ type="image/png"
149
+ sizes="16x16"
150
+ href="/assets/favicons/favicon-16x16.png"
151
+ />
152
+ <link rel="manifest" href="/assets/favicons/site.webmanifest" />
153
+ <link
154
+ rel="mask-icon"
155
+ href="/assets/favicons/safari-pinned-tab.svg"
156
+ color="#5bbad5"
157
+ />
158
+ <meta name="apple-mobile-web-app-title" content="Jekyll Klise" />
159
+ <meta name="application-name" content="Jekyll Klise" />
160
+ <meta name="msapplication-TileColor" content="#da532c" />
161
+ <meta name="theme-color" content="#2c2c2c" />
162
+
163
+ <link rel="stylesheet" href="/assets/css/style.css" />
164
+ </head>
@@ -0,0 +1,211 @@
1
+ <div class="navbar" role="navigation">
2
+ <nav class="menu">
3
+ <input type="checkbox" id="menu-trigger" class="menu-trigger" />
4
+ <label for="menu-trigger">
5
+ <span class="menu-icon">
6
+ <svg
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ width="24"
9
+ height="24"
10
+ viewBox="0 0 512 512"
11
+ >
12
+ <path
13
+ d="M64,384H448V341.33H64Zm0-106.67H448V234.67H64ZM64,128v42.67H448V128Z"
14
+ />
15
+ </svg>
16
+ </span>
17
+ </label>
18
+ <a id="mode">
19
+ <svg
20
+ class="mode-sunny"
21
+ xmlns="http://www.w3.org/2000/svg"
22
+ width="24"
23
+ height="24"
24
+ viewBox="0 0 512 512"
25
+ >
26
+ <title>LIGHT</title>
27
+ <line
28
+ x1="256"
29
+ y1="48"
30
+ x2="256"
31
+ y2="96"
32
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
33
+ />
34
+ <line
35
+ x1="256"
36
+ y1="416"
37
+ x2="256"
38
+ y2="464"
39
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
40
+ />
41
+ <line
42
+ x1="403.08"
43
+ y1="108.92"
44
+ x2="369.14"
45
+ y2="142.86"
46
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
47
+ />
48
+ <line
49
+ x1="142.86"
50
+ y1="369.14"
51
+ x2="108.92"
52
+ y2="403.08"
53
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
54
+ />
55
+ <line
56
+ x1="464"
57
+ y1="256"
58
+ x2="416"
59
+ y2="256"
60
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
61
+ />
62
+ <line
63
+ x1="96"
64
+ y1="256"
65
+ x2="48"
66
+ y2="256"
67
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
68
+ />
69
+ <line
70
+ x1="403.08"
71
+ y1="403.08"
72
+ x2="369.14"
73
+ y2="369.14"
74
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
75
+ />
76
+ <line
77
+ x1="142.86"
78
+ y1="142.86"
79
+ x2="108.92"
80
+ y2="108.92"
81
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
82
+ />
83
+ <circle
84
+ cx="256"
85
+ cy="256"
86
+ r="80"
87
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
88
+ />
89
+ </svg>
90
+ <svg
91
+ class="mode-moon"
92
+ xmlns="http://www.w3.org/2000/svg"
93
+ width="24"
94
+ height="24"
95
+ viewBox="0 0 512 512"
96
+ >
97
+ <title>DARK</title>
98
+ <line
99
+ x1="256"
100
+ y1="48"
101
+ x2="256"
102
+ y2="96"
103
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
104
+ />
105
+ <line
106
+ x1="256"
107
+ y1="416"
108
+ x2="256"
109
+ y2="464"
110
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
111
+ />
112
+ <line
113
+ x1="403.08"
114
+ y1="108.92"
115
+ x2="369.14"
116
+ y2="142.86"
117
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
118
+ />
119
+ <line
120
+ x1="142.86"
121
+ y1="369.14"
122
+ x2="108.92"
123
+ y2="403.08"
124
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
125
+ />
126
+ <line
127
+ x1="464"
128
+ y1="256"
129
+ x2="416"
130
+ y2="256"
131
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
132
+ />
133
+ <line
134
+ x1="96"
135
+ y1="256"
136
+ x2="48"
137
+ y2="256"
138
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
139
+ />
140
+ <line
141
+ x1="403.08"
142
+ y1="403.08"
143
+ x2="369.14"
144
+ y2="369.14"
145
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
146
+ />
147
+ <line
148
+ x1="142.86"
149
+ y1="142.86"
150
+ x2="108.92"
151
+ y2="108.92"
152
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
153
+ />
154
+ <circle
155
+ cx="256"
156
+ cy="256"
157
+ r="80"
158
+ style="stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"
159
+ />
160
+ </svg>
161
+ </a>
162
+ <div class="trigger">
163
+ <div class="trigger-container">
164
+ {%- assign url = page.url -%}
165
+ {%- assign menus = site.data.menus -%}
166
+ {%- if menus %}
167
+ {%- for menu in menus -%}
168
+ {%- if url == menu.url -%}
169
+ <a class="menu-link active" href="{{ menu.url }}">{{ menu.title }}</a>
170
+ {%- else -%}
171
+ {%- if menu.external -%}
172
+ <a
173
+ class="menu-link"
174
+ href="{{ menu.url }}"
175
+ target="_blank"
176
+ rel="noopener"
177
+ >{{ menu.title }}</a
178
+ >
179
+ {%- else -%}
180
+ <a class="menu-link" href="{{ menu.url }}">{{ menu.title }}</a>
181
+ {%- endif -%}
182
+ {%- endif -%}
183
+ {%- endfor -%}
184
+ {%- else -%}
185
+ <a class="menu-link {% if url == '/' %}active{% endif %}" href="/">home</a>
186
+ <a class="menu-link {% if url == '/about/' %}active{% endif %}" href="/about">about</a>
187
+ {%- endif -%}
188
+ <a class="menu-link rss" href="/feed.xml">
189
+ <svg
190
+ xmlns="http://www.w3.org/2000/svg"
191
+ width="17"
192
+ height="17"
193
+ viewBox="0 0 512 512"
194
+ fill="#ED812E"
195
+ >
196
+ <title>RSS</title>
197
+ <path
198
+ d="M108.56,342.78a60.34,60.34,0,1,0,60.56,60.44A60.63,60.63,0,0,0,108.56,342.78Z"
199
+ />
200
+ <path
201
+ d="M48,186.67v86.55c52,0,101.94,15.39,138.67,52.11s52,86.56,52,138.67h86.66C325.33,312.44,199.67,186.67,48,186.67Z"
202
+ />
203
+ <path
204
+ d="M48,48v86.56c185.25,0,329.22,144.08,329.22,329.44H464C464,234.66,277.67,48,48,48Z"
205
+ />
206
+ </svg>
207
+ </a>
208
+ </div>
209
+ </div>
210
+ </nav>
211
+ </div>