alembic-jekyll-theme 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +141 -0
  4. data/_includes/button.html +1 -0
  5. data/_includes/figure.html +4 -0
  6. data/_includes/icon.html +4 -0
  7. data/_includes/map.html +3 -0
  8. data/_includes/nav-default.html +11 -0
  9. data/_includes/nav-footer.html +13 -0
  10. data/_includes/nav-header.html +13 -0
  11. data/_includes/nav-social.html +8 -0
  12. data/_includes/post-comments.html +17 -0
  13. data/_includes/post-list.html +34 -0
  14. data/_includes/post-meta.html +3 -0
  15. data/_includes/post-pagination.html +17 -0
  16. data/_includes/post-related.html +14 -0
  17. data/_includes/post-share-buttons.html +12 -0
  18. data/_includes/site-aside.html +22 -0
  19. data/_includes/site-favicons.html +4 -0
  20. data/_includes/site-feature.html +17 -0
  21. data/_includes/site-footer.html +9 -0
  22. data/_includes/site-form.html +27 -0
  23. data/_includes/site-header.html +12 -0
  24. data/_includes/site-icons.svg +22 -0
  25. data/_includes/video.html +3 -0
  26. data/_layouts/blog.html +28 -0
  27. data/_layouts/default.html +30 -0
  28. data/_layouts/page-aside-left.html +21 -0
  29. data/_layouts/page-full.html +19 -0
  30. data/_layouts/page.html +21 -0
  31. data/_layouts/post.html +25 -0
  32. data/_sass/_flex.scss +394 -0
  33. data/_sass/_normalize.scss +419 -0
  34. data/_sass/_sassline-base.scss +7 -0
  35. data/_sass/_syntax.scss +61 -0
  36. data/_sass/sassline-base/_layouts.scss +282 -0
  37. data/_sass/sassline-base/_mixins.scss +420 -0
  38. data/_sass/sassline-base/_modular-scale.scss +66 -0
  39. data/_sass/sassline-base/_reset.scss +13 -0
  40. data/_sass/sassline-base/_typography.scss +363 -0
  41. data/_sass/sassline-base/_variables.scss +108 -0
  42. data/assets/placeholder-logo.png +0 -0
  43. data/assets/placeholder-social.png +0 -0
  44. data/assets/styles.scss +396 -0
  45. metadata +200 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1823cb59eeb9ceeb05c70d54e577df1f2fcb5a45
