jekyll-theme-collider 0.1.0
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 +155 -0
- data/_includes/header.html +35 -0
- data/_includes/pagination.html +26 -0
- data/_layouts/about.html +23 -0
- data/_layouts/blog.html +38 -0
- data/_layouts/contact.html +22 -0
- data/_layouts/default.html +19 -0
- data/_layouts/home.html +18 -0
- data/_layouts/post.html +31 -0
- data/_layouts/thanks.html +12 -0
- data/_sass/jekyll-theme-collider.scss +6 -0
- data/_sass/jekyll-theme-collider/components/_contact.scss +74 -0
- data/_sass/jekyll-theme-collider/components/_header.scss +88 -0
- data/_sass/jekyll-theme-collider/components/_pagination.scss +45 -0
- data/_sass/jekyll-theme-collider/components/_particles.scss +14 -0
- data/_sass/jekyll-theme-collider/components/_post-list.scss +63 -0
- data/_sass/jekyll-theme-collider/components/_site-title.scss +47 -0
- data/_sass/jekyll-theme-collider/elements/_colors.scss +95 -0
- data/_sass/jekyll-theme-collider/elements/_elements.scss +13 -0
- data/_sass/jekyll-theme-collider/generic/_font.scss +39 -0
- data/_sass/jekyll-theme-collider/generic/_normalize.scss +23 -0
- data/_sass/jekyll-theme-collider/helpers/_helpers.scss +7 -0
- data/_sass/jekyll-theme-collider/jekyll-theme-collider.scss +25 -0
- data/_sass/jekyll-theme-collider/settings/_colors.scss +15 -0
- data/assets/css/main.scss +4 -0
- data/assets/fonts/OperatorMonoSSm-Bold.otf +0 -0
- data/assets/fonts/OperatorMonoSSm-BoldItalic.otf +0 -0
- data/assets/fonts/OperatorMonoSSm-Book.otf +0 -0
- data/assets/fonts/OperatorMonoSSm-BookItalic.otf +0 -0
- data/assets/fonts/OperatorMonoSSm-Light.otf +0 -0
- data/assets/fonts/OperatorMonoSSm-LightItalic.otf +0 -0
- data/assets/fonts/OperatorMonoSSm-Medium.otf +0 -0
- data/assets/fonts/OperatorMonoSSm-MediumItalic.otf +0 -0
- data/assets/images/theme-image.png +0 -0
- data/assets/js/app.js +133 -0
- data/assets/js/particles.js +1541 -0
- metadata +151 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e43b46ed2c9fd039a2764d588a90ffb2e35b9240
|
4
|
+
data.tar.gz: c877eb77514601161e9dca36e55fcbf119efbaf4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d4e67c2da8d0b68d28a7dbe9db897cc6ba1ffeeaabbdf0d7f94192feb2709b97e2242e01c0ba7aa444cf461f00514a202cb5c7f775348e979e6cd8308c2f354f
|
7
|
+
data.tar.gz: b15d24054352e11d78e2359d07f9f01516344f1a00a8da68862283dc227767309186b01d569ed4295d6696615ae75edda61a149aa92c13e9b3a8ae79f83a55ec
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2018 Ryan Brown
|
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,155 @@
|
|
1
|
+
# jekyll-theme-collider
|
2
|
+
|
3
|
+
## About
|
4
|
+
This theme has two main nifty features, the use of [particles.js](https://vincentgarreau.com/particles.js/) and the [jekyll-paginate-v2 plugin](https://github.com/sverrirs/jekyll-paginate-v2/tree/master/examples). For those who don't know, the jekyll-paginate-v2 plugin allows you to do cool things like paginate within a given collection, which the current jekyll-paginate gem does not allow.
|
5
|
+
|
6
|
+
I'm also using the powers of [ITCSS](https://github.com/ahmadajmi/awesome-itcss) and [BEM](http://getbem.com/introduction/) in an attempt to keep the SCSS as clean as possible. You may also notice that I'm trying to avoid the use of any libraries to keep things nice and simple. This also allows for greater learning opportunities.
|
7
|
+
|
8
|
+
The font I'm using is a favorite of mine, [Operator Mono SSm](https://www.typography.com/fonts/operator/styles/operatormonoscreensmart). Also notice the fun use of colors on tags and each page, these are easily customizable by design and is detailed below.
|
9
|
+
|
10
|
+
Please [contact me](https://www.ryandevelops.com/contact) if you are interested in contributing to this theme or have any ideas for improvement!
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
**Jekyll requirements**
|
14
|
+
* You must have Ruby installed:
|
15
|
+
* https://www.ruby-lang.org/en/downloads/
|
16
|
+
* Install Jekyll and Bundler:
|
17
|
+
* `gem install jekyll bundler`
|
18
|
+
|
19
|
+
**Create a local copy of the site**
|
20
|
+
* Download this site:
|
21
|
+
* `git clone https://github.com/ryancolorcafe/jekyll-theme-collider.git`
|
22
|
+
* Move into directory:
|
23
|
+
* `cd jekyll-theme-collider`
|
24
|
+
* Install required gems:
|
25
|
+
* `bundle install`
|
26
|
+
* Verify it's working:
|
27
|
+
* `bundle exec jekyll serve`
|
28
|
+
* Browse to http://localhost:4000
|
29
|
+
|
30
|
+
**Install theme using gem**
|
31
|
+
* Add this line to your Gemfile:
|
32
|
+
* `gem "jekyll-theme-collider"`
|
33
|
+
* Install running this command in your terminal:
|
34
|
+
* `bundle install`
|
35
|
+
* Remove the default index.md and about.md files:
|
36
|
+
* `rm index.md about.md`
|
37
|
+
* Download the index.md file:
|
38
|
+
* `curl -L -O "https://github.com/ryancolorcafe/jekyll-theme-collider/raw/master/index.md"`
|
39
|
+
* Create the nec·essary folders:
|
40
|
+
* `mkdir _blog_posts _blog_tags pages tags`
|
41
|
+
* Download pages files:
|
42
|
+
* `cd pages && curl -L -O "https://github.com/ryancolorcafe/jekyll-theme-collider/raw/master/pages/{about.html,blog.html,contact.html,thanks.html}"`
|
43
|
+
|
44
|
+
|
45
|
+
* While not necessary to download the following, you may want to in order to see an example of the use of tags, and to have enough posts to see the jekyll-paginate-v2 plugin in action. Run each command one at a time:
|
46
|
+
* `cd ../tags && curl -L -O "https://github.com/ryancolorcafe/jekyll-theme-collider/raw/master/tags/{nonprofit.md,painting.md}"`
|
47
|
+
|
48
|
+
* `cd ../_blog_tags && curl -L -O "https://github.com/ryancolorcafe/jekyll-theme-collider/raw/master/_blog_tags/{nonprofit.md,painting.md}"`
|
49
|
+
|
50
|
+
* `cd ../_blog_posts && curl -L -O "https://github.com/ryancolorcafe/jekyll-theme-collider/raw/master/_blog_posts/{2015-08-15-transition-projects.md,2016-09-30-disjecta.md,2016-10-27-the-nature-conservancy.md,2017-09-27-nice-little-clouds.md,2017-11-10-caldera-arts.md,2018-02-10-the-nature-conservancy.md,2018-07-11-happy-little-trees.md}"`
|
51
|
+
|
52
|
+
* Don't forget to go back to the root directory `cd ..`
|
53
|
+
|
54
|
+
* Finally, add the following to config.yml:
|
55
|
+
|
56
|
+
```
|
57
|
+
theme: jekyll-theme-collider
|
58
|
+
|
59
|
+
plugins:
|
60
|
+
- jekyll-paginate-v2
|
61
|
+
|
62
|
+
collections:
|
63
|
+
blog_posts:
|
64
|
+
output: true
|
65
|
+
permalink: /collection/:name
|
66
|
+
blog_tags:
|
67
|
+
|
68
|
+
pagination:
|
69
|
+
enabled: true
|
70
|
+
per_page: 3
|
71
|
+
permalink: '/:num/'
|
72
|
+
title: ':title'
|
73
|
+
limit: 0
|
74
|
+
sort_field: 'date'
|
75
|
+
sort_reverse: true
|
76
|
+
collection: 'blog_posts'
|
77
|
+
trail:
|
78
|
+
before: 2
|
79
|
+
after: 2
|
80
|
+
```
|
81
|
+
|
82
|
+
* Run your server and you should be good to go!
|
83
|
+
* `bundle exec jekyll serve`
|
84
|
+
|
85
|
+
**Troubleshooting:**
|
86
|
+
* The `curl -L -O` commands may not have fully downloaded each file. Even if it seems the file was fully downloaded, open each one to make sure that it doesn't just contain a 503 error inside. Delete the files with errors and retry the curl commands.
|
87
|
+
* You may need to restart your server in order for your changes to take effect.
|
88
|
+
|
89
|
+
## Site configuration
|
90
|
+
|
91
|
+
**Config file:**
|
92
|
+
|
93
|
+
Be sure to add your own site title, email, github username, etc. in config.yml.
|
94
|
+
|
95
|
+
**Tags:**
|
96
|
+
|
97
|
+
To create a new tag, make a new file in the `tags` directory with the name of the tag you'd like to use. The structure of each is the following:
|
98
|
+
|
99
|
+
```
|
100
|
+
---
|
101
|
+
layout: blog
|
102
|
+
title: Jekyll
|
103
|
+
permalink: /jekyll
|
104
|
+
color: purple
|
105
|
+
pagination:
|
106
|
+
enabled: true
|
107
|
+
collection: all
|
108
|
+
tag: jekyll
|
109
|
+
---
|
110
|
+
|
111
|
+
All posts tagged with _Jekyll_
|
112
|
+
```
|
113
|
+
If you're familiar with Jekyll, most of this will look familiar. The parts unique to this theme are the color and the pagination configurations. The color configured here will determine the color of the tag page header and is based on SCSS color settings, meaning it's not just the default CSS purple color being used here. More on that in another section.
|
114
|
+
|
115
|
+
The pagination settings are necessary to set for the jekyll-pagination-v2 plugin. The only one you'll likely want to ever modify here is the `tag:` setting, where you simply put the tag name you'd like to use in lowercase.
|
116
|
+
|
117
|
+
You'll also want to create a new file in the `_blog_tags` directory that is also named after the tag you'd like to use. This is to set the color of the actual tags themselves, and only the color needs to be set as below:
|
118
|
+
```
|
119
|
+
---
|
120
|
+
color: purple
|
121
|
+
---
|
122
|
+
```
|
123
|
+
|
124
|
+
**Colors**
|
125
|
+
|
126
|
+
If using this theme as a gem, see [overriding theme defaults](https://jekyllrb.com/docs/themes/#overriding-theme-defaults) in the Jekyll docs as you will need to make a copy of the following files.
|
127
|
+
|
128
|
+
To set up a new color variable in the SCSS, you may do so in `settings/_color.scss`. To create a new reusable color class that can be used for tag pages and the tags themselves, go to `elements/_colors.scss`. The structure a new color classes should look like the following:
|
129
|
+
|
130
|
+
```
|
131
|
+
.orange {
|
132
|
+
color: $channel-orange;
|
133
|
+
&.icon {
|
134
|
+
fill: $channel-orange;
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
.bg--orange {
|
139
|
+
background: $channel-orange;
|
140
|
+
color: $white;
|
141
|
+
}
|
142
|
+
|
143
|
+
a.bg--orange:hover {
|
144
|
+
background: darken($channel-orange, $darken--button);
|
145
|
+
}
|
146
|
+
```
|
147
|
+
|
148
|
+
This is what would allow you to simply configure `color: orange` in your `tags` and `_blog_tags` directory files. For an example of what is happening under the hood, you can take a look at the `_includes/header.html` file, lines 1-15.
|
149
|
+
|
150
|
+
## Future projects
|
151
|
+
|
152
|
+
* Add comments to posts using Disqus
|
153
|
+
* A portfolio/work page using CSS Grid
|
154
|
+
* Search bar for articles in blog
|
155
|
+
* Modular scale typography
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{% if page.color %}
|
2
|
+
{% assign background = page.color %}
|
3
|
+
{% elsif page.tags %}
|
4
|
+
{% for tag in page.tags %}
|
5
|
+
{% assign post_tag_downcase = tag | downcase %}
|
6
|
+
{% for blog_tag in site.blog_tags %}
|
7
|
+
{% assign blog_tag_title = blog_tag.title | downcase %}
|
8
|
+
{% if blog_tag_title == post_tag_downcase %}
|
9
|
+
{% assign background = blog_tag.color %}
|
10
|
+
{% endif %}
|
11
|
+
{% endfor %}
|
12
|
+
{% endfor %}
|
13
|
+
{% endif %}
|
14
|
+
|
15
|
+
<header class="{% if page.title == 'Home' %}header__homepage{% endif %} bg--{{ background | default: 'green' }}">
|
16
|
+
<nav>
|
17
|
+
{% unless page.title == 'Home' %}
|
18
|
+
<a class="header__home" href="{{ "/" | relative_url}}">{{ site.title | escape }}</a>
|
19
|
+
{% endunless %}
|
20
|
+
<ul>
|
21
|
+
<li>
|
22
|
+
<a class="header__link" href="/blog">Blog</a>
|
23
|
+
</li>
|
24
|
+
<li>
|
25
|
+
<a class="header__link" href="/about">About</a>
|
26
|
+
</li>
|
27
|
+
<li>
|
28
|
+
<a class="header__link" href="/contact">Contact</a>
|
29
|
+
</li>
|
30
|
+
</ul>
|
31
|
+
</nav>
|
32
|
+
{% unless page.title == 'Home' %}
|
33
|
+
<h1 class="header__title">{{ page.title }}</h1>
|
34
|
+
{% endunless %}
|
35
|
+
</header>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<!-- Pagination buttons -->
|
2
|
+
{% if paginator.total_pages > 1 %}
|
3
|
+
<ul class="pagination">
|
4
|
+
{% if paginator.first_page %}
|
5
|
+
<a href="{{ paginator.first_page_path | prepend: site.baseurl | replace: '//', '/' }}">First</a>
|
6
|
+
{% endif %}
|
7
|
+
|
8
|
+
{% if paginator.previous_page %}
|
9
|
+
<a href="{{ paginator.previous_page_path | prepend: site.baseurl | replace: '//', '/' }}">← Prev</a>
|
10
|
+
{% endif %}
|
11
|
+
|
12
|
+
{% if paginator.page_trail %}
|
13
|
+
{% for trail in paginator.page_trail %}
|
14
|
+
<a href="{{ trail.path | prepend: site.baseurl | replace: '//', '/' }}" title="{{trail.title}}" {% if page.url == trail.path %}class="selected"{% endif %}>{{ trail.num }}</a>
|
15
|
+
{% endfor %}
|
16
|
+
{% endif %}
|
17
|
+
|
18
|
+
{% if paginator.next_page %}
|
19
|
+
<a href="{{ paginator.next_page_path | prepend: site.baseurl | replace: '//', '/' }}">Next →</a>
|
20
|
+
{% endif %}
|
21
|
+
|
22
|
+
{% if paginator.last_page %}
|
23
|
+
<a href="{{ paginator.last_page_path | prepend: site.baseurl | replace: '//', '/' }}">Last</a>
|
24
|
+
{% endif %}
|
25
|
+
</ul>
|
26
|
+
{% endif %}
|
data/_layouts/about.html
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<div class="post-list about">
|
6
|
+
<figure class="right"><img src="https://via.placeholder.com/200x232" alt="placeholder photo">
|
7
|
+
</figure>
|
8
|
+
<p>
|
9
|
+
We must stand up shared vocabulary social capital transparent white paper. A impact investing commitment silo; humanitarian, greenwashing; move the needle design thinking ecosystem. Thought leader state of play do-gooder shared value deep dive uplift replicable. Systems thinking, social capital global, replicable vibrant inspire. Grit entrepreneur shared unit of analysis.
|
10
|
+
</p>
|
11
|
+
<p>
|
12
|
+
Incubator, inspiring, dynamic greenwashing her body her rights social entrepreneurship citizen-centered. Thought provoking corporate social responsibility catalyze citizen-centered systems thinking.
|
13
|
+
</p>
|
14
|
+
<p>
|
15
|
+
Improve the world uplift green space ideate disrupt challenges and opportunities shared unit of analysis natural resources strategy. Catalyze big data strategize save the world inspirational milestones humanitarian.
|
16
|
+
</p>
|
17
|
+
<p>
|
18
|
+
Segmentation shared vocabulary collective impact gender rights, support, green space engaging improve the world when. Blended value, problem-solvers, efficient but improve the world bandwidth.
|
19
|
+
</p>
|
20
|
+
<p>
|
21
|
+
The social entrepreneurship social innovation social intrapreneurship shared value. Empower communities save the world youth scalable unprecedented challenge best practices ecosystem. Circular, movements benefit corporation but synergy.
|
22
|
+
</p>
|
23
|
+
</div>
|
data/_layouts/blog.html
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
permalink: /blog/
|
4
|
+
---
|
5
|
+
|
6
|
+
<ul class="post-list">
|
7
|
+
<!-- All posts -->
|
8
|
+
{% assign posts = paginator.posts %}
|
9
|
+
{% for post in posts %}
|
10
|
+
<li>
|
11
|
+
<h2>
|
12
|
+
<a class="post-list__link" href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
|
13
|
+
</h2>
|
14
|
+
{{ post.date | date: "%b %-d, %Y" }}
|
15
|
+
<div class="post-list__meta">
|
16
|
+
{% if post.tags %}
|
17
|
+
{% for tag in post.tags %}
|
18
|
+
{% assign post_tag_downcase = tag | downcase %}
|
19
|
+
{% for blog_tag in site.blog_tags %}
|
20
|
+
{% assign blog_tag_title = blog_tag.title | downcase %}
|
21
|
+
{% if blog_tag_title == post_tag_downcase %}
|
22
|
+
<div class="post-list__tags">
|
23
|
+
<a href="/{{ tag }}" class="post-list__tags bg--{{ blog_tag.color | default: 'grey' }}">{{ tag }}</a>
|
24
|
+
</div>
|
25
|
+
{% endif %}
|
26
|
+
{% endfor %}
|
27
|
+
{% endfor %}
|
28
|
+
{% endif %}
|
29
|
+
</div>
|
30
|
+
<div class="post-list__excerpt">
|
31
|
+
{{ post.excerpt }}
|
32
|
+
</div>
|
33
|
+
<a href="{{ site.baseurl }}{{ post.url }}" class="post-list__read-more">Read more</a>
|
34
|
+
</li>
|
35
|
+
{% endfor %}
|
36
|
+
|
37
|
+
{% include pagination.html %}
|
38
|
+
</ul>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<div class="contact-form">
|
6
|
+
<form action="https://formspree.io/{{site.email}}" method="POST">
|
7
|
+
<div class="input-wrapper">
|
8
|
+
<label>Name</label>
|
9
|
+
<input type="text" name="name">
|
10
|
+
</div>
|
11
|
+
<div class="input-wrapper">
|
12
|
+
<label>Email</label>
|
13
|
+
<input type="email" name="_replyto">
|
14
|
+
</div>
|
15
|
+
<div class="input-wrapper">
|
16
|
+
<label>Message</label>
|
17
|
+
<textarea name="message" placeholder="Your message"></textarea>
|
18
|
+
</div>
|
19
|
+
<input type="hidden" name="_next" value="/thanks" />
|
20
|
+
<input type="submit" value="Send" class="bg--green">
|
21
|
+
</form>
|
22
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="{{ page.lang | default: site.lang | default: 'en' }}">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
6
|
+
<meta property="og:image" content="{{ "/assets/images/theme-image.png" | prepend: site.baseurl }}">
|
7
|
+
<meta property="og:description" content="The Collider Jekyll Theme is a gem-based theme that helps makes use of the jekyll-paginate-v2 plugin and particles.js.">
|
8
|
+
<meta property="og:title" content="Collider Jekyll Theme">
|
9
|
+
<meta property="og:url" content="//{{site.hosted_url}}">
|
10
|
+
<link rel="stylesheet" href="{{ "/assets/css/main.css" | prepend: site.baseurl }}">
|
11
|
+
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
|
12
|
+
</head>
|
13
|
+
<body>
|
14
|
+
<div class="wrap">
|
15
|
+
{% unless page.title == 'Home' %}{% include header.html %}{% endunless %}
|
16
|
+
{{ content }}
|
17
|
+
</div>
|
18
|
+
</body>
|
19
|
+
</html>
|
data/_layouts/home.html
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<div id="particles-js">
|
6
|
+
{% include header.html %}
|
7
|
+
<div class="site-title__wrapper">
|
8
|
+
<h1>
|
9
|
+
<span class="site-title__text">{{site.username}}</span>
|
10
|
+
<span class="site-title__text--sub">{{site.user_title}}</span>
|
11
|
+
</h1>
|
12
|
+
<a href="https://github.com/{{site.github_username}}" target="_blank"><i class="fab fa-github fa-3x"></i></a>
|
13
|
+
<a href="https://www.linkedin.com/in/{{site.linked_in_profile_name}}/" target="_blank"><i class="fab fa-linkedin-in fa-3x"></i></a>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<script type="text/javascript" src="{{ base.url | prepend: site.url }}/assets/js/particles.js"></script>
|
18
|
+
<script type="text/javascript" src="{{ base.url | prepend: site.url }}/assets/js/app.js"></script>
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
<article class="post post-list" itemscope itemtype="http://schema.org/BlogPosting">
|
5
|
+
<time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
|
6
|
+
{{ page.date | date: "%b %-d, %Y" }}
|
7
|
+
</time>
|
8
|
+
<div class="post-list__meta">
|
9
|
+
{% if page.tags %}
|
10
|
+
{% for tag in page.tags %}
|
11
|
+
{% assign post_tag_downcase = tag | downcase %}
|
12
|
+
{% for blog_tag in site.blog_tags %}
|
13
|
+
{% assign blog_tag_title = blog_tag.title | downcase %}
|
14
|
+
{% if blog_tag_title == post_tag_downcase %}
|
15
|
+
<div class="post-list__tags">
|
16
|
+
<a href="/{{ tag }}" class="bg--{{ blog_tag.color | default: 'grey' }}">{{ tag }}</a>
|
17
|
+
</div>
|
18
|
+
{% endif %}
|
19
|
+
{% endfor %}
|
20
|
+
{% endfor %}
|
21
|
+
{% endif %}
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="post__content">
|
25
|
+
{{ content | markdownify }}
|
26
|
+
</div>
|
27
|
+
|
28
|
+
{% if site.disqus.shortname %}
|
29
|
+
{% include disqus_comments.html %}
|
30
|
+
{% endif %}
|
31
|
+
</article>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<div class="contact-form" style="text-align: center;">
|
6
|
+
<h3 class="form-message">Thanks for reaching out!</h3>
|
7
|
+
<p>I'll get back to you as soon as possible.</p>
|
8
|
+
<div class="button-wrapper">
|
9
|
+
<a href="/" class="button bg--green">Home</a>
|
10
|
+
<a href="/blog" class="button bg--green">Blog</a>
|
11
|
+
</div>
|
12
|
+
</div>
|
@@ -0,0 +1,74 @@
|
|
1
|
+
.contact-form {
|
2
|
+
max-width: 45em;
|
3
|
+
padding: 3em 9em 4em 9em;
|
4
|
+
margin-left: auto;
|
5
|
+
margin-right: auto;
|
6
|
+
}
|
7
|
+
|
8
|
+
@media all and (max-width: 768px) {
|
9
|
+
.contact-form {
|
10
|
+
padding: 2em 2em 4em 2em;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
.form-message {
|
15
|
+
font-family: "Operator Mono SSm-BookItalic";
|
16
|
+
text-align: center;
|
17
|
+
}
|
18
|
+
|
19
|
+
.input-wrapper {
|
20
|
+
padding: 0.4em 0em;
|
21
|
+
}
|
22
|
+
|
23
|
+
input, label {
|
24
|
+
text-align: left;
|
25
|
+
margin-bottom: 7px;
|
26
|
+
}
|
27
|
+
|
28
|
+
input {
|
29
|
+
width: 100%;
|
30
|
+
box-shadow: inset 0 2px 0 rgba(39,65,90,.075);
|
31
|
+
border-radius: 2px;
|
32
|
+
border: 0;
|
33
|
+
padding: 11px 13px;
|
34
|
+
background-color: #F7F7F8;
|
35
|
+
margin-top: 7px;
|
36
|
+
font-size: 14px;
|
37
|
+
}
|
38
|
+
|
39
|
+
textarea {
|
40
|
+
display: block;
|
41
|
+
margin-top: 7px;
|
42
|
+
width: 100%;
|
43
|
+
height: 200px;
|
44
|
+
padding: 10px;
|
45
|
+
font-size: 14px;
|
46
|
+
box-shadow: inset 0 2px 0 rgba(39,65,90,.075);
|
47
|
+
border-radius: 2px;
|
48
|
+
border: 0;
|
49
|
+
background-color: #F7F7F8;
|
50
|
+
}
|
51
|
+
|
52
|
+
input[type="submit"] {
|
53
|
+
text-align: center;
|
54
|
+
cursor: pointer;
|
55
|
+
transition: background 0.5s;
|
56
|
+
font-size: 16px;
|
57
|
+
&:hover {
|
58
|
+
background: darken($dark-sea-green, $darken--button);
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
.button-wrapper {
|
63
|
+
margin-top: 2.5em;
|
64
|
+
}
|
65
|
+
|
66
|
+
.button {
|
67
|
+
padding: 11px 40px;
|
68
|
+
box-shadow: inset 0 2px 0 rgba(39, 65, 90, 0.075);
|
69
|
+
text-decoration: none;
|
70
|
+
transition: background 0.5s;
|
71
|
+
&:hover{
|
72
|
+
color: #FFF;
|
73
|
+
}
|
74
|
+
}
|