quattle 1.5.4 → 1.6.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 748c00bf57a3f1d1c80dee1fe09a97ca4d230ab36b301a35b93f62cb934e0be9
4
- data.tar.gz: 61f6a98d3a11fff8af82009a1fc6134eed7ff4e584538397e8e8758dfa8056f1
3
+ metadata.gz: f1e52c3a31b95d65e137d42f28338c925b0e170792572ac3430ded8ef38c70a0
4
+ data.tar.gz: c289e55ba88dbf8b98a6bb6a8dbc71aab4801a9e296ebf7373ee24ddcff8f2c6
5
5
  SHA512:
6
- metadata.gz: 910a405fb777c22f4224d64b55c64448931680f20d76ce393e3afa0d19014478f7ea009d686214790be5a79e5fedff6116aee0af13cadce8e50160ed37977b73
7
- data.tar.gz: d018c85890918bca50d486829536a652c0f8aaa344af9dd9d9eed43ecc9df6b58c84e995615777ed8613a969e9f5c5c7a9ca38674a6e1ab6a585c3c3e28aa4e2
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 Victor Wynne
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>