4
+ data.tar.gz: c3883f77e44ada4e7db8e64b2d0f2704450a9420
5
+ SHA512:
6
+ metadata.gz: 5dfa02bffef4f039eab481fdb79422e5e49fd341997ccbe376f5683f744f951bc15343db9a479c99232576fcb03a4b002a6de45da8e1c85fd38548610940b245
7
+ data.tar.gz: 964a392c125d1f54cd9a3391ef01f5fbe475af73181b1b306a91d36e51a5565e41bf4d1d9604abc46fb4ad671db09d1e46b37765f3c51a61925426d7168e48a1
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2016 David Darnes
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,141 @@
1
+ # [Alembic](https://alembic.darn.es/)
2
+ ⚗ A Jekyll boilerplate designed to be a starting point for any Jekyll website.
3
+
4
+ ![Screenshot](https://raw.githubusercontent.com/daviddarnes/alembic/master/screenshot.png)
5
+
6
+ ## Contents
7
+ - [About](#about)
8
+ - [Features](#features)
9
+ - [Installation](#installation)
10
+ - [Configuration](#configuration)
11
+ - [Gem settings](#gem-settings)
12
+ - [Site settings](#site-settings)
13
+ - [Site navigation](#site-navigation)
14
+ - [Using includes](#using-includes)
15
+ - [Page layouts](#page-layouts)
16
+ - [Page and Post options](#page-and-post-options)
17
+ - [Credits](#credits)
18
+
19
+ ## About
20
+
21
+ Alembic is a starting point for [Jekyll](https://jekyllrb.com/) projects. Rather than starting from scratch, this boilerplate is designed to get the ball rolling immediately. Fork it, configure it, tweak it, push it.
22
+
23
+ ## Features
24
+
25
+ - Tested in all major browsers, that includes IE as well as Edge
26
+ - Extensive set of shortcodes to include various elements; such as buttons, icons, figure images and more
27
+ - Solid typographic framework from [Sassline](https://sassline.com/)
28
+ - Configurable navigation via a single file
29
+ - Modular Jekyll components
30
+ - Easily interchangeable sidebar
31
+ - Contact form built in using [Formspree](https://formspree.io/)
32
+ - Works on [GitHub Pages](https://pages.github.com/) out of the box
33
+ - Built with [Jekyll](https://jekyllrb.com/) 3.2
34
+ - Designed with [Siteleaf](http://www.siteleaf.com/) in mind
35
+ - Has documentation
36
+
37
+ ## Installation
38
+
39
+ 1. Fork the repo
40
+ 2. Clone down the repo with `$ git clone git@github.com:username/reponame.git`
41
+ 3. Open the `/_config.yml` file and change details to your own project details
42
+ 4. Install GitHub Pages locally with `$ gem install github-pages`
43
+ 5. Run Jekyll from inside the the root of the repo using `$ jekyll serve --watch`
44
+ 6. Begin hacking for your project
45
+
46
+ ## Configuration
47
+
48
+ There's a number of settings you'll need to change before you can start hacking away at files. Here's a run down of what you'll need to change:
49
+
50
+ ### Gem settings
51
+ `twitter`, `author` and `social` values will need to be changed to the projects' social information or removed. Look for the `Gem settings` comment within the `/_config.yml` file. These values are for the [jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag) - follow the link to find out more.
52
+
53
+ ### Site settings
54
+ You'll need to change the `description`, `title` and `url` to match with the project. You'll also need to replace the `/assets/placeholder-logo.png` `/assets/placeholder-social.png` with project logo and default social image. The `email` needs to be changed to the email you want to receive contact form enquires with. The `disqus` value should be changed to your project username on [Disqus](https://disqus.com). Look for the `Site settings` comment within the `/_config.yml` file. The `repo` setting is optional, for now, and can be removed entirely, if you wish.
55
+
56
+ ### Site navigation
57
+ There are 3 different navigation types: one for the header, one for the footer and one for a set of social links shown in the aside (or sidebar). If the header or footer navigation are removed, they will fallback to a list of pages within the site. The `social_navigation` properties should either be one that is already in the list (so `Twitter` or `Facebook`) or simply `link`, This is so an icon can be set for the link. Look for the `Site navigation` comment within the `/_config.yml` file.
58
+
59
+ ## Using includes
60
+
61
+ There are 2 main types of includes: ones designed for the site and ones that are designed as shortcodes. Here are a list of the shortcode includes:
62
+
63
+ ### `button.html`
64
+ A button that can link to a page of any kind.
65
+
66
+ Example usage: `{% include button.html text="I'm a button" link="https://daviddarnes.com" %}`
67
+
68
+ Available options:
69
+ - `text`: The text of the button _required_
70
+ - `link`: The link that the button goes to _required_
71
+ - `icon`: The icon that is added to the end of the button text
72
+ - `color`: The color of the button
73
+
74
+ ### `figure.html`
75
+ An image with optional caption.
76
+
77
+ Example usage: `{% include figure.html image="/uploads/feature-image.jpg" caption="Check out my photo" %}`
78
+
79
+ Available options:
80
+ - `image`: The image shown _required_
81
+ - `caption`: A caption to explain the image
82
+ - `position`: The position of the image. `left`, `right` or `full`
83
+
84
+ ### `icon.html`
85
+ An icon.
86
+
87
+ Example usage: `{% include icon.html id="twitter" %}`
88
+
89
+ Available options:
90
+ - `id`: The reference for the icon _required_
91
+ - `title`: The accessible label for the icon
92
+ - `color`: The desired colour of the icon
93
+
94
+ ### `video.html`
95
+ A YouTube video.
96
+
97
+ Example usage: `{% include video.html id="zrkcGL5H3MU" %}`
98
+
99
+ Available options:
100
+ - `id`: The YouTube ID for the video _required_
101
+
102
+ ### `map.html`
103
+ A Google map. _See Google [My Maps](https://www.google.com/mymaps)_
104
+
105
+ Example usage: `{% include map.html id="1UT-2Z-Vg_MG_TrS5X2p8SthsJhc" %}`
106
+
107
+ Available options:
108
+ - `id`: The map ID for the video _required_
109
+
110
+ ### `site-form.html`
111
+ Adds a contact form to the page.
112
+
113
+ Example usage: `{% include site-form.html %}`
114
+
115
+ This include has no options. Use the `email` option in the `/_config.yml` to change to the desired email.
116
+
117
+ ## Page layouts
118
+
119
+ As well as `page`, `post`, `blog`, there are a few alternative layouts that can be used on pages:
120
+
121
+ - `page-aside-left`: Places the aside (sidebar) to the left of the content
122
+ - `page-full`: Removes the aside entirely, leaving the full width for the main content
123
+
124
+ ## Page and Post options
125
+
126
+ There are some more specific options you can apply when creating a page or a post:
127
+
128
+ - `comments: false`: Turns off comments for that post
129
+ - `feature_image: "/uploads/feature-image.jpg"`: Adds a full width feature image at the top of the page
130
+ - `feature_text: "Example text"`: Adds text to the top of the page as a full width feature with solid colour; supports markdown. This can be used in conjunction with the `feature_image` option to create a feature image with text over it
131
+ - `indexing: false`: Adds a `noindex` meta element to the `<head>` to stop crawler bots from indexing the page, used on the 404 page
132
+
133
+ > **Note:** The Post List Page options are actually in the collection data within the `_config.yml` file.
134
+
135
+ ## Credits
136
+
137
+ - Thanks to [Simple Icons](https://simpleicons.org/) for providing the brand icons, by [Dan Leech](https://twitter.com/bathtype)
138
+ - Thanks to [Sassline](https://sassline.com/) for the typographic basis, by [Jake Giltsoff](https://twitter.com/jakegiltsoff)
139
+ - Thanks to [Flexbox mixin](https://github.com/mastastealth/sass-flex-mixin) by [Brian Franco](https://twitter.com/brianfranco)
140
+ - Thanks to [Normalize](https://necolas.github.io/normalize.css/) by [Nicolas Gallagher](https://twitter.com/necolas) and [Jonathan Neal](https://twitter.com/jon_neal).
141
+ - Thanks to [pygments-css](http://richleland.github.io/pygments-css/) for the autumn syntax highlighting, by [Rich Leland](https://twitter.com/richleland)
@@ -0,0 +1 @@
1
+ <a class="button" href="{{ include.link }}" title="{{ include.text }}"{% if include.color %}style="background: {{ include.color }}"{% endif %}>{{ include.text }}{% if include.icon %}&nbsp; {% include icon.html id=include.icon %}{% endif %}</a>
@@ -0,0 +1,4 @@
1
+ <figure class="figure{% if include.position %} figure--{{ include.position }}{% endif %}">
2
+ <img class="image" src="{{ include.image }}">
3
+ {% if include.caption %}<figcaption class="caption">{{ include.caption }}</figcaption>{% endif %}
4
+ </figure>
@@ -0,0 +1,4 @@
1
+ <svg class="icon icon--{{ include.id }}" role="img"{% if include.title %} aria-label="{{ include.title }} icon"{% endif %}>
2
+ {% if include.title %}<title>{{ include.title }}</title>{% endif %}
3
+ <use xlink:href="#{{ include.id }}"{% if include.color %} fill="{{ include.color }}"{% endif %}></use>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <div class="map">
2
+ <iframe src="https://www.google.com/maps/d/u/0/embed?mid={{ include.id }}"></iframe>
3
+ </div>
@@ -0,0 +1,11 @@
1
+ <nav class="nav">
2
+ <ul class="list list--nav">
3
+ {% for item in site.pages %}
4
+ {% unless item.styles == true %}
5
+ <li class="item item--nav{% if item[1] == page.url %} item--current{% endif %}">
6
+ <a href="{{ item.url }}">{{ item.title }}</a>
7
+ </li>
8
+ {% endunless %}
9
+ {% endfor %}
10
+ </ul>
11
+ </nav>
@@ -0,0 +1,13 @@
1
+ {% if site.navigation_footer %}
2
+ <nav class="nav nav--footer">
3
+ <ul class="list list--nav">
4
+ {% for item in site.navigation_footer %}
5
+ <li class="item item--nav{% if item[1] == page.url %} item--current{% endif %}">
6
+ <a href="{{ item[1] }}">{{ item[0] }}</a>
7
+ </li>
8
+ {% endfor %}
9
+ </ul>
10
+ </nav>
11
+ {% else %}
12
+ {% include nav-default.html %}
13
+ {% endif %}
@@ -0,0 +1,13 @@
1
+ {% if site.navigation_header %}
2
+ <nav class="nav nav--header">
3
+ <ul class="list list--nav">
4
+ {% for item in site.navigation_header %}
5
+ <li class="item item--nav{% if item[1] == page.url %} item--current{% endif %}">
6
+ <a href="{{ item[1] }}">{{ item[0] }}</a>
7
+ </li>
8
+ {% endfor %}
9
+ </ul>
10
+ </nav>
11
+ {% else %}
12
+ {% include nav-default.html %}
13
+ {% endif %}
@@ -0,0 +1,8 @@
1
+ <nav class="nav nav--social">
2
+ {% for link in site.social_links %}
3
+ {% assign id = link[0] | downcase %}
4
+ <a class="link" href="{{ link[1] }}" title="{{ link[0] }}">
5
+ {% include icon.html id=id %}
6
+ </a>
7
+ {% endfor %}
8
+ </nav>
@@ -0,0 +1,17 @@
1
+ {% if site.disqus and page.comments != false %}
2
+ <div id="disqus_thread"></div>
3
+ <script>
4
+ var disqus_config = function () {
5
+ this.page.url = "{{ site.url }}{{ page.url }}";
6
+ this.page.identifier = "{{ page.url }}";
7
+ };
8
+
9
+ (function() {
10
+ var d = document, s = d.createElement('script');
11
+ s.src = '//alembic-1.disqus.com/embed.js';
12
+ s.setAttribute('data-timestamp', +new Date());
13
+ (d.head || d.body).appendChild(s);
14
+ })();
15
+ </script>
16
+ <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
17
+ {% endif %}
@@ -0,0 +1,34 @@
1
+ {% if paginator.posts %}
2
+
3
+ <ul class="list list--posts">
4
+ {% for page in paginator.posts %}
5
+ <li class="item item--post">
6
+ <article class="article article--post typeset">
7
+
8
+ <h2><a href="{{ page.url }}" title="{{ page.title }}">{{ page.title }}</a></h2>
9
+ {% include post-meta.html %}
10
+ {{ page.excerpt | markdownify | truncatewords: 60 }}
11
+
12
+ </article>
13
+ </li>
14
+ {% endfor %}
15
+ </ul>
16
+ {% include post-pagination.html %}
17
+
18
+ {% else %}
19
+ <h2>Latest blog posts</h2>
20
+ <ul class="list list--posts">
21
+ {% for page in site.posts limit: 4 %}
22
+ <li class="item item--post">
23
+ <article class="article article--post typeset">
24
+
25
+ <h5><a href="{{ page.url }}" title="{{ page.title }}">{{ page.title }}</a></h5>
26
+ {% include post-meta.html %}
27
+ {{ page.excerpt | markdownify | truncatewords: 60 }}
28
+
29
+ </article>
30
+ </li>
31
+ {% endfor %}
32
+ </ul>
33
+
34
+ {% endif %}
@@ -0,0 +1,3 @@
1
+ <small class="small post-meta">
2
+ {% if page.category %}<span class="label label--category">{{ page.category }}</span>&nbsp;&nbsp;&middot;&nbsp;&nbsp;{% endif %}<time datetime="{{ page.date | date_to_xmlschema }}" class="time">{{ page.date | date_to_string }}</time>
3
+ </small>
@@ -0,0 +1,17 @@
1
+ <nav class="nav nav--paginator">
2
+
3
+ {% if paginator.previous_page %}
4
+ <a href="{{ paginator.previous_page_path }}" class="pagination pagination--previous">&larr; Previous</a>
5
+ {% else %}
6
+ <span class="pagination pagination--previous">&larr; Previous</span>
7
+ {% endif %}
8
+
9
+ <span class="pagination pagination--counter">Page: {{ paginator.page }} of {{ paginator.total_pages }}</span>
10
+
11
+ {% if paginator.next_page %}
12
+ <a href="{{ paginator.next_page_path }}" class="pagination pagination--next">Next &rarr;</a>
13
+ {% else %}
14
+ <span class="pagination pagination--next">Next &rarr;</span>
15
+ {% endif %}
16
+
17
+ </nav>
@@ -0,0 +1,14 @@
1
+ <h2>Related posts</h2>
2
+ <ul class="list list--posts">
3
+ {% for page in site.related_posts limit: 3 %}
4
+ <li class="item item--post">
5
+ <article class="article article--post typeset">
6
+
7
+ <h5><a href="{{ page.url }}" title="{{ page.title }}">{{ page.title }}</a></h5>
8
+ {% include post-meta.html %}
9
+ {{ page.excerpt | markdownify | truncatewords: 20 }}
10
+
11
+ </article>
12
+ </li>
13
+ {% endfor %}
14
+ </ul>
@@ -0,0 +1,12 @@
1
+ {% capture share_twitter %}
2
+ https://twitter.com/intent/tweet/?text={{ page.title | uri_escape }}&amp;url={{ site.url }}{{ page.url }}{% endcapture %}
3
+ {% capture share_facebook %}
4
+ https://facebook.com/sharer/sharer.php?u={{ site.url }}{{ page.url }}{% endcapture %}
5
+ {% capture share_google %}
6
+ https://plus.google.com/share?url={{ site.url }}{{ page.url }}{% endcapture %}
7
+
8
+ <div class="share">
9
+ {% include button.html text="Tweet" icon="twitter" link=share_twitter color="#1DA1F2" %}
10
+ {% include button.html text="Share on Facebook" icon="facebook" link=share_facebook color="#3B5998" %}
11
+ {% include button.html text="Share on Google+" icon="googleplus" link=share_google color="#DC4E41" %}
12
+ </div>
@@ -0,0 +1,22 @@
1
+ <aside class="aside typeset">
2
+ <h2>About this site</h2>
3
+ <p>{{ site.description }}</p>
4
+
5
+ {% include map.html id="1UT-2Z-Vg_MG_TrS5X2p8SthsJhc" %}
6
+ <br/>
7
+
8
+ {% if page.is_page %}
9
+ {% unless paginator.posts %}
10
+ {% include post-list.html %}
11
+ {% endunless %}
12
+ {% else %}
13
+ {% include post-related.html %}
14
+ {% endif %}
15
+
16
+ {% if page.is_post or paginator.posts %}
17
+ {% include button.html text="Subscribe to posts &nbsp;" icon="rss" link="/feed.xml" %}
18
+ {% endif %}
19
+
20
+ {% include nav-social.html %}
21
+
22
+ </aside>
@@ -0,0 +1,4 @@
1
+ <link rel="icon" type="image/png" href="{{ site.avatarurl }}?s=16" sizes="16x16">
2
+ <link rel="icon" type="image/png" href="{{ site.avatarurl }}?s=32" sizes="32x32">
3
+ <link rel="icon" type="image/png" href="{{ site.avatarurl }}?s=96" sizes="96x96">
4
+ <link rel="shortcut icon" href="{{ site.avatarurl }}">
@@ -0,0 +1,17 @@
1
+ {% assign feature_text = page.feature_text %}
2
+ {% assign feature_image = page.feature_image %}
3
+ {% if page.collection %}
4
+ {% assign collectiondata = site.collections | where: "label", page.collection | first %}
5
+ {% assign feature_text = collectiondata.feature_text %}
6
+ {% assign feature_image = collectiondata.feature_image %}
7
+ {% endif %}
8
+
9
+ {% if feature_text or feature_image or collection %}
10
+ <div class="feature"{% if feature_image %} style="background-image: url({{ feature_image }})"{% endif %}>
11
+ {% if feature_text %}
12
+ <div class="container typeset">
13
+ {{ feature_text | markdownify }}
14
+ </div>
15
+ {% endif %}
16
+ </div>
17
+ {% endif %}
@@ -0,0 +1,9 @@
1
+ <footer class="footer">
2
+ <div class="container">
3
+ {% include nav-footer.html %}
4
+
5
+ <div class="copyright typeset">
6
+ <small class="small">&copy; {{ site.title }} {{ site.time | date: '%Y' }}</small>
7
+ </div>
8
+ </div>
9
+ </footer>
@@ -0,0 +1,27 @@
1
+ <div class="form form--contact">
2
+ <form id="contact-form" action="" method="POST">
3
+ <label class="label" for="name">Name: <span class="required">*</span></label>
4
+ <input class="input" id="name" type="text" name="name" value="" placeholder="Your Name" required="required" />
5
+
6
+ <label class="label" for="_replyto">Email Address: <span class="required">*</span></label>
7
+ <input class="input" id="_replyto" type="email" name="_replyto" value="" placeholder="email@website.com" required="required" />
8
+
9
+ <label class="label" for="message">Message: <span class="required">*</span></label>
10
+ <textarea class="textarea" id="message" name="message" placeholder="Your message..." required="required"></textarea>
11
+
12
+ <input class="button" type="submit" value="Send message" />
13
+ <br/>
14
+ <small class="small"><span class="required">*</span> indicates a required field</small>
15
+
16
+ <input type="text" name="_gotcha" style="display:none">
17
+ <input type="hidden" name="_subject" value="Message from {{ site.name }} website">
18
+ <input type="hidden" name="_next" value="/thanks/" />
19
+ </form>
20
+ </div>
21
+ <script>
22
+ var email = "{{ site.email | split: "" | reverse | join: "" }}";
23
+ var unraveledEmail = email.split("").reverse().join("");
24
+ var form = document.getElementById("contact-form");
25
+ form.setAttribute("action", "://formspree.io/" + unraveledEmail);
26
+ </script>
27
+ <noscript>Please enable JavaScript to use the form.</noscript>