xyzzy 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +102 -0
- data/_includes/footer.html +33 -0
- data/_includes/github-link.html +6 -0
- data/_includes/google-analytics.html +8 -0
- data/_includes/head.html +26 -0
- data/_includes/header.html +21 -0
- data/_includes/twitter-link.html +6 -0
- data/_layouts/default.html +25 -0
- data/_layouts/home.html +21 -0
- data/_layouts/page.html +12 -0
- data/_layouts/post.html +34 -0
- data/_sass/xyzzy.scss +64 -0
- data/_sass/xyzzy/_base.scss +47 -0
- data/_sass/xyzzy/_components.scss +84 -0
- data/_sass/xyzzy/_syntax.scss +64 -0
- data/_sass/xyzzy/_utility.scss +29 -0
- data/_sass/xyzzy/layout/_article.scss +40 -0
- data/_sass/xyzzy/layout/_footer.scss +76 -0
- data/_sass/xyzzy/layout/_header.scss +31 -0
- data/_sass/xyzzy/layout/_main.scss +9 -0
- data/_sass/xyzzy/layout/_nav.scss +28 -0
- data/assets/styles.scss +4 -0
- metadata +109 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7d857b4b68c28a5ae30126b7ff2d50963524cc81
|
4
|
+
data.tar.gz: dd65c2589ca0c2b4ca31375b74fcb1c6dafdf75f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d39c4f503ec29ce914589bae3aa1b2cfe24bbb7605fedda93ed2e12ae4d52f7be2a8847c68b1f6f5af918d66010acf504e62f5b375b07f65fe17f01432758dc4
|
7
|
+
data.tar.gz: 7d71ed1e6c40f73a7670331956cfb7d8039c9a9c17907ba769d76ad2cfc0000b504cbe3e6169cacd1249ee4d6e56345467d948a8cc30721526ad86f856d4163f
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2017 Jonas Kay
|
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
|
13
|
+
all 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
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
# xyzzy
|
2
|
+
|
3
|
+
Xyzzy is a geeky Jekyll theme for bloggers.
|
4
|
+
|
5
|
+
[Live preview](https://jonaskay.github.io/jekyll-theme-xyzzy/)
|
6
|
+
|
7
|
+
![xyzzy theme preview](/screenshot.png)
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
Add this line to your Jekyll site's `Gemfile`:
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
gem "xyzzy"
|
15
|
+
```
|
16
|
+
|
17
|
+
And add this line to your Jekyll site's `_config.yml`:
|
18
|
+
|
19
|
+
```yaml
|
20
|
+
theme: xyzzy
|
21
|
+
```
|
22
|
+
|
23
|
+
And then execute:
|
24
|
+
|
25
|
+
$ bundle
|
26
|
+
|
27
|
+
Or install it yourself as:
|
28
|
+
|
29
|
+
$ gem install jekyll-theme-xyzzy
|
30
|
+
|
31
|
+
## Usage
|
32
|
+
|
33
|
+
Like Jekyll's default theme, [minima](https://raw.githubusercontent.com/jekyll/minima/), Xyzzy has been scaffolded by the `jekyll new-theme` command. You can have a new Jekyll site up and running with zero-configuration.
|
34
|
+
|
35
|
+
### Layouts
|
36
|
+
|
37
|
+
Refers to `.html` files within the `_layouts` directory.
|
38
|
+
|
39
|
+
- `default.html` — The base layout that lays the foundation for subsequent layouts.
|
40
|
+
- `home.html` — The layout for your index-page.
|
41
|
+
- `page.html` — The layout for your documents that contain FrontMatter, but are not posts.
|
42
|
+
- `post.html` — The layout for your posts.
|
43
|
+
|
44
|
+
### Includes
|
45
|
+
|
46
|
+
Refers to the `.html` files within the `_includes` directory.
|
47
|
+
|
48
|
+
- `footer.html` — Defines the site's footer section.
|
49
|
+
- `github-link.html` — Inserts GitHub link with icon
|
50
|
+
- `google-analytics.html` — Inserts Google Analytics (active only in production environment).
|
51
|
+
- `head.html` — Defines the `<head></head>` in *default* layout.
|
52
|
+
- `header.html` — Defines the site's main header section.
|
53
|
+
- `twitter-link.html` — Inserts Twitter link with icon
|
54
|
+
|
55
|
+
### Sass
|
56
|
+
|
57
|
+
Refers to `.scss` files within the `_sass` directory.
|
58
|
+
- `xyzzy.scss` — The core file imported by preprocessed `styles.scss`; it defines the variable defaults and imports Sass partials.
|
59
|
+
- `xyzzy/_base.scss` — Resets and defines base styles.
|
60
|
+
- `xyzzy/_components.scss` — Defines component styles.
|
61
|
+
- `xyzzy/_syntax.scss` — Defines syntax highlighting styles.
|
62
|
+
- `xyzzy/_utility.scss` — Defines utility styles.
|
63
|
+
- `xyzzy/layout/_article.scss` — Defines `article` layout styles.
|
64
|
+
- `xyzzy/layout/_footer.scss` — Defines `footer` layout styles.
|
65
|
+
- `xyzzy/layout/_header.scss` — Defines `header` layout styles.
|
66
|
+
- `xyzzy/layout/_main.scss` — Defines `main` layout styles.
|
67
|
+
- `xyzzy/layout/_nav.scss` — Defines `nav` layout styles.
|
68
|
+
|
69
|
+
### Assets
|
70
|
+
|
71
|
+
Refers to various asset files within the `assets` directory.
|
72
|
+
|
73
|
+
Contains the `styles.scss` that imports sass files from within the `_sass` directory. This `styles.scss` is what gets processed into the theme's main stylesheet `styles.css` called by `_layouts/default.html` via `_includes/head.html`.
|
74
|
+
|
75
|
+
TODO: Write usage instructions here. Describe your available layouts, includes, sass and/or assets.
|
76
|
+
|
77
|
+
### Enabling Google Analytics
|
78
|
+
|
79
|
+
To enable Google Anaytics, add the following lines to `_config.yml`:
|
80
|
+
|
81
|
+
```yaml
|
82
|
+
google_analytics: UA-NNNNNNNN-N
|
83
|
+
```
|
84
|
+
|
85
|
+
Google Analytics will only appear in production, i.e., `JEKYLL_ENV=production`
|
86
|
+
|
87
|
+
## Contributing
|
88
|
+
|
89
|
+
Bug reports and pull requests are welcome on GitHub at <https://github.com/jonaskay/jekyll-theme-xyzzy>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
90
|
+
|
91
|
+
## Development
|
92
|
+
|
93
|
+
To set up your environment to develop this theme, run `bundle install`.
|
94
|
+
|
95
|
+
Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
|
96
|
+
|
97
|
+
When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
|
98
|
+
To add a custom directory to your theme-gem, please edit the regexp in `jekyll-theme-xyzzy.gemspec` accordingly.
|
99
|
+
|
100
|
+
## License
|
101
|
+
|
102
|
+
The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<footer id="footer" role="contentinfo">
|
2
|
+
<div class="footer-inner">
|
3
|
+
|
4
|
+
<h2>{{ site.title | escape }}</h2>
|
5
|
+
|
6
|
+
<section>
|
7
|
+
<div class="footer-author" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
8
|
+
<ul>
|
9
|
+
{% if site.author %}
|
10
|
+
<li itemprop="name">{{ site.author | escape }}</li>
|
11
|
+
{% endif %}
|
12
|
+
|
13
|
+
<li><a href="mailto:{{ site.email }}" itemprop="email">{{ site.email }}</a></li>
|
14
|
+
</ul>
|
15
|
+
|
16
|
+
<ul>
|
17
|
+
{% if site.github_username %}
|
18
|
+
<li>{% include github-link.html username=site.github_username %}</li>
|
19
|
+
{% endif %}
|
20
|
+
|
21
|
+
{% if site.twitter_username %}
|
22
|
+
<li>{% include twitter-link.html username=site.twitter_username %}</li>
|
23
|
+
{% endif %}
|
24
|
+
</ul>
|
25
|
+
</div>
|
26
|
+
<div class="footer-description">
|
27
|
+
<p itemprop="description">{{ site.description | escape }}</p>
|
28
|
+
</div>
|
29
|
+
</section>
|
30
|
+
|
31
|
+
</div>
|
32
|
+
|
33
|
+
</footer>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<a class="social-link" href="https://github.com/{{ include.username }}" itemprop="sameAs">
|
2
|
+
<span class="icon">
|
3
|
+
<svg viewBox="0 0 16 16" width="16px" height="16px"><path d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
|
4
|
+
</span>
|
5
|
+
<span class="username">{{ include.username }}</span>
|
6
|
+
</a>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id={{ include.tracking_id }}"></script>
|
2
|
+
<script>
|
3
|
+
window.dataLayer = window.dataLayer || [];
|
4
|
+
function gtag(){dataLayer.push(arguments)};
|
5
|
+
gtag('js', new Date());
|
6
|
+
|
7
|
+
gtag('config', '{{ include.tracking_id }}');
|
8
|
+
</script>
|
data/_includes/head.html
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
<head>
|
2
|
+
<meta charset="utf-8">
|
3
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
5
|
+
<title>{{ site.title | escape }}</title>
|
6
|
+
<link
|
7
|
+
rel="stylesheet"
|
8
|
+
href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css">
|
9
|
+
<link rel="stylesheet" href="{{ "/assets/styles.css" | relative_url }}">
|
10
|
+
<link
|
11
|
+
rel="alternate"
|
12
|
+
type="application/rss+xml"
|
13
|
+
title="{{ site.title | escape }}"
|
14
|
+
href="{{ "/feed.xml" | relative_url }}">
|
15
|
+
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
|
16
|
+
<script>
|
17
|
+
WebFont.load({
|
18
|
+
google: {
|
19
|
+
families: ['Roboto Slab:300,700', 'Monda:400,700']
|
20
|
+
}
|
21
|
+
});
|
22
|
+
</script>
|
23
|
+
{% if jekyll.environment == 'production' and site.google_analytics %}
|
24
|
+
{% include google-analytics.html tracking_id=site.google_analytics %}
|
25
|
+
{% endif %}
|
26
|
+
</head>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<header id="header" role="banner">
|
2
|
+
|
3
|
+
<a href="{{ "/" | relative_url }}"><span itemprop="name">{{ site.title | escape }}</span></a>
|
4
|
+
|
5
|
+
<nav id="nav">
|
6
|
+
<a href="{{ "/" | relative_url }}">Index</a>
|
7
|
+
{% assign default_paths = site.pages | map: "path" %}
|
8
|
+
{% assign page_paths = site.header_pages | default: default_paths %}
|
9
|
+
{% if page_paths %}
|
10
|
+
{% for path in page_paths %}
|
11
|
+
{% assign my_page = site.pages | where: 'path', path | first %}
|
12
|
+
{% if my_page.title %}
|
13
|
+
<a href="{{ my_page.url | relative_url }}">
|
14
|
+
{{ my_page.title | escape }}
|
15
|
+
</a>
|
16
|
+
{% endif %}
|
17
|
+
{% endfor %}
|
18
|
+
{% endif %}
|
19
|
+
</nav>
|
20
|
+
|
21
|
+
</header>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<a class="social-link" href="https://twitter.com/{{ include.username }}" itemprop="sameAs">
|
2
|
+
<span class="icon">
|
3
|
+
<svg viewBox="0 0 16 16" width="16px" height="16px"><path d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
|
4
|
+
</span>
|
5
|
+
<span class="username">{{ include.username }}</span>
|
6
|
+
</a>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html
|
3
|
+
lang="{{ page.lang | default: site.lang | default: "en" }}"
|
4
|
+
itemscope
|
5
|
+
itemtype="http://schema.org/Blog">
|
6
|
+
|
7
|
+
{% include head.html %}
|
8
|
+
|
9
|
+
<body>
|
10
|
+
|
11
|
+
{% include header.html %}
|
12
|
+
|
13
|
+
<div class="wrapper-outer">
|
14
|
+
<div class="wrapper-inner">
|
15
|
+
<main id="main" role="main">
|
16
|
+
{{ content }}
|
17
|
+
</main>
|
18
|
+
|
19
|
+
{% include footer.html %}
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
</body>
|
24
|
+
|
25
|
+
</html>
|
data/_layouts/home.html
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{{ content }}
|
6
|
+
|
7
|
+
<h1>Posts</h1>
|
8
|
+
|
9
|
+
<ul class="post-list">
|
10
|
+
{% for post in site.posts %}
|
11
|
+
<li>
|
12
|
+
{% assign date_format = site.date_format | default: '%B %d, %Y' %}
|
13
|
+
<span class="post-meta">{{ post.date | date: date_format }}</span>
|
14
|
+
<h2 class="post-title">
|
15
|
+
<a class="post-link" href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
|
16
|
+
</h2>
|
17
|
+
</li>
|
18
|
+
{% endfor %}
|
19
|
+
</ul>
|
20
|
+
|
21
|
+
<p class="subscribe-link">subscribe <a href="{{ "/feed.xml" | relative_url }}">via RSS</a></p>
|
data/_layouts/page.html
ADDED
data/_layouts/post.html
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<article
|
6
|
+
id="article"
|
7
|
+
role="article"
|
8
|
+
itemprop="blogPost"
|
9
|
+
itemscope
|
10
|
+
itemtype="http://schema.org/BlogPosting">
|
11
|
+
|
12
|
+
<header>
|
13
|
+
<a href="{{ "/" | relative_url }}">Posts ></a>
|
14
|
+
<h1 itemprop="name headline">{{ page.title | escape }}</h1>
|
15
|
+
<p>
|
16
|
+
<time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
|
17
|
+
{% assign date_format = site.date_format | default: '%B %d, %Y' %}
|
18
|
+
{{ page.date | date: date_format }}
|
19
|
+
</time>
|
20
|
+
{% if page.author %}
|
21
|
+
•
|
22
|
+
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
23
|
+
<span itemprop="name">{{ page.author }}</span>
|
24
|
+
</span>
|
25
|
+
{% endif %}
|
26
|
+
</p>
|
27
|
+
<link itemprop="mainEntityOfPage" href="{{ page.url | relative_url }}">
|
28
|
+
</header>
|
29
|
+
|
30
|
+
<section itemprop="articleBody">
|
31
|
+
{{ content }}
|
32
|
+
</section>
|
33
|
+
|
34
|
+
</article>
|
data/_sass/xyzzy.scss
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
// Fonts
|
2
|
+
$font-family-sans: 'Monda', sans-serif !default;
|
3
|
+
$font-family-serif: 'Roboto Slab', serif !default;
|
4
|
+
$font-size-base: 16px !default;
|
5
|
+
$font-size-sm: 14px !default;
|
6
|
+
|
7
|
+
// Line heights
|
8
|
+
$line-height-base: 1.375;
|
9
|
+
$line-height-lg: 1.5;
|
10
|
+
$line-height-xl: 1.75;
|
11
|
+
|
12
|
+
// Width limits
|
13
|
+
$xlimit-base: 960px !default;
|
14
|
+
$xlimit-sm: 720px !default;
|
15
|
+
$xlimit-xs: 688px !default;
|
16
|
+
|
17
|
+
// Breakpoints
|
18
|
+
$breakpoint-sm: 576px !default;
|
19
|
+
$breakpoint-md: 768px !default;
|
20
|
+
|
21
|
+
// Spacing
|
22
|
+
$spacing-1: .25rem;
|
23
|
+
$spacing-2: $spacing-1 * 2 !default;
|
24
|
+
$spacing-3: $spacing-1 * 3 !default;
|
25
|
+
$spacing-4: $spacing-1 * 4 !default;
|
26
|
+
$spacing-6: $spacing-1 * 6 !default;
|
27
|
+
$spacing-8: $spacing-1 * 8 !default;
|
28
|
+
|
29
|
+
// Border radius
|
30
|
+
$border-radius-base: 3px !default;
|
31
|
+
$border-radius-sm: 2px !default;
|
32
|
+
|
33
|
+
// Color
|
34
|
+
$gray-dark-1: #212529 !default;
|
35
|
+
$gray-dark-2: #343a40 !default;
|
36
|
+
$gray-dark-3: #495057 !default;
|
37
|
+
$gray-dark-4: #868e96 !default;
|
38
|
+
$color-bg-base: #f1f3f5 !default;
|
39
|
+
$color-bg-light: #f8f9fa !default;
|
40
|
+
$color-body-bg: #3b5bdb !default;
|
41
|
+
$color-body-divider: #bac8ff !default;
|
42
|
+
$color-divider-base: #adb5bd !default;
|
43
|
+
$color-divider-light: #ced4da !default;
|
44
|
+
$color-link: #364fc7 !default;
|
45
|
+
|
46
|
+
// Base
|
47
|
+
@import 'xyzzy/base';
|
48
|
+
|
49
|
+
// Utilities
|
50
|
+
@import 'xyzzy/utility';
|
51
|
+
|
52
|
+
// Layout
|
53
|
+
@import
|
54
|
+
'xyzzy/layout/article',
|
55
|
+
'xyzzy/layout/footer',
|
56
|
+
'xyzzy/layout/header',
|
57
|
+
'xyzzy/layout/main',
|
58
|
+
'xyzzy/layout/nav';
|
59
|
+
|
60
|
+
// Components
|
61
|
+
@import 'xyzzy/components';
|
62
|
+
|
63
|
+
// Syntax
|
64
|
+
@import 'xyzzy/syntax';
|
@@ -0,0 +1,47 @@
|
|
1
|
+
html {
|
2
|
+
color: $gray-dark-1;
|
3
|
+
}
|
4
|
+
|
5
|
+
html.wf-active {
|
6
|
+
font-family: $font-family-serif;
|
7
|
+
font-weight: 300;
|
8
|
+
|
9
|
+
h1, h2, h3, h4, h5, h6 {
|
10
|
+
font-family: $font-family-sans;
|
11
|
+
font-weight: 700;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
body {
|
16
|
+
background: $color-body-bg;
|
17
|
+
}
|
18
|
+
|
19
|
+
b, strong {
|
20
|
+
font-weight: bold;
|
21
|
+
}
|
22
|
+
|
23
|
+
a {
|
24
|
+
color: $color-link;
|
25
|
+
}
|
26
|
+
|
27
|
+
pre, code {
|
28
|
+
border: 1px solid $color-divider-light;
|
29
|
+
border-radius: $border-radius-sm;
|
30
|
+
background-color: #FFF;
|
31
|
+
font-size: 0.9em;
|
32
|
+
}
|
33
|
+
|
34
|
+
code {
|
35
|
+
padding: 1px 5px;
|
36
|
+
}
|
37
|
+
|
38
|
+
pre {
|
39
|
+
padding: 8px 12px;
|
40
|
+
overflow-x: auto;
|
41
|
+
|
42
|
+
code {
|
43
|
+
border: 0;
|
44
|
+
padding-right: 0;
|
45
|
+
padding-left: 0;
|
46
|
+
}
|
47
|
+
}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
.wrapper-outer {
|
2
|
+
border-color: $color-body-divider;
|
3
|
+
border-style: solid;
|
4
|
+
border-width: 1px 0;
|
5
|
+
margin-bottom: $spacing-4;
|
6
|
+
|
7
|
+
@media screen and (min-width: $breakpoint-sm) {
|
8
|
+
border-width: 1px;
|
9
|
+
margin-left: $spacing-2;
|
10
|
+
margin-right: $spacing-2;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
.wrapper-inner {
|
15
|
+
background: $color-bg-base;
|
16
|
+
margin: $spacing-2 0;
|
17
|
+
|
18
|
+
@media screen and (min-width: $breakpoint-sm) {
|
19
|
+
margin: $spacing-2;
|
20
|
+
padding: $spacing-4;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
.post-list {
|
25
|
+
@extend .list-none;
|
26
|
+
padding: $spacing-4 0;
|
27
|
+
|
28
|
+
li {
|
29
|
+
margin: $spacing-8 0;
|
30
|
+
|
31
|
+
&:first-child {
|
32
|
+
margin-top: 0;
|
33
|
+
}
|
34
|
+
|
35
|
+
&:last-child {
|
36
|
+
margin-bottom: 0;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
.post-meta {
|
42
|
+
@extend .font-sans;
|
43
|
+
@extend .text-secondary;
|
44
|
+
font-size: .85em;
|
45
|
+
text-transform: uppercase;
|
46
|
+
}
|
47
|
+
|
48
|
+
.post-title {
|
49
|
+
margin-bottom: 0;
|
50
|
+
margin-top: $spacing-1;
|
51
|
+
}
|
52
|
+
|
53
|
+
.post-link {
|
54
|
+
text-decoration: none;
|
55
|
+
|
56
|
+
&:active, &:hover {
|
57
|
+
@extend .text-primary;
|
58
|
+
text-decoration: underline;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
.subscribe-link {
|
63
|
+
@extend .font-sans;
|
64
|
+
margin-top: $spacing-8;
|
65
|
+
}
|
66
|
+
|
67
|
+
.social-link {
|
68
|
+
text-decoration: none;
|
69
|
+
|
70
|
+
span.icon {
|
71
|
+
display: inline-block;
|
72
|
+
margin-right: $spacing-1;
|
73
|
+
|
74
|
+
svg {
|
75
|
+
fill: $gray-dark-3;
|
76
|
+
vertical-align: middle;
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
span.username {
|
81
|
+
display: inline-block;
|
82
|
+
text-decoration: underline;
|
83
|
+
}
|
84
|
+
}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
.highlight {
|
2
|
+
background: #ffffff;
|
3
|
+
margin: 1rem 0;
|
4
|
+
|
5
|
+
.c { color: #999988; font-style: italic } // Comment
|
6
|
+
.err { color: #a61717; background-color: #e3d2d2 } // Error
|
7
|
+
.k { font-weight: bold } // Keyword
|
8
|
+
.o { font-weight: bold } // Operator
|
9
|
+
.cm { color: #999988; font-style: italic } // Comment.Multiline
|
10
|
+
.cp { color: #999999; font-weight: bold } // Comment.Preproc
|
11
|
+
.c1 { color: #999988; font-style: italic } // Comment.Single
|
12
|
+
.cs { color: #999999; font-weight: bold; font-style: italic } // Comment.Special
|
13
|
+
.gd { color: #000000; background-color: #ffdddd } // Generic.Deleted
|
14
|
+
.gd .x { color: #000000; background-color: #ffaaaa } // Generic.Deleted.Specific
|
15
|
+
.ge { font-style: italic } // Generic.Emph
|
16
|
+
.gr { color: #aa0000 } // Generic.Error
|
17
|
+
.gh { color: #999999 } // Generic.Heading
|
18
|
+
.gi { color: #000000; background-color: #ddffdd } // Generic.Inserted
|
19
|
+
.gi .x { color: #000000; background-color: #aaffaa } // Generic.Inserted.Specific
|
20
|
+
.go { color: #888888 } // Generic.Output
|
21
|
+
.gp { color: #555555 } // Generic.Prompt
|
22
|
+
.gs { font-weight: bold } // Generic.Strong
|
23
|
+
.gu { color: #aaaaaa } // Generic.Subheading
|
24
|
+
.gt { color: #aa0000 } // Generic.Traceback
|
25
|
+
.kc { font-weight: bold } // Keyword.Constant
|
26
|
+
.kd { font-weight: bold } // Keyword.Declaration
|
27
|
+
.kp { font-weight: bold } // Keyword.Pseudo
|
28
|
+
.kr { font-weight: bold } // Keyword.Reserved
|
29
|
+
.kt { color: #445588; font-weight: bold } // Keyword.Type
|
30
|
+
.m { color: #009999 } // Literal.Number
|
31
|
+
.s { color: #d14 } // Literal.String
|
32
|
+
.na { color: #008080 } // Name.Attribute
|
33
|
+
.nb { color: #0086B3 } // Name.Builtin
|
34
|
+
.nc { color: #445588; font-weight: bold } // Name.Class
|
35
|
+
.no { color: #008080 } // Name.Constant
|
36
|
+
.ni { color: #800080 } // Name.Entity
|
37
|
+
.ne { color: #990000; font-weight: bold } // Name.Exception
|
38
|
+
.nf { color: #990000; font-weight: bold } // Name.Function
|
39
|
+
.nn { color: #555555 } // Name.Namespace
|
40
|
+
.nt { color: #000080 } // Name.Tag
|
41
|
+
.nv { color: #008080 } // Name.Variable
|
42
|
+
.ow { font-weight: bold } // Operator.Word
|
43
|
+
.w { color: #bbbbbb } // Text.Whitespace
|
44
|
+
.mf { color: #009999 } // Literal.Number.Float
|
45
|
+
.mh { color: #009999 } // Literal.Number.Hex
|
46
|
+
.mi { color: #009999 } // Literal.Number.Integer
|
47
|
+
.mo { color: #009999 } // Literal.Number.Oct
|
48
|
+
.sb { color: #d14 } // Literal.String.Backtick
|
49
|
+
.sc { color: #d14 } // Literal.String.Char
|
50
|
+
.sd { color: #d14 } // Literal.String.Doc
|
51
|
+
.s2 { color: #d14 } // Literal.String.Double
|
52
|
+
.se { color: #d14 } // Literal.String.Escape
|
53
|
+
.sh { color: #d14 } // Literal.String.Heredoc
|
54
|
+
.si { color: #d14 } // Literal.String.Interpol
|
55
|
+
.sx { color: #d14 } // Literal.String.Other
|
56
|
+
.sr { color: #009926 } // Literal.String.Regex
|
57
|
+
.s1 { color: #d14 } // Literal.String.Single
|
58
|
+
.ss { color: #990073 } // Literal.String.Symbol
|
59
|
+
.bp { color: #999999 } // Name.Builtin.Pseudo
|
60
|
+
.vc { color: #008080 } // Name.Variable.Class
|
61
|
+
.vg { color: #008080 } // Name.Variable.Global
|
62
|
+
.vi { color: #008080 } // Name.Variable.Instance
|
63
|
+
.il { color: #009999 } // Literal.Number.Integer.Long
|
64
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
.xlimit, .xlimit-sm, .xlimit-xs {
|
2
|
+
box-sizing: border-box;
|
3
|
+
margin: auto;
|
4
|
+
}
|
5
|
+
.xlimit { max-width: $xlimit-base; }
|
6
|
+
.xlimit-sm { max-width: $xlimit-sm; }
|
7
|
+
.xlimit-xs { max-width: $xlimit-xs; }
|
8
|
+
|
9
|
+
.font-sans {
|
10
|
+
font-family: $font-family-sans;
|
11
|
+
}
|
12
|
+
|
13
|
+
.text-primary {
|
14
|
+
color: $gray-dark-1;
|
15
|
+
}
|
16
|
+
|
17
|
+
.text-secondary {
|
18
|
+
color: $gray-dark-3;
|
19
|
+
}
|
20
|
+
|
21
|
+
.list-none {
|
22
|
+
list-style: none;
|
23
|
+
margin: 0;
|
24
|
+
padding: 0;
|
25
|
+
|
26
|
+
li {
|
27
|
+
margin: $spacing-2 0;
|
28
|
+
}
|
29
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#article > header, #article > h1 {
|
2
|
+
@extend .xlimit-sm;
|
3
|
+
border: 1px solid $gray-dark-3;
|
4
|
+
border-radius: $border-radius-base;
|
5
|
+
box-shadow: 3px 3px 0 $gray-dark-3;
|
6
|
+
margin-bottom: $spacing-8;
|
7
|
+
margin-top: $spacing-4;
|
8
|
+
}
|
9
|
+
|
10
|
+
#article > h1 {
|
11
|
+
padding: $spacing-8 $spacing-3;
|
12
|
+
text-align: center;
|
13
|
+
}
|
14
|
+
|
15
|
+
#article > header {
|
16
|
+
padding: $spacing-3;
|
17
|
+
|
18
|
+
a {
|
19
|
+
@extend .font-sans;
|
20
|
+
text-decoration: none;
|
21
|
+
}
|
22
|
+
|
23
|
+
p {
|
24
|
+
@extend .font-sans;
|
25
|
+
@extend .text-secondary;
|
26
|
+
font-size: .85em;
|
27
|
+
margin-bottom: 0;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
#article > section {
|
32
|
+
@extend .xlimit-xs;
|
33
|
+
font-size: $font-size-sm;
|
34
|
+
line-height: $line-height-lg;
|
35
|
+
|
36
|
+
@media screen and (min-width: $breakpoint-sm) {
|
37
|
+
font-size: $font-size-base;
|
38
|
+
line-height: $line-height-xl;
|
39
|
+
}
|
40
|
+
}
|
@@ -0,0 +1,76 @@
|
|
1
|
+
#footer {
|
2
|
+
@extend .xlimit;
|
3
|
+
@extend .font-sans;
|
4
|
+
@extend .text-secondary;
|
5
|
+
border-top: 1px dashed $gray-dark-4;
|
6
|
+
font-size: .9em;
|
7
|
+
padding-top: $spacing-6;
|
8
|
+
|
9
|
+
h2 {
|
10
|
+
font-size: 1.1em;
|
11
|
+
margin-bottom: $spacing-4;
|
12
|
+
margin-top: 0;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
.footer-inner {
|
17
|
+
padding: $spacing-4;
|
18
|
+
|
19
|
+
@media screen and (min-width: $breakpoint-sm) {
|
20
|
+
padding: 0 $spacing-4;
|
21
|
+
}
|
22
|
+
|
23
|
+
}
|
24
|
+
|
25
|
+
.footer-author > ul {
|
26
|
+
@extend .list-none;
|
27
|
+
margin-bottom: $spacing-4;
|
28
|
+
}
|
29
|
+
|
30
|
+
.footer-description > p {
|
31
|
+
background: $color-bg-light;
|
32
|
+
border: 1px solid $color-divider-base;
|
33
|
+
border-radius: $border-radius-base;
|
34
|
+
font-family: $font-family-serif;
|
35
|
+
font-size: $font-size-sm;
|
36
|
+
line-height: $line-height-base;
|
37
|
+
margin-top: 0;
|
38
|
+
max-width: .45 * $xlimit-base;
|
39
|
+
padding: $spacing-2;
|
40
|
+
}
|
41
|
+
|
42
|
+
@media screen and (min-width: $breakpoint-sm) {
|
43
|
+
.footer-author {
|
44
|
+
display: -webkit-box;
|
45
|
+
display: -ms-flexbox;
|
46
|
+
display: flex;
|
47
|
+
}
|
48
|
+
|
49
|
+
.footer-author > ul {
|
50
|
+
&:first-child {
|
51
|
+
width: 60%;
|
52
|
+
}
|
53
|
+
|
54
|
+
&:last-child {
|
55
|
+
padding-left: $spacing-4;
|
56
|
+
width: 40%;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
@media screen and (min-width: $breakpoint-md) {
|
62
|
+
.footer-inner > section {
|
63
|
+
display: -webkit-box;
|
64
|
+
display: -ms-flexbox;
|
65
|
+
display: flex;
|
66
|
+
}
|
67
|
+
|
68
|
+
.footer-author {
|
69
|
+
width: 55%;
|
70
|
+
}
|
71
|
+
|
72
|
+
.footer-description {
|
73
|
+
padding-left: $spacing-4;
|
74
|
+
width: 45%;
|
75
|
+
}
|
76
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#header {
|
2
|
+
@extend .font-sans;
|
3
|
+
@extend .xlimit;
|
4
|
+
padding: $spacing-2 0;
|
5
|
+
|
6
|
+
@media screen and (min-width: $breakpoint-sm) {
|
7
|
+
-webkit-box-align: center;
|
8
|
+
-ms-flex-align: center;
|
9
|
+
align-items: center;
|
10
|
+
display: -webkit-box;
|
11
|
+
display: -ms-flexbox;
|
12
|
+
display: flex;
|
13
|
+
-webkit-box-pack: justify;
|
14
|
+
-ms-flex-pack: justify;
|
15
|
+
justify-content: space-between;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
#header > a {
|
20
|
+
color: #FFF;
|
21
|
+
display: inline-block;
|
22
|
+
font-size: 1.25em;
|
23
|
+
font-weight: 700;
|
24
|
+
margin-bottom: $spacing-4;
|
25
|
+
padding: $spacing-2;
|
26
|
+
text-decoration: none;
|
27
|
+
|
28
|
+
@media screen and (min-width: $breakpoint-sm) {
|
29
|
+
margin-bottom: 0;
|
30
|
+
}
|
31
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#nav {
|
2
|
+
padding: $spacing-1;
|
3
|
+
text-align: right;
|
4
|
+
|
5
|
+
a {
|
6
|
+
color: #FFF;
|
7
|
+
font-weight: 400;
|
8
|
+
margin: 0 $spacing-2;
|
9
|
+
padding: $spacing-2;
|
10
|
+
text-decoration: none;
|
11
|
+
|
12
|
+
&:first-child {
|
13
|
+
margin-left: 0;
|
14
|
+
}
|
15
|
+
|
16
|
+
&:last-child {
|
17
|
+
margin-right: 0;
|
18
|
+
}
|
19
|
+
|
20
|
+
&:active, &:hover {
|
21
|
+
text-decoration: underline;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
@media screen and (min-width: $breakpoint-sm) {
|
26
|
+
text-align: right;
|
27
|
+
}
|
28
|
+
}
|
data/assets/styles.scss
ADDED
metadata
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: xyzzy
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jonas Kay
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-12-20 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: '3.6'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.6'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.12'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- jonas@nextdjs.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- LICENSE.txt
|
63
|
+
- README.md
|
64
|
+
- _includes/footer.html
|
65
|
+
- _includes/github-link.html
|
66
|
+
- _includes/google-analytics.html
|
67
|
+
- _includes/head.html
|
68
|
+
- _includes/header.html
|
69
|
+
- _includes/twitter-link.html
|
70
|
+
- _layouts/default.html
|
71
|
+
- _layouts/home.html
|
72
|
+
- _layouts/page.html
|
73
|
+
- _layouts/post.html
|
74
|
+
- _sass/xyzzy.scss
|
75
|
+
- _sass/xyzzy/_base.scss
|
76
|
+
- _sass/xyzzy/_components.scss
|
77
|
+
- _sass/xyzzy/_syntax.scss
|
78
|
+
- _sass/xyzzy/_utility.scss
|
79
|
+
- _sass/xyzzy/layout/_article.scss
|
80
|
+
- _sass/xyzzy/layout/_footer.scss
|
81
|
+
- _sass/xyzzy/layout/_header.scss
|
82
|
+
- _sass/xyzzy/layout/_main.scss
|
83
|
+
- _sass/xyzzy/layout/_nav.scss
|
84
|
+
- assets/styles.scss
|
85
|
+
homepage: https://github.com/jonaskay/jekyll-theme-xyzzy
|
86
|
+
licenses:
|
87
|
+
- MIT
|
88
|
+
metadata: {}
|
89
|
+
post_install_message:
|
90
|
+
rdoc_options: []
|
91
|
+
require_paths:
|
92
|
+
- lib
|
93
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
requirements: []
|
104
|
+
rubyforge_project:
|
105
|
+
rubygems_version: 2.6.13
|
106
|
+
signing_key:
|
107
|
+
specification_version: 4
|
108
|
+
summary: A geeky blog theme for Jekyll
|
109
|
+
test_files: []
|