bubblin-jekyll 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0d4f86ef3869c8e7b7f381065a25e7dadafb7fb1
4
+ data.tar.gz: cc298fee0e6989bc11c18eefe3af03281be4d472
5
+ SHA512:
6
+ metadata.gz: 61140be72721059b5a90fc86c6869fc6ddfdd3f700234f4846af2883f664738b33ea0d3039c9c8dc604476368b991883eee852e0ae8bcdb5beae25e35c13fc80
7
+ data.tar.gz: 938dce2ffb81d49eedd0822fb62534311d380850491c0d7412a3e6f03e80a07f2a6e6602372229084062d82d2068f579dc92abda0f747ccb349ceca12c0f6d55
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Parker Moore
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.
@@ -0,0 +1,147 @@
1
+ # bubblin-jekyll
2
+
3
+ The *Bubblin-Jekyll* is the Jekyll theme in use at the Bubblin [blog](https://bubblin.io/blog/).
4
+
5
+ It's a fork off of [Minima](https://github.com/jekyll/minima)—the default theme gem of Jekyll.
6
+
7
+ [Theme preview](https://jekyll.github.io/bubblin-jekyll/)
8
+
9
+ ![bubblin-jekyll theme preview](/screenshot.png)
10
+
11
+ ## Installation
12
+
13
+ Add this line to your Jekyll site's Gemfile:
14
+
15
+ ```ruby
16
+ gem "bubblin-jekyll"
17
+ ```
18
+
19
+ And add this line to your Jekyll site:
20
+
21
+ ```yaml
22
+ theme: bubblin-jekyll
23
+ ```
24
+
25
+ And then execute:
26
+
27
+ $ bundle
28
+
29
+ ### Layouts
30
+
31
+ Refers to files within the `_layouts` directory, that define the markup for your theme.
32
+
33
+ - `default.html` — The base layout that lays the foundation for subsequent layouts. The derived layouts inject their contents into this file at the line that says ` {{ content }} ` and are linked to this file via [FrontMatter](https://jekyllrb.com/docs/frontmatter/) declaration `layout: default`.
34
+ - `home.html` — The layout for your landing-page / home-page / index-page.
35
+ - `page.html` — The layout for your documents that contain FrontMatter, but are not posts.
36
+ - `post.html` — The layout for your posts.
37
+
38
+ ### Includes
39
+
40
+ Refers to snippets of code within the `_includes` directory that can be inserted in multiple layouts (and another include-file as well) within the same theme-gem.
41
+
42
+ - `disqus_comments.html` — Code to markup disqus comment box.
43
+ - `footer.html` — Defines the site's footer section.
44
+ - `google-analytics.html` — Inserts Google Analytics module (active only in production environment).
45
+ - `head.html` &mdash; Code-block that defines the `<head></head>` in *default* layout.
46
+ - `header.html` &mdash; Defines the site's main header section. By default, pages with a defined `title` attribute will have links displayed here.
47
+ - `icon-* files` &mdash; Inserts github and twitter ids with respective icons.
48
+
49
+ ### Sass
50
+
51
+ Refers to `.scss` files within the `_sass` directory that define the theme's styles.
52
+
53
+ - `bubblin-jekyll.scss` &mdash; The core file imported by preprocessed `main.scss`, it defines the variable defaults for the theme and also further imports sass partials to supplement itself.
54
+ - `bubblin-jekyll/_base.scss` &mdash; Resets and defines base styles for various HTML elements.
55
+ - `bubblin-jekyll/_layout.scss` &mdash; Defines the visual style for various layouts.
56
+ - `bubblin-jekyll/_syntax-highlighting.scss` &mdash; Defines the styles for syntax-highlighting.
57
+
58
+ ### Assets
59
+
60
+ Refers to various asset files within the `assets` directory.
61
+ Contains the `main.scss` that imports sass files from within the `_sass` directory. This `main.scss` is what gets processed into the theme's main stylesheet `main.css` called by `_layouts/default.html` via `_includes/head.html`.
62
+
63
+ This directory can include sub-directories to manage assets of similar type, and will be copied over as is, to the final transformed site directory.
64
+
65
+ ### Plugins
66
+
67
+ Bubblin-jekyll comes preinstalled with the [`jekyll-seo-tag`](https://github.com/jekyll/jekyll-seo-tag) plugin to make sure your website gets the most useful meta tags. See [usage](https://github.com/jekyll/jekyll-seo-tag#usage) to know how to set it up.
68
+
69
+ ## Usage
70
+
71
+ ### Customization
72
+
73
+ To override the default structure and style of bubblin-jekyll, simply create the concerned directory at the root of your site, copy the file you wish to customize to that directory, and then edit the file.
74
+ e.g., to override the [`_includes/head.html `](_includes/head.html) file to specify a custom style path, create an `_includes` directory, copy `_includes/head.html` from minima gem folder to `<yoursite>/_includes` and start editing that file.
75
+
76
+ The site's default CSS has now moved to a new place within the gem itself, [`assets/main.scss`](assets/main.scss). To **override the default CSS**, the file has to exist at your site source. Do either of the following:
77
+ - Create a new instance of `main.scss` at site source.
78
+ - Create a new file `main.scss` at `<your-site>/assets/`
79
+ - Add the frontmatter dashes, and
80
+ - Add `@import "bubblin-jekyll";`, to `<your-site>/assets/main.scss`
81
+ - Add your custom CSS.
82
+ - Download the file from this repo
83
+ - Create a new file `main.scss` at `<your-site>/assets/`
84
+ - Copy the contents at [assets/main.scss](assets/main.scss) onto the `main.scss` you just created, and edit away!
85
+ - Copy directly from Bubblin-Jekyll gem
86
+ - Go to your local bubblin-jekyll gem installation directory ( run `bundle show bubblin-jekyll` to get the path to it ).
87
+ - Copy the `assets/` folder from there into the root of `<your-site>`
88
+ - Change whatever values you want, inside `<your-site>/assets/main.scss`
89
+
90
+ --
91
+
92
+ ### Change default date format
93
+
94
+ You can change the default date format by specifying `site.bubblin-jekyll.date_format`
95
+ in `_config.yml`.
96
+
97
+ ```
98
+ # Bubblin-Jekyll date format
99
+ # Refer to http://shopify.github.io/liquid/filters/date/ to customize
100
+ bubblin-jekyll:
101
+ date_format: "%b %-d, %Y"
102
+ ```
103
+
104
+ --
105
+
106
+ ### Enabling comments (via Disqus)
107
+
108
+ Optionally, if you have a Disqus account, you can tell Jekyll to use it to show a comments section below each post.
109
+
110
+ To enable it, add the following lines to your Jekyll site:
111
+
112
+ ```yaml
113
+ disqus:
114
+ shortname: my_disqus_shortname
115
+ ```
116
+
117
+ You can find out more about Disqus' shortnames [here](https://help.disqus.com/customer/portal/articles/466208).
118
+
119
+ Comments are enabled by default and will only appear in production, i.e., `JEKYLL_ENV=production`
120
+
121
+ If you don't want to display comments for a particular post you can disable them by adding `comments: false` to that post's YAML Front Matter.
122
+
123
+ --
124
+
125
+ ### Enabling Google Analytics
126
+
127
+ To enable Google Anaytics, add the following lines to your Jekyll site:
128
+
129
+ ```yaml
130
+ google_analytics: UA-NNNNNNNN-N
131
+ ```
132
+
133
+ Google Analytics will only appear in production, i.e., `JEKYLL_ENV=production`
134
+
135
+ ## Contributing
136
+
137
+ Bug reports and pull requests are welcome on GitHub at . 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.
138
+
139
+ ## Development
140
+
141
+ To set up your environment to develop this theme, run `script/bootstrap`.
142
+
143
+ To test your theme, run `script/server` (or `bundle exec jekyll serve`) and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme and the contents. As you make modifications, your site will regenerate and you should see the changes in the browser after a refresh.
144
+
145
+ ## License
146
+
147
+ The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -0,0 +1,20 @@
1
+ {% if page.comments != false and jekyll.environment == "production" %}
2
+
3
+ <div id="disqus_thread"></div>
4
+ <script>
5
+ var disqus_config = function () {
6
+ this.page.url = '{{ page.url | absolute_url }}';
7
+ this.page.identifier = '{{ page.url | absolute_url }}';
8
+ };
9
+
10
+ (function() {
11
+ var d = document, s = d.createElement('script');
12
+
13
+ s.src = 'https://{{ site.disqus.shortname }}.disqus.com/embed.js';
14
+
15
+ s.setAttribute('data-timestamp', +new Date());
16
+ (d.head || d.body).appendChild(s);
17
+ })();
18
+ </script>
19
+ <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
20
+ {% endif %}
@@ -0,0 +1,46 @@
1
+ <footer class="site-footer">
2
+
3
+ <div class="wrapper">
4
+
5
+ <h2 class="footer-heading">{{ site.title | escape }}</h2>
6
+
7
+ <div class="footer-col-wrapper">
8
+ <div class="footer-col footer-col-1">
9
+ <ul class="contact-list">
10
+ <li>
11
+ {% if site.author %}
12
+ {{ site.author | escape }}
13
+ {% else %}
14
+ {{ site.title | escape }}
15
+ {% endif %}
16
+ </li>
17
+ {% if site.email %}
18
+ <li><a href="mailto:{{ site.email }}">{{ site.email }}</a></li>
19
+ {% endif %}
20
+ </ul>
21
+ </div>
22
+
23
+ <div class="footer-col footer-col-2">
24
+ <ul class="social-media-list">
25
+ {% if site.github_username %}
26
+ <li>
27
+ {% include icon-github.html username=site.github_username %}
28
+ </li>
29
+ {% endif %}
30
+
31
+ {% if site.twitter_username %}
32
+ <li>
33
+ {% include icon-twitter.html username=site.twitter_username %}
34
+ </li>
35
+ {% endif %}
36
+ </ul>
37
+ </div>
38
+
39
+ <div class="footer-col footer-col-3">
40
+ <p>{{ site.description | escape }}</p>
41
+ </div>
42
+ </div>
43
+
44
+ </div>
45
+
46
+ </footer>
@@ -0,0 +1,11 @@
1
+ <script>
2
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
3
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
4
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
5
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
6
+
7
+ ga('create', '{{ site.google_analytics }}', 'auto');
8
+ ga('send', 'pageview');
9
+
10
+ </script>
11
+
@@ -0,0 +1,11 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ {% seo %}
6
+ <link rel="stylesheet" href="{{ "/assets/main.css" | relative_url }}">
7
+ <link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ "/feed.xml" | relative_url }}">
8
+ {% if jekyll.environment == 'production' and site.google_analytics %}
9
+ {% include google-analytics.html %}
10
+ {% endif %}
11
+ </head>
@@ -0,0 +1,32 @@
1
+ <header class="site-header" role="banner">
2
+
3
+ <div class="wrapper">
4
+ {% assign default_paths = site.pages | map: "path" %}
5
+ {% assign page_paths = site.header_pages | default: default_paths %}
6
+ <a class="site-title" href="{{ "/" | relative_url }}">{{ site.title | escape }}</a>
7
+
8
+ {% if page_paths %}
9
+ <nav class="site-nav">
10
+ <input type="checkbox" id="nav-trigger" class="nav-trigger" />
11
+ <label for="nav-trigger">
12
+ <span class="menu-icon">
13
+ <svg viewBox="0 0 18 15" width="18px" height="15px">
14
+ <path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
15
+ <path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
16
+ <path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
17
+ </svg>
18
+ </span>
19
+ </label>
20
+
21
+ <div class="trigger">
22
+ {% for path in page_paths %}
23
+ {% assign my_page = site.pages | where: "path", path | first %}
24
+ {% if my_page.title %}
25
+ <a class="page-link" href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a>
26
+ {% endif %}
27
+ {% endfor %}
28
+ </div>
29
+ </nav>
30
+ {% endif %}
31
+ </div>
32
+ </header>
@@ -0,0 +1 @@
1
+ <a href="https://github.com/{{ include.username }}"><span class="icon icon--github">{% include icon-github.svg %}</span><span class="username">{{ include.username }}</span></a>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 16 16" width="16px" height="16px"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
@@ -0,0 +1 @@
1
+ <a href="https://twitter.com/{{ include.username }}"><span class="icon icon--twitter">{% include icon-twitter.svg %}</span><span class="username">{{ include.username }}</span></a>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 16 16" width="16px" height="16px"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: "en" }}">
3
+
4
+ {% include head.html %}
5
+
6
+ <body>
7
+
8
+ {% include header.html %}
9
+
10
+ <main class="page-content" aria-label="Content">
11
+ <div class="wrapper">
12
+ {{ content }}
13
+ </div>
14
+ </main>
15
+
16
+ {% include footer.html %}
17
+
18
+ </body>
19
+
20
+ </html>
@@ -0,0 +1,26 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="home">
6
+
7
+ {{ content }}
8
+
9
+ <h1 class="page-heading">Posts</h1>
10
+
11
+ <ul class="post-list">
12
+ {% for post in site.posts %}
13
+ <li>
14
+ {% assign date_format = site.minima.date_format | default: "%b %-d, %Y" %}
15
+ <span class="post-meta">{{ post.date | date: date_format }}</span>
16
+
17
+ <h2>
18
+ <a class="post-link" href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
19
+ </h2>
20
+ </li>
21
+ {% endfor %}
22
+ </ul>
23
+
24
+ <p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | relative_url }}">via RSS</a></p>
25
+
26
+ </div>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <article class="post">
5
+
6
+ <header class="post-header">
7
+ <h1 class="post-title">{{ page.title | escape }}</h1>
8
+ </header>
9
+
10
+ <div class="post-content">
11
+ {{ content }}
12
+ </div>
13
+
14
+ </article>
@@ -0,0 +1,25 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <article class="post" itemscope itemtype="http://schema.org/BlogPosting">
5
+
6
+ <header class="post-header">
7
+ <h1 class="post-title" itemprop="name headline">{{ page.title | escape }}</h1>
8
+ <p class="post-meta">
9
+ <time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
10
+ {% assign date_format = site.bubblin-jekyll.date_format | default: "%b %-d, %Y" %}
11
+ {{ page.date | date: date_format }}
12
+ </time>
13
+ {% if page.author %}
14
+ • <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{{ page.author }}</span></span>
15
+ {% endif %}</p>
16
+ </header>
17
+
18
+ <div class="post-content" itemprop="articleBody">
19
+ {{ content }}
20
+ </div>
21
+
22
+ {% if site.disqus.shortname %}
23
+ {% include disqus_comments.html %}
24
+ {% endif %}
25
+ </article>
@@ -0,0 +1,43 @@
1
+ @charset "utf-8";
2
+ // Define defaults for each variable.
3
+ $base-font-family: "Helvetica Neue",
4
+ Helvetica,
5
+ Arial,
6
+ sans-serif !default;
7
+ $base-font-size: 16px !default;
8
+ $base-font-weight: 400 !default;
9
+ $small-font-size: $base-font-size * 0.875 !default;
10
+ $base-line-height: 1.5 !default;
11
+ $spacing-unit: 30px !default;
12
+ $text-color: #111 !default;
13
+ $background-color: #fdfdfd !default;
14
+ $brand-color: #2a7ae2 !default;
15
+ $grey-color: #828282 !default;
16
+ $grey-color-light: lighten($grey-color, 40%) !default;
17
+ $grey-color-dark: darken($grey-color, 25%) !default;
18
+ $table-text-align: left !default;
19
+ // Width of the content area
20
+ $content-width: 800px !default;
21
+ $on-palm: 600px !default;
22
+ $on-laptop: 800px !default;
23
+ // Use media queries like this:
24
+ // @include media-query($on-palm) {
25
+ // .wrapper {
26
+ // padding-right: $spacing-unit / 2;
27
+ // padding-left: $spacing-unit / 2;
28
+ // }
29
+ // }
30
+ @mixin media-query($device) {
31
+ @media screen and (max-width: $device) {
32
+ @content;
33
+ }
34
+ }
35
+
36
+ @mixin relative-font-size($ratio) {
37
+ font-size: $base-font-size * $ratio;
38
+ }
39
+
40
+ // Import partials.
41
+ @import "bubblin-jekyll/base",
42
+ "bubblin-jekyll/layout",
43
+ "bubblin-jekyll/syntax-highlighting";
@@ -0,0 +1,245 @@
1
+ /**
2
+ * Reset some basic elements
3
+ */
4
+ body, h1, h2, h3, h4, h5, h6,
5
+ p, blockquote, pre, hr,
6
+ dl, dd, ol, ul, figure {
7
+ margin: 0;
8
+ padding: 0;
9
+ }
10
+
11
+
12
+
13
+ /**
14
+ * Basic styling
15
+ */
16
+ body {
17
+ font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
18
+ color: $text-color;
19
+ background-color: $background-color;
20
+ -webkit-text-size-adjust: 100%;
21
+ -webkit-font-feature-settings: "kern" 1;
22
+ -moz-font-feature-settings: "kern" 1;
23
+ -o-font-feature-settings: "kern" 1;
24
+ font-feature-settings: "kern" 1;
25
+ font-kerning: normal;
26
+ }
27
+
28
+
29
+
30
+ /**
31
+ * Set `margin-bottom` to maintain vertical rhythm
32
+ */
33
+ h1, h2, h3, h4, h5, h6,
34
+ p, blockquote, pre,
35
+ ul, ol, dl, figure,
36
+ %vertical-rhythm {
37
+ margin-bottom: $spacing-unit / 2;
38
+ }
39
+
40
+
41
+
42
+ /**
43
+ * Images
44
+ */
45
+ img {
46
+ max-width: 100%;
47
+ vertical-align: middle;
48
+ }
49
+
50
+
51
+
52
+ /**
53
+ * Figures
54
+ */
55
+ figure > img {
56
+ display: block;
57
+ }
58
+
59
+ figcaption {
60
+ font-size: $small-font-size;
61
+ }
62
+
63
+
64
+
65
+ /**
66
+ * Lists
67
+ */
68
+ ul, ol {
69
+ margin-left: $spacing-unit;
70
+ }
71
+
72
+ li {
73
+ > ul,
74
+ > ol {
75
+ margin-bottom: 0;
76
+ }
77
+ }
78
+
79
+
80
+
81
+ /**
82
+ * Headings
83
+ */
84
+ h1, h2, h3, h4, h5, h6 {
85
+ font-weight: $base-font-weight;
86
+ }
87
+
88
+
89
+
90
+ /**
91
+ * Links
92
+ */
93
+ a {
94
+ color: $brand-color;
95
+ text-decoration: none;
96
+
97
+ &:visited {
98
+ color: darken($brand-color, 15%);
99
+ }
100
+
101
+ &:hover {
102
+ color: $text-color;
103
+ text-decoration: underline;
104
+ }
105
+
106
+ .social-media-list &:hover {
107
+ text-decoration: none;
108
+
109
+ .username {
110
+ text-decoration: underline;
111
+ }
112
+ }
113
+ }
114
+
115
+
116
+ /**
117
+ * Blockquotes
118
+ */
119
+ blockquote {
120
+ color: $grey-color;
121
+ border-left: 4px solid $grey-color-light;
122
+ padding-left: $spacing-unit / 2;
123
+ @include relative-font-size(1.125);
124
+ letter-spacing: -1px;
125
+ font-style: italic;
126
+
127
+ > :last-child {
128
+ margin-bottom: 0;
129
+ }
130
+ }
131
+
132
+
133
+
134
+ /**
135
+ * Code formatting
136
+ */
137
+ pre,
138
+ code {
139
+ @include relative-font-size(0.9375);
140
+ border: 1px solid $grey-color-light;
141
+ border-radius: 3px;
142
+ background-color: #eef;
143
+ }
144
+
145
+ code {
146
+ padding: 1px 5px;
147
+ }
148
+
149
+ pre {
150
+ padding: 8px 12px;
151
+ overflow-x: auto;
152
+
153
+ > code {
154
+ border: 0;
155
+ padding-right: 0;
156
+ padding-left: 0;
157
+ }
158
+ }
159
+
160
+
161
+
162
+ /**
163
+ * Wrapper
164
+ */
165
+ .wrapper {
166
+ max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
167
+ max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
168
+ margin-right: auto;
169
+ margin-left: auto;
170
+ padding-right: $spacing-unit;
171
+ padding-left: $spacing-unit;
172
+ @extend %clearfix;
173
+
174
+ @include media-query($on-laptop) {
175
+ max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
176
+ max-width: calc(#{$content-width} - (#{$spacing-unit}));
177
+ padding-right: $spacing-unit / 2;
178
+ padding-left: $spacing-unit / 2;
179
+ }
180
+ }
181
+
182
+
183
+
184
+ /**
185
+ * Clearfix
186
+ */
187
+ %clearfix:after {
188
+ content: "";
189
+ display: table;
190
+ clear: both;
191
+ }
192
+
193
+
194
+
195
+ /**
196
+ * Icons
197
+ */
198
+ .icon > svg {
199
+ display: inline-block;
200
+ vertical-align: middle;
201
+
202
+ path {
203
+ fill: $grey-color;
204
+ }
205
+ }
206
+
207
+ .social-media-list {
208
+ .icon {
209
+ padding-right: 5px;
210
+ }
211
+
212
+ li + li {
213
+ padding-top: 5px;
214
+ }
215
+ }
216
+
217
+
218
+
219
+ /**
220
+ * Tables
221
+ */
222
+ table {
223
+ margin-bottom: $spacing-unit;
224
+ width: 100%;
225
+ text-align: $table-text-align;
226
+ color: lighten($text-color, 18%);
227
+ border-collapse: collapse;
228
+ border: 1px solid $grey-color-light;
229
+ tr {
230
+ &:nth-child(even) {
231
+ background-color: lighten($grey-color-light, 6%);
232
+ }
233
+ }
234
+ th, td {
235
+ padding: ($spacing-unit / 3) ($spacing-unit / 2);
236
+ }
237
+ th {
238
+ background-color: lighten($grey-color-light, 3%);
239
+ border: 1px solid darken($grey-color-light, 4%);
240
+ border-bottom-color: darken($grey-color-light, 12%);
241
+ }
242
+ td {
243
+ border: 1px solid $grey-color-light;
244
+ }
245
+ }
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Site header
3
+ */
4
+ .site-header {
5
+ border-top: 5px solid $grey-color-dark;
6
+ border-bottom: 1px solid $grey-color-light;
7
+ min-height: $spacing-unit * 1.865;
8
+
9
+ // Positioning context for the mobile navigation icon
10
+ position: relative;
11
+ }
12
+
13
+ .site-title {
14
+ @include relative-font-size(1.625);
15
+ font-weight: 300;
16
+ line-height: $base-line-height * $base-font-size * 2.25;
17
+ letter-spacing: -1px;
18
+ margin-bottom: 0;
19
+ float: left;
20
+
21
+ &,
22
+ &:visited {
23
+ color: $grey-color-dark;
24
+ }
25
+ }
26
+
27
+ .site-nav {
28
+ float: right;
29
+ line-height: $base-line-height * $base-font-size * 2.25;
30
+
31
+ .nav-trigger {
32
+ display: none;
33
+ }
34
+
35
+ .menu-icon {
36
+ display: none;
37
+ }
38
+
39
+ .page-link {
40
+ color: $text-color;
41
+ line-height: $base-line-height;
42
+
43
+ // Gaps between nav items, but not on the last one
44
+ &:not(:last-child) {
45
+ margin-right: 20px;
46
+ }
47
+ }
48
+
49
+ @include media-query($on-palm) {
50
+ position: absolute;
51
+ top: 9px;
52
+ right: $spacing-unit / 2;
53
+ background-color: $background-color;
54
+ border: 1px solid $grey-color-light;
55
+ border-radius: 5px;
56
+ text-align: right;
57
+
58
+ label[for="nav-trigger"] {
59
+ display: block;
60
+ float: right;
61
+ width: 36px;
62
+ height: 36px;
63
+ z-index: 2;
64
+ cursor: pointer;
65
+ }
66
+
67
+ .menu-icon {
68
+ display: block;
69
+ float: right;
70
+ width: 36px;
71
+ height: 26px;
72
+ line-height: 0;
73
+ padding-top: 10px;
74
+ text-align: center;
75
+
76
+ > svg path {
77
+ fill: $grey-color-dark;
78
+ }
79
+ }
80
+
81
+ input ~ .trigger {
82
+ clear: both;
83
+ display: none;
84
+ }
85
+
86
+ input:checked ~ .trigger {
87
+ display: block;
88
+ padding-bottom: 5px;
89
+ }
90
+
91
+ .page-link {
92
+ display: block;
93
+ padding: 5px 10px;
94
+
95
+ &:not(:last-child) {
96
+ margin-right: 0;
97
+ }
98
+ margin-left: 20px;
99
+ }
100
+ }
101
+ }
102
+
103
+
104
+
105
+ /**
106
+ * Site footer
107
+ */
108
+ .site-footer {
109
+ border-top: 1px solid $grey-color-light;
110
+ padding: $spacing-unit 0;
111
+ }
112
+
113
+ .footer-heading {
114
+ @include relative-font-size(1.125);
115
+ margin-bottom: $spacing-unit / 2;
116
+ }
117
+
118
+ .contact-list,
119
+ .social-media-list {
120
+ list-style: none;
121
+ margin-left: 0;
122
+ }
123
+
124
+ .footer-col-wrapper {
125
+ @include relative-font-size(0.9375);
126
+ color: $grey-color;
127
+ margin-left: -$spacing-unit / 2;
128
+ @extend %clearfix;
129
+ }
130
+
131
+ .footer-col {
132
+ float: left;
133
+ margin-bottom: $spacing-unit / 2;
134
+ padding-left: $spacing-unit / 2;
135
+ }
136
+
137
+ .footer-col-1 {
138
+ width: -webkit-calc(35% - (#{$spacing-unit} / 2));
139
+ width: calc(35% - (#{$spacing-unit} / 2));
140
+ }
141
+
142
+ .footer-col-2 {
143
+ width: -webkit-calc(20% - (#{$spacing-unit} / 2));
144
+ width: calc(20% - (#{$spacing-unit} / 2));
145
+ }
146
+
147
+ .footer-col-3 {
148
+ width: -webkit-calc(45% - (#{$spacing-unit} / 2));
149
+ width: calc(45% - (#{$spacing-unit} / 2));
150
+ }
151
+
152
+ @include media-query($on-laptop) {
153
+ .footer-col-1,
154
+ .footer-col-2 {
155
+ width: -webkit-calc(50% - (#{$spacing-unit} / 2));
156
+ width: calc(50% - (#{$spacing-unit} / 2));
157
+ }
158
+
159
+ .footer-col-3 {
160
+ width: -webkit-calc(100% - (#{$spacing-unit} / 2));
161
+ width: calc(100% - (#{$spacing-unit} / 2));
162
+ }
163
+ }
164
+
165
+ @include media-query($on-palm) {
166
+ .footer-col {
167
+ float: none;
168
+ width: -webkit-calc(100% - (#{$spacing-unit} / 2));
169
+ width: calc(100% - (#{$spacing-unit} / 2));
170
+ }
171
+ }
172
+
173
+
174
+
175
+ /**
176
+ * Page content
177
+ */
178
+ .page-content {
179
+ padding: $spacing-unit 0;
180
+ }
181
+
182
+ .page-heading {
183
+ @include relative-font-size(1.25);
184
+ }
185
+
186
+ .post-list {
187
+ margin-left: 0;
188
+ list-style: none;
189
+
190
+ > li {
191
+ margin-bottom: $spacing-unit;
192
+ }
193
+ }
194
+
195
+ .post-meta {
196
+ font-size: $small-font-size;
197
+ color: $grey-color;
198
+ }
199
+
200
+ .post-link {
201
+ display: block;
202
+ @include relative-font-size(1.5);
203
+ }
204
+
205
+
206
+
207
+ /**
208
+ * Posts
209
+ */
210
+ .post-header {
211
+ margin-bottom: $spacing-unit;
212
+ }
213
+
214
+ .post-title {
215
+ @include relative-font-size(2.625);
216
+ letter-spacing: -1px;
217
+ line-height: 1;
218
+
219
+ @include media-query($on-laptop) {
220
+ @include relative-font-size(2.25);
221
+ }
222
+ }
223
+
224
+ .post-content {
225
+ margin-bottom: $spacing-unit;
226
+
227
+ h2 {
228
+ @include relative-font-size(2);
229
+
230
+ @include media-query($on-laptop) {
231
+ @include relative-font-size(1.75);
232
+ }
233
+ }
234
+
235
+ h3 {
236
+ @include relative-font-size(1.625);
237
+
238
+ @include media-query($on-laptop) {
239
+ @include relative-font-size(1.375);
240
+ }
241
+ }
242
+
243
+ h4 {
244
+ @include relative-font-size(1.25);
245
+
246
+ @include media-query($on-laptop) {
247
+ @include relative-font-size(1.125);
248
+ }
249
+ }
250
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Syntax highlighting styles
3
+ */
4
+ .highlight {
5
+ background: #fff;
6
+ @extend %vertical-rhythm;
7
+
8
+ .highlighter-rouge & {
9
+ background: #eef;
10
+ }
11
+
12
+ .c { color: #998; font-style: italic } // Comment
13
+ .err { color: #a61717; background-color: #e3d2d2 } // Error
14
+ .k { font-weight: bold } // Keyword
15
+ .o { font-weight: bold } // Operator
16
+ .cm { color: #998; font-style: italic } // Comment.Multiline
17
+ .cp { color: #999; font-weight: bold } // Comment.Preproc
18
+ .c1 { color: #998; font-style: italic } // Comment.Single
19
+ .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
20
+ .gd { color: #000; background-color: #fdd } // Generic.Deleted
21
+ .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
22
+ .ge { font-style: italic } // Generic.Emph
23
+ .gr { color: #a00 } // Generic.Error
24
+ .gh { color: #999 } // Generic.Heading
25
+ .gi { color: #000; background-color: #dfd } // Generic.Inserted
26
+ .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
27
+ .go { color: #888 } // Generic.Output
28
+ .gp { color: #555 } // Generic.Prompt
29
+ .gs { font-weight: bold } // Generic.Strong
30
+ .gu { color: #aaa } // Generic.Subheading
31
+ .gt { color: #a00 } // Generic.Traceback
32
+ .kc { font-weight: bold } // Keyword.Constant
33
+ .kd { font-weight: bold } // Keyword.Declaration
34
+ .kp { font-weight: bold } // Keyword.Pseudo
35
+ .kr { font-weight: bold } // Keyword.Reserved
36
+ .kt { color: #458; font-weight: bold } // Keyword.Type
37
+ .m { color: #099 } // Literal.Number
38
+ .s { color: #d14 } // Literal.String
39
+ .na { color: #008080 } // Name.Attribute
40
+ .nb { color: #0086B3 } // Name.Builtin
41
+ .nc { color: #458; font-weight: bold } // Name.Class
42
+ .no { color: #008080 } // Name.Constant
43
+ .ni { color: #800080 } // Name.Entity
44
+ .ne { color: #900; font-weight: bold } // Name.Exception
45
+ .nf { color: #900; font-weight: bold } // Name.Function
46
+ .nn { color: #555 } // Name.Namespace
47
+ .nt { color: #000080 } // Name.Tag
48
+ .nv { color: #008080 } // Name.Variable
49
+ .ow { font-weight: bold } // Operator.Word
50
+ .w { color: #bbb } // Text.Whitespace
51
+ .mf { color: #099 } // Literal.Number.Float
52
+ .mh { color: #099 } // Literal.Number.Hex
53
+ .mi { color: #099 } // Literal.Number.Integer
54
+ .mo { color: #099 } // Literal.Number.Oct
55
+ .sb { color: #d14 } // Literal.String.Backtick
56
+ .sc { color: #d14 } // Literal.String.Char
57
+ .sd { color: #d14 } // Literal.String.Doc
58
+ .s2 { color: #d14 } // Literal.String.Double
59
+ .se { color: #d14 } // Literal.String.Escape
60
+ .sh { color: #d14 } // Literal.String.Heredoc
61
+ .si { color: #d14 } // Literal.String.Interpol
62
+ .sx { color: #d14 } // Literal.String.Other
63
+ .sr { color: #009926 } // Literal.String.Regex
64
+ .s1 { color: #d14 } // Literal.String.Single
65
+ .ss { color: #990073 } // Literal.String.Symbol
66
+ .bp { color: #999 } // Name.Builtin.Pseudo
67
+ .vc { color: #008080 } // Name.Variable.Class
68
+ .vg { color: #008080 } // Name.Variable.Global
69
+ .vi { color: #008080 } // Name.Variable.Instance
70
+ .il { color: #099 } // Literal.Number.Integer.Long
71
+ }
@@ -0,0 +1,5 @@
1
+ ---
2
+ # Only the main Sass file needs front matter (the dashes are enough)
3
+ ---
4
+
5
+ @import "bubblin-jekyll";
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bubblin-jekyll
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Marvin Danig
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-10-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jekyll-seo-tag
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.12'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.12'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ description:
70
+ email:
71
+ - marvin@marvindanig.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - LICENSE.txt
77
+ - README.md
78
+ - _includes/disqus_comments.html
79
+ - _includes/footer.html
80
+ - _includes/google-analytics.html
81
+ - _includes/head.html
82
+ - _includes/header.html
83
+ - _includes/icon-github.html
84
+ - _includes/icon-github.svg
85
+ - _includes/icon-twitter.html
86
+ - _includes/icon-twitter.svg
87
+ - _layouts/default.html
88
+ - _layouts/home.html
89
+ - _layouts/page.html
90
+ - _layouts/post.html
91
+ - _sass/bubblin-jekyll.scss
92
+ - _sass/bubblin-jekyll/_base.scss
93
+ - _sass/bubblin-jekyll/_layout.scss
94
+ - _sass/bubblin-jekyll/_syntax-highlighting.scss
95
+ - assets/main.scss
96
+ homepage: https://github.com/marvindanig/bubblin-jekyll.git
97
+ licenses:
98
+ - MIT
99
+ metadata:
100
+ plugin_type: theme
101
+ post_install_message:
102
+ rdoc_options: []
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ requirements: []
116
+ rubyforge_project:
117
+ rubygems_version: 2.6.13
118
+ signing_key:
119
+ specification_version: 4
120
+ summary: The official theme for blog at Bubblin Superbooks.
121
+ test_files: []