daydream-theme 0.1.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 +7 -0
- data/LICENSE.txt +5 -0
- data/README.md +144 -0
- data/_includes/archive-by-tagories.html +68 -0
- data/_includes/archive-by-years.html +29 -0
- data/_includes/custom-head.html +6 -0
- data/_includes/footer.html +5 -0
- data/_includes/head.html +14 -0
- data/_includes/header.html +35 -0
- data/_includes/mathjax.html +2 -0
- data/_layouts/archive.html +15 -0
- data/_layouts/default.html +29 -0
- data/_layouts/home.html +44 -0
- data/_layouts/page.html +8 -0
- data/_layouts/post.html +68 -0
- data/_sass/daydream/_alignment.scss +29 -0
- data/_sass/daydream/_archive.scss +40 -0
- data/_sass/daydream/_base.scss +121 -0
- data/_sass/daydream/_content.scss +13 -0
- data/_sass/daydream/_footer.scss +5 -0
- data/_sass/daydream/_highlight-dark.scss +91 -0
- data/_sass/daydream/_highlight-light.scss +217 -0
- data/_sass/daydream/_layout.scss +23 -0
- data/_sass/daydream/_message.scss +11 -0
- data/_sass/daydream/_page.scss +127 -0
- data/_sass/daydream/_pagination.scss +23 -0
- data/_sass/daydream/_sidebar.scss +105 -0
- data/_sass/daydream/_variables.scss +46 -0
- data/_sass/daydream/main.scss +16 -0
- data/assets/css/daydream.scss +4 -0
- data/assets/css/open-color.css +343 -0
- data/assets/img/bg.jpg +0 -0
- data/assets/img/me.jpg +0 -0
- metadata +89 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 907abe87343ba576fe1d412352cbf0f3e4060d58b8ca1f6433e3b456180ef19f
|
|
4
|
+
data.tar.gz: 47eee201500a825ead10a4e1df064bcbf4bcccbf980e15d6a4885cbbf8b60718
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: dace0f8116f0316611def155af00540d208262b8468affe6b4fefca13941ad2faa9f1f9e9ef91ae3a6f06238e0caf63d686bdd875783c9f68225aafbfa8afb71
|
|
7
|
+
data.tar.gz: 6d64e2aee1f81de5bceafd2e842c3c0fed2f67064428e37abe2f60a276daab9018f1961bf89563b3a5da12eb2514526c05cf502ee5f51b3d7bc3b9985f933067
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
The High Five License
|
|
2
|
+
|
|
3
|
+
If you deploy this software to a webserver exposed to the internet you must give me one high five if you ever meet me IRL.
|
|
4
|
+
Make whatever changes you want, no need for attribution if you don't want to.
|
|
5
|
+
Any copies of this software do not need to include this license.
|
data/README.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Daydream
|
|
2
|
+
|
|
3
|
+
Welcome to my Jekyll theme, its pretty basic, there isn't really much more too it.\
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
A live demo can also be seen [here](https://embar.io).
|
|
8
|
+
|
|
9
|
+
This theme is also in no way shape or form mobile friendly, you have been warned.
|
|
10
|
+
|
|
11
|
+
This theme should be accessability friendly as its just HTML and CSS, but no gaurantees there, I am not a frontend developer.
|
|
12
|
+
|
|
13
|
+
Photo by [Wolfgang Hasselmann](https://unsplash.com/@wolfgang_hasselmann?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/@wolfgang_hasselmann?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
Add this line to your Jekyll site's `Gemfile`:
|
|
19
|
+
|
|
20
|
+
```ruby
|
|
21
|
+
gem "daydream-theme"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
And add this line to your Jekyll site's `_config.yml`:
|
|
25
|
+
|
|
26
|
+
```yaml
|
|
27
|
+
theme: daydream-theme
|
|
28
|
+
```
|
|
29
|
+
as well as
|
|
30
|
+
```yaml
|
|
31
|
+
cover: /assets/img/bg.jpg
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
And then execute:
|
|
35
|
+
|
|
36
|
+
$ bundle
|
|
37
|
+
|
|
38
|
+
Or install it yourself as:
|
|
39
|
+
|
|
40
|
+
$ gem install daydream
|
|
41
|
+
|
|
42
|
+
## Usage
|
|
43
|
+
|
|
44
|
+
Edit config, replace bg.jpg if you want to, add a picture called me.jpg in `assets/me.jpg` to include a picture.
|
|
45
|
+
|
|
46
|
+
## _config.yml fields
|
|
47
|
+
Following fields are added on top of the default config.
|
|
48
|
+
```yml
|
|
49
|
+
tagline: This is the tagline bewlow the title
|
|
50
|
+
cover: define a custom sidebar image
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Navigation
|
|
54
|
+
For navigation links create the folder `_data` and within it the file `navigation.yml`, use the following format.
|
|
55
|
+
```yaml
|
|
56
|
+
- title: Home
|
|
57
|
+
url: /
|
|
58
|
+
- title: ...
|
|
59
|
+
url: /.../
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Social
|
|
63
|
+
For social links create the folder `_data` and within it the file `social.yml`, use the following format.
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
- title: Email
|
|
67
|
+
url: mailto:<name>@<domain>
|
|
68
|
+
icon: fas fa-envelope
|
|
69
|
+
- title: Twitter
|
|
70
|
+
url: https://twitter.com/<username>
|
|
71
|
+
icon: fab fa-twitter
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Creating a default home page
|
|
75
|
+
|
|
76
|
+
In the root of the website create a index.md file, in here include the frontmatter
|
|
77
|
+
```yml
|
|
78
|
+
---
|
|
79
|
+
layout: page
|
|
80
|
+
title: <TITLE HERE>
|
|
81
|
+
permalink: /
|
|
82
|
+
---
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Creating an overview of all posts
|
|
86
|
+
|
|
87
|
+
If you added a default home page you would then have lost the default overview of all posts, this is probably the wrong way to go about things but here is how I fixed it.
|
|
88
|
+
In the root of the website create a posts.md file, in here paste the following.
|
|
89
|
+
```html
|
|
90
|
+
---
|
|
91
|
+
layout: page
|
|
92
|
+
title: Posts
|
|
93
|
+
permalink: /posts/
|
|
94
|
+
---
|
|
95
|
+
<ul>
|
|
96
|
+
|
|
97
|
+
{% for post in site.posts %}
|
|
98
|
+
<li>
|
|
99
|
+
<a href="{{ post.url }}">
|
|
100
|
+
{{ post.title }}
|
|
101
|
+
</a>
|
|
102
|
+
- <time datetime="{{ post.date | date: "%Y-%m-%d" }}">{{ post.date | date_to_long_string }}</time>
|
|
103
|
+
</li>
|
|
104
|
+
{% if post.excerpt %}
|
|
105
|
+
{{ post.excerpt | truncate: 256 }}
|
|
106
|
+
{% endif %}
|
|
107
|
+
{% endfor %}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Removing / Editing the "Made with ❤️ by William Ben Embarek" from the footer
|
|
111
|
+
|
|
112
|
+
Create the folder `_includes`.
|
|
113
|
+
Within it create the file `footer.html`
|
|
114
|
+
Paste in the following and edit it
|
|
115
|
+
|
|
116
|
+
```html
|
|
117
|
+
<footer class="footer">
|
|
118
|
+
<small>
|
|
119
|
+
Made with ❤️ by <a ref=https://github.com/williambenembarek>William Ben Embarek</a>
|
|
120
|
+
</small>
|
|
121
|
+
</footer>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## TODO
|
|
125
|
+
- Add dark mode toggle, if you end up implementing this please send me a PR! Would be apprciated :)
|
|
126
|
+
- Make mobile friendly
|
|
127
|
+
|
|
128
|
+
## Contributing
|
|
129
|
+
|
|
130
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/williambenembarek/daydream-theme. 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.
|
|
131
|
+
|
|
132
|
+
## Development
|
|
133
|
+
|
|
134
|
+
To set up your environment to develop this theme, run `bundle install`.
|
|
135
|
+
|
|
136
|
+
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.
|
|
137
|
+
|
|
138
|
+
When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
|
|
139
|
+
To add a custom directory to your theme-gem, please edit the regexp in `daydream.gemspec` accordingly.
|
|
140
|
+
|
|
141
|
+
## License
|
|
142
|
+
|
|
143
|
+
The theme is available as open source under the terms of the [High Five License](LICENSE.txt).
|
|
144
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{%- if page.type == 'categories' -%}
|
|
2
|
+
{%- assign taxonomies = site.categories -%}
|
|
3
|
+
{%- elsif page.type == 'tags' -%}
|
|
4
|
+
{%- assign taxonomies = site.tags -%}
|
|
5
|
+
{%- else -%}
|
|
6
|
+
{%- assign taxonomies = none -%}
|
|
7
|
+
{%- endif -%}
|
|
8
|
+
|
|
9
|
+
{%- assign max_count = 0 -%}
|
|
10
|
+
{%- for taxonomy in taxonomies -%}
|
|
11
|
+
{%- assign posts = taxonomy[1] -%}
|
|
12
|
+
{%- if posts.size > max_count -%}
|
|
13
|
+
{%- assign max_count = posts.size -%}
|
|
14
|
+
{%- endif -%}
|
|
15
|
+
{%- endfor -%}
|
|
16
|
+
|
|
17
|
+
<div class="taxonomies-wrapper">
|
|
18
|
+
<ul class="taxonomies">
|
|
19
|
+
{%- for i in (1..max_count) reversed -%}
|
|
20
|
+
{%- for taxonomy in taxonomies -%}
|
|
21
|
+
{%- assign taxonomy_name = taxonomy[0] -%}
|
|
22
|
+
{%- assign slugified_taxonomy_name = taxonomy_name | slugify -%}
|
|
23
|
+
{%- assign posts = taxonomy[1] -%}
|
|
24
|
+
{%- if posts.size == i -%}
|
|
25
|
+
<li>
|
|
26
|
+
{%- capture link -%}{{ page.permalink }}#{{ slugified_taxonomy_name }}{%- endcapture -%}
|
|
27
|
+
<a class="taxonomy" href="{{ link | relative_url }}">
|
|
28
|
+
<span>
|
|
29
|
+
{%- if page.type == 'tags' -%}
|
|
30
|
+
{{ slugified_taxonomy_name }}
|
|
31
|
+
{%- else -%}
|
|
32
|
+
{{ taxonomy_name }}
|
|
33
|
+
{%- endif -%}
|
|
34
|
+
</span>
|
|
35
|
+
<span class="taxonomy-count">{{ posts.size }}</span>
|
|
36
|
+
</a>
|
|
37
|
+
</li>
|
|
38
|
+
{%- endif -%}
|
|
39
|
+
{%- endfor -%}
|
|
40
|
+
{%- endfor -%}
|
|
41
|
+
</ul>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
{%- for i in (1..max_count) reversed -%}
|
|
45
|
+
{%- for taxonomy in taxonomies -%}
|
|
46
|
+
{%- assign taxonomy_name = taxonomy[0] -%}
|
|
47
|
+
{%- assign slugified_taxonomy_name = taxonomy_name | slugify -%}
|
|
48
|
+
{%- assign posts = taxonomy[1] -%}
|
|
49
|
+
{%- if posts.size == i -%}
|
|
50
|
+
<h2 id="{{ slugified_taxonomy_name }}">
|
|
51
|
+
{%- if page.type == 'tags' -%}
|
|
52
|
+
{{ slugified_taxonomy_name }}
|
|
53
|
+
{%- else -%}
|
|
54
|
+
{{ taxonomy_name }}
|
|
55
|
+
{%- endif -%}
|
|
56
|
+
</h2>
|
|
57
|
+
<ul class="post-list-by-taxonomy">
|
|
58
|
+
{%- for post in posts -%}
|
|
59
|
+
<li>
|
|
60
|
+
<time datetime="{{ page.date | date_to_xmlschema }}">{{ post.date | date: "%Y-%m-%d" }}</time>
|
|
61
|
+
»
|
|
62
|
+
<a href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
|
|
63
|
+
</li>
|
|
64
|
+
{%- endfor -%}
|
|
65
|
+
</ul>
|
|
66
|
+
{%- endif -%}
|
|
67
|
+
{%- endfor -%}
|
|
68
|
+
{%- endfor -%}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{% assign taxonomies = site.posts | group_by_exp: "post", "post.date | date: '%Y'" %}
|
|
2
|
+
|
|
3
|
+
<div class="taxonomies-wrapper">
|
|
4
|
+
<ul class="taxonomies">
|
|
5
|
+
{%- for taxonomy in taxonomies -%}
|
|
6
|
+
<li>
|
|
7
|
+
{%- capture link -%}{{ page.permalink }}#{{ taxonomy.name }}{%- endcapture -%}
|
|
8
|
+
<a class="taxonomy" href="{{ link | relative_url }}">
|
|
9
|
+
<span>{{ taxonomy.name }}</span>
|
|
10
|
+
<span class="taxonomy-count">{{ taxonomy.size }}</span>
|
|
11
|
+
</a>
|
|
12
|
+
</li>
|
|
13
|
+
{%- endfor -%}
|
|
14
|
+
</ul>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
{%- for taxonomy in taxonomies -%}
|
|
18
|
+
<h2 id="{{ taxonomy.name }}">{{ taxonomy.name }}</h2>
|
|
19
|
+
<ul class="post-list-by-taxonomy">
|
|
20
|
+
{%- assign posts = taxonomy.items -%}
|
|
21
|
+
{%- for post in posts -%}
|
|
22
|
+
<li>
|
|
23
|
+
<time datetime="{{ page.date | date_to_xmlschema }}">{{ post.date | date: "%Y-%m-%d" }}</time>
|
|
24
|
+
»
|
|
25
|
+
<a href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
|
|
26
|
+
</li>
|
|
27
|
+
{%- endfor -%}
|
|
28
|
+
</ul>
|
|
29
|
+
{%- endfor -%}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
Placeholder to allow defining custom head, in principle, you can add anything here, e.g. favicons:
|
|
3
|
+
|
|
4
|
+
1. Head over to https://realfavicongenerator.net/ to add your own favicons.
|
|
5
|
+
2. Customize default _includes/custom-head.html in your source directory and insert the given code snippet.
|
|
6
|
+
{% endcomment %}
|
data/_includes/head.html
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<head>
|
|
2
|
+
<meta charset="utf-8">
|
|
3
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
4
|
+
{% feed_meta %}
|
|
5
|
+
|
|
6
|
+
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.6/build/pure-min.css" crossorigin="anonymous">
|
|
7
|
+
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.6/build/grids-responsive-min.css">
|
|
8
|
+
<link rel="stylesheet" href="{{ 'assets/css/open-color.css' | relative_url }}">
|
|
9
|
+
<link rel="stylesheet" href="{{ 'assets/css/daydream.css' | relative_url }}">
|
|
10
|
+
|
|
11
|
+
<script async src="https://use.fontawesome.com/releases/v5.12.0/js/all.js"></script>
|
|
12
|
+
|
|
13
|
+
{% include custom-head.html %}
|
|
14
|
+
</head>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<header class="header">
|
|
2
|
+
<div class="image-cropper">
|
|
3
|
+
<img src="/assets/img/me.jpg" class="rounded" />
|
|
4
|
+
</div>
|
|
5
|
+
<a class="brand-title" href="{{ '/' | relative_url }}">{{ site.title }}</a>
|
|
6
|
+
<p class="brand-tagline">{{ site.tagline }}</p>
|
|
7
|
+
|
|
8
|
+
{% if site.data.navigation %}
|
|
9
|
+
<nav class="nav pure-menu">
|
|
10
|
+
<ul class="pure-menu-list">
|
|
11
|
+
{% for item in site.data.navigation %}
|
|
12
|
+
<li class="nav-item pure-menu-item">
|
|
13
|
+
<a href="{{ item.url | relative_url }}" class="pure-menu-link {% if page.url == item.url %}current{% endif %}">
|
|
14
|
+
{{ item.title }}
|
|
15
|
+
</a>
|
|
16
|
+
</li>
|
|
17
|
+
{% endfor %}
|
|
18
|
+
</ul>
|
|
19
|
+
</nav>
|
|
20
|
+
{% endif %}
|
|
21
|
+
|
|
22
|
+
{% if site.data.social %}
|
|
23
|
+
<div class="social pure-menu pure-menu-horizontal">
|
|
24
|
+
<ul class="social-list pure-menu-list">
|
|
25
|
+
{% for social in site.data.social %}
|
|
26
|
+
<li class="social-item pure-menu-item">
|
|
27
|
+
<a class="pure-menu-link pure-button" href="{{ social.url }}" target="_blank">
|
|
28
|
+
<i class="{{ social.icon | default: 'fas fa-link' }}" title="{{ social.title }}"></i>
|
|
29
|
+
</a>
|
|
30
|
+
</li>
|
|
31
|
+
{% endfor %}
|
|
32
|
+
</ul>
|
|
33
|
+
</div>
|
|
34
|
+
{% endif %}
|
|
35
|
+
</header>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="{{ page.lang | default: site.lang | default: 'en' }}">
|
|
3
|
+
{% include head.html %}
|
|
4
|
+
|
|
5
|
+
<body>
|
|
6
|
+
<div id="layout" class="pure-g">
|
|
7
|
+
{% assign cover = site.cover %}
|
|
8
|
+
{% if page.cover %}
|
|
9
|
+
{% assign cover = page.cover %}
|
|
10
|
+
{% endif %}
|
|
11
|
+
<div class="sidebar pure-u-1 pure-u-md-1-4" {% if cover %}style="background-image: url({{ cover | relative_url }});"{% endif %}>
|
|
12
|
+
<div class="sidebar-shield">
|
|
13
|
+
{% include header.html %}
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="content pure-u-1 pure-u-md-3-4">
|
|
17
|
+
<div class="main">
|
|
18
|
+
{{ content }}
|
|
19
|
+
</div>
|
|
20
|
+
{% include footer.html %}
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
{% if page.math %}
|
|
25
|
+
{% include mathjax.html %}
|
|
26
|
+
{% endif %}
|
|
27
|
+
|
|
28
|
+
</body>
|
|
29
|
+
</html>
|
data/_layouts/home.html
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<div class="posts">
|
|
6
|
+
{% assign posts = site.posts %}
|
|
7
|
+
{% if paginator %}
|
|
8
|
+
{% assign posts = paginator.posts %}
|
|
9
|
+
{% endif %}
|
|
10
|
+
{% for post in posts %}
|
|
11
|
+
<div class="post">
|
|
12
|
+
<h2 class="post-title">
|
|
13
|
+
<a href="{{ post.url | relative_url }}">
|
|
14
|
+
{{ post.title }}
|
|
15
|
+
</a>
|
|
16
|
+
</h2>
|
|
17
|
+
|
|
18
|
+
<time datetime="{{ post.date | date_to_xmlschema }}" class="post-meta">{{ post.date | date_to_string }}</time>
|
|
19
|
+
|
|
20
|
+
<p class="post-excerpt">
|
|
21
|
+
{% if post.description %}
|
|
22
|
+
{{ post.description | strip_html }}
|
|
23
|
+
{% else %}
|
|
24
|
+
{{ post.excerpt | strip_html }}
|
|
25
|
+
{% endif %}
|
|
26
|
+
</p>
|
|
27
|
+
</div>
|
|
28
|
+
{% endfor %}
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
{% if paginator %}
|
|
32
|
+
<div class="pagination pure-g">
|
|
33
|
+
{% if paginator.next_page %}
|
|
34
|
+
<a class="pagination-item older pure-u-1-2 pure-button" href="{{ paginator.next_page_path | relative_url }}"><i class="fas fa-chevron-left"></i></a>
|
|
35
|
+
{% else %}
|
|
36
|
+
<span class="pagination-item older pure-u-1-2 pure-button pure-button-disabled"><i class="fas fa-chevron-left"></i></span>
|
|
37
|
+
{% endif %}
|
|
38
|
+
{% if paginator.previous_page %}
|
|
39
|
+
<a class="pagination-item newer pure-u-1-2 pure-button" href="{{ paginator.previous_page_path | relative_url }}"><i class="fas fa-chevron-right"></i></a>
|
|
40
|
+
{% else %}
|
|
41
|
+
<span class="pagination-item newer pure-u-1-2 pure-button pure-button-disabled"><i class="fas fa-chevron-right"></i></span>
|
|
42
|
+
{% endif %}
|
|
43
|
+
</div>
|
|
44
|
+
{% endif %}
|
data/_layouts/page.html
ADDED
data/_layouts/post.html
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<article class="post">
|
|
6
|
+
{% if page.categories.size > 0 %}
|
|
7
|
+
<div class="post-meta">
|
|
8
|
+
<ul class="post-categories">
|
|
9
|
+
{%- for category in page.categories -%}
|
|
10
|
+
<li>
|
|
11
|
+
{% assign slugified_category = category | slugify %}
|
|
12
|
+
{%- if site.categories_path -%}
|
|
13
|
+
<a class="post-category" href="{{ site.categories_path | relative_url }}#{{ slugified_category }}">{{ category }}</a>
|
|
14
|
+
{%- else -%}
|
|
15
|
+
<span class="post-category">{{ category }}</span>
|
|
16
|
+
{%- endif -%}
|
|
17
|
+
</li>
|
|
18
|
+
{%- endfor -%}
|
|
19
|
+
</ul>
|
|
20
|
+
</div>
|
|
21
|
+
{% endif %}
|
|
22
|
+
<h1 class="post-title">{{ page.title }}</h1>
|
|
23
|
+
<div class="post-meta">
|
|
24
|
+
<time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
|
|
25
|
+
{{ page.date | date_to_string }}
|
|
26
|
+
</time>
|
|
27
|
+
{%- if page.last_modified_at -%}
|
|
28
|
+
<span> ~ </span>
|
|
29
|
+
{%- assign mdate = page.last_modified_at | date_to_xmlschema -%}
|
|
30
|
+
<time datetime="{{ mdate }}" itemprop="dateModified">
|
|
31
|
+
{{ mdate | date_to_string }}
|
|
32
|
+
</time>
|
|
33
|
+
{%- endif -%}
|
|
34
|
+
{%- if page.author -%}
|
|
35
|
+
<span> • </span>
|
|
36
|
+
{% for author in page.author %}
|
|
37
|
+
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
|
38
|
+
{{ author }}
|
|
39
|
+
</span>
|
|
40
|
+
{%- if forloop.last == false %}, {% endif -%}
|
|
41
|
+
{% endfor %}
|
|
42
|
+
{%- endif -%}
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
{{ content }}
|
|
46
|
+
|
|
47
|
+
{% if page.tags.size > 0 %}
|
|
48
|
+
<div class="post-meta">
|
|
49
|
+
<i class="post-tags-icon fas fa-tag"></i>
|
|
50
|
+
<ul class="post-tags">
|
|
51
|
+
{%- for tag in page.tags -%}
|
|
52
|
+
<li>
|
|
53
|
+
{% assign slugified_tag = tag | slugify %}
|
|
54
|
+
{%- if site.tags_path -%}
|
|
55
|
+
<a class="post-tag" href="{{ site.tags_path | relative_url }}#{{ slugified_tag }}">{{ slugified_tag }}</a>
|
|
56
|
+
{%- else -%}
|
|
57
|
+
<span class="post-tag">{{ slugified_tag }}</span>
|
|
58
|
+
{%- endif -%}
|
|
59
|
+
</li>
|
|
60
|
+
{%- endfor -%}
|
|
61
|
+
</ul>
|
|
62
|
+
</div>
|
|
63
|
+
{% endif %}
|
|
64
|
+
|
|
65
|
+
{% if jekyll.environment == "production" and site.disqus and page.comments != false %}
|
|
66
|
+
{% include disqus.html %}
|
|
67
|
+
{% endif %}
|
|
68
|
+
</article>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.align-right {
|
|
2
|
+
margin-bottom: 1rem;
|
|
3
|
+
margin-left: 1rem;
|
|
4
|
+
float: right;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.align-left {
|
|
8
|
+
margin-right: 1rem;
|
|
9
|
+
margin-bottom: 1rem;
|
|
10
|
+
float: left;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.align-center {
|
|
14
|
+
display: block;
|
|
15
|
+
margin-right: auto;
|
|
16
|
+
margin-left: auto;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
figcaption.align-right {
|
|
20
|
+
text-align: right;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
figcaption.align-left {
|
|
24
|
+
text-align: left;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
figcaption.align-center {
|
|
28
|
+
text-align: center;
|
|
29
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
.taxonomies-wrapper {
|
|
2
|
+
margin-bottom: 2em;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.taxonomies {
|
|
6
|
+
list-style: none;
|
|
7
|
+
display: grid;
|
|
8
|
+
grid-column-gap: 2em;
|
|
9
|
+
grid-template-columns: repeat(2, 1fr);
|
|
10
|
+
margin: 0;
|
|
11
|
+
padding: 0;
|
|
12
|
+
font-weight: bold;
|
|
13
|
+
|
|
14
|
+
.taxonomy {
|
|
15
|
+
display: flex;
|
|
16
|
+
padding: 0.25em 0;
|
|
17
|
+
justify-content: space-between;
|
|
18
|
+
border-bottom: 1px solid var(--border-color);
|
|
19
|
+
margin-bottom: 1em;
|
|
20
|
+
color: var(--body-color);
|
|
21
|
+
|
|
22
|
+
&:focus,
|
|
23
|
+
&:hover {
|
|
24
|
+
color: var(--link-color);
|
|
25
|
+
text-decoration: none;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.post-list-by-taxonomy {
|
|
31
|
+
time {
|
|
32
|
+
font-family: monospace;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@media (min-width: $sm-screen) {
|
|
37
|
+
.taxonomies {
|
|
38
|
+
grid-template-columns: repeat(3, 1fr);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
* {
|
|
2
|
+
-webkit-box-sizing: border-box;
|
|
3
|
+
-moz-box-sizing: border-box;
|
|
4
|
+
box-sizing: border-box;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
body {
|
|
8
|
+
font-size: var(--body-font-size);
|
|
9
|
+
line-height: var(--body-line-height);
|
|
10
|
+
color: var(--body-color);
|
|
11
|
+
background-color: var(--body-bg);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
h1, h2, h3, h4, h5, h6 {
|
|
15
|
+
line-height: 1.2;
|
|
16
|
+
letter-spacing: -1px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
a {
|
|
20
|
+
color: var(--link-color);
|
|
21
|
+
text-decoration: none;
|
|
22
|
+
|
|
23
|
+
&:focus,
|
|
24
|
+
&:hover {
|
|
25
|
+
text-decoration: underline;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
figure {
|
|
30
|
+
margin: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
img {
|
|
34
|
+
display: block;
|
|
35
|
+
max-width: 100%;
|
|
36
|
+
margin: 0 0 1em 0;
|
|
37
|
+
border-radius: var(--border-radius);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
code,
|
|
41
|
+
pre {
|
|
42
|
+
font-family: var(--code-font);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
code {
|
|
46
|
+
padding: .1em .25em;
|
|
47
|
+
background-color: var(--code-bg);
|
|
48
|
+
border-radius: var(--border-radius);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
pre {
|
|
52
|
+
overflow: auto;
|
|
53
|
+
padding: 1em;
|
|
54
|
+
margin: 1em 0;
|
|
55
|
+
|
|
56
|
+
code {
|
|
57
|
+
padding: 0;
|
|
58
|
+
background-color: inherit;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
blockquote {
|
|
63
|
+
padding: 0 1em;
|
|
64
|
+
margin: 0 0 1em 0;
|
|
65
|
+
border-left: .25em solid var(--border-color);
|
|
66
|
+
color: var(--body-color-light);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
table {
|
|
70
|
+
margin: 1em 0;
|
|
71
|
+
width: 100%;
|
|
72
|
+
border: 0 solid var(--border-color);
|
|
73
|
+
border-collapse: collapse;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
td,
|
|
77
|
+
th {
|
|
78
|
+
padding: .25em .5em;
|
|
79
|
+
border-color: inherit;
|
|
80
|
+
border-style: solid;
|
|
81
|
+
border-width: 0;
|
|
82
|
+
border-bottom-width: 1px;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
th {
|
|
86
|
+
text-align: left;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
thead th {
|
|
90
|
+
border-bottom-color: currentColor;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
mark {
|
|
94
|
+
padding: .15em;
|
|
95
|
+
border-radius: var(--border-radius);
|
|
96
|
+
color: var(--message-color);
|
|
97
|
+
background-color: var(--message-bg);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
hr {
|
|
101
|
+
position: relative;
|
|
102
|
+
margin: 2em 0;
|
|
103
|
+
border: 0;
|
|
104
|
+
border-top: 1px solid var(--border-color);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
abbr {
|
|
108
|
+
font-weight: bold;
|
|
109
|
+
text-transform: uppercase;
|
|
110
|
+
|
|
111
|
+
&[title] {
|
|
112
|
+
cursor: help;
|
|
113
|
+
border-bottom: 1px dotted var(--border-color);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@media (min-width: $lg-screen) {
|
|
118
|
+
body {
|
|
119
|
+
font-size: calc(var(--body-font-size) * 1.125);
|
|
120
|
+
}
|
|
121
|
+
}
|