jekyll-theme-hydra 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 +21 -0
- data/README.md +134 -0
- data/_includes/list-posts.html +10 -0
- data/_includes/navigation.html +15 -0
- data/_includes/post-title.html +8 -0
- data/_includes/relative-src.html +1 -0
- data/_includes/social-icon.html +20 -0
- data/_layouts/archive.html +23 -0
- data/_layouts/default.html +57 -0
- data/_layouts/page.html +18 -0
- data/_layouts/post.html +46 -0
- data/_sass/blog.scss +125 -0
- data/_sass/cloudcannon.scss +37 -0
- data/_sass/contact.scss +32 -0
- data/_sass/elements.scss +54 -0
- data/_sass/footer.scss +121 -0
- data/_sass/forms.scss +67 -0
- data/_sass/landing-page.scss +62 -0
- data/_sass/layout.scss +174 -0
- data/_sass/mixins/columns.scss +5 -0
- data/_sass/mixins/flexbox.scss +394 -0
- data/_sass/navigation.scss +86 -0
- data/_sass/pricing.scss +71 -0
- data/_sass/staff.scss +38 -0
- data/_sass/variables.scss +8 -0
- data/assets/css/screen.scss +16 -0
- data/assets/images/logo.svg +8 -0
- metadata +114 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e0d4410f526b63063ab33f04a983ae6ed009f0ba
|
4
|
+
data.tar.gz: 3958f183d587d932815b3cbfe23fb9fb084b7547
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a9925ab1d3a22004b2131937da32eea9fec317e42be725af7ff0169f418ae357e6856c57a010301e1f95065e2d46935713ce58df66ce123fda453e9105fcd6cc
|
7
|
+
data.tar.gz: 65f4817ffbbe64c60f5412bce137051a9e3b1a0d399bf291566486c33bb6a4d68775de0355b94d67899b196253a0a5344fa62a5eeae4aad61cc9039356481725
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2016 CloudCannon
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
# Hydra / jekyll-theme-hydra
|
2
|
+
|
3
|
+
Marketing site template for Jekyll. Browse through a [live demo](https://proud-alligator.cloudvent.net/).
|
4
|
+
Increase the web presence of your brand with this configurable theme.
|
5
|
+
|
6
|
+
![Hydra template screenshot](images/_screenshot.png)
|
7
|
+
|
8
|
+
Hydra was made by [CloudCannon](http://cloudcannon.com/), the Cloud CMS for Jekyll.
|
9
|
+
|
10
|
+
Find more templates, themes and step-by-step Jekyll tutorials at [CloudCannon Academy](https://learn.cloudcannon.com/).
|
11
|
+
|
12
|
+
|
13
|
+
Put your layouts in `_layouts`, your includes in `_includes`, your sass files in `_sass` and any other assets in `assets`.
|
14
|
+
|
15
|
+
To experiment with this code, add some sample content and run `bundle exec jekyll serve` – this directory is setup just like a Jekyll site!
|
16
|
+
|
17
|
+
|
18
|
+
## Features
|
19
|
+
|
20
|
+
* Contact form
|
21
|
+
* Pre-built pages
|
22
|
+
* Pre-styled components
|
23
|
+
* Blog with pagination
|
24
|
+
* Post category pages
|
25
|
+
* Disqus comments for posts
|
26
|
+
* Staff and author system
|
27
|
+
* Configurable footer
|
28
|
+
* Optimised for editing in [CloudCannon](http://cloudcannon.com/)
|
29
|
+
* RSS/Atom feed
|
30
|
+
* SEO tags
|
31
|
+
* Google Analytics
|
32
|
+
|
33
|
+
|
34
|
+
## Installation
|
35
|
+
|
36
|
+
Include the gem in your Jekyll site's `Gemfile`:
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
gem 'jekyll-theme-hydra'
|
40
|
+
```
|
41
|
+
|
42
|
+
Hydra's default layout depends on the `jekyll-seo-tag` gem. Add in the relevant section. Example:
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
group :jekyll_plugins do
|
46
|
+
# ...
|
47
|
+
gem 'jekyll-seo-tag', '2.6.1'
|
48
|
+
# ...
|
49
|
+
end
|
50
|
+
```
|
51
|
+
|
52
|
+
|
53
|
+
And add this line to your Jekyll site's `_config.yml`:
|
54
|
+
|
55
|
+
```yaml
|
56
|
+
theme: jekyll-theme-hydra
|
57
|
+
```
|
58
|
+
|
59
|
+
And then execute:
|
60
|
+
|
61
|
+
$ bundle
|
62
|
+
|
63
|
+
Or install it yourself as:
|
64
|
+
|
65
|
+
$ gem install jekyll-theme-hydra
|
66
|
+
|
67
|
+
|
68
|
+
## Basic setup
|
69
|
+
|
70
|
+
1. Add your site and author details in `_config.yml`.
|
71
|
+
2. Add your Google Analytics and Disqus keys to `_config.yml`.
|
72
|
+
3. Get a workflow going to see your site's output (with [CloudCannon](https://app.cloudcannon.com/) or Jekyll locally).
|
73
|
+
|
74
|
+
|
75
|
+
## Usage / Editing
|
76
|
+
|
77
|
+
Hydra is already optimised for adding, updating and removing pages, staff, advice, company details and footer elements in CloudCannon.
|
78
|
+
|
79
|
+
### Posts
|
80
|
+
|
81
|
+
* Add, update or remove a post in the *Posts* collection.
|
82
|
+
* The **Staff Author** field links to members in the **Staff** collection.
|
83
|
+
* Documentation pages are organised in the navigation by category, with URLs based on the path inside the `_docs` folder.
|
84
|
+
* Change the defaults when new posts are created in `_posts/_defaults.md`.
|
85
|
+
|
86
|
+
### Contact Form
|
87
|
+
|
88
|
+
* Preconfigured to work with CloudCannon, but easily changed to another provider (e.g. [FormSpree](https://formspree.io/)).
|
89
|
+
* Sends email to the address listed in company details.
|
90
|
+
|
91
|
+
### Staff
|
92
|
+
|
93
|
+
* Reused around the site to save multiple editing locations.
|
94
|
+
* Add `excluded_in_search: true` to any documentation page's front matter to exclude that page in the search results.
|
95
|
+
|
96
|
+
### Navigation
|
97
|
+
|
98
|
+
* Exposed as a data file to give clients better access.
|
99
|
+
* Set in the *Data* / *Navigation* section.
|
100
|
+
|
101
|
+
### Footer
|
102
|
+
|
103
|
+
* Exposed as a data file to give clients better access.
|
104
|
+
* Set in the *Data* / *Footer* section.
|
105
|
+
|
106
|
+
|
107
|
+
## Contributing
|
108
|
+
|
109
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/hello. 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.
|
110
|
+
|
111
|
+
## Development
|
112
|
+
|
113
|
+
Hydra was built with [Jekyll](http://jekyllrb.com/) version 3.3.1, but should support newer versions as well.
|
114
|
+
|
115
|
+
Install the dependencies with [Bundler](http://bundler.io/):
|
116
|
+
|
117
|
+
~~~bash
|
118
|
+
$ bundle install
|
119
|
+
~~~
|
120
|
+
|
121
|
+
Run `jekyll` commands through Bundler to ensure you're using the right versions:
|
122
|
+
|
123
|
+
~~~bash
|
124
|
+
$ bundle exec jekyll serve
|
125
|
+
~~~
|
126
|
+
|
127
|
+
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.
|
128
|
+
|
129
|
+
When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
|
130
|
+
To add a custom directory to your theme-gem, please edit the regexp in `jekyll-theme-hydra.gemspec` accordingly.
|
131
|
+
|
132
|
+
## License
|
133
|
+
|
134
|
+
The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -0,0 +1,10 @@
|
|
1
|
+
{% for post in include.posts %}
|
2
|
+
<li class="blog-post">
|
3
|
+
<h3><a href="{% include relative-src.html src=post.url %}">{{ post.title }}</a></h3>
|
4
|
+
{% include post-title.html post=post %}
|
5
|
+
<div class="post-content">
|
6
|
+
{{ post.excerpt }}
|
7
|
+
<div class="button"><a href="{% include relative-src.html src=post.url %}">Read More</a></div>
|
8
|
+
</div>
|
9
|
+
</li>
|
10
|
+
{% endfor %}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<nav>
|
2
|
+
<a class="nav-toggle" id="open-nav" href="#">☰</a>
|
3
|
+
<a class="editor-link btn" href="cloudcannon:collections/_data/navigation.yml" class="btn"><strong>✎</strong> Edit navigation</a>
|
4
|
+
{% for link in site.data.navigation %}
|
5
|
+
{% assign class = "" %}
|
6
|
+
{% if link.highlight %}
|
7
|
+
{% assign class = class | append: " highlight" %}
|
8
|
+
{% endif %}
|
9
|
+
|
10
|
+
{% if link.link == page.url %}
|
11
|
+
{% assign class = class | append: " active" %}
|
12
|
+
{% endif %}
|
13
|
+
<a href="{% include relative-src.html src=link.link %}" class="{{ class }}" {% if link.new_window %}target="_blank"{% endif %}>{{ link.name }}</a>
|
14
|
+
{% endfor %}
|
15
|
+
</nav>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<p class="post-details">
|
2
|
+
{% for category in include.post.categories %}
|
3
|
+
<span class="blog-filter">
|
4
|
+
<a href="{{ site.baseurl }}/category/{{ category | slugify }}/">{{ category | capitalize }}</a>
|
5
|
+
</span>
|
6
|
+
{% endfor %}
|
7
|
+
<span class="post-date">{{ include.post.date | date: "%B %d, %Y" }}</span>
|
8
|
+
</p>
|
@@ -0,0 +1 @@
|
|
1
|
+
{% assign prefix = include.src | slice: 0, 2 %}{% assign protocol = include.src | slice: 0, 4 %}{% unless protocol == 'http' or prefix == "//" %}{{ site.baseurl }}{% endunless %}{{ include.src }}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
{% case include.icon %}
|
2
|
+
{% when "Facebook" %}
|
3
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19,4V7H17A1,1 0 0,0 16,8V10H19V13H16V20H13V13H11V10H13V7.5C13,5.56 14.57,4 16.5,4M20,2H4A2,2 0 0,0 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z" /></svg>
|
4
|
+
{% when "Google Plus" %}
|
5
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M23,11H21V9H19V11H17V13H19V15H21V13H23M8,11V13.4H12C11.8,14.4 10.8,16.4 8,16.4C5.6,16.4 3.7,14.4 3.7,12C3.7,9.6 5.6,7.6 8,7.6C9.4,7.6 10.3,8.2 10.8,8.7L12.7,6.9C11.5,5.7 9.9,5 8,5C4.1,5 1,8.1 1,12C1,15.9 4.1,19 8,19C12,19 14.7,16.2 14.7,12.2C14.7,11.7 14.7,11.4 14.6,11H8Z" /></svg>
|
6
|
+
{% when "Instagram" %}
|
7
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7.8,2H16.2C19.4,2 22,4.6 22,7.8V16.2A5.8,5.8 0 0,1 16.2,22H7.8C4.6,22 2,19.4 2,16.2V7.8A5.8,5.8 0 0,1 7.8,2M7.6,4A3.6,3.6 0 0,0 4,7.6V16.4C4,18.39 5.61,20 7.6,20H16.4A3.6,3.6 0 0,0 20,16.4V7.6C20,5.61 18.39,4 16.4,4H7.6M17.25,5.5A1.25,1.25 0 0,1 18.5,6.75A1.25,1.25 0 0,1 17.25,8A1.25,1.25 0 0,1 16,6.75A1.25,1.25 0 0,1 17.25,5.5M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z" /></svg>
|
8
|
+
{% when "LinkedIn" %}
|
9
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19,19H16V13.7A1.5,1.5 0 0,0 14.5,12.2A1.5,1.5 0 0,0 13,13.7V19H10V10H13V11.2C13.5,10.36 14.59,9.8 15.5,9.8A3.5,3.5 0 0,1 19,13.3M6.5,8.31C5.5,8.31 4.69,7.5 4.69,6.5A1.81,1.81 0 0,1 6.5,4.69C7.5,4.69 8.31,5.5 8.31,6.5A1.81,1.81 0 0,1 6.5,8.31M8,19H5V10H8M20,2H4C2.89,2 2,2.89 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z" /></svg>
|
10
|
+
{% when "Pinterest" %}
|
11
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M13,16.2C12.2,16.2 11.43,15.86 10.88,15.28L9.93,18.5L9.86,18.69L9.83,18.67C9.64,19 9.29,19.2 8.9,19.2C8.29,19.2 7.8,18.71 7.8,18.1C7.8,18.05 7.81,18 7.81,17.95H7.8L7.85,17.77L9.7,12.21C9.7,12.21 9.5,11.59 9.5,10.73C9.5,9 10.42,8.5 11.16,8.5C11.91,8.5 12.58,8.76 12.58,9.81C12.58,11.15 11.69,11.84 11.69,12.81C11.69,13.55 12.29,14.16 13.03,14.16C15.37,14.16 16.2,12.4 16.2,10.75C16.2,8.57 14.32,6.8 12,6.8C9.68,6.8 7.8,8.57 7.8,10.75C7.8,11.42 8,12.09 8.34,12.68C8.43,12.84 8.5,13 8.5,13.2A1,1 0 0,1 7.5,14.2C7.13,14.2 6.79,14 6.62,13.7C6.08,12.81 5.8,11.79 5.8,10.75C5.8,7.47 8.58,4.8 12,4.8C15.42,4.8 18.2,7.47 18.2,10.75C18.2,13.37 16.57,16.2 13,16.2M20,2H4C2.89,2 2,2.89 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z" /></svg>
|
12
|
+
{% when "Tumblr" %}
|
13
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M16,11H13V14.9C13,15.63 13.14,16 14.1,16H16V19C16,19 14.97,19.1 13.9,19.1C11.25,19.1 10,17.5 10,15.7V11H8V8.2C10.41,8 10.62,6.16 10.8,5H13V8H16M20,2H4C2.89,2 2,2.89 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z" /></svg>
|
14
|
+
{% when "Twitter" %}
|
15
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.7,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z" /></svg>
|
16
|
+
{% when "YouTube" %}
|
17
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M10,16.5V7.5L16,12M20,4.4C19.4,4.2 15.7,4 12,4C8.3,4 4.6,4.19 4,4.38C2.44,4.9 2,8.4 2,12C2,15.59 2.44,19.1 4,19.61C4.6,19.81 8.3,20 12,20C15.7,20 19.4,19.81 20,19.61C21.56,19.1 22,15.59 22,12C22,8.4 21.56,4.91 20,4.4Z" /></svg>
|
18
|
+
{% when "RSS" %}
|
19
|
+
<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"/><circle cx="6.18" cy="17.82" r="2.18"/><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/></svg>
|
20
|
+
{% endcase %}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
---
|
4
|
+
|
5
|
+
<div class="text-container">
|
6
|
+
{% assign blog = site.pages | where: "path", "blog/index.html" | first %}
|
7
|
+
|
8
|
+
{% if blog.title %}
|
9
|
+
<h2>{{ blog.title }}</h2>
|
10
|
+
{% endif %}
|
11
|
+
|
12
|
+
{% if blog.description %}
|
13
|
+
<p class="subtext">{{ blog.description }}</p>
|
14
|
+
{% endif %}
|
15
|
+
|
16
|
+
<div class="center-text">
|
17
|
+
<span class="blog-filter cross"><a href="{{ site.baseurl }}/blog/">{{ page.title | capitalize }}</a></span>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<ul class="blog-posts">
|
21
|
+
{% include list-posts.html posts=page.posts %}
|
22
|
+
</ul>
|
23
|
+
</div>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
|
3
|
+
<html lang="en">
|
4
|
+
<head>
|
5
|
+
<meta charset="utf-8">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7
|
+
|
8
|
+
{% seo %}
|
9
|
+
{% feed_meta %}
|
10
|
+
|
11
|
+
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/screen.css">
|
12
|
+
<link rel="icon" type="image/png" href="{{ site.baseurl }}/favicon.png">
|
13
|
+
|
14
|
+
{% if jekyll.environment == 'production' and site.google_analytics_key != '' %}
|
15
|
+
<script>
|
16
|
+
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
|
17
|
+
ga('create', '{{ site.google_analytics_key }}', 'auto');
|
18
|
+
ga('send', 'pageview');
|
19
|
+
</script>
|
20
|
+
<script async src='https://www.google-analytics.com/analytics.js'></script>
|
21
|
+
{% endif %}
|
22
|
+
</head>
|
23
|
+
<body>
|
24
|
+
<header>
|
25
|
+
<div class="container">
|
26
|
+
<div class="company-name"><a href="{{ site.baseurl }}/"><img src="{{ site.baseurl }}/assets/images/logo.svg" alt="Hydra Logo" width="95" height="33" /></a></div>
|
27
|
+
{% include navigation.html %}
|
28
|
+
</div>
|
29
|
+
</header>
|
30
|
+
{{ content }}
|
31
|
+
<footer>
|
32
|
+
<div class="container">
|
33
|
+
<p class="editor-link"><a href="cloudcannon:collections/_data/footer.yml" class="btn"><strong>✎</strong> Edit footer</a></p>
|
34
|
+
<div class="footer-columns">
|
35
|
+
{% for column in site.data.footer %}
|
36
|
+
<ul class="footer-links">
|
37
|
+
{% for link in column.links %}
|
38
|
+
<li><a {% if link.new_window %}target="_blank"{% endif %} href="{% include relative-src.html src=link.link %}" {% if link.social_icon %}class="{{ link.social_icon }}-icon"{% endif %}>
|
39
|
+
{% if link.social_icon %}
|
40
|
+
{% include social-icon.html icon=link.social_icon %}
|
41
|
+
{% endif %}
|
42
|
+
{{ link.name }}</a></li>
|
43
|
+
{% endfor %}
|
44
|
+
</ul>
|
45
|
+
{% endfor %}
|
46
|
+
</div>
|
47
|
+
<p class="copyright">© {{ site.time | date: '%Y' }} MyApp Ltd. • <a href="#">Terms</a> & <a href="#">Privacy</a> • <a href="https://cloudcannon.com/">Template by CloudCannon</a></p>
|
48
|
+
</div>
|
49
|
+
</footer>
|
50
|
+
<script>
|
51
|
+
document.getElementById("open-nav").onclick = function () {
|
52
|
+
document.body.classList.toggle("nav-open");
|
53
|
+
return false;
|
54
|
+
};
|
55
|
+
</script>
|
56
|
+
</body>
|
57
|
+
</html>
|
data/_layouts/page.html
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
<div class="content">
|
5
|
+
<section class="page">
|
6
|
+
<div class="container {% if page.full_width %}max-container{% endif %}">
|
7
|
+
{% if page.heading %}
|
8
|
+
<h2>{{ page.heading }}</h2>
|
9
|
+
{% elsif page.title and page.layout != 'archive' %}
|
10
|
+
<h2>{{ page.title }}</h2>
|
11
|
+
{% endif %}
|
12
|
+
{% if page.description %}
|
13
|
+
<p class="subtext">{{ page.description }}</p>
|
14
|
+
{% endif %}
|
15
|
+
{{ content }}
|
16
|
+
</div>
|
17
|
+
</section>
|
18
|
+
</div>
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
---
|
4
|
+
<div class="blog-post text-container">
|
5
|
+
{% include post-title.html post=page %}
|
6
|
+
|
7
|
+
<p class="editor-link"><a href="cloudcannon:collections/{{ page.path }}" class="btn"><strong>✎</strong> Edit Post</a></p>
|
8
|
+
<div class="post-content">
|
9
|
+
{{ content }}
|
10
|
+
|
11
|
+
<div class="author">
|
12
|
+
{% assign author_id = page.author_staff_member | prepend: "/staff_members/" | append: "/" %}
|
13
|
+
{% assign author = site.staff_members | where: "url", author_id | first %}
|
14
|
+
<div class="square-image"><img src="{% include relative-src.html src=author.image_path %}" alt="{{ author.name }}"/></div>
|
15
|
+
<p class="blurb">{{ author.blurb }}</p>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<div class="blog-navigation">
|
19
|
+
{% if page.previous.url %}
|
20
|
+
<a class="prev" href="{% include relative-src.html src=page.previous.url %}">« {{ page.previous.title }}</a>
|
21
|
+
{% endif %}
|
22
|
+
{% if page.next.url %}
|
23
|
+
<a class="next" href="{% include relative-src.html src=page.next.url %}">{{ page.next.title }} »</a>
|
24
|
+
{% endif %}
|
25
|
+
</div>
|
26
|
+
|
27
|
+
{% if site.disqus_shortname and page.comments %}
|
28
|
+
<div id="disqus_thread"></div>
|
29
|
+
<script>
|
30
|
+
var disqus_shortname = '{{ site.disqus_shortname }}';
|
31
|
+
var disqus_config = function () {
|
32
|
+
this.page.url = "{{ page.url | prepend: site.url }}";
|
33
|
+
this.page.identifier = "{{ page.id }}";
|
34
|
+
};
|
35
|
+
|
36
|
+
(function() { // DON'T EDIT BELOW THIS LINE
|
37
|
+
var d = document, s = d.createElement('script');
|
38
|
+
s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
39
|
+
s.setAttribute('data-timestamp', +new Date());
|
40
|
+
(d.head || d.body).appendChild(s);
|
41
|
+
})();
|
42
|
+
</script>
|
43
|
+
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
|
44
|
+
{% endif %}
|
45
|
+
</div>
|
46
|
+
</div>
|
data/_sass/blog.scss
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
.blog-posts {
|
2
|
+
list-style: none;
|
3
|
+
padding: 0;
|
4
|
+
|
5
|
+
li {
|
6
|
+
margin: 100px 0;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
10
|
+
.blog-post {
|
11
|
+
.author {
|
12
|
+
padding: 30px 0 0 0;
|
13
|
+
border: 1px solid #eee;
|
14
|
+
margin: 30px 0;
|
15
|
+
font-size: .8em;
|
16
|
+
|
17
|
+
.square-image {
|
18
|
+
width: 125px;
|
19
|
+
height: 125px;
|
20
|
+
margin-top: 0;
|
21
|
+
}
|
22
|
+
.blurb {
|
23
|
+
text-align: center;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
h3 {
|
28
|
+
margin: 0;
|
29
|
+
a {
|
30
|
+
color: #000;
|
31
|
+
text-decoration: none;
|
32
|
+
font-weight: normal;
|
33
|
+
font-size: 1.3em;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
h2 {
|
38
|
+
text-align: left;
|
39
|
+
}
|
40
|
+
|
41
|
+
.blog-navigation {
|
42
|
+
font-size: 14px;
|
43
|
+
display: block;
|
44
|
+
width: auto;
|
45
|
+
overflow: hidden;
|
46
|
+
a {
|
47
|
+
display: block;
|
48
|
+
width: 50%;
|
49
|
+
float: left;
|
50
|
+
margin: 1em 0;
|
51
|
+
}
|
52
|
+
|
53
|
+
.next {
|
54
|
+
text-align: right;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
.post-details {
|
59
|
+
border-bottom: 1px solid #eee;
|
60
|
+
font-size: .9em;
|
61
|
+
|
62
|
+
.blog-filter {
|
63
|
+
display: inline-block;
|
64
|
+
text-align: left;
|
65
|
+
|
66
|
+
a {
|
67
|
+
position: relative;
|
68
|
+
top: -5px;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
a {
|
73
|
+
text-decoration: none;
|
74
|
+
}
|
75
|
+
|
76
|
+
.post-date {
|
77
|
+
float: right;
|
78
|
+
}
|
79
|
+
|
80
|
+
&:after {
|
81
|
+
content: "";
|
82
|
+
display: table;
|
83
|
+
clear: both;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
.post-content {
|
88
|
+
.button {
|
89
|
+
margin: 30px 0 0 0;
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
.pagination {
|
95
|
+
text-align: center;
|
96
|
+
}
|
97
|
+
|
98
|
+
.blog-filter {
|
99
|
+
text-align: center;
|
100
|
+
a {
|
101
|
+
background: #eee;
|
102
|
+
padding: 3px 5px;
|
103
|
+
font-size: .8em;
|
104
|
+
border-radius: 5px;
|
105
|
+
color: #888;
|
106
|
+
transition: .2s ease-in-out;
|
107
|
+
|
108
|
+
&:hover {
|
109
|
+
color: #555;
|
110
|
+
text-decoration: none;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
.blog-filter.cross a {
|
116
|
+
padding-right: 8px;
|
117
|
+
|
118
|
+
&:after {
|
119
|
+
content: "x";
|
120
|
+
font-size: .5em;
|
121
|
+
position: relative;
|
122
|
+
bottom: 4px;
|
123
|
+
right: -3px;
|
124
|
+
}
|
125
|
+
}
|