quattle 1.5.5 → 1.6.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: a24c165686bbb7e663d2fc031bec0afb1205ac2ae2999306b7ff8a93a0d4643f
4
- data.tar.gz: 51b747b33b96584853f056965fb4fd69d58117fe4df1b92fee79ffb8a340f989
3
+ metadata.gz: f1e52c3a31b95d65e137d42f28338c925b0e170792572ac3430ded8ef38c70a0
4
+ data.tar.gz: c289e55ba88dbf8b98a6bb6a8dbc71aab4801a9e296ebf7373ee24ddcff8f2c6
5
5
  SHA512:
6
- metadata.gz: '02244028802fd862f4a428a9fcef2a6eccd075a23b7d70ae39425d80413f9df0d8c226750d846f17b9d6f6545f950f8e3baaeb732d58a212d7b83aff90eaf6dc'
7
- data.tar.gz: 1e8cc454183b6bca9ba86d435f34ec93c332e59c8e35881e244b1784a399a027b1ff27d1f0f4e6243001ec9d9df3e21a2602dc45c259558aec0f8a6bb4ff94a8
6
+ metadata.gz: 2fe1d6c1cf4b7d8f0fe23238c4b092d9aaf262a2ca4f6cd560a8b4a7a7560d8273ec7889561b95502485fe6195774e4e672977f543812c3c56063d1808b08db4
7
+ data.tar.gz: 67e1b3d45cf99d4403402d7e864ccab0596f9904ca668c643fbe5ae6f6a9d0806ea177ecc5a4295da57bc3bdb6ece306a9aac26f2099eb9facb144180adb0f0b
data/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2019-2022 Victor Wynne
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.
1
+ MIT License
2
+
3
+ Copyright (c) 2019-2022 Victor Wynne
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.
data/README.md CHANGED
@@ -1,44 +1,44 @@
1
- Quattle is a modern and customizable theme for the static site generator Jekyll.
2
-
3
- ## <small>Demo</small>
4
- [quattle.victorwynne.com](https://quattle.victorwynne.com)
5
-
6
- ## <small>Download</small>
7
- [GitHub](https://github.com/victorwynne/quattle/releases) or [RubyGems](https://rubygems.org/gems/quattle)
8
-
9
- ## <small>Features</small>
10
- Fully responsive with an emphasis on mobile friendly design, typography and interaction
11
-
12
- HTML, SASS, XML, supporting assets and config files are included for the theme's design and functionality
13
-
14
- CSS media feature `prefers-color-scheme` to detect if the visitor has requested a light or dark color mode
15
-
16
- `$variables` based color schemes for light and dark mode, syntax highlighting for code blocks and styling of elements
17
-
18
- HTML/CSS compression (minification)
19
-
20
- Valid RSS 2.0 syndicated feed
21
-
22
- GDPR valid and compliant cookie consent banner
23
-
24
- 404, site map, navigation, archive, category, tag, about, style and privacy pages
25
-
26
- Archive displays a tag cloud and number of posts per month, year, category, tag
27
-
28
- Excerpt, pagination and per-post navigation to older/newer entries
29
-
30
- Smart quotes across all content with the `{ | smartify }` liquid filter
31
-
32
- Rich preview links when shared via iMessage and social media services
33
-
34
- A wide variety of HTML elements commonly used in Markdown writing are styled (mark, source references, blockquotes, headers, tables, boxes/buttons, figure captions, code blocks, footnotes)
35
-
36
- Additional supported and styled front matter:
37
- * Author attribution
38
- * Last modified date
39
- * Permalinks for linked list style posts that have an external source reference
40
-
41
-
42
- ## <small>License</small>
43
-
44
- Quattle is free software distributed under a [MIT license](https://github.com/victorwynne/quattle/blob/main/LICENSE).
1
+ Quattle is a modern and customizable theme for the static site generator Jekyll.
2
+
3
+ ## <small>Demo</small>
4
+ [quattle.victorwynne.com](https://quattle.victorwynne.com)
5
+
6
+ ## <small>Download</small>
7
+ [GitHub](https://github.com/victorwynne/quattle/releases) or [RubyGems](https://rubygems.org/gems/quattle)
8
+
9
+ ## <small>Features</small>
10
+ Fully responsive with an emphasis on mobile friendly design, typography and interaction
11
+
12
+ HTML, SASS, XML, supporting assets and config files are included for the theme's design and functionality
13
+
14
+ CSS media feature `prefers-color-scheme` to detect if the visitor has requested a light or dark color mode
15
+
16
+ `$variables` based color schemes for light and dark mode, syntax highlighting for code blocks and styling of elements
17
+
18
+ HTML/CSS compression (minification)
19
+
20
+ Valid RSS 2.0 syndicated feed
21
+
22
+ GDPR valid and compliant cookie consent banner
23
+
24
+ 404, site map, navigation, archive, category, tag, about, style and privacy pages
25
+
26
+ Archive displays a tag cloud and number of posts per month, year, category, tag
27
+
28
+ Excerpt, pagination and per-post navigation to older/newer entries
29
+
30
+ Smart quotes across all content with the `{ | smartify }` liquid filter
31
+
32
+ Rich preview links when shared via iMessage and social media services
33
+
34
+ A wide variety of HTML elements commonly used in Markdown writing are styled (mark, source references, blockquotes, headers, tables, boxes/buttons, figure captions, code blocks, footnotes)
35
+
36
+ Additional supported and styled front matter:
37
+ * Author attribution
38
+ * Last modified date
39
+ * Permalinks for linked list style posts that have an external source reference
40
+
41
+
42
+ ## <small>License</small>
43
+
44
+ Quattle is free software distributed under a [MIT license](https://github.com/victorwynne/quattle/blob/main/LICENSE).
@@ -1,10 +1,10 @@
1
- {% assign author = site[page.author] %}
2
- {% if author %}
3
- <span>
4
- By {{ author.name }}
5
- </span>
6
- {% else %}
7
- <span>
8
- By Post Author
9
- </span>
10
- {% endif %}
1
+ {% assign author = site[page.author] %}
2
+ {% if author %}
3
+ <span>
4
+ By {{ author.name }}
5
+ </span>
6
+ {% else %}
7
+ <span>
8
+ By Post Author
9
+ </span>
10
+ {% endif %}
@@ -1,45 +1,45 @@
1
- <style>
2
- #cookie-notice {padding: 0.5rem 1rem; display: none; text-align: center; position: fixed; bottom: 0; width: calc(100%); background: color(srgb 0.165 0.165 0.165); color: rgba(255,255,255,0.8);}
3
- #cookie-notice a {display: inline-block; cursor: pointer; margin-left: 0.5rem;}
4
- @media (max-width: 767px) {
5
- #cookie-notice span {display: block; padding-top: 3px; margin-bottom: 1rem;}
6
- #cookie-notice a {position: relative; bottom: 4px;}
7
- }
8
- </style>
9
- <div id="cookie-notice"><span>We would like to use third party cookies and scripts to improve the functionality of this website.</span><a id="cookie-notice-accept" class="btn btn-primary btn-sm">Approve</a><a href="/privacy" class="btn btn-primary btn-sm">More info</a></div>
10
- <script>
11
- function createCookie(name,value,days) {
12
- var expires = "";
13
- if (days) {
14
- var date = new Date();
15
- date.setTime(date.getTime() + (days*24*60*60*1000));
16
- expires = "; expires=" + date.toUTCString();
17
- }
18
- document.cookie = name + "=" + value + expires + "; path=/";
19
- }
20
- function readCookie(name) {
21
- var nameEQ = name + "=";
22
- var ca = document.cookie.split(';');
23
- for(var i=0;i < ca.length;i++) {
24
- var c = ca[i];
25
- while (c.charAt(0)==' ') c = c.substring(1,c.length);
26
- if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
27
- }
28
- return null;
29
- }
30
- function eraseCookie(name) {
31
- createCookie(name,"",-1);
32
- }
33
-
34
- if(readCookie('cookie-notice-dismissed')=='true') {
35
-
36
- } else {
37
- document.getElementById('cookie-notice').style.display = 'block';
38
- }
39
- document.getElementById('cookie-notice-accept').addEventListener("click",function() {
40
- createCookie('cookie-notice-dismissed','true',31);
41
- document.getElementById('cookie-notice').style.display = 'none';
42
- location.reload();
43
- });
44
-
45
- </script>
1
+ <style>
2
+ #cookie-notice {padding: 0.5rem 1rem; display: none; text-align: center; position: fixed; bottom: 0; width: calc(100%); background: color(srgb 0.165 0.165 0.165); color: rgba(255,255,255,0.8);}
3
+ #cookie-notice a {display: inline-block; cursor: pointer; margin-left: 0.5rem;}
4
+ @media (max-width: 767px) {
5
+ #cookie-notice span {display: block; padding-top: 3px; margin-bottom: 1rem;}
6
+ #cookie-notice a {position: relative; bottom: 4px;}
7
+ }
8
+ </style>
9
+ <div id="cookie-notice"><span>We would like to use third party cookies and scripts to improve the functionality of this website.</span><a id="cookie-notice-accept" class="btn btn-primary btn-sm">Approve</a><a href="/privacy" class="btn btn-primary btn-sm">More info</a></div>
10
+ <script>
11
+ function createCookie(name,value,days) {
12
+ var expires = "";
13
+ if (days) {
14
+ var date = new Date();
15
+ date.setTime(date.getTime() + (days*24*60*60*1000));
16
+ expires = "; expires=" + date.toUTCString();
17
+ }
18
+ document.cookie = name + "=" + value + expires + "; path=/";
19
+ }
20
+ function readCookie(name) {
21
+ var nameEQ = name + "=";
22
+ var ca = document.cookie.split(';');
23
+ for(var i=0;i < ca.length;i++) {
24
+ var c = ca[i];
25
+ while (c.charAt(0)==' ') c = c.substring(1,c.length);
26
+ if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
27
+ }
28
+ return null;
29
+ }
30
+ function eraseCookie(name) {
31
+ createCookie(name,"",-1);
32
+ }
33
+
34
+ if(readCookie('cookie-notice-dismissed')=='true') {
35
+
36
+ } else {
37
+ document.getElementById('cookie-notice').style.display = 'block';
38
+ }
39
+ document.getElementById('cookie-notice-accept').addEventListener("click",function() {
40
+ createCookie('cookie-notice-dismissed','true',31);
41
+ document.getElementById('cookie-notice').style.display = 'none';
42
+ location.reload();
43
+ });
44
+
45
+ </script>
@@ -1,10 +1,10 @@
1
- ---
2
- # Jekyll layout that compresses HTML
3
- # v3.1.0
4
- # http://jch.penibelst.de/
5
- # © 2014–2015 Anatol Broder
6
- # MIT License
7
- ---
8
-
9
- {% capture _LINE_FEED %}
10
- {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
1
+ ---
2
+ # Jekyll layout that compresses HTML
3
+ # v3.1.0
4
+ # http://jch.penibelst.de/
5
+ # © 2014–2015 Anatol Broder
6
+ # MIT License
7
+ ---
8
+
9
+ {% capture _LINE_FEED %}
10
+ {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
@@ -1,82 +1,82 @@
1
- ---
2
- layout: compress
3
- ---
4
-
5
- <!doctype html>
6
- <html lang="en">
7
-
8
- <head>
9
- <meta charset="UTF-8">
10
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
11
- <meta property="og:image" content="https://quattle.victorwynne.com/assets/iMessage.png" />
12
-
13
- <meta name="theme-color" media="(prefers-color-scheme: light)" content="#f7f6f4">
14
- <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1e1e1e">
15
-
16
- <meta name="apple-mobile-web-app-title" content=“Quattle”>
17
- <meta name="apple-mobile-web-app-capable" content="yes">
18
-
19
- <link rel="manifest" href="manifest.json">
20
-
21
- <title>
22
- {% if page.title == "Home" %}
23
- {{ site.title }}{% if site.tagline %} &middot; {{ site.tagline }}{% endif %}
24
- {% else %}
25
- {{ page.title }} &middot; {{ site.title }}
26
- {% endif %}
27
- </title>
28
-
29
- <link rel="stylesheet" href="{{ site.baseurl }}/styles.css">
30
- <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ site.baseurl }}/assets/apple-touch-icon-precomposed.png">
31
- <link rel="shortcut icon" href="{{ site.baseurl }}/assets/fav.ico">
32
- <link rel="alternate" type="application/atom+xml" title="{{ site.title }}" href="{{ site.baseurl }}/feed.xml">
33
-
34
- {% seo title=false %}
35
-
36
- </head>
37
-
38
- <body>
39
-
40
- <div class="container content">
41
- <header class="masthead">
42
-
43
- <h2 class="masthead-title">
44
- <a href="{{ site.baseurl }}/" title="Home">{{ site.title }}</a><br>
45
- <small>{{ site.tagline }}</small>
46
- </h2>
47
-
48
- <!-- Change navigation links here -->
49
- <div class="navigation">
50
- <ul id="navigation-list">
51
- <li><a href="/archive/">archive</a></li>
52
- <li><a href="/styles/">styles</a></li>
53
- <li><a href="/about/">about</a></li>
54
- </ul>
55
- </div>
56
-
57
- </header>
58
-
59
- <main>
60
- {{ content | smartify }}
61
- </main>
62
-
63
- <br><footer class="footer">
64
- <p>Made with ❤️ on a Mac 💻</p>
65
- </footer>
66
- </div>
67
-
68
- {% if site.ga_analytics %}
69
- <script>
70
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
71
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
72
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
73
- })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
74
- ga('create', '{{ site.ga_analytics }}', 'auto');
75
- ga('send', 'pageview');
76
- </script>
77
- {% endif %}
78
-
79
- {% include cookie-consent.html%}
80
-
81
- </body>
82
- </html>
1
+ ---
2
+ layout: compress
3
+ ---
4
+
5
+ <!doctype html>
6
+ <html lang="en">
7
+
8
+ <head>
9
+ <meta charset="UTF-8">
10
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
11
+ <meta property="og:image" content="https://quattle.victorwynne.com/assets/iMessage.png" />
12
+
13
+ <meta name="theme-color" media="(prefers-color-scheme: light)" content="#f7f6f4">
14
+ <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1e1e1e">
15
+
16
+ <meta name="apple-mobile-web-app-title" content=“Quattle”>
17
+ <meta name="apple-mobile-web-app-capable" content="yes">
18
+
19
+ <link rel="manifest" href="/manifest.json">
20
+
21
+ <title>
22
+ {% if page.title == "Home" %}
23
+ {{ site.title }}{% if site.tagline %} &middot; {{ site.tagline }}{% endif %}
24
+ {% else %}
25
+ {{ page.title }} &middot; {{ site.title }}
26
+ {% endif %}
27
+ </title>
28
+
29
+ <link rel="stylesheet" href="{{ site.baseurl }}/styles.css">
30
+ <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ site.baseurl }}/assets/apple-touch-icon-precomposed.png">
31
+ <link rel="shortcut icon" href="{{ site.baseurl }}/assets/fav.ico">
32
+ <link rel="alternate" type="application/atom+xml" title="{{ site.title }}" href="{{ site.baseurl }}/feed.xml">
33
+
34
+ {% seo title=false %}
35
+
36
+ </head>
37
+
38
+ <body>
39
+
40
+ <div class="container content">
41
+ <header class="masthead">
42
+
43
+ <h2 class="masthead-title">
44
+ <a href="{{ site.baseurl }}/" title="Home">{{ site.title }}</a><br>
45
+ <small>{{ site.tagline }}</small>
46
+ </h2>
47
+
48
+ <!-- Change navigation links here -->
49
+ <div class="navigation">
50
+ <ul id="navigation-list">
51
+ <li><a href="/archive/">archive</a></li>
52
+ <li><a href="/styles/">styles</a></li>
53
+ <li><a href="/about/">about</a></li>
54
+ </ul>
55
+ </div>
56
+
57
+ </header>
58
+
59
+ <main>
60
+ {{ content | smartify }}
61
+ </main>
62
+
63
+ <br><footer class="footer">
64
+ <p>Made with ❤️ on a Mac 💻</p>
65
+ </footer>
66
+ </div>
67
+
68
+ {% if site.ga_analytics %}
69
+ <script>
70
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
71
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
72
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
73
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
74
+ ga('create', '{{ site.ga_analytics }}', 'auto');
75
+ ga('send', 'pageview');
76
+ </script>
77
+ {% endif %}
78
+
79
+ {% include cookie-consent.html%}
80
+
81
+ </body>
82
+ </html>
data/_layouts/page.html CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- layout: default
3
- ---
4
-
5
- <article class="page">
6
- {{ content | smartify }}
7
- </article>
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article class="page">
6
+ {{ content | smartify }}
7
+ </article>
data/_layouts/post.html CHANGED
@@ -1,62 +1,62 @@
1
- ---
2
- layout: default
3
- ---
4
-
5
- <article class="post">
6
- {% if page.link %}
7
- <h2 class="post-title"><a href="{{ page.link }}">
8
- {{ page.title | smartify }} <span class="link-arrow">&rarr;</span></a>
9
- </h2>
10
- {% else %}
11
- <h2 class="post-title">{{ page.title | smartify }}</h2>
12
- {% endif %}
13
-
14
- <time datetime="{{ page.date | date_to_xmlschema }}" class="post-date">{{ page.date | date_to_long_string: "ordinal", "US" }}
15
- {% if post %}
16
- {% assign categories = post.categories %}
17
- {% else %}
18
- {% assign categories = page.categories %}
19
- {% endif %}
20
- {% if categories.size > 0 %}•{% endif %}
21
- {% for category in categories %}
22
- <a href="{{site.baseurl}}/categories/#{{category|slugize}}">{{category}}</a>{% unless forloop.last %},{% endunless %}
23
- {% endfor %}
24
- {%- if page.last_modified_at -%}
25
- <br><i>Last updated on: {{ page.last_modified_at | date_to_long_string: "ordinal", "US" }}</i>
26
- {%- endif -%}
27
- <br><span class="author">{% include author.html %}</span>
28
- </time>
29
-
30
- {{ content | smartify }}
31
-
32
- <br><br>
33
- <div class="tag-list">
34
- {% if post %}
35
- {% assign tags = post.tags %}
36
- {% else %}
37
- {% assign tags = page.tags %}
38
- {% endif %}
39
- {% for tag in tags %}
40
- <a href="{{site.baseurl}}/tags/#{{tag|slugize}}">{{tag}}</a>
41
- {% unless forloop.last %}&nbsp;{% endunless %}
42
- {% endfor %}
43
- </div>
44
-
45
- {% if page.link %}
46
- <br>
47
- <span class="source" role="doc-endnotes">
48
- source: <a href="{{ page.link }}">{{ page.link | remove:'http://' | remove:'www.' | remove:'https://' | split:'/' | first }}</a>
49
- </span><br>
50
- {% endif %}
51
- <br>
52
-
53
- </article>
54
-
55
- <div class="PageNavigation">
56
- {% if page.previous.url %}
57
- <br><a class="prev" href="{{page.previous.url}}">← Previous</a>
58
- {% endif %}
59
- {% if page.next.url %}
60
- <br><a class="next" href="{{page.next.url}}">Next →</a>
61
- {% endif %}
62
- </div>
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article class="post">
6
+ {% if page.link %}
7
+ <h2 class="post-title"><a href="{{ page.link }}">
8
+ {{ page.title | smartify }} <span class="link-arrow">&rarr;</span></a>
9
+ </h2>
10
+ {% else %}
11
+ <h2 class="post-title">{{ page.title | smartify }}</h2>
12
+ {% endif %}
13
+
14
+ <time datetime="{{ page.date | date_to_xmlschema }}" class="post-date">{{ page.date | date_to_long_string: "ordinal", "US" }}
15
+ {% if post %}
16
+ {% assign categories = post.categories %}
17
+ {% else %}
18
+ {% assign categories = page.categories %}
19
+ {% endif %}
20
+ {% if categories.size > 0 %}•{% endif %}
21
+ {% for category in categories %}
22
+ <a href="{{site.baseurl}}/categories/#{{category|slugize}}">{{category}}</a>{% unless forloop.last %},{% endunless %}
23
+ {% endfor %}
24
+ {%- if page.last_modified_at -%}
25
+ <br><i>Last updated on: {{ page.last_modified_at | date_to_long_string: "ordinal", "US" }}</i>
26
+ {%- endif -%}
27
+ <br><span class="author">{% include author.html %}</span>
28
+ </time>
29
+
30
+ {{ content | smartify }}
31
+
32
+ <br><br>
33
+ <div class="tag-list">
34
+ {% if post %}
35
+ {% assign tags = post.tags %}
36
+ {% else %}
37
+ {% assign tags = page.tags %}
38
+ {% endif %}
39
+ {% for tag in tags %}
40
+ <a href="{{site.baseurl}}/tags/#{{tag|slugize}}">{{tag}}</a>
41
+ {% unless forloop.last %}&nbsp;{% endunless %}
42
+ {% endfor %}
43
+ </div>
44
+
45
+ {% if page.link %}
46
+ <br>
47
+ <span class="source" role="doc-endnotes">
48
+ source: <a href="{{ page.link }}">{{ page.link | remove:'http://' | remove:'www.' | remove:'https://' | split:'/' | first }}</a>
49
+ </span><br>
50
+ {% endif %}
51
+ <br>
52
+
53
+ </article>
54
+
55
+ <div class="PageNavigation">
56
+ {% if page.previous.url %}
57
+ <br><a class="prev" href="{{page.previous.url}}">← Previous</a>
58
+ {% endif %}
59
+ {% if page.next.url %}
60
+ <br><a class="next" href="{{page.next.url}}">Next →</a>
61
+ {% endif %}
62
+ </div>