nano-theme 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +29 -0
- data/README.md +19 -0
- data/_includes/analytics.html +41 -0
- data/_includes/blm-banner.html +3 -0
- data/_includes/csp.html +23 -0
- data/_includes/newsroom.html +68 -0
- data/_includes/seo.html +66 -0
- data/_includes/site-footer.html +18 -0
- data/_includes/site-header.html +24 -0
- data/_includes/sitemap.html +9 -0
- data/_includes/verifications.html +33 -0
- data/_layouts/default.html +26 -0
- data/_layouts/newsroom.html +12 -0
- data/_layouts/page.html +17 -0
- data/_layouts/post.html +31 -0
- data/_posts/test1/2020-06-04-test.md +27 -0
- data/_posts/test2/2020-07-03-test.md +55 -0
- data/_sass/_config.scss +44 -0
- data/_sass/_syntax.scss +73 -0
- data/_sass/_theme.scss +388 -0
- data/assets/logo.svg +4 -0
- data/assets/main.scss +4 -0
- metadata +113 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 18c2df39ee9768cba56fef5cab640e1654f87e4812eaab84de2d9692bd62f581
|
4
|
+
data.tar.gz: 341db5ae2b2b7e3ef08ee1e3808ac4289368be47d33c5fc8cf34729c4ccc887d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3a3b46059e95019603950be2401b5e00a18bc35bc4462820672fe3c5f1a7b6bcf63ce268fe8ea3843f2b03c71a2dd432ee3cd89dcf65bb74c1a925cf60f6ad9b
|
7
|
+
data.tar.gz: a85b265f64cd53b06a5488958e49a931608c7730701815260a9a311ed5290f5cfb9a1ee5aed92bcba542c953cd32cd905e5282fdaf194560c278dd55a76dff23
|
data/LICENSE
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
BSD 3-Clause License
|
2
|
+
|
3
|
+
Copyright (c) 2020, doamatto (Ronchetto, Matthew)
|
4
|
+
All rights reserved.
|
5
|
+
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
8
|
+
|
9
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
10
|
+
list of conditions and the following disclaimer.
|
11
|
+
|
12
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
14
|
+
and/or other materials provided with the distribution.
|
15
|
+
|
16
|
+
3. Neither the name of the copyright holder nor the names of its
|
17
|
+
contributors may be used to endorse or promote products derived from
|
18
|
+
this software without specific prior written permission.
|
19
|
+
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
24
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
25
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
28
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# Nano
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/nano-theme.svg)](https://badge.fury.io/rb/nano-theme) [![Gem downloads](https://img.shields.io/gem/dt/nano-theme)](https://rubygems.org/gems/nano-theme)
|
4
|
+
|
5
|
+
**This is in active developement. [You can see the roadmap here.](https://trello.com/b/6uBEAJwj)**
|
6
|
+
|
7
|
+
Nano is a super lightweight Jekyll theme built to work great on all platforms, respect user privacy, and load at lightning-fast speeds.
|
8
|
+
|
9
|
+
### Installation
|
10
|
+
Installing Nano is simple. Start by downloading the latest version of Nano via [the releases page](https://github.com/doamatto/nano/releases/latest). Afterwards, using Gem, install bundler (`gem install bundler`). Then, run `bundle install` to install everything you need for Nano to work properly. You're now ready to configure your installation and deploy wherever.
|
11
|
+
|
12
|
+
### Credits
|
13
|
+
Many thanks to the Jekyll and RubyGems community for great documentation, allowing me to make this simply and swiftly.
|
14
|
+
|
15
|
+
Big thanks to the StackOverflow community; they helped me find some nice CSS workarounds for some things (like missing images). I quoted the posts I used when I used them.
|
16
|
+
|
17
|
+
Special thanks to [Rishi](https://github.com/rveerepalli) for staying up late on the day before the launch of v0.3 to help fix some issues.
|
18
|
+
|
19
|
+
Big thanks to [Dave Yarwood](https://github.com/daveyarwood) for doing up a [port of Gruvbox for Pygments/Rogue](https://github.com/daveyarwood/gruvbox-pygments), which is used for syntax highlighting.
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<!-- Analytics Start -->
|
2
|
+
{% if site.simpleanalytics == true %}
|
3
|
+
<script src="https://scripts.simpleanalyticscdn.com/latest.js" async defer></script>
|
4
|
+
<noscript>
|
5
|
+
<img class="pxl" src="https://queue.simpleanalyticscdn.com/noscript.gif" alt="">
|
6
|
+
</noscript>
|
7
|
+
{% elsif site.matomoanalytics == true %}
|
8
|
+
<!-- Matomo -->
|
9
|
+
<script>
|
10
|
+
var _paq = window._paq || [];
|
11
|
+
_paq.push(["setDoNotTrack", true]);
|
12
|
+
_paq.push(["disableCookies"]);
|
13
|
+
_paq.push(['trackPageView']);
|
14
|
+
_paq.push(['enableLinkTracking']);
|
15
|
+
(function() {
|
16
|
+
var u="https://{{site.matomourl}}/";
|
17
|
+
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
18
|
+
_paq.push(['setSiteId', '{{site.matomositeid}}']);
|
19
|
+
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
20
|
+
g.type='text/javascript'; g.async=true; g.defer=true; g.src='https://cdn.matomo.cloud/{{site.matomourl}}/matomo.js'; s.parentNode.insertBefore(g,s);
|
21
|
+
})();
|
22
|
+
</script>
|
23
|
+
<noscript>
|
24
|
+
<p>
|
25
|
+
<img class="pxl" src="https://{{site.matomourl}}/matomo.php?idsite=1&rec=1" style="border:0;" alt="">
|
26
|
+
</p>
|
27
|
+
</noscript>
|
28
|
+
{% elsif site.fathomanalytics == true %}
|
29
|
+
{% if site.customfathomurl != "" %}
|
30
|
+
<script src="https://{{site.customfathomurl}}" site="{{site.fathomsite}}" honor-dnt="true" async defer></script>
|
31
|
+
{% else %}
|
32
|
+
<script src="https://cdn.usefathom.com/script.js" site="{{site.fathomsite}}" honor-dnt="true" async defer></script>
|
33
|
+
{% endif %}
|
34
|
+
{% elsif site.plausibleanalytics == true %}
|
35
|
+
{% if site.customplausibleurl != "" %}
|
36
|
+
<script data-domain="{{site.github.url}}" src="https://{{site.customplausibleurl}}/js/index.js" async defer></script>
|
37
|
+
{% else %}
|
38
|
+
<script data-domain="{{site.github.url}}" src="https://plausible.io/js/plausible.js" async defer></script>
|
39
|
+
{% endif %}
|
40
|
+
{% endif %}
|
41
|
+
<!-- Analytics End -->
|
data/_includes/csp.html
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
{% if site.simpleanalytics == true %}
|
2
|
+
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://scripts.simpleanalyticscdn.com/latest.js">
|
3
|
+
{% elsif site.fathomanalytics == true %}
|
4
|
+
{% if site.customfathomurl == "" %}
|
5
|
+
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://cdn.usefathom.com/script.js">
|
6
|
+
{% else %}
|
7
|
+
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://{{site.customfathomurl}}">
|
8
|
+
{% endif %}
|
9
|
+
{% elsif site.matomoanalytics %}
|
10
|
+
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'sha256-qj/jwzjem2sfrDp/CEX8ODDzwfezTtpX43MRAcQTuUQ=' https://cdn.matomo.cloud/{{site.matomourl}}/matomo.js">
|
11
|
+
{% elsif site.plausibleanalytics %}
|
12
|
+
{% if site.customplausibleurl == "" %}
|
13
|
+
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://plausible.io/js/plausible.js">
|
14
|
+
{% else %}
|
15
|
+
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://{{site.customplausibleurl}}/js/index.js">
|
16
|
+
{% endif %}
|
17
|
+
{% endif %}
|
18
|
+
|
19
|
+
{% if site.unsafecontent == false %}
|
20
|
+
<meta http-equiv="Content-Security-Policy" content="default-src 'self' https://*">
|
21
|
+
{% else %}
|
22
|
+
<meta http-equiv="Content-Security-Policy" content="script-src 'self'">
|
23
|
+
{% endif %}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<div class="newsroom">
|
2
|
+
<h3><a href="{{ '/atom.xml' | relative_url }}">Subscribe to the Atom feed.</a></h3>
|
3
|
+
{% if site.disablecategories != true %}
|
4
|
+
<h2 id="categories">Categories</h2>
|
5
|
+
{% endif %}
|
6
|
+
<ul>
|
7
|
+
{% if site.disablecategories == true %}
|
8
|
+
{% for post in site.posts %}
|
9
|
+
<li>
|
10
|
+
{% if site.classicnews == true %}
|
11
|
+
<p>
|
12
|
+
<a href="{{ post.url }}">
|
13
|
+
<b>{{ post.title }} ({{ post.dateS }}). </b>
|
14
|
+
</a>
|
15
|
+
{{ post.excerpt | strip_html }}
|
16
|
+
</p>
|
17
|
+
{% else %}
|
18
|
+
<a href="{{ post.url }}">
|
19
|
+
<b>{{ post.title }} ({{ post.dateS }}). </b>
|
20
|
+
</a>
|
21
|
+
{{ post.excerpt }}
|
22
|
+
{% endif %}
|
23
|
+
</li>
|
24
|
+
{% endfor %}
|
25
|
+
{% else %}
|
26
|
+
{% for category in site.categories %}
|
27
|
+
<li>
|
28
|
+
<a href="#{{category[0] | slugify }}">{{category[0]}}</a>
|
29
|
+
</li>
|
30
|
+
{% endfor %}
|
31
|
+
{% endif %}
|
32
|
+
</ul>
|
33
|
+
|
34
|
+
{% if site.disablecategories != true %}
|
35
|
+
{% for category in site.categories %}
|
36
|
+
<p id="{{ category[0] | slugify }}" class="category_name">{{category[0]}}</p>
|
37
|
+
<ul>
|
38
|
+
{% for post in category[1] %}
|
39
|
+
<li>
|
40
|
+
{% if site.classicnews == true %}
|
41
|
+
<p>
|
42
|
+
{% if post.content | remove_first:post.excerpt | remove_first:post.excerpt_separator != "" %}
|
43
|
+
<a href="{{ post.url }}">
|
44
|
+
<b>{{ post.title }} ({{ post.dateS }}). </b>
|
45
|
+
</a>
|
46
|
+
{{ post.excerpt | strip_html }}
|
47
|
+
{% else %}
|
48
|
+
<b>{{ post.title }} ({{ post.dateS }}). </b>
|
49
|
+
{{ post.excerpt | strip_html }}
|
50
|
+
{% endif %}
|
51
|
+
</p>
|
52
|
+
{% else %}
|
53
|
+
{% if post.content | remove_first:post.excerpt | remove_first:post.excerpt_separator != "" %}
|
54
|
+
<a href="{{ post.url }}">
|
55
|
+
<b>{{ post.title }} ({{ post.dateS }}). </b>
|
56
|
+
</a>
|
57
|
+
{{ post.excerpt }}
|
58
|
+
{% else %}
|
59
|
+
<b>{{ post.title }} ({{ post.dateS }}). </b>
|
60
|
+
{{ post.excerpt }}
|
61
|
+
{% endif %}
|
62
|
+
{% endif %}
|
63
|
+
</li>
|
64
|
+
{% endfor %}
|
65
|
+
</ul>
|
66
|
+
{% endfor %}
|
67
|
+
{% endif %}
|
68
|
+
</div>
|
data/_includes/seo.html
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
<link rel="canonical" href="{{ site.url }}{{ page.url | replace:'index.html',''}}">
|
2
|
+
{% if page.title %}
|
3
|
+
<title>{{ page.title }} - {{ site.title }}</title>
|
4
|
+
<meta name="twitter:title" content="{{page.title}} - {{site.title}}">
|
5
|
+
<meta property="og:title" content="{{page.title}} - {{site.title}}">
|
6
|
+
{% else %}
|
7
|
+
<title>{{ site.title }}</title>
|
8
|
+
<meta name="twitter:title" content="{{ site.title }}">
|
9
|
+
<meta property="og:title" content="{{ site.title }}">
|
10
|
+
{% endif %}
|
11
|
+
{% if site.lang != nil or != "" %}
|
12
|
+
<meta property="og:locale" content="{{site.lang}}">
|
13
|
+
<meta http-equiv="language" content="{{site.lang}}">
|
14
|
+
{% endif %}
|
15
|
+
{% if page.author != nil or != "" %}
|
16
|
+
<meta name="author" content="{{page.author}}">
|
17
|
+
<meta name="article:author" content="{{page.author}}">
|
18
|
+
{% elsif site.author != nil or != "" %}
|
19
|
+
<meta name="author" content="{{site.author}}">
|
20
|
+
{% endif %}
|
21
|
+
{% if page.excerpt != nil or != "" %}
|
22
|
+
<meta name="description" content="{{ page.excerpt | strip_html | strip}}">
|
23
|
+
|
24
|
+
<meta property="og:type" content="article">
|
25
|
+
<meta property="og:description" content="{{ page.excerpt | strip_html | strip }}">
|
26
|
+
|
27
|
+
<meta name="twitter:description" content="{{ page.excerpt | strip_html | strip }}">
|
28
|
+
<meta name="twitter:card" content="summary">
|
29
|
+
{% elsif page.description != nil or != "" %}
|
30
|
+
<meta name="description" content="{{page.description}}">
|
31
|
+
|
32
|
+
<meta property="og:type" content="website">
|
33
|
+
<meta property="og:description" content="{{page.description}}">
|
34
|
+
|
35
|
+
<meta name="twitter:description" content="{{page.description}}">
|
36
|
+
<meta name="twitter:card" content="summary">
|
37
|
+
{% elsif site.description != nil or != "" %}
|
38
|
+
<meta name="description" content="{{site.description}}">
|
39
|
+
|
40
|
+
<meta property="og:type" content="website">
|
41
|
+
<meta property="og:description" content="{{site.description}}">
|
42
|
+
|
43
|
+
<meta name="twitter:description" content="{{site.description}}">
|
44
|
+
<meta name="twitter:card" content="summary">
|
45
|
+
{% endif %}
|
46
|
+
{% if page.social_image != nil or != "" %}
|
47
|
+
<meta property="og:image" content="{{ page.social_image }}">
|
48
|
+
|
49
|
+
<meta name="twitter:image" content="{{ page.social_image }}">
|
50
|
+
{% else if site.social_image != nil or != "" %}
|
51
|
+
<meta property="og:image" content="{{ site.social_image }}">
|
52
|
+
|
53
|
+
<meta name="twitter:image" content="{{ site.social_image }}">
|
54
|
+
{% else %}
|
55
|
+
<meta property="og:image" content="{{ site.logo }}">
|
56
|
+
|
57
|
+
<meta name="twitter:image" content="{{ site.logo }}">
|
58
|
+
{% endif %}
|
59
|
+
{% if site.twitter_creator != nil or != "" %}
|
60
|
+
<meta name="twitter:creator" content="{{ site.twitter_creator }}">
|
61
|
+
{% endif %}
|
62
|
+
{% if page.keywords != nil or != "" %}
|
63
|
+
<meta name="keywords" content="{{ page.keywords | array_to_sentence_string }}">
|
64
|
+
{% elsif site.keyword != nil or != "" %}
|
65
|
+
<meta name="keywords" content="{{ site.keywords | array_to_sentence_string }}">
|
66
|
+
{% endif %}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<hr class="end">
|
2
|
+
<footer>
|
3
|
+
<p>
|
4
|
+
© {% if copyrightYear %}{{copyrightYear}}{% else %}{{ site.time | date: '%Y' }}{% endif %} {{ site.copyrightName }}.
|
5
|
+
<br>
|
6
|
+
{% if site.webSource %}
|
7
|
+
<a href="{{ site.webSource }}" title="Contribute to this site.">Contribute to this site.</a><br>
|
8
|
+
{% endif %}
|
9
|
+
{% for item in site.footerLinks %}
|
10
|
+
{% if item.url contains '://' %}
|
11
|
+
{% assign url = item.url %}
|
12
|
+
{% else %}
|
13
|
+
{% assign url = item.url | relative_url %}
|
14
|
+
{% endif %}
|
15
|
+
<a href="{{ url }}" title="{{item.title}}">{{ item.title }}</a>
|
16
|
+
{% endfor %}
|
17
|
+
</p>
|
18
|
+
</footer>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<header>{% if site.logo %}
|
2
|
+
<h1 class="logo">
|
3
|
+
<a href="{{ '/' | relative_url }}" title="Home">
|
4
|
+
<img src="{{ site.logo | relative_url }}" width="64px" alt="Home">
|
5
|
+
</a>
|
6
|
+
</h1>{% endif %}
|
7
|
+
<nav>
|
8
|
+
<ul>{% for item in site.navigation %}
|
9
|
+
{% if item.url contains '://' %}
|
10
|
+
{% assign url = item.url %}
|
11
|
+
{% else %}
|
12
|
+
{% assign url = item.url | relative_url %}
|
13
|
+
{% endif %}
|
14
|
+
<li>
|
15
|
+
<a href="{{url}}" title="{{item.title}}">{{item.title}}</a>
|
16
|
+
</li>{% endfor %}
|
17
|
+
</ul>
|
18
|
+
</nav>
|
19
|
+
</header>
|
20
|
+
<div class="header">
|
21
|
+
{% if site.tagline %}
|
22
|
+
<p class="tagline">{{site.tagline}}</p>
|
23
|
+
{% endif %}
|
24
|
+
</div>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
This is a list, in alphabetical order, of the site's sitemap. This list omits blog posts. You can view the sitemap with blog posts <a href="{{ '/sitemap.xml' | relative_url }}">here</a>.
|
2
|
+
|
3
|
+
{% if site.disablesitemap == false %}
|
4
|
+
{% for p in site.pages %}
|
5
|
+
{% if p.index == true %}
|
6
|
+
<li><a href="{{ p.url }}">{{ p.title }}</a></li>
|
7
|
+
{% endif %}
|
8
|
+
{% endfor %}
|
9
|
+
{% endif %}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
{% if site.ahrefsverify != "" %}
|
2
|
+
<meta name="ahrefs-site-verification" content="{{ site.ahrefsverify }}">
|
3
|
+
{% endif %}
|
4
|
+
{% if site.alexaverify != "" %}
|
5
|
+
<meta name="alexaVerifyID" content="{{ site.alexaverify }}">
|
6
|
+
{% endif %}
|
7
|
+
{% if site.bingverify != "" %}
|
8
|
+
<meta name="msvalidate.01" content="{{ site.bingverify }}">
|
9
|
+
{% endif %}
|
10
|
+
{% if site.dailyverify != "" %}
|
11
|
+
<meta name="dailymotion-domain-verification" content="{{ site.dailyverify }}">
|
12
|
+
{% endif %}
|
13
|
+
{% if site.googleverify != "" %}
|
14
|
+
<meta name="google-site-verification" content="{{ site.googleverify }}">
|
15
|
+
{% endif %}
|
16
|
+
{% if site.nortonverify != "" %}
|
17
|
+
<meta name="norton-safeweb-site-verification" content="{{ site.nortonverify }}">
|
18
|
+
{% endif %}
|
19
|
+
{% if site.pinverify != "" %}
|
20
|
+
<meta name="p:domain_verify" content="{{ site.pinverify }}">
|
21
|
+
{% endif %}
|
22
|
+
{% if site.plingverify != "" %}
|
23
|
+
<meta name="ocs-site-verification" content="{{ site.plingverify }}">
|
24
|
+
{% endif %}
|
25
|
+
{% if site.specificverify != "" %}
|
26
|
+
<meta name="specificfeeds-verification-code" content="{{ site.specificverify }}">
|
27
|
+
{% endif %}
|
28
|
+
{% if site.wotverify != "" %}
|
29
|
+
<meta name="wot-verification" content="{{ site.wotverify }}">
|
30
|
+
{% endif %}
|
31
|
+
{% if site.yandexverify != "" %}
|
32
|
+
<meta name="yandex-verification" content="{{ site.yandexverify }}">
|
33
|
+
{% endif %}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<!doctype html>{% if site.lang != "" %}
|
2
|
+
<html lang="{{site.lang}}">
|
3
|
+
{% else %}
|
4
|
+
<html>
|
5
|
+
{% endif %}<head>
|
6
|
+
<meta charset="UTF-8">
|
7
|
+
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
9
|
+
<meta name="referrer" content="no-referrer, same-origin">
|
10
|
+
{% for item in site.font-import %}
|
11
|
+
<link rel="stylesheet" href="{{item}}">
|
12
|
+
{% endfor %}
|
13
|
+
<link rel="stylesheet" href="{{ '/assets/main.css' | relative_url }}">
|
14
|
+
{% if site.favicon != "" %}
|
15
|
+
<link rel="shortcut icon" href="{{ site.favicon }}">
|
16
|
+
<link rel="icon" href="{{site.favicon}}">
|
17
|
+
<link rel="apple-touch-icon" href="{{site.favicon}}">
|
18
|
+
{% endif %}
|
19
|
+
{% include verifications.html %}
|
20
|
+
{% include seo.html %}
|
21
|
+
{% include csp.html %}
|
22
|
+
</head>
|
23
|
+
<body>
|
24
|
+
{{ content }}
|
25
|
+
</body>
|
26
|
+
</html>
|
data/_layouts/page.html
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% if site.blm-banner %}
|
6
|
+
{% include blm-banner.html %}
|
7
|
+
{% endif %}
|
8
|
+
|
9
|
+
{% include site-header.html %}
|
10
|
+
|
11
|
+
<div class="container">
|
12
|
+
{{ content }}
|
13
|
+
</div>
|
14
|
+
|
15
|
+
{% include analytics.html %}
|
16
|
+
|
17
|
+
{% include site-footer.html %}
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% if site.blm-banner %}
|
6
|
+
{% include blm-banner.html %}
|
7
|
+
{% endif %}
|
8
|
+
|
9
|
+
{% include site-header.html %}
|
10
|
+
|
11
|
+
<div class="container">
|
12
|
+
<div class="post">
|
13
|
+
<h2>{{ page.title }}</h2>
|
14
|
+
<h3>{{ page.dateS }} - Written by {{ page.author }}</h3>
|
15
|
+
{{ content }}
|
16
|
+
<br>
|
17
|
+
{% if site.disablecategories == false %}
|
18
|
+
<h3>
|
19
|
+
Tags: {{ page.categories | array_to_sentence_string }}. <a href="{{ '/atom.xml' | relative_url }}">Subscribe to the Atom feed.</a>
|
20
|
+
</h3>
|
21
|
+
{% else %}
|
22
|
+
<h3>
|
23
|
+
<a href="{{ '/atom.xml' | relative_url }}">Subscribe to the Atom feed.</a>
|
24
|
+
</h3>
|
25
|
+
{% endif %}
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
{% include analytics.html %}
|
30
|
+
|
31
|
+
{% include site-footer.html %}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
---
|
2
|
+
layout: post
|
3
|
+
title: "Blogging Support is Here"
|
4
|
+
author: doamatto
|
5
|
+
excerpt_separator: ---
|
6
|
+
dateS: "2020/06/04"
|
7
|
+
categories: [Updates]
|
8
|
+
---
|
9
|
+
|
10
|
+
Nano v0.3.0 is here and now, among many other things, has support for blogging!
|
11
|
+
|
12
|
+
---
|
13
|
+
|
14
|
+
Since day one, Nano was a project to make a clean, fast, and mobile-friendly Jekyll theme that people could easily use and deploy themselves. When I first released the gem on RubyGems, I was amazed to see the downloads skyrocket to 100 in the first day. Now, as of writing, Nano is at a little over 1500 downloads on RG, and I realised I still need to deliver on two crucial things:
|
15
|
+
|
16
|
+
- Amazing Mobile Support, and:
|
17
|
+
- Official Blogging Support.
|
18
|
+
|
19
|
+
Well, with the release of Nano v0.3.0, I'm happy to announce blogging being here on Nano. You might wonder: why'd it take you so long? There are plenty reasons I could say, but I'll keep it narrowed to the cold hard truth: I just didn't realise the importance of Jekyll for blogging until recently. When I was personally setting up the newsroom section on my website, I realised it was such a clunky and crappy solution.
|
20
|
+
|
21
|
+
Fortunately, I made the theme I used (which is this theme), and decided I'd finally get to work on adding blogging support. I did my utmost best to document it to the best of my ability and make it as painless as possible to deploy into sites using this theme.
|
22
|
+
|
23
|
+
You can read the full changelog via GitHub's releases page [here](https://github.com/doamatto/nano/releases/tag/v0.3.0).
|
24
|
+
|
25
|
+
```
|
26
|
+
Code block lmao
|
27
|
+
```
|
@@ -0,0 +1,55 @@
|
|
1
|
+
---
|
2
|
+
layout: post
|
3
|
+
title: "Another Huge Update. This is v0.4.0."
|
4
|
+
author: doamatto
|
5
|
+
excerpt_separator: ---
|
6
|
+
dateS: "2020/06/04"
|
7
|
+
categories: [Updates, Meta, One More Category for Good Measure]
|
8
|
+
---
|
9
|
+
|
10
|
+
Nano just got a huge amount of features. Because of it, welcome to v0.4.0 of Nano.
|
11
|
+
|
12
|
+
---
|
13
|
+
|
14
|
+
Y'know, the people who use Nano have yet to seize to amaze me. As of writing, the [nano-theme RubyGem](https://rubygems.org/gems/nano-theme) is at over 2,500 downloads. It's awesome to see how so many people are using Nano. Thanks for helping support Nano and (although I'd prefer it in GitHub as issues) for emailing me all your feature requests and bugs.
|
15
|
+
|
16
|
+
Now, enough of the thanks: we all know you're here to see what's the latest and greatest in Nano v0.4.0. And, as every other v0.X.0 update, it's a doozy.
|
17
|
+
|
18
|
+
To start, blogging got a large overhaul. You can now use categories to sort your posts (I plan to add by Month-Year in the future). You can enable this feature in the config file. Amongst that addition were some nice quality of life changes:
|
19
|
+
- Improved readibility of link to Atom feed
|
20
|
+
- Added author meta tags for posts and site-wide, if either are set
|
21
|
+
- Added a 'Subscribe to Atom feed' buttom to posts[^1]
|
22
|
+
|
23
|
+
[^1]: When categories are disabled in the config, this link stays. The tags are normally with it when categories are enabled
|
24
|
+
|
25
|
+
Apart from those changes, support for tables are officially here.
|
26
|
+
|
27
|
+
| Column A | Column B |
|
28
|
+
| -------- | -------- |
|
29
|
+
| Row 1 | Row 1 |
|
30
|
+
| Row 2 | Row 2 |
|
31
|
+
| Row 3 | Row 3 |
|
32
|
+
|
33
|
+
They took me awhile to do as they were a little hard to design to make it look nice on both light and dark theme while keeping a similar colour pallete.
|
34
|
+
|
35
|
+
Apart from tables, support for task lists was added, as well as better support footnotes, definition lists, and images.
|
36
|
+
|
37
|
+
[![https://i.kym-cdn.com/entries/icons/original/000/006/506/pogchamp.png](https://i.kym-cdn.com/entries/icons/original/000/006/506/pogchamp.png)](https://knowyourmeme.com/memes/pogchamp)
|
38
|
+
|
39
|
+
Some smaller peace of minds that were added:
|
40
|
+
- **A LOT** of CSS/SASS minimizations
|
41
|
+
- Inline code blocks are now styled similarly to nested code blocks[^2]
|
42
|
+
- Links outside of lists will have underlines
|
43
|
+
- Hovering over a link in the navigation won't cause it to look like it disappeared (a very minor issue, obviously)
|
44
|
+
- The horizontal rule on the footer is now smaller and properly centres itself
|
45
|
+
- The classic look is back to Nano. On:
|
46
|
+
- **Desktop:** You get the classic look
|
47
|
+
- **Laptop/Tablet:** You get the new look with the bigger margins (size cap to become this size is 992px in width)
|
48
|
+
- **Mobile:** Same good ol' margins
|
49
|
+
- Updated media queries to improve mobile compatibility[^3]
|
50
|
+
- Fixed typo in gemspec that could cause issues
|
51
|
+
|
52
|
+
Apart from that, that was some of the new things in Nano v0.4.0. You can install it today via [RubyGems](https://rubygems.org/gems/nano-theme) or read the full changelog via [GitHub](https://github.com/doamatto/nano/releases/v0.4.0).
|
53
|
+
|
54
|
+
[^2]: Nested code blocks have a padding of `.5vh` on the top and bottom and `1vh` on the left and right. Inline codeblocks go from `.5vh` to `.25vh` and `1vh` goes to `.5vh`.
|
55
|
+
[^3]: Previously, I used `max-device-width` in media queries to set mobile views and desktop views apart. However, [this is discouraged](https://web.dev/responsive-web-design-basics/) and, for that reason, I switched it to the `max-width` instead.
|
data/_sass/_config.scss
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
// Code Block Colours
|
2
|
+
$LIGHTcodeColour: #fff;
|
3
|
+
$DARKcodeColour: #fff;
|
4
|
+
$LIGHTcodebgColour: #282828;
|
5
|
+
$DARKcodebgColour: #282828;
|
6
|
+
|
7
|
+
// Main Colours
|
8
|
+
$LIGHTbgColour: #fff;
|
9
|
+
$DARKbgColour: #000;
|
10
|
+
$accentColour: #f62c43;
|
11
|
+
|
12
|
+
// Header Colours (also uses $accentColour)
|
13
|
+
$headerTextColour: #000;
|
14
|
+
|
15
|
+
// Image Borders
|
16
|
+
$LIGHTborderColour: #000;
|
17
|
+
$DARKborderColour: #fff;
|
18
|
+
$borderType: solid;
|
19
|
+
$borderSize: 2.5px;
|
20
|
+
|
21
|
+
// Navigation Colours
|
22
|
+
$navColour: #000;
|
23
|
+
|
24
|
+
// Text Colours
|
25
|
+
$LIGHTtextColour: #000;
|
26
|
+
$DARKtextColour: #fff;
|
27
|
+
$LIGHTlinkColour: #000;
|
28
|
+
$LIGHTlinkHoverColour: #f62c43;
|
29
|
+
$DARKlinkColour: #fff;
|
30
|
+
$DARKlinkHoverColour: #f62c43;
|
31
|
+
|
32
|
+
// Typography & Misc.
|
33
|
+
$codeFont: 'IBM Plex Mono', monospace;
|
34
|
+
$codeFont-var: 'IBM Plex Mono', monospace; // Might break if nothing is here
|
35
|
+
$font: 'Inter', sans-serif;
|
36
|
+
$font-var: 'Inter var experimental', sans-serif; // Might break if nothing is here
|
37
|
+
$font-regular: 500;
|
38
|
+
$font-bold: 700;
|
39
|
+
|
40
|
+
// New Image System in v0.4.1. You can revert using this config.
|
41
|
+
// Don't change without reading: https://github.com/doamatto/nano/wiki/Images
|
42
|
+
$classicimages: false;
|
43
|
+
|
44
|
+
// Font imports were moved to ../_config.yml
|
data/_sass/_syntax.scss
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
.highlight .hll { background-color: #ffffcc }
|
2
|
+
.highlight { background: #282828; color: #ebdbb2; background-color: #282828 }
|
3
|
+
.highlight .c { color: #928374; font-style: italic; background-color: #282828 } /* Comment */
|
4
|
+
.highlight .err { color: #ebdbb2; background-color: #282828 } /* Error */
|
5
|
+
.highlight .esc { color: #ebdbb2; background-color: #282828 } /* Escape */
|
6
|
+
.highlight .g { color: #ebdbb2; background-color: #282828 } /* Generic */
|
7
|
+
.highlight .k { color: #fe8019; background-color: #282828 } /* Keyword */
|
8
|
+
.highlight .l { color: #ebdbb2; background-color: #282828 } /* Literal */
|
9
|
+
.highlight .n { color: #ebdbb2; background-color: #282828 } /* Name */
|
10
|
+
.highlight .o { color: #fe8019; background-color: #282828 } /* Operator */
|
11
|
+
.highlight .x { color: #ebdbb2; background-color: #282828 } /* Other */
|
12
|
+
.highlight .p { color: #ebdbb2; background-color: #282828 } /* Punctuation */
|
13
|
+
.highlight .ch { color: #928374; font-style: italic; background-color: #282828 } /* Comment.Hashbang */
|
14
|
+
.highlight .cm { color: #928374; font-style: italic; background-color: #282828 } /* Comment.Multiline */
|
15
|
+
.highlight .cp { color: #8ec07c; background-color: #282828 } /* Comment.Preproc */
|
16
|
+
.highlight .c1 { color: #928374; font-style: italic; background-color: #282828 } /* Comment.Single */
|
17
|
+
.highlight .cs { color: #928374; font-style: italic; background-color: #282828 } /* Comment.Special */
|
18
|
+
.highlight .gd { color: #282828; background-color: #fb4934 } /* Generic.Deleted */
|
19
|
+
.highlight .ge { color: #83a598; text-decoration: underline; background-color: #282828 } /* Generic.Emph */
|
20
|
+
.highlight .gr { color: #ebdbb2; font-weight: bold; background-color: #fb4934 } /* Generic.Error */
|
21
|
+
.highlight .gh { color: #b8bb26; font-weight: bold; background-color: #282828 } /* Generic.Heading */
|
22
|
+
.highlight .gi { color: #282828; background-color: #b8bb26 } /* Generic.Inserted */
|
23
|
+
.highlight .go { color: #504945; background-color: #282828 } /* Generic.Output */
|
24
|
+
.highlight .gp { color: #ebdbb2; background-color: #282828 } /* Generic.Prompt */
|
25
|
+
.highlight .gs { color: #ebdbb2; background-color: #282828 } /* Generic.Strong */
|
26
|
+
.highlight .gu { color: #b8bb26; font-weight: bold; background-color: #282828 } /* Generic.Subheading */
|
27
|
+
.highlight .gt { color: #ebdbb2; font-weight: bold; background-color: #fb4934 } /* Generic.Traceback */
|
28
|
+
.highlight .kc { color: #fe8019; background-color: #282828 } /* Keyword.Constant */
|
29
|
+
.highlight .kd { color: #fe8019; background-color: #282828 } /* Keyword.Declaration */
|
30
|
+
.highlight .kn { color: #fe8019; background-color: #282828 } /* Keyword.Namespace */
|
31
|
+
.highlight .kp { color: #fe8019; background-color: #282828 } /* Keyword.Pseudo */
|
32
|
+
.highlight .kr { color: #fe8019; background-color: #282828 } /* Keyword.Reserved */
|
33
|
+
.highlight .kt { color: #fabd2f; background-color: #282828 } /* Keyword.Type */
|
34
|
+
.highlight .ld { color: #ebdbb2; background-color: #282828 } /* Literal.Date */
|
35
|
+
.highlight .m { color: #d3869b; background-color: #282828 } /* Literal.Number */
|
36
|
+
.highlight .s { color: #b8bb26; background-color: #282828 } /* Literal.String */
|
37
|
+
.highlight .na { color: #b8bb26; font-weight: bold; background-color: #282828 } /* Name.Attribute */
|
38
|
+
.highlight .nb { color: #fabd2f; background-color: #282828 } /* Name.Builtin */
|
39
|
+
.highlight .nc { color: #ebdbb2; background-color: #282828 } /* Name.Class */
|
40
|
+
.highlight .no { color: #d3869b; background-color: #282828 } /* Name.Constant */
|
41
|
+
.highlight .nd { color: #ebdbb2; background-color: #282828 } /* Name.Decorator */
|
42
|
+
.highlight .ni { color: #fabd2f; background-color: #282828 } /* Name.Entity */
|
43
|
+
.highlight .ne { color: #fb4934; background-color: #282828 } /* Name.Exception */
|
44
|
+
.highlight .nf { color: #fabd2f; background-color: #282828 } /* Name.Function */
|
45
|
+
.highlight .nl { color: #fb4934; background-color: #282828 } /* Name.Label */
|
46
|
+
.highlight .nn { color: #ebdbb2; background-color: #282828 } /* Name.Namespace */
|
47
|
+
.highlight .nx { color: #ebdbb2; background-color: #282828 } /* Name.Other */
|
48
|
+
.highlight .py { color: #ebdbb2; background-color: #282828 } /* Name.Property */
|
49
|
+
.highlight .nt { color: #fb4934; background-color: #282828 } /* Name.Tag */
|
50
|
+
.highlight .nv { color: #ebdbb2; background-color: #282828 } /* Name.Variable */
|
51
|
+
.highlight .ow { color: #fe8019; background-color: #282828 } /* Operator.Word */
|
52
|
+
.highlight .w { color: #ebdbb2; background-color: #282828 } /* Text.Whitespace */
|
53
|
+
.highlight .mb { color: #d3869b; background-color: #282828 } /* Literal.Number.Bin */
|
54
|
+
.highlight .mf { color: #d3869b; background-color: #282828 } /* Literal.Number.Float */
|
55
|
+
.highlight .mh { color: #d3869b; background-color: #282828 } /* Literal.Number.Hex */
|
56
|
+
.highlight .mi { color: #d3869b; background-color: #282828 } /* Literal.Number.Integer */
|
57
|
+
.highlight .mo { color: #d3869b; background-color: #282828 } /* Literal.Number.Oct */
|
58
|
+
.highlight .sb { color: #b8bb26; background-color: #282828 } /* Literal.String.Backtick */
|
59
|
+
.highlight .sc { color: #b8bb26; background-color: #282828 } /* Literal.String.Char */
|
60
|
+
.highlight .sd { color: #b8bb26; background-color: #282828 } /* Literal.String.Doc */
|
61
|
+
.highlight .s2 { color: #b8bb26; background-color: #282828 } /* Literal.String.Double */
|
62
|
+
.highlight .se { color: #b8bb26; background-color: #282828 } /* Literal.String.Escape */
|
63
|
+
.highlight .sh { color: #b8bb26; background-color: #282828 } /* Literal.String.Heredoc */
|
64
|
+
.highlight .si { color: #b8bb26; background-color: #282828 } /* Literal.String.Interpol */
|
65
|
+
.highlight .sx { color: #b8bb26; background-color: #282828 } /* Literal.String.Other */
|
66
|
+
.highlight .sr { color: #b8bb26; background-color: #282828 } /* Literal.String.Regex */
|
67
|
+
.highlight .s1 { color: #b8bb26; background-color: #282828 } /* Literal.String.Single */
|
68
|
+
.highlight .ss { color: #83a598; background-color: #282828 } /* Literal.String.Symbol */
|
69
|
+
.highlight .bp { color: #fabd2f; background-color: #282828 } /* Name.Builtin.Pseudo */
|
70
|
+
.highlight .vc { color: #ebdbb2; background-color: #282828 } /* Name.Variable.Class */
|
71
|
+
.highlight .vg { color: #ebdbb2; background-color: #282828 } /* Name.Variable.Global */
|
72
|
+
.highlight .vi { color: #ebdbb2; background-color: #282828 } /* Name.Variable.Instance */
|
73
|
+
.highlight .il { color: #d3869b; background-color: #282828 } /* Literal.Number.Integer.Long */
|
data/_sass/_theme.scss
ADDED
@@ -0,0 +1,388 @@
|
|
1
|
+
// Document Prep
|
2
|
+
* {
|
3
|
+
margin: 0;
|
4
|
+
padding: 0;
|
5
|
+
font-variation-settings: "slnt" 0deg;
|
6
|
+
}
|
7
|
+
|
8
|
+
body {
|
9
|
+
@supports (font-variation-settings: normal) {
|
10
|
+
font-family: $font-var;
|
11
|
+
font-variation-settings: 'wght' $font-regular;
|
12
|
+
font-style: normal;
|
13
|
+
}
|
14
|
+
font-style: normal;
|
15
|
+
background: $LIGHTbgColour;
|
16
|
+
color: $LIGHTtextColour;
|
17
|
+
font-family: $font;
|
18
|
+
margin: 0 auto;
|
19
|
+
width: 100%;
|
20
|
+
height: 100%;
|
21
|
+
max-width: 100%;
|
22
|
+
scroll-behavior: smooth;
|
23
|
+
}
|
24
|
+
|
25
|
+
// Typography
|
26
|
+
@media (max-width: 500px) {
|
27
|
+
h1 { font-size: 28px !important; }
|
28
|
+
h2 { font-size: 21px !important; }
|
29
|
+
h3 { font-size: 19px !important; }
|
30
|
+
.post { h3 { font-size: 14px !important; } }
|
31
|
+
h4, h5, h6 { font-size: 16px !important; }
|
32
|
+
.tagline, .tagline * { font-size: 50px !important; }
|
33
|
+
b {
|
34
|
+
@supports (font-variation-settings: normal) { font-variation-settings: 'wght' $font-bold, 'slnt' 0; }
|
35
|
+
font-weight: $font-bold !important;
|
36
|
+
} // Keeps bold bold, no matter the scenario
|
37
|
+
}
|
38
|
+
@media (max-width: 750px) { font-size: 72px; }
|
39
|
+
|
40
|
+
p { margin: 1em 0; }
|
41
|
+
h1 {
|
42
|
+
font-size: 48px;
|
43
|
+
@supports (font-variation-settings: normal) { font-variation-settings: "wght" $font-bold, 'slnt' 0; }
|
44
|
+
font-weight: $font-bold;
|
45
|
+
line-height: 1.1;
|
46
|
+
}
|
47
|
+
h2 {
|
48
|
+
font-size: 24px;
|
49
|
+
line-height: 1.35;
|
50
|
+
}
|
51
|
+
h3 { font-size: 16px; }
|
52
|
+
ol, ul { margin: 1em 1em; }
|
53
|
+
.category_name {
|
54
|
+
font-size: 22px;
|
55
|
+
line-height: 1.1;
|
56
|
+
margin: .25em 0;
|
57
|
+
margin-left: 0 !important;
|
58
|
+
}
|
59
|
+
|
60
|
+
a {
|
61
|
+
color: $LIGHTlinkColour;
|
62
|
+
transition: color 250ms ease-in-out;
|
63
|
+
}
|
64
|
+
a:hover {
|
65
|
+
color: $LIGHTlinkHoverColour;
|
66
|
+
}
|
67
|
+
ul a, ol a { text-decoration: none; }
|
68
|
+
|
69
|
+
em {
|
70
|
+
@supports (font-variation-settings: normal) { font-variation-settings: "slnt" 10deg; }
|
71
|
+
font-style: italic;
|
72
|
+
}
|
73
|
+
strong {
|
74
|
+
@supports (font-variation-settings: normal) { font-variation-settings: "wght" 700; }
|
75
|
+
font-style: bold;
|
76
|
+
}
|
77
|
+
|
78
|
+
// Code blocks
|
79
|
+
.highlight, code, .highlighter-rogue {
|
80
|
+
@supports (font-variation-settings: normal) { font-family: $codeFont-var; }
|
81
|
+
font-family: $codeFont;
|
82
|
+
background: $LIGHTcodebgColour;
|
83
|
+
color: $LIGHTcodeColour;
|
84
|
+
padding: .5vh 1vh .5vh 1vh;
|
85
|
+
}
|
86
|
+
code { padding: .25vh .5vh .25vh .5vh; }
|
87
|
+
|
88
|
+
// Navigation
|
89
|
+
header {
|
90
|
+
text-align: center;
|
91
|
+
display: flex;
|
92
|
+
justify-content: space-between;
|
93
|
+
height: 100px;
|
94
|
+
background: $accentColour;
|
95
|
+
padding-left: 16px;
|
96
|
+
* {
|
97
|
+
cursor: default;
|
98
|
+
font-size: 14px;
|
99
|
+
}
|
100
|
+
h1 {
|
101
|
+
flex: 0 0 auto;
|
102
|
+
margin: 0;
|
103
|
+
display: flex;
|
104
|
+
flex-direction: column;
|
105
|
+
justify-content: center;
|
106
|
+
a {
|
107
|
+
display: block;
|
108
|
+
:hover { cursor: pointer; }
|
109
|
+
}
|
110
|
+
img {
|
111
|
+
display: block;
|
112
|
+
border: none !important;
|
113
|
+
}
|
114
|
+
}
|
115
|
+
a {
|
116
|
+
color: $navColour;
|
117
|
+
background: none;
|
118
|
+
:hover {
|
119
|
+
color: inherit;
|
120
|
+
background: none;
|
121
|
+
}
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
nav {
|
126
|
+
ul {
|
127
|
+
flex: 0 0 auto;
|
128
|
+
text-align: left;
|
129
|
+
display: flex;
|
130
|
+
margin-top: 2.5em;
|
131
|
+
li {
|
132
|
+
list-style: none;
|
133
|
+
margin: 0;
|
134
|
+
padding: 0;
|
135
|
+
display: flex;
|
136
|
+
flex-direction: column;
|
137
|
+
justify-content: center;
|
138
|
+
:first-child { margin-left: 0; }
|
139
|
+
a {
|
140
|
+
cursor: pointer;
|
141
|
+
padding: 0 0.8em;
|
142
|
+
font-size: 1.1em;
|
143
|
+
text-decoration: none;
|
144
|
+
color: $navColour;
|
145
|
+
}
|
146
|
+
a:hover {
|
147
|
+
text-decoration: underline;
|
148
|
+
color: inherit;
|
149
|
+
transition: all 150ms ease-in-out;
|
150
|
+
}
|
151
|
+
:last-child { a { padding-right: 0; } }
|
152
|
+
}
|
153
|
+
}
|
154
|
+
}
|
155
|
+
|
156
|
+
// Header
|
157
|
+
.header {
|
158
|
+
display: flex;
|
159
|
+
flex-direction: row;
|
160
|
+
flex-wrap: nowrap;
|
161
|
+
justify-content: center;
|
162
|
+
background: $accentColour;
|
163
|
+
color: $headerTextColour;
|
164
|
+
padding: 1.5em 32px;
|
165
|
+
max-height: 30vh;
|
166
|
+
|
167
|
+
p, b {
|
168
|
+
flex: 0 0 auto;
|
169
|
+
margin: auto 16px;
|
170
|
+
display: flex;
|
171
|
+
justify-content: center;
|
172
|
+
|
173
|
+
font-size: 80px;
|
174
|
+
letter-spacing: -.05em;
|
175
|
+
@supports (font-variation-settings: normal) { font-variation-settings: 'wght' $font-regular, 'slnt' 0; }
|
176
|
+
font-weight: $font-regular;
|
177
|
+
line-height: 1.1;
|
178
|
+
white-space: nowrap;
|
179
|
+
}
|
180
|
+
}
|
181
|
+
|
182
|
+
// Footer
|
183
|
+
footer {
|
184
|
+
display: flex;
|
185
|
+
flex-direction: row;
|
186
|
+
flex-wrap: nowrap;
|
187
|
+
justify-content: center;
|
188
|
+
text-align: center;
|
189
|
+
p {
|
190
|
+
font-size: .75em;
|
191
|
+
a {
|
192
|
+
color: $LIGHTlinkColour;
|
193
|
+
@media(prefers-color-scheme: dark) { color: $DARKlinkColour; }
|
194
|
+
text-decoration: underline;
|
195
|
+
}
|
196
|
+
}
|
197
|
+
}
|
198
|
+
|
199
|
+
.end {
|
200
|
+
margin-left: 25%;
|
201
|
+
width: 50vw;
|
202
|
+
border: 0;
|
203
|
+
height: 1px;
|
204
|
+
background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(255, 255, 255, 0.75), rgba(0, 0, 0, 0));
|
205
|
+
}
|
206
|
+
|
207
|
+
// Main Content
|
208
|
+
.container {
|
209
|
+
width: 50vw;
|
210
|
+
@media(max-width: 1000px) { width: 90vw; }
|
211
|
+
margin: 1em auto;
|
212
|
+
|
213
|
+
p {
|
214
|
+
img {
|
215
|
+
@if $classicimages {
|
216
|
+
@media(max-width: 1000px) { max-width: 80vw; }
|
217
|
+
max-width: 50vw;
|
218
|
+
} @else {
|
219
|
+
@media(max-width: 1000px) { max-width: 60vw; }
|
220
|
+
@media(max-width: 500px) { max-width: 80vw; }
|
221
|
+
max-width: 35vw;
|
222
|
+
& { text-align: center; }
|
223
|
+
}
|
224
|
+
}
|
225
|
+
}
|
226
|
+
ul, ol {
|
227
|
+
margin-left: 2em;
|
228
|
+
margin-right: 24px !important;
|
229
|
+
ul, ol {
|
230
|
+
margin-top: .25em;
|
231
|
+
margin-bottom: .25em;
|
232
|
+
}
|
233
|
+
li {
|
234
|
+
padding-top: .25em;
|
235
|
+
padding-bottom: .25em;
|
236
|
+
a { text-decoration: underline; }
|
237
|
+
p, a {
|
238
|
+
margin: 0;
|
239
|
+
padding: 0;
|
240
|
+
}
|
241
|
+
}
|
242
|
+
}
|
243
|
+
@media(prefers-color-scheme: dark) {
|
244
|
+
a { color: $DARKlinkColour; }
|
245
|
+
a:hover, ul a:hover, ol a:hover, p a:hover {
|
246
|
+
color: $DARKlinkHoverColour;
|
247
|
+
transition: all 250ms ease-in-out;
|
248
|
+
}
|
249
|
+
}
|
250
|
+
.highlight, p, hr {
|
251
|
+
margin-left: 1em;
|
252
|
+
margin-right: 24px;
|
253
|
+
}
|
254
|
+
@media (max-width: 500px) {
|
255
|
+
max-width: calc(100vw - 1em);
|
256
|
+
margin: 1em 1em 1em 1em;
|
257
|
+
width: auto;
|
258
|
+
}
|
259
|
+
hr { margin-bottom: 1em; }
|
260
|
+
}
|
261
|
+
|
262
|
+
// Images
|
263
|
+
img {
|
264
|
+
border: $borderSize $borderType $LIGHTborderColour;
|
265
|
+
:before {
|
266
|
+
display: none;
|
267
|
+
content: '';
|
268
|
+
} // Hack from https://stackoverflow.com/a/980948
|
269
|
+
}
|
270
|
+
|
271
|
+
// Blog Posts
|
272
|
+
.post {
|
273
|
+
h3 { font-size: 14px !important; }
|
274
|
+
a { text-decoration: underline; }
|
275
|
+
}
|
276
|
+
|
277
|
+
// Auto Dark Theme as Declared by Browser/OS
|
278
|
+
@media (prefers-color-scheme: dark) {
|
279
|
+
.highlight, blockquote {
|
280
|
+
background: $DARKcodebgColour;
|
281
|
+
color: $DARKcodeColour;
|
282
|
+
}
|
283
|
+
body {
|
284
|
+
background: $DARKbgColour;
|
285
|
+
color: $DARKtextColour;
|
286
|
+
}
|
287
|
+
img { border: $borderSize $borderType $DARKborderColour; }
|
288
|
+
}
|
289
|
+
|
290
|
+
// Make pixel trackers invisible
|
291
|
+
.pxl {
|
292
|
+
width: 1px;
|
293
|
+
height: 1px;
|
294
|
+
border: none;
|
295
|
+
}
|
296
|
+
|
297
|
+
// Table Formatting
|
298
|
+
table {
|
299
|
+
display: block;
|
300
|
+
overflow: auto;
|
301
|
+
height: 200px;
|
302
|
+
border-collapse: collapse;
|
303
|
+
table-layout: fixed;
|
304
|
+
padding: .5em .5em;
|
305
|
+
margin: 0 auto;
|
306
|
+
width: 100%;
|
307
|
+
@media(max-width: 500px) { width: 300px; }
|
308
|
+
thead {
|
309
|
+
background: #353230;
|
310
|
+
color: #fff;
|
311
|
+
@media(prefers-color-scheme: dark) {
|
312
|
+
background: #d3d3d3;
|
313
|
+
color: #000;
|
314
|
+
}
|
315
|
+
}
|
316
|
+
th { @media(min-width: 500px) { padding: .25em 2em; } }
|
317
|
+
th, td { padding: .5em .5em; }
|
318
|
+
tbody {
|
319
|
+
td {
|
320
|
+
@media(prefers-color-scheme: light) { border: 1px solid #000; }
|
321
|
+
border: 1px solid #fff;
|
322
|
+
}
|
323
|
+
}
|
324
|
+
}
|
325
|
+
|
326
|
+
// Footnotes
|
327
|
+
.footnote {
|
328
|
+
text-decoration: none !important;
|
329
|
+
margin: .10em .10em !important;
|
330
|
+
}
|
331
|
+
.footnotes {
|
332
|
+
border-top: 1px solid #000;
|
333
|
+
font-size: 14px;
|
334
|
+
@media(prefers-color-scheme: dark) { border-top: 1px solid #fff; }
|
335
|
+
}
|
336
|
+
|
337
|
+
// Definition lists
|
338
|
+
dt {
|
339
|
+
@supports (font-variation-settings: normal) { font-variation-settings: 'wght' $font-bold, 'slnt' 0; }
|
340
|
+
font-weight: $font-bold;
|
341
|
+
}
|
342
|
+
dd { margin: .25em 1em; }
|
343
|
+
|
344
|
+
// Checklists
|
345
|
+
.task-list {
|
346
|
+
list-style-type: none;
|
347
|
+
margin-left: 1em !important;
|
348
|
+
}
|
349
|
+
.task-list-item-checkbox { margin-right: .5em; }
|
350
|
+
|
351
|
+
// Centreing for images (see Wiki for more info)
|
352
|
+
.centre { text-align: center; }
|
353
|
+
|
354
|
+
// BLM banner
|
355
|
+
.blm-banner {
|
356
|
+
height: 3em;
|
357
|
+
padding: .25em;
|
358
|
+
background: #000;
|
359
|
+
text-align: center;
|
360
|
+
display: flex;
|
361
|
+
align-items: center;
|
362
|
+
justify-content: center;
|
363
|
+
color: #fff;
|
364
|
+
@supports (font-variation-settings: normal) { font-variation-settings: 'wght' $font-bold, 'slnt' 0; }
|
365
|
+
font-weight: $font-bold;
|
366
|
+
text-decoration: none;
|
367
|
+
@media(max-width: 500px) {
|
368
|
+
font-size: .9em;
|
369
|
+
padding: .7em;
|
370
|
+
}
|
371
|
+
font-size: .95em;
|
372
|
+
}
|
373
|
+
|
374
|
+
// Blockquotes
|
375
|
+
blockquote {
|
376
|
+
background: $LIGHTcodebgColour;
|
377
|
+
color: $LIGHTcodeColour;
|
378
|
+
margin-top: .5em;
|
379
|
+
padding: 1vh 1vh;
|
380
|
+
margin-bottom: 1em;
|
381
|
+
border-left: 4px solid $accentColour;
|
382
|
+
h1, h2, h3, h4, h5, h6 { padding: 1.5vh .5vh .25vh 1vh; }
|
383
|
+
.highlighter-rouge {
|
384
|
+
border-left: 4px solid $accentColour;
|
385
|
+
margin-bottom: 1em;
|
386
|
+
}
|
387
|
+
blockquote, .highlighter-rouge { margin-left: 1vw; }
|
388
|
+
}
|
data/assets/logo.svg
ADDED
@@ -0,0 +1,4 @@
|
|
1
|
+
<svg width="1080" height="1080" viewBox="0 0 1080 1080" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<rect width="1080" height="1080" fill="#F62C43"/>
|
3
|
+
<path d="M525.27 315.737L508.243 308L292 773H789L558.189 334.798L418.946 672.791H673.784V655.052H446L559.892 378.958L757.784 754.506H321.892L525.27 315.737Z" fill="#171717"/>
|
4
|
+
</svg>
|
data/assets/main.scss
ADDED
metadata
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nano-theme
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- doamatto
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-07-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: jekyll
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: jekyll-sitemap
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.4'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.4'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jekyll-feed
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.13'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.13'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- hello@doamatto.xyz
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- LICENSE
|
63
|
+
- README.md
|
64
|
+
- _includes/analytics.html
|
65
|
+
- _includes/blm-banner.html
|
66
|
+
- _includes/csp.html
|
67
|
+
- _includes/newsroom.html
|
68
|
+
- _includes/seo.html
|
69
|
+
- _includes/site-footer.html
|
70
|
+
- _includes/site-header.html
|
71
|
+
- _includes/sitemap.html
|
72
|
+
- _includes/verifications.html
|
73
|
+
- _layouts/default.html
|
74
|
+
- _layouts/newsroom.html
|
75
|
+
- _layouts/page.html
|
76
|
+
- _layouts/post.html
|
77
|
+
- _posts/test1/2020-06-04-test.md
|
78
|
+
- _posts/test2/2020-07-03-test.md
|
79
|
+
- _sass/_config.scss
|
80
|
+
- _sass/_syntax.scss
|
81
|
+
- _sass/_theme.scss
|
82
|
+
- assets/logo.svg
|
83
|
+
- assets/main.scss
|
84
|
+
homepage:
|
85
|
+
licenses:
|
86
|
+
- BSD-3-Clause
|
87
|
+
metadata:
|
88
|
+
plugin_type: theme
|
89
|
+
changelog_uri: https://github.com/doamatto/nano/releases
|
90
|
+
documentation_uri: https://github.com/doamatto/nano/wiki
|
91
|
+
source_code_uri: https://github.com/doamatto/nano
|
92
|
+
wiki_uri: https://github.com/doamatto/nano/wiki
|
93
|
+
post_install_message:
|
94
|
+
rdoc_options: []
|
95
|
+
require_paths:
|
96
|
+
- lib
|
97
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
requirements: []
|
108
|
+
rubygems_version: 3.1.2
|
109
|
+
signing_key:
|
110
|
+
specification_version: 4
|
111
|
+
summary: Nano is a super lightweight Jekyll theme built to work great on all platforms,
|
112
|
+
respect user privacy, and load at lightning-fast speeds.
|
113
|
+
test_files: []
|