upgrade to bootstrap 4, complete rewrite of template (#629)

This commit is contained in:
Dean Attali 2020-05-02 02:10:20 -04:00 committed by GitHub
parent 67bd8058c7
commit 54ca402373
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 642 additions and 10358 deletions

View File

@ -21,10 +21,10 @@
### Table of contents
- [Features](#features)
- [Build your website in 3 steps](#build-your-website-in-3-steps)
- [**Build your website in 3 steps**](#build-your-website-in-3-steps)
- [Add your own content](#add-your-own-content)
- [Last important thing: parameters for each page](#last-important-thing-parameters-for-each-page)
- [Supported YAML front matter parameters](#supported-yaml-front-matter-parameters)
- [Customizing parameters for each page](#customizing-parameters-for-each-page)
- [Supported parameters](#supported-parameters)
- [Showcased users (success stories!)](#showcased-users-success-stories)
- [FAQ and support](#faq-and-support)
- [Credits and contributions](#credits)
@ -34,12 +34,11 @@
- **SIMPLE**: The primary goal of Beautiful Jekyll is to allow literally *anyone* to create a website in a few minutes.
- **Mobile-first**: Designed to look great on both large-screen and small-screen (mobile) devices.
- **Highly customizable**: Many personalization settings such as changing the background colour/image, adding a logo.
- **Two-level navigation menu**: If you have many pages and your menu is getting cluttered, separate your menu into two levels.
- **Flexible usage**: Install Beautiful Jekyll directly from GitHub or using a Ruby gem - choose the right [development method](#build-your-website-in-3-steps) for you.
- **Flexible usage**: Use Beautiful Jekyll directly on GitHub or using a Ruby gem - choose the best [development method](#build-your-website-in-3-steps) for you.
- **Battle-tested**: By using Beautiful Jekyll, you'll be joining tens of thousands of users who used this theme since 2015.
- **Links to your social media**: You can easily add links to any of your social media accounts in the footer of every page.
- **Comments support**: Add comments to any page using one of the supported commenting platforms: [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), [Utterances](https://utteranc.es/), or [Staticman](https://staticman.net).
- **Sharing blog posts on social media**: By default, all blog posts have buttons to allow people to share on Twitter/Facebook/LinkedIn.
- **Comments support**: Add comments to any page using either [Disqus](https://disqus.com/), [Facebook comments](https://developers.facebook.com/docs/plugins/comments), [Utterances](https://utteranc.es/), or [Staticman](https://staticman.net).
- **Share blog posts on social media**: By default, all blog posts have buttons to allow people to share on Twitter/Facebook/LinkedIn.
- **Tags**: Any blog post can be tagged with keywords, and an index page showing all the tags is automatically generated.
- **Tracking analytics**: Easily integrate Google Analytics, or other analytics platforms, to track visits to your website.
- **Photos support**: Any page can have a cover photo around its title, and any blog post can have an associated image.
@ -82,15 +81,19 @@ If you followed the easy method above, then you already have your site and you c
## Add your own content
To add pages to your site, you can either write a markdown file (`.md`) or you can write an HTML file directly. It's much easier to write markdown than HTML, so I suggest you do that (use [this great tutorial](https://markdowntutorial.com/) if you need to learn markdown in 5 minutes). You can look at some files on this site to get an idea of how to write markdown. To look at existing files, click on any file that ends in `.md`, for example [`aboutme.md`](./aboutme.md). On the next page you can see some nicely formatted text (there's a word in bold, a link, a few bullet points), and if you click on the pencil icon to edit the file, you'll see the markdown that generated the pretty text. Very easy!
To add pages to your site, you can either write a markdown file (`.md`) or you can write an HTML file. It's much easier to write markdown than HTML, so I suggest you do that ([here's a great tutorial](https://markdowntutorial.com/) if you need to learn markdown in 5 minutes). You can look at some files on this demo site to get an idea of how to write markdown.
To look at existing files, click on any file that ends in `.md`, for example [`aboutme.md`](./aboutme.md). On the next page you can see some nicely formatted text (there's a word in bold, a link, a few bullet points), and if you click on the pencil icon to edit the file, you'll see the markdown code that generated the pretty text. Very easy!
In contrast, look at [`tags.html`](./tags.html). That's how your write HTML - not as pretty. So stick with markdown if you don't know HTML.
Any markdown or HTML file that you create will be available on your website under `https://<yourusername>.github.io/<pagename>`. For example, if you create a file `about.md` (or `about.html`) then it'll exist at `https://<yourusername>.github.io/about`.
Files you create inside the [`_posts`](./_posts) directory will be treated as blog entries. You can look at the existing files there to get an idea of how to write blog posts. Note the format of the blog post files - they must follow the naming convention of `YEAR-MONTH-DAY-title.md`. After you successfully add your own post, you can delete the existing files inside [`_posts`](./_posts) to remove the sample posts, as those are just demo posts to help you learn.
## Last important thing: parameters for each page
## Customizing parameters for each page
In order to have your new pages use this template and not just be plain HTML pages, **you must add [YAML front matter](https://jekyllrb.com/docs/front-matter/) to the top of each page**. This is where you'll be able to give each page some extra parameters such as a title, a subtitle, or an image. [Below is a list of all available parameters](#supported-yaml-front-matter-parameters). If you don't want to use any parameters on a page (this also means having no title), then use the empty YAML front matter:
**One last important thing**: In order to have your new pages use this template and not just be plain HTML pages, **you must add [YAML front matter](https://jekyllrb.com/docs/front-matter/) to the top of each page**. This is where you'll be able to give each page some extra parameters such as a title, a subtitle, or an image. [Below is a list of all available parameters](#supported-parameters). If you don't want to use any parameters on a page (this also means having no title), then use the empty YAML front matter:
```
---
@ -112,29 +115,47 @@ You can look at the top of [`aboutme.md`](https://raw.githubusercontent.com/daat
If you don't include YAML then your file will not use this template.
## Supported YAML front matter parameters
## Supported parameters
These are the main parameters you can place inside a page's YAML front matter that **Beautiful Jekyll** supports.
These are the parameters that **Beautiful Jekyll** supports adding to the YAML front matter of any page. Remember to also look in the `_config.yml` file to see additional settings.
### Main paramaters
These are the simple YAML parameters that you are most likely to use on most page.
Parameter | Description
----------- | -----------
title | Page or blog post title
subtitle | Short description of page or blog post that goes under the title
tags | List of tags to categorize the post. Separate the tags with commas and place them inside square brackets. Example: `[personal, self help, finance]`
bigimg | Include a large full-width image at the top of the page. You can either give the path to a single image, or provide a list of images to cycle through (see [my personal website](https://deanattali.com/) as an example).
comments | If you want do add comments to a specific page, use `comments: true`. Comments are automatically enabled on blog posts; to turn comments off for a specific post, use `comments: false`. Comments only work if you enable at least one provider(Facebook, disqus, staticman) in `_config.yml` file.
show-avatar | If you have an avatar configured in the `_config.yml` but you want to turn it off on a specific page, use `show-avatar: false`. If you want to turn it off by default, locate the line `show-avatar: true` in the file `_config.yml` and change the `true` to `false`; then you can selectively turn it on in specific pages using `show-avatar: true`.
image | If you want to add a personalized image to your blog post that will show up next to the post's excerpt and on the post itself, use `image: /path/to/img`.
readtime | If you want to show how many minutes it will take to read a post in the header, add `readtime: true`.
tags | List of tags to categorize the post. Separate the tags with commas and place them inside square brackets. Example: `[personal, analysis, finance]`
cover-img | Include a large full-width image at the top of the page. You can either give the path to a single image, or provide a list of images to cycle through (see [my personal website](https://deanattali.com/) as an example).
comments | If you want do add comments to a specific page, use `comments: true`. Comments only work if you enable one of the comments providers (Facebook, disqus, staticman, utterances) in `_config.yml` file. Comments are automatically enabled on blog posts but not on other pages; to turn comments off for a specific post, use `comments: false`.
### Less commonly used parameters
These are parameters that you may not use often, but can come in handy for some people.
Parameter | Description
----------- | -----------
readtime | If you want a post to show how many minutes it will take to read it, use `readtime: true`.
show-avatar | If you have an avatar configured in the `_config.yml` but you want to turn it off on a specific page, use `show-avatar: false`.
image | If you want to add an image to your blog post that will show up next to the post's excerpt on the feed and in the post page itself, use `image: /path/to/img`.
share-img | If you want to specify an image to use when sharing the page on Facebook or Twitter, then provide the image's full URL here.
social-share | If you don't want to show buttons to share a blog post on social media, use `social-share: false` (this feature is turned on by default).
footer-extra | If you want to include extra information in the footer, create an HTML file in the `_includes/` folder (for example `_includes/myinfo.html`) and set `footer-extra` to the name of the file (for example `footer-extra: myinfo.html`)
social-share | By default, every blog post has buttons to share the page on social media. If you want to turn this feature off, use `social-share: false`.
nav-short | By default, the navigation bar gets shorter after scrolling down the page. If you want the navigation bar to always be short on a certain page, use `nav-short: true`
use-site-title | If you want to use the site title rather than page title as HTML document title (ie. browser tab title), use `use-site-title: true`. When set, the document title will take the format `Site Title - Site Description` (eg. `My website - A virtual proof that name is awesome!`). By default, it will use `Page Title` if it exists, or `Site Title` otherwise.
language | HTML language code to be set on &lt;html&gt; element (see [W3Schools website](https://www.w3schools.com/tags/ref_language_codes.asp) for more info on this topic). Language can also be set site-wide in `_config.yml`.
layout | What type of page this is (default is `post` for blog posts and `page` for other pages). See _Page types_ section below for more information.
gh-repo   | If you want to show GitHub buttons at the top of a post, this sets the GitHub repo name (eg. `daattali/beautiful-jekyll`). You must also use the `gh-badge` parameter to specify what buttons to show.
gh-badge | Select which GitHub buttons to display. Available options are: [star, watch, fork, follow]. You must also use the `gh-repo` parameter to specify the GitHub repo.
layout | What type of page this is (default is `post` for blog posts and `page` for other pages). See _Page types_ section below for more information.
### Advanced parameters
These are advanced parameters that are only useful for people who need very fine control over their website.
Parameter | Description
----------- | -----------
footer-extra | If you want to include extra information in the footer, create an HTML file in the `_includes/` folder (for example `_includes/myinfo.html`) and set `footer-extra` to the name of the file (for example `footer-extra: myinfo.html`)
language | HTML language code to be set on the page's &lt;html&gt; element.
use-site-title | If you want to use the site title rather than the page title as the HTML document title, use `use-site-title: true`.
js | List of local JavaScript files to include in the page (eg. `/assets/js/mypage.js`)
ext-js | List of external JavaScript files to include in the page (eg. `//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.2/underscore-min.js`). External JavaScript files that support [Subresource Integrity (SRI)](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) can be specified using the `href` and `sri` parameters eg.<br/>`href: "//code.jquery.com/jquery-3.1.1.min.js"`<br/>`sri: "sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="`
css | List of local CSS files to include in the page
@ -212,7 +233,7 @@ Easy! Just place a valid `favicon.ico` in the root directory of your project. An
The default style of Beautiful Jekyll is to feature the blog feed on the front page. But for many sites that's not the ideal structure, and you may want to have a separate dedicated page for the blog posts. To have the blog hosted on a different URL (for example at `<mysite.com>/blog`), copy the `index.html` file into a folder with the same name as the desired page (for example, to `blog/index.html`), and in the `_config.yml` file you need to add a parameter `paginate_path: "/<page name>/page:num/"` (for example `paginate_path: "/blog/page:num/"`).
#### What size do you recommend using for the `bigimg` photos?
#### What size do you recommend using for the `cover-img` photos?
Unfortunately, this is a no-answer! There isn't a one-size-fits-all solution to this, because every person will view your site on a different browser with different dimensions. Some browsers will have very wide aspect ratio, some will be narrower, some will be vertical (such as phones), different phones have different screens, etc. The image will always be centered, so the only tip I can give is that you should make sure the important part of the image is in the middle so that it'll always show. Other than that, every browser will show a different clipping of the image.

View File

@ -82,7 +82,7 @@ excerpt_length: 50
navbar-col: "#F5F5F5"
navbar-text-col: "#404040"
navbar-children-col: "#F5F5F5"
navbar-border-col: "#EAEAEA"
page-col: "#FFFFFF"
link-col: "#008AFF"
hover-col: "#0085A1"

View File

@ -1,19 +1,19 @@
{%- if site.disqus -%}
<div class="disqus-comments">
<div class="comments">
<div class="comments">
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = '{{ site.disqus }}';
/* ensure that pages with query string get the same discussion */
var url_parts = window.location.href.split("?");
var disqus_url = url_parts[0];
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
var disqus_shortname = '{{ site.disqus }}';
/* ensure that pages with query string get the same discussion */
var url_parts = window.location.href.split("?");
var disqus_url = url_parts[0];
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
</div>
</div>
{%- endif -%}

View File

@ -1,7 +1,7 @@
{% if include.css.sri %}
<link href="{{ include.css.href }}" rel="stylesheet" integrity="{{ include.css.sri }}" crossorigin="anonymous">
{% elsif include.css.href %}
<link rel="stylesheet" href="{{ include.css.href }}" />
<link rel="stylesheet" href="{{ include.css.href }}">
{% else %}
<link rel="stylesheet" href="{{ include.css }}" />
<link rel="stylesheet" href="{{ include.css }}">
{% endif %}

View File

@ -1,14 +1,16 @@
{%- if site.fb_comment_id -%}
<div class="comments">
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.12&appId={{ site.fb_comment_id }}&autoLogAppEvents=1';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-comments" data-href="{{ page.url | absolute_url }}" data-width="100%" data-numposts="5"></div>
<noscript>Please enable JavaScript to view the comments powered by Facebook.</noscript>
<div id="fb-root"></div>
<script>
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.12&appId={{ site.fb_comment_id }}&autoLogAppEvents=1';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-comments" data-href="{{ page.url | absolute_url }}" data-width="100%" data-numposts="5"></div>
<noscript>Please enable JavaScript to view the comments powered by Facebook.</noscript>
</div>
{%- endif -%}

View File

@ -1,18 +1,18 @@
<footer class="footer-min">
<div class="text-muted">
{% if site.author %}
{{ site.author }}
&nbsp;&nbsp;&bull;&nbsp;&nbsp;
{% endif %}
{% if page.date %}
{{ page.date }}
{% else %}
{{ site.time | date: '%Y' }}
{% endif %}
{% if site.author %}
{{ site.author }}
&nbsp;&nbsp;&bull;&nbsp;&nbsp;
{% endif %}
{% if page.date %}
{{ page.date }}
{% else %}
{{ site.time | date: '%Y' }}
{% endif %}
{% if site.url-pretty %}
&nbsp;&nbsp;&bull;&nbsp;&nbsp;
<a href="{{ '' | absolute_url }}">{{ site.url-pretty }}</a>
&nbsp;&nbsp;&bull;&nbsp;&nbsp;
<a href="{{ '' | absolute_url }}">{{ site.url-pretty }}</a>
{% endif %}
</div>
</footer>

View File

@ -9,9 +9,9 @@
<!-- doing something a bit funky here because I want to be careful not to include JQuery twice! -->
{% if js contains 'jquery' %}
<script>
if (typeof jQuery == 'undefined') {
if (typeof jQuery == 'undefined') {
document.write('<script src="{{ js | relative_url }}"></scr' + 'ipt>');
}
}
</script>
{% else %}
<script src="{{ js | relative_url }}"></script>

View File

@ -1,7 +1,7 @@
<footer>
<div class="container beautiful-jekyll-footer">
<div class="container-md beautiful-jekyll-footer">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<div class="col-xl-8 offset-xl-2 col-lg-10 offset-lg-1">
{% include social-networks-links.html %}
{% if page.footer-extra %}
<div class="footer-custom-content">
@ -10,14 +10,14 @@
{% endif %}
<p class="copyright text-muted">
{% if site.author %}
{{ site.author }}
&nbsp;&bull;&nbsp;
{{ site.author }}
&nbsp;&bull;&nbsp;
{% endif %}
{{ site.time | date: '%Y' }}
{% if site.url-pretty %}
&nbsp;&bull;&nbsp;
<a href="{{ '' | absolute_url }}">{{ site.url-pretty }}</a>
&nbsp;&bull;&nbsp;
<a href="{{ '' | absolute_url }}">{{ site.url-pretty }}</a>
{% endif %}
{% if site.matomo %}

View File

@ -1,14 +1,14 @@
{% if site.google_analytics %}
<!-- Google Analytics -->
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', '{{ site.google_analytics }}', 'auto');
ga('send', 'pageview');
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', '{{ site.google_analytics }}', 'auto');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->
{% endif %}

View File

@ -1,11 +1,10 @@
{% if site.gtag %}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.gtag }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ site.gtag }}');
</script>
{% endif %}

View File

@ -1,6 +1,5 @@
{% if site.gtm %}
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ site.gtm }}"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ site.gtm }}" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
{% endif %}

View File

@ -1,9 +1,11 @@
{% if site.gtm %}
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','{{ site.gtm }}');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager -->
<script>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','{{ site.gtm }}');
</script>
<!-- End Google Tag Manager -->
{% endif %}

View File

@ -1,19 +1,18 @@
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, viewport-fit=cover">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>{% if page.use-site-title %}{{ site.title }} {{ site.title-separator | default: '-' }} {{ site.description }}{% elsif page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
{% if site.author %}
<meta name="author" content="{{ site.author }}" />
<meta name="author" content="{{ site.author }}">
{% endif %}
{% if page.subtitle %}
<meta name="description" content="{{ page.subtitle }}">
{% endif %}
<link rel="alternate" type="application/rss+xml" title="{{ site.title | default: 'Untitled' }} {{ site.title-separator | default: '-' }} {{ site.description }}" href="{{ '/feed.xml' | absolute_url }}" />
<link rel="alternate" type="application/rss+xml" title="{{ site.title | default: 'Untitled' }} {{ site.title-separator | default: '-' }} {{ site.description }}" href="{{ '/feed.xml' | absolute_url }}">
{% include gtag.html %}
{% include gtm_head.html %}
@ -27,13 +26,13 @@
{% if layout.common-css %}
{% for css in layout.common-css %}
<link rel="stylesheet" href="{{ css | relative_url }}" />
<link rel="stylesheet" href="{{ css | relative_url }}">
{% endfor %}
{% endif %}
{% if layout.common-googlefonts %}
{% for font in layout.common-googlefonts %}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family={{ font }}" />
<link rel="stylesheet" href="//fonts.googleapis.com/css?family={{ font }}">
{% endfor %}
{% endif %}
@ -45,27 +44,27 @@
{% if page.css %}
{% for css in page.css %}
<link rel="stylesheet" href="{{ css | relative_url }}" />
<link rel="stylesheet" href="{{ css | relative_url }}">
{% endfor %}
{% endif %}
{% if page.googlefonts %}
{% for font in page.googlefonts %}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family={{ font }}" />
<link rel="stylesheet" href="//fonts.googleapis.com/css?family={{ font }}">
{% endfor %}
{% endif %}
<!-- Facebook OpenGraph tags -->
{% if site.fb_app_id %}
<meta property="fb:app_id" content="{{ site.fb_app_id }}" />
<meta property="fb:app_id" content="{{ site.fb_app_id }}">
{% endif %}
{% if page.meta-title %}
<meta property="og:title" content="{{ page.meta-title }}" />
<meta property="og:title" content="{{ page.meta-title }}">
{% elsif page.title %}
<meta property="og:title" content="{{ page.title }}" />
<meta property="og:title" content="{{ page.title }}">
{% elsif site.title %}
<meta property="og:title" content="{{ site.title }}" />
<meta property="og:title" content="{{ site.title }}">
{% endif %}
{% if page.meta-description %}
@ -77,34 +76,34 @@
{% endif %}
<meta property="og:type" content="website" />
<meta property="og:type" content="website">
{% if page.id %}
<meta property="og:url" content="{{ page.url | absolute_url }}" />
<link rel="canonical" href="{{ page.url | absolute_url }}" />
<meta property="og:url" content="{{ page.url | absolute_url }}">
<link rel="canonical" href="{{ page.url | absolute_url }}">
{% else %}
<meta property="og:url" content="{{ page.url | absolute_url | strip_index }}" />
<link rel="canonical" href="{{ page.url | absolute_url | strip_index }}" />
<meta property="og:url" content="{{ page.url | absolute_url | strip_index }}">
<link rel="canonical" href="{{ page.url | absolute_url | strip_index }}">
{% endif %}
{% if page.share-img %}
<meta property="og:image" content="{{ page.share-img }}" />
<meta property="og:image" content="{{ page.share-img }}">
{% elsif site.avatar %}
<meta property="og:image" content="{{ site.avatar | absolute_url }}" />
<meta property="og:image" content="{{ site.avatar | absolute_url }}">
{% endif %}
<!-- Twitter summary cards -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@{{ site.social-network-links.twitter }}" />
<meta name="twitter:creator" content="@{{ site.social-network-links.twitter }}" />
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@{{ site.social-network-links.twitter }}">
<meta name="twitter:creator" content="@{{ site.social-network-links.twitter }}">
{% if page.meta-title %}
<meta name="twitter:title" content="{{ page.meta-title }}" />
<meta name="twitter:title" content="{{ page.meta-title }}">
{% elsif page.title %}
<meta name="twitter:title" content="{{ page.title }}" />
<meta name="twitter:title" content="{{ page.title }}">
{% else %}
<meta name="twitter:title" content="{{ site.title }}" />
<meta name="twitter:title" content="{{ site.title }}">
{% endif %}
{% if page.meta-description %}
@ -116,9 +115,9 @@
{% endif %}
{% if page.share-img %}
<meta name="twitter:image" content="{{ page.share-img }}" />
<meta name="twitter:image" content="{{ page.share-img }}">
{% elsif site.avatar %}
<meta name="twitter:image" content="{{ site.avatar | absolute_url }}" />
<meta name="twitter:image" content="{{ site.avatar | absolute_url }}">
{% endif %}
{% if site.matomo %}
@ -127,7 +126,7 @@
{% if page.comments and site.staticman.repository and site.staticman.branch %}
<!-- Staticman -->
<link rel="stylesheet" href="{{ "/assets/css/staticman.css" | relative_url }}" />
<link rel="stylesheet" href="{{ "/assets/css/staticman.css" | relative_url }}">
{% endif %}
</head>

View File

@ -2,11 +2,11 @@
{% assign date_format = site.date_format | default: "%B %-d, %Y" %}
{% if page.bigimg or page.title %}
{% if page.cover-img or page.title %}
{% if page.bigimg %}
<div id="header-big-imgs" data-num-img={% if page.bigimg.first %}{{ page.bigimg.size }}{% else %}1{% endif %}
{% for bigimg in page.bigimg %}
{% if page.cover-img %}
<div id="header-big-imgs" data-num-img={% if page.cover-img.first %}{{ page.cover-img.size }}{% else %}1{% endif %}
{% for bigimg in page.cover-img %}
{% assign imgnum = forloop.index %}
{% for imginfo in bigimg %}
{% if imginfo[0] %}
@ -20,12 +20,12 @@
></div>
{% endif %}
<header class="header-section {% if page.bigimg %}has-img{% endif %}">
{% if page.bigimg %}
<header class="header-section {% if page.cover-img %}has-img{% endif %}">
{% if page.cover-img %}
<div class="big-img intro-header">
<div class="container">
<div class="container-md">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<div class="col-xl-8 offset-xl-2 col-lg-10 offset-lg-1">
<div class="{{ include.type }}-heading">
<h1>{% if page.title %}{{ page.title }}{% else %}<br/>{% endif %}</h1>
{% if page.subtitle %}
@ -51,9 +51,9 @@
</div>
{% endif %}
<div class="intro-header no-img">
<div class="container">
<div class="container-md">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<div class="col-xl-8 offset-xl-2 col-lg-10 offset-lg-1">
<div class="{{ include.type }}-heading">
<h1>{% if page.title %}{{ page.title }}{% else %}<br/>{% endif %}</h1>
{% if page.subtitle %}

View File

@ -1,57 +1,54 @@
<nav class="navbar navbar-default navbar-fixed-top navbar-custom {% if page.nav-short %}top-nav-short-permanent{% endif %}">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#main-navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{%- if site.title-img -%}
<a class="navbar-brand navbar-brand-logo" href="{{ '' | absolute_url }}"><img src="{{ site.title-img }}"/></a>
{%- elsif site.title -%}
<a class="navbar-brand" href="{{ '' | absolute_url }}">{{ site.title }}</a>
{%- endif -%}
</div>
<nav class="navbar navbar-expand-md navbar-light fixed-top navbar-custom {% if page.nav-short %}top-nav-short-permanent{% endif %}">
<div class="collapse navbar-collapse" id="main-navbar">
<ul class="nav navbar-nav navbar-right">
{%- if site.title-img -%}
<a class="navbar-brand navbar-brand-logo" href="{{ '' | absolute_url }}"><img src="{{ site.title-img }}"/></a>
{%- elsif site.title -%}
<a class="navbar-brand" href="{{ '' | absolute_url }}">{{ site.title }}</a>
{%- endif -%}
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#main-navbar" aria-controls="main-navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="main-navbar">
<ul class="navbar-nav ml-auto">
{%- for link in site.navbar-links -%}
{%- if link[1].first %}
<li class="navlinks-container">
<a class="navlinks-parent" href="javascript:void(0)">{{ link[0] }}</a>
<div class="navlinks-children">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ link[0] }}</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
{%- for childlink in link[1] -%}
{%- for linkparts in childlink %}
<a href="{{ linkparts[1] | relative_url }}">{{ linkparts[0] }}</a>
{%- endfor -%}
{%- for linkparts in childlink %}
<a class="dropdown-item" href="{{ linkparts[1] | relative_url }}">{{ linkparts[0] }}</a>
{%- endfor -%}
{%- endfor %}
</div>
</li>
{% else %}
<li><a href="{{ link[1] | relative_url }}">{{ link[0] }}</a></li>
<li class="nav-item">
<a class="nav-link" href="{{ link[1] | relative_url }}">{{ link[0] }}</a>
</li>
{%- endif -%}
{%- endfor -%}
</ul>
</div>
{% if page.image and (layout.show-avatar or page.show-avatar) %}
<div class="avatar-container">
<div class="avatar-img-border">
<a href="{{ '' | absolute_url }}">
<img class="avatar-img" src="{{ page.image | relative_url }}" />
</a>
</div>
</div>
{% elsif site.avatar and (layout.show-avatar or page.show-avatar) %}
<div class="avatar-container">
<div class="avatar-img-border">
<a href="{{ '' | absolute_url }}">
<img class="avatar-img" src="{{ site.avatar | relative_url }}" />
</a>
</div>
</div>
{% endif %}
</ul>
</div>
{% if page.image and (layout.show-avatar or page.show-avatar) %}
<div class="avatar-container">
<div class="avatar-img-border">
<a href="{{ '' | absolute_url }}">
<img class="avatar-img" src="{{ page.image | relative_url }}" />
</a>
</div>
</div>
{% elsif site.avatar and (layout.show-avatar or page.show-avatar) %}
<div class="avatar-container">
<div class="avatar-img-border">
<a href="{{ '' | absolute_url }}">
<img class="avatar-img" src="{{ site.avatar | relative_url }}" />
</a>
</div>
</div>
{% endif %}
</nav>

View File

@ -4,13 +4,13 @@
{% assign calcReadTime = ReadTime | float %}
{% assign finalReadTime = calcReadTime | divided_by:200 | round: 2 %}
{% assign number = finalReadTime | round %}
{% if number >= 1 %}
{% assign yesReadTime = number | append: " minute read" %}
<span class="reader-time post-meta"><span class="hidden-xs middot">&middot;</span> {{ yesReadTime }}</span>
{% elsif number < 1 %}
{% assign minReadTime = '&lt; 1 minute read' %}
<span class="reader-time post-meta"><span class="hidden-xs middot">&middot;</span> {{ minReadTime }}</span>
{% else %}
{% assign nilReadTime = number | replace:'0',' ' %}
{{ nilReadTime }}
{% endif %}
{% if number >= 1 %}
{% assign yesReadTime = number | append: " minute read" %}
<span class="reader-time post-meta"><span class="d-none d-md-inline middot">&middot;</span> {{ yesReadTime }}</span>
{% elsif number < 1 %}
{% assign minReadTime = '&lt; 1 minute read' %}
<span class="reader-time post-meta"><span class="d-none d-md-inline middot">&middot;</span> {{ minReadTime }}</span>
{% else %}
{% assign nilReadTime = number | replace:'0',' ' %}
{{ nilReadTime }}
{% endif %}

View File

@ -1,7 +1,7 @@
<ul class="list-inline text-center footer-links">
{%- if site.social-network-links.rss -%}
<li>
<li class="list-inline-item">
<a href="{{ '/feed.xml' | relative_url }}" title="RSS">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -13,7 +13,7 @@
{%- endif -%}
{%- if site.social-network-links.email -%}
<li>
<li class="list-inline-item">
<a href="mailto:{{ site.social-network-links.email }}" title="Email me">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -25,7 +25,7 @@
{%- endif -%}
{%- if site.social-network-links.calendly -%}
<li>
<li class="list-inline-item">
<a href="https://calendly.com/{{ site.social-network-links.calendly }}" title="Schedule a meeting with me">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -37,7 +37,7 @@
{%- endif -%}
{%- if site.social-network-links.facebook -%}
<li>
<li class="list-inline-item">
<a href="https://www.facebook.com/{{ site.social-network-links.facebook }}" title="Facebook">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -49,7 +49,7 @@
{%- endif -%}
{%- if site.social-network-links.telegram -%}
<li>
<li class="list-inline-item">
<a href="https://t.me/{{ site.social-network-links.telegram }}" title="Telegram">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -61,7 +61,7 @@
{%- endif -%}
{%- if site.social-network-links.github -%}
<li>
<li class="list-inline-item">
<a href="https://github.com/{{ site.social-network-links.github }}" title="GitHub">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -73,7 +73,7 @@
{%- endif -%}
{%- if site.social-network-links.twitter -%}
<li>
<li class="list-inline-item">
<a href="https://twitter.com/{{ site.social-network-links.twitter }}" title="Twitter">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -85,7 +85,7 @@
{%- endif -%}
{%- if site.social-network-links.reddit -%}
<li>
<li class="list-inline-item">
<a href="https://reddit.com/u/{{ site.social-network-links.reddit }}" title="Reddit">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -97,7 +97,7 @@
{%- endif -%}
{%- if site.social-network-links.linkedin -%}
<li>
<li class="list-inline-item">
<a href="https://linkedin.com/in/{{ site.social-network-links.linkedin }}" title="LinkedIn">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -109,7 +109,7 @@
{%- endif -%}
{%- if site.social-network-links.xing -%}
<li>
<li class="list-inline-item">
<a href="https://www.xing.com/profile/{{ site.social-network-links.xing }}" title="Xing">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -121,7 +121,7 @@
{%- endif -%}
{%- if site.social-network-links.stackoverflow -%}
<li>
<li class="list-inline-item">
<a href="https://stackoverflow.com/users/{{ site.social-network-links.stackoverflow }}" title="StackOverflow">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -133,7 +133,7 @@
{%- endif -%}
{%- if site.social-network-links.snapchat -%}
<li>
<li class="list-inline-item">
<a href="https://www.snapchat.com/add/{{ site.social-network-links.snapchat }}" title="Snapchat">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -145,7 +145,7 @@
{%- endif -%}
{%- if site.social-network-links.instagram -%}
<li>
<li class="list-inline-item">
<a href="https://www.instagram.com/{{ site.social-network-links.instagram }}" title="Instagram">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -157,7 +157,7 @@
{%- endif -%}
{%- if site.social-network-links.youtube -%}
<li>
<li class="list-inline-item">
<a href="https://www.youtube.com/{{ site.social-network-links.youtube }}" title="YouTube">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -169,7 +169,7 @@
{%- endif -%}
{%- if site.social-network-links.spotify -%}
<li>
<li class="list-inline-item">
<a href="https://open.spotify.com/user/{{ site.social-network-links.spotify }}" title="Spotify">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -181,7 +181,7 @@
{%- endif -%}
{%- if site.social-network-links.telephone -%}
<li>
<li class="list-inline-item">
<a href="tel:{{ site.social-network-links.telephone }}" title="Phone">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -193,7 +193,7 @@
{%- endif -%}
{%- if site.social-network-links.steam -%}
<li>
<li class="list-inline-item">
<a href="https://steamcommunity.com/id/{{ site.social-network-links.steam }}" title="Steam">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -205,7 +205,7 @@
{%- endif -%}
{%- if site.social-network-links.twitch -%}
<li>
<li class="list-inline-item">
<a href="https://www.twitch.tv/{{ site.social-network-links.twitch }}" title="Twitch">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
@ -217,7 +217,7 @@
{%- endif -%}
{%- if site.social-network-links.yelp -%}
<li>
<li class="list-inline-item">
<a href="https://{{ site.social-network-links.yelp }}.yelp.com" title="Yelp">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>

View File

@ -11,7 +11,6 @@
<span class="sr-only">Share: </span>
{% if site.share-links-active.twitter %}
<!--- Share on Twitter -->
<a href="https://twitter.com/intent/tweet?text={{ page.title | url_encode }}&url={{ page.url | absolute_url | url_encode }}"
class="btn btn-social-icon btn-twitter" title="Share on Twitter">
<span class="fab fa-fw fa-twitter" aria-hidden="true"></span>
@ -20,7 +19,6 @@
{% endif %}
{% if site.share-links-active.facebook %}
<!--- Share on Facebook -->
<a href="https://www.facebook.com/sharer/sharer.php?u={{ page.url | absolute_url | url_encode }}"
class="btn btn-social-icon btn-facebook" title="Share on Facebook">
<span class="fab fa-fw fa-facebook" aria-hidden="true"></span>
@ -29,7 +27,6 @@
{% endif %}
{% if site.share-links-active.linkedin %}
<!--- Share on LinkedIn -->
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ page.url | absolute_url | url_encode }}"
class="btn btn-social-icon btn-linkedin" title="Share on LinkedIn">
<span class="fab fa-fw fa-linkedin" aria-hidden="true"></span>

View File

@ -25,7 +25,7 @@
<div class="form-group">
<label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label><br>
<textarea type="text" rows="12" cols="36" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
<div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
<div class="small form-text"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
</div>
<div class="form-group">
<label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label>

View File

@ -1,22 +1,28 @@
---
common-css:
- "/assets/css/bootstrap.min.css"
- "/assets/css/bootstrap-social.css"
- "/assets/css/main.css"
common-ext-css:
- "//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css"
- href: "https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
sri: "sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
- "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css"
common-googlefonts:
- "Lora:400,700,400italic,700italic"
- "Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
common-ext-js:
- href: "https://code.jquery.com/jquery-3.4.1.min.js"
sri: "sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
- href: "https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
sri: "sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
- href: "https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
sri: "sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
common-js:
- "/assets/js/jquery-1.11.2.min.js"
- "/assets/js/bootstrap.min.js"
- "/assets/js/main.js"
---
<!DOCTYPE html>
<html lang="{{ page.language | default: site.language | default: 'en' }}">
<!-- Beautiful Jekyll | MIT license | Copyright Dean Attali 2016 -->
<!-- Beautiful Jekyll | MIT license | Copyright Dean Attali 2020 -->
{% include head.html %}
<body>

View File

@ -4,6 +4,6 @@ layout: base
<div class="intro-header"></div>
<div role="main" class="container">
<div role="main" class="container-md">
{{ content }}
</div>

View File

@ -34,7 +34,7 @@ layout: page
{% endif %}
<div class="post-entry">
{% assign excerpt_length = site.excerpt_length | default: 50 %}
{{ post.excerpt | strip_html | xml_escape | truncatewords: excerpt_length }}
{{ post.excerpt | strip_html | xml_escape | truncatewords: excerpt_length }}
{% assign excerpt_word_count = post.excerpt | number_of_words %}
{% if post.content != post.excerpt or excerpt_word_count > excerpt_length %}
<a href="{{ post.url | relative_url }}" class="post-read-more">[Read&nbsp;More]</a>
@ -60,15 +60,15 @@ layout: page
</div>
{% if paginator.total_pages > 1 %}
<ul class="pager main-pager">
<ul class="pagination main-pager">
{% if paginator.previous_page %}
<li class="previous">
<a href="{{ paginator.previous_page_path | relative_url }}">&larr; Newer Posts</a>
<li class="page-item previous">
<a class="page-link" href="{{ paginator.previous_page_path | relative_url }}">&larr; Newer Posts</a>
</li>
{% endif %}
{% if paginator.next_page %}
<li class="next">
<a href="{{ paginator.next_page_path | relative_url }}">Older Posts &rarr;</a>
<li class="page-item next">
<a class="page-link" href="{{ paginator.next_page_path | relative_url }}">Older Posts &rarr;</a>
</li>
{% endif %}
</ul>

View File

@ -1,10 +1,16 @@
---
common-css:
- "/assets/css/bootstrap.min.css"
- "/assets/css/main-minimal.css"
common-js:
- "/assets/js/jquery-1.11.2.min.js"
- "/assets/js/bootstrap.min.js"
common-ext-css:
- href: "https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
sri: "sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
common-ext-js:
- href: "https://code.jquery.com/jquery-3.4.1.min.js"
sri: "sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
- href: "https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
sri: "sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
- href: "https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
sri: "sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
---
<!DOCTYPE html>
@ -14,7 +20,7 @@ common-js:
<body>
<div role="main" class="container main-content">
<div role="main" class="container-md main-content">
{{ content }}
</div>

View File

@ -4,9 +4,9 @@ layout: base
{% include header.html type="page" %}
<div class="container" role="main">
<div class="container-md" role="main">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<div class="col-xl-8 offset-xl-2 col-lg-10 offset-lg-1">
{{ content }}
{% include comments.html %}
</div>

View File

@ -4,9 +4,9 @@ layout: base
{% include header.html type="post" %}
<div class="container">
<div class="container-md">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<div class="col-xl-8 offset-xl-2 col-lg-10 offset-lg-1">
{% if page.gh-repo %}
{% assign gh_split = page.gh-repo | split:'/' %}
@ -52,19 +52,19 @@ layout: base
{% include social-share.html %}
{% endif %}
<ul class="pager blog-pager">
<ul class="pagination blog-pager">
{% if page.previous.url %}
<li class="previous">
<a href="{{ page.previous.url | relative_url }}" data-toggle="tooltip" data-placement="top" title="{{page.previous.title}}">&larr; Previous Post</a>
<li class="page-item previous">
<a class="page-link" href="{{ page.previous.url | relative_url }}" data-toggle="tooltip" data-placement="top" title="{{page.previous.title}}">&larr; Previous Post</a>
</li>
{% endif %}
{% if page.next.url %}
<li class="next">
<a href="{{ page.next.url | relative_url }}" data-toggle="tooltip" data-placement="top" title="{{page.next.title}}">Next Post &rarr;</a>
<li class="page-item next">
<a class="page-link" href="{{ page.next.url | relative_url }}" data-toggle="tooltip" data-placement="top" title="{{page.next.title}}">Next Post &rarr;</a>
</li>
{% endif %}
</ul>
{% include comments.html %}
{% include comments.html %}
</div>
</div>
</div>

View File

@ -2,7 +2,7 @@
layout: post
title: Flake it till you make it
subtitle: Excerpt from Soulshaping by Jeff Brown
bigimg: /assets/img/path.jpg
cover-img: /assets/img/path.jpg
tags: [books, test]
---

View File

@ -30,7 +30,7 @@ How about a yummy crepe?
It can also be centered!
![Crepe](https://s3-media3.fl.yelpcdn.com/bphoto/cQ1Yoa75m2yUFFbY2xwuqw/348s.jpg){: .center-block :}
![Crepe](https://s3-media3.fl.yelpcdn.com/bphoto/cQ1Yoa75m2yUFFbY2xwuqw/348s.jpg){: .mx-auto.d-block :}
Here's a code chunk:

View File

@ -1,476 +0,0 @@
/*!
* Bootstrap v3.3.2 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
}
.btn-default:active,
.btn-primary:active,
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default.disabled,
.btn-default:disabled,
.btn-default[disabled] {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #245580;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #265a88;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #265a88;
border-color: #245580;
}
.btn-primary.disabled,
.btn-primary:disabled,
.btn-primary[disabled] {
background-color: #265a88;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success.disabled,
.btn-success:disabled,
.btn-success[disabled] {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info.disabled,
.btn-info:disabled,
.btn-info[disabled] {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning.disabled,
.btn-warning:disabled,
.btn-warning[disabled] {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger.disabled,
.btn-danger:disabled,
.btn-danger[disabled] {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #2e6da4;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
@media (max-width: 767px) {
.navbar .navbar-nav .open .dropdown-menu > .active > a,
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #286090;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
background-repeat: repeat-x;
border-color: #2b669a;
}
.list-group-item.active .badge,
.list-group-item.active:hover .badge,
.list-group-item.active:focus .badge {
text-shadow: none;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
border-color: #dcdcdc;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
}
/*# sourceMappingURL=bootstrap-theme.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

6566
assets/css/bootstrap.css vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,12 @@
.main-content {
padding-bottom: 50px;
padding-bottom: 3.125rem;
}
footer.footer-min {
position: fixed;
bottom: 0;
width: 100%;
padding: 3px;
padding: 0.1875rem;
background-color: #f5f5f5;
border-top: 1px solid #eeeeee;
text-align: center;

View File

@ -6,9 +6,13 @@ layout: null
/* --- General --- */
html {
font-size: 100%
}
body {
font-family: 'Lora', 'Times New Roman', serif;
font-size: 18px;
font-size: 1.125rem;
color: #404040;
position: relative;
background-color: {{ site.page-col | default: "#FFFFFF" }};
@ -19,11 +23,24 @@ body {
}
p {
line-height: 1.5;
margin: 30px 0;
margin: 1.875rem 0;
}
h1,h2,h3,h4,h5,h6 {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 800;
line-height: 1.1;
}
h1 {
font-size: 2.25rem;
}
h2 {
font-size: 1.875rem;
}
h3 {
font-size: 1.5rem;
}
h4 {
font-size: 1.125rem;
}
a {
color: {{ site.link-col | default: "#008AFF" }};
@ -40,33 +57,33 @@ blockquote p:first-child {
margin-top: 0;
}
hr.small {
max-width: 100px;
margin: 15px auto;
border-width: 4px;
max-width: 6.25rem;
margin: 1rem auto;
border-width: 0.25rem;
border-color: inherit;
border-radius: 3px;
border-radius: 0.1875rem;
}
/* fix in-page anchors to not be behind fixed header */
:target:before {
content: "";
display: block;
height: 50px; /* navbar height */
margin: -50px 0 0;
height: 3.125rem; /* navbar height */
margin: -3.125rem 0 0;
}
.main-content {
padding-top: 80px;
padding-top: 5rem;
}
@media only screen and (min-width: 768px) {
@media (min-width: 768px) {
.main-content {
padding-top: 130px;
padding-top: 8.125rem;
}
}
.main-explain-area {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
padding: 15px inherit;
padding: 1rem inherit;
}
.hideme {
@ -97,105 +114,237 @@ img {
}
.disqus-comments {
margin-top: 30px;
margin-top: 1.875rem;
}
@media only screen and (min-width: 768px) {
@media (min-width: 768px) {
.disqus-comments {
margin-top: 40px;
margin-top: 2.5rem;
}
}
.linked-section {
padding-top: 60px;
margin-top: -25px;
padding-top: 3.75rem;
margin-top: -1.5625rem;
}
/* --- Navbar --- */
.navbar-custom {
background-color: {{ site.navbar-col | default: "#F5F5F5" }};
border-bottom: 1px solid #EAEAEA;
border-bottom: 1px solid {{ site.navbar-border-col | default: "#EAEAEA" }};
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
{% if site.navbar-img %}
background-image: url({{ site.navbar-img | relative_url }});
background-attachment: fixed;
background-image: url({{ site.navbar-img | relative_url }});
background-attachment: fixed;
{% endif %}
-webkit-transition: background .5s ease-in-out,padding .5s ease-in-out;
-moz-transition: background .5s ease-in-out,padding .5s ease-in-out;
transition: background .5s ease-in-out,padding .5s ease-in-out;
}
.navbar-custom .nav li a {
text-transform: uppercase;
font-size: 12px;
letter-spacing: 1px;
.navbar-custom,
.navbar-custom.top-nav-short,
.navbar-custom.top-nav-short-permanent {
padding-top: 0;
padding-bottom: 0;
}
.navbar-custom .navbar-brand,
.navbar-custom .nav li a {
font-weight: 800;
color: {{ site.navbar-text-col | default: "#404040" }};
}
.navbar-custom .navbar-brand:hover,
.navbar-custom .navbar-brand:focus ,
.navbar-custom .nav li a:hover,
.navbar-custom .nav li a:focus {
color: {{ site.hover-col | default: "#0085A1" }};
.navbar-custom .navbar-brand {
line-height: 1.5;
padding-top: 0.625rem;
padding-bottom: 0.625rem;
}
.navbar-custom .navbar-brand-logo {
padding-top: 0;
-webkit-transition: padding .5s ease-in-out;
-moz-transition: padding .5s ease-in-out;
transition: padding .5s ease-in-out;
}
.navbar-custom .navbar-brand-logo,
.navbar-custom.top-nav-short .navbar-brand-logo,
.navbar-custom.top-nav-short-permanent .navbar-brand-logo {
padding-top: 0.3125rem;
padding-bottom: 0.3125rem;
}
.navbar-custom .navbar-brand-logo img {
height: 50px;
-webkit-transition: height .5s ease-in-out;
-moz-transition: height .5s ease-in-out;
transition: height .5s ease-in-out;
}
.navbar-custom.top-nav-short .navbar-brand-logo {
padding-top: 5px;
}
.navbar-custom.top-nav-short .navbar-brand-logo img {
height: 40px;
.navbar-custom .navbar-brand-logo img,
.navbar-custom.top-nav-short .navbar-brand-logo img,
.navbar-custom.top-nav-short-permanent .navbar-brand-logo img {
height: 2.5rem;
}
@media only screen and (min-width: 768px) {
.navbar-custom .navbar-brand:hover,
.navbar-custom .navbar-brand:focus ,
.navbar-custom .navbar-nav .nav-link:hover,
.navbar-custom .navbar-nav .nav-link:focus,
.navbar-custom .navbar-nav .dropdown-item:hover,
.navbar-custom .navbar-nav .dropdown-item:focus {
color: {{ site.hover-col | default: "#0085A1" }};
}
.navbar-custom .navbar-nav .nav-item {
text-transform: uppercase;
font-size: 0.75rem;
letter-spacing: 0.0625rem;
}
.navbar-custom .navbar-nav .nav-link {
padding-top: 0;
padding-bottom: 0;
line-height: 1.5;
padding-top: 1rem;
padding-bottom: 1rem;
}
.navbar-custom .navbar-brand,
.navbar-custom .navbar-nav .nav-link {
font-weight: 800;
color: {{ site.navbar-text-col | default: "#404040" }};
}
.navbar-toggler {
font-size: 1rem;
}
.navbar-custom .navbar-toggler:focus,
.navbar-custom .navbar-toggler:hover {
background-color: initial;
}
.navbar-custom .navbar-toggler[aria-expanded="true"] {
background-color: rgba(0, 0, 0, 0.2);
}
.dropdown-toggle::after {
border-width: 0.4em;
}
@media (min-width: 768px) {
.navbar-custom {
padding: 20px 0;
-webkit-transition: background .5s ease-in-out,padding .5s ease-in-out;
-moz-transition: background .5s ease-in-out,padding .5s ease-in-out;
transition: background .5s ease-in-out,padding .5s ease-in-out;
padding-top: 1.25rem;
padding-bottom: 1.25rem;
}
.navbar-custom.top-nav-short-permanent,
.navbar-custom.top-nav-short {
padding: 0;
.navbar-custom .navbar-brand-logo {
padding-top: 0;
padding-bottom: 0;
}
.navbar-custom .navbar-brand-logo img {
height: 3.125rem;
}
.navbar-expand-md .navbar-nav .nav-link {
padding-left: 0.9375rem;
padding-right: 0.9375rem;
}
.navbar-expand-md .navbar-nav .nav-item:last-child .nav-link {
padding-right: 0;
}
}
@media (min-width: 768px) {
.navbar-custom .nav-item.dropdown:hover {
background: rgba(0, 0, 0, 0.1);
}
}
.navbar-custom .nav-item.dropdown.show {
background: rgba(0, 0, 0, 0.2);
}
.navbar-custom .nav-item.dropdown .dropdown-menu {
min-width: 0;
margin-top: 0;
font-size: 1em;
border: 0;
padding: 0;
width: 100%;
word-break: break-word;
}
.navbar-custom .nav-item.dropdown .dropdown-menu .dropdown-item {
white-space: normal;
padding: 0.625rem;
background-color: {{ site.navbar-col | default: "#F5F5F5" }};
text-decoration: none !important;
border-width: 0 1px 1px 1px;
font-weight: normal;
}
@media (min-width: 768px) {
.navbar-custom .nav-item.dropdown .dropdown-menu {
text-align: center;
}
.navbar-custom .nav-item.dropdown .dropdown-menu .dropdown-item {
padding-left: 0.625rem;
border: 1px solid {{ site.navbar-border-col | default: "#EAEAEA" }};
border-width: 0 1px 1px;
}
}
@media (max-width: 767px) {
.navbar-custom .navbar-collapse {
border-top: 1px solid {{ site.navbar-border-col | default: "#EAEAEA" }};
margin: 0 -1rem;
}
.navbar-custom .navbar-nav {
padding: 0.5rem 0;
}
.navbar-custom .navbar-nav .nav-link {
padding: 0.675rem 0 0.675rem 1rem;
}
.navbar-custom .nav-item.dropdown.show {
background: rgba(0, 0, 0, 0.2);
}
.navbar-custom .nav-item.dropdown .dropdown-menu .dropdown-item {
padding-left: 2rem;
}
}
.navbar-custom .avatar-container {
position: absolute;
left: 50%;
width: 50px;
margin-top: -25px;
width: 3.125rem;
margin-top: 1.75rem;
transition: opacity 0.5s ease-in-out;
-webkit-transition: opacity 0.5s ease-in-out;
-moz-transition: opacity 0.5s ease-in-out;
}
.navbar-custom.top-nav-short .avatar-container {
opacity: 0;
visibility: hidden;
transition: visibility linear 0.5s, opacity 0.5s ease-in-out;
-webkit-transition: visibility linear 0.5s, opacity 0.5s ease-in-out;
-moz-transition: visibility linear 0.5s, opacity 0.5s ease-in-out;
}
.navbar-custom .avatar-container .avatar-img-border {
width: 100%;
display: inline-block;
margin-left: -50%;
{% unless site.round-avatar == false %}
border-radius: 50%;
box-shadow: 0 0 8px rgba(0, 0, 0, .8);
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .8);
-moz-box-shadow: 0 0 8px rgba(0, 0, 0, .8);
border-radius: 50%;
box-shadow: 0 0 0.5rem rgba(0, 0, 0, .8);
-webkit-box-shadow: 0 0 0.3125rem rgba(0, 0, 0, .8);
-moz-box-shadow: 0 0 0.5rem rgba(0, 0, 0, .8);
{% endunless %}
}
.navbar-custom .avatar-container .avatar-img {
width: 100%;
{% unless site.round-avatar == false %}
border-radius: 50%;
border-radius: 50%;
{% endunless %}
display: block;
}
@ -204,10 +353,9 @@ img {
display: none;
}
@media only screen and (min-width: 768px) {
@media (min-width: 768px) {
.navbar-custom .avatar-container {
width: 100px;
margin-top: -50px;
width: 6.25rem;
}
.navbar-custom .avatar-container .avatar-img-border {
@ -224,71 +372,22 @@ img {
}
}
/* Multi-level navigation links */
.navbar-custom .nav .navlinks-container {
position: relative;
}
.navbar-custom .nav .navlinks-parent:after {
content: " \25BC";
}
.navbar-custom .nav .navlinks-children {
width: 100%;
display: none;
word-break: break-word;
}
.navbar-custom .nav .navlinks-container .navlinks-children a {
display: block;
padding: 10px;
padding-left: 30px;
background-color: {{ site.navbar-children-col | default: "#F5F5F5" }};
text-decoration: none !important;
border-width: 0 1px 1px 1px;
font-weight: normal;
}
@media only screen and (max-width: 767px) {
.navbar-custom .nav .navlinks-container.show-children {
background: rgba(0, 0, 0, 0.2);
}
.navbar-custom .nav .navlinks-container.show-children .navlinks-children {
display: block;
}
}
@media only screen and (min-width: 768px) {
.navbar-custom .nav .navlinks-container {
text-align: center;
}
.navbar-custom .nav .navlinks-container:hover {
background: rgba(0, 0, 0, 0.1);
}
.navbar-custom .nav .navlinks-container:hover .navlinks-children {
display: block;
}
.navbar-custom .nav .navlinks-children {
position: absolute;
}
.navbar-custom .nav .navlinks-container .navlinks-children a {
padding-left: 10px;
border: 1px solid #eaeaea;
border-width: 0 1px 1px;
}
}
/* --- Footer --- */
footer {
padding: 30px 0;
padding: 1.875rem 0;
border-top: 1px #EAEAEA solid;
margin-top: 50px;
font-size: 14px;
margin-top: 3.125rem;
font-size: 0.875rem;
background-color: {{ site.footer-col | default: "#F5F5F5" }};
{% if site.footer-img %}
background-image: url({{ site.footer-img | relative_url }});
background-attachment: fixed;
background-image: url({{ site.footer-img | relative_url }});
background-attachment: fixed;
{% endif %}
}
footer p.text-muted {
color: {{ site.footer-text-col | default: "#777777" }};
color: {{ site.footer-text-col | default: "#777777" }} !important;
}
footer a {
@ -298,7 +397,7 @@ footer a {
footer .list-inline {
margin: 0;
padding: 0;
margin-bottom: 30px;
margin-bottom: 1.875rem;
}
footer .copyright {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
@ -308,39 +407,39 @@ footer .copyright {
}
footer .theme-by {
text-align: center;
margin: 10px 0 0;
margin: 0.625rem 0 0;
}
footer .footer-custom-content {
text-align: center;
margin-bottom: 15px;
margin-bottom: 0.9375rem;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
@media only screen and (min-width: 768px) {
@media (min-width: 768px) {
footer {
padding: 50px 0;
padding: 3.125rem 0;
}
footer .footer-links {
font-size: 18px;
font-size: 1.125rem;
}
footer .copyright {
font-size: 16px;
font-size: 1rem;
}
footer .footer-custom-content {
font-size: 16px;
font-size: 1rem;
}
}
/* --- Post preview --- */
.post-preview {
padding: 20px 0;
padding: 1.25rem 0;
border-bottom: 1px solid #eee;
}
@media only screen and (min-width: 768px) {
@media (min-width: 768px) {
.post-preview {
padding: 35px 0;
padding: 2.1875rem 0;
}
}
@ -360,20 +459,20 @@ footer .footer-custom-content {
}
.post-preview .post-title {
font-size: 30px;
font-size: 1.875rem;
margin-top: 0;
}
.post-preview .post-subtitle {
margin: 0;
font-weight: 300;
margin-bottom: 10px;
margin-bottom: 0.625rem;
}
.post-preview .post-meta,
.post-heading .post-meta {
color: #808080;
font-size: 18px;
font-size: 1.125rem;
font-style: italic;
margin: 0 0 10px;
margin: 0 0 0.625rem;
}
.post-preview .post-entry {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
@ -387,26 +486,26 @@ footer .footer-custom-content {
}
.post-image {
float: right;
height: 192px;
width: 192px;
margin-top: -35px;
height: 12rem;
width: 12rem;
margin-top: -2.1875rem;
filter: grayscale(90%);
}
.post-image:hover {
filter: grayscale(0%);
}
.post-image img {
border-radius: 100px;
height: 192px;
width: 192px;
border-radius: 6.25rem;
height: 12rem;
width: 12rem;
}
.post-preview .post-read-more {
font-weight: 800;
}
@media only screen and (min-width: 768px) {
@media (min-width: 768px) {
.post-preview .post-title {
font-size: 36px;
font-size: 2.25rem;
}
}
@ -415,14 +514,14 @@ footer .footer-custom-content {
.blog-tags {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: #999;
font-size: 15px;
margin-bottom: 30px;
font-size: 0.9375rem;
margin-bottom: 1.875rem;
}
.blog-tags a {
color: {{ site.link-col | default: "#008AFF" }};
text-decoration: none;
padding: 0px 5px;
padding: 0 0.3125rem;
}
.blog-tags a:hover {
@ -432,20 +531,20 @@ footer .footer-custom-content {
}
.post-preview .blog-tags {
margin-top: 5px;
margin-top: 0.3125rem;
margin-bottom: 0;
}
@media only screen and (min-width: 768px) {
@media (min-width: 768px) {
.post-preview .blog-tags {
margin-top: 10px;
margin-top: 0.625rem;
}
}
@media only screen and (max-width: 500px) {
@media (max-width: 500px) {
.post-image, .post-image img {
height: 100px;
width: 100px;
height: 6.25rem;
width: 6.25rem;
}
.post-image {
@ -458,7 +557,7 @@ footer .footer-custom-content {
/* --- Post and page headers --- */
.intro-header {
margin: 80px 0 20px;
margin: 5rem 0 1.25rem;
position: relative;
}
.intro-header.big-img {
@ -467,8 +566,8 @@ footer .footer-custom-content {
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
margin-top: 51px; /* The small navbar is 50px tall + 1px border */
margin-bottom: 35px;
margin-top: 3.1875rem; /* The small navbar is 50px tall + 1px border */
margin-bottom: 2.1875rem;
}
.intro-header.big-img .big-img-transition {
position: absolute;
@ -489,29 +588,29 @@ footer .footer-custom-content {
}
.intro-header.big-img .page-heading,
.intro-header.big-img .post-heading {
padding: 100px 0;
padding: 6.25rem 0;
color: #FFF;
text-shadow: 1px 1px 3px #000;
}
.intro-header .page-heading h1 {
margin-top: 0;
font-size: 50px;
font-size: 3.125rem;
}
.intro-header .post-heading h1 {
margin-top: 0;
font-size: 35px;
font-size: 2.1875rem;
}
.intro-header .page-heading .page-subheading,
.intro-header .post-heading .post-subheading {
font-size: 27px;
font-size: 1.6875rem;
line-height: 1.1;
display: block;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 300;
margin: 10px 0 0;
margin: 0.625rem 0 0;
}
.intro-header .post-heading .post-subheading {
margin-bottom: 20px;
margin-bottom: 1.25rem;
}
.intro-header.big-img .page-heading .page-subheading,
.intro-header.big-img .post-heading .post-subheading {
@ -528,54 +627,54 @@ footer .footer-custom-content {
.intro-header.big-img .img-desc {
background: rgba(30, 30, 30, 0.6);
position: absolute;
padding: 5px 10px;
font-size: 11px;
padding: 0.3125rem 0.625rem;
font-size: 0.6875rem;
color: #EEE;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
right: 0;
bottom: 0;
display: none;
}
@media only screen and (min-width: 768px) {
@media (min-width: 768px) {
.intro-header {
margin-top: 130px;
margin-top: 8.125rem;
}
.intro-header.big-img {
margin-top: 91px; /* Full navbar is small navbar + 20px padding on each side when expanded */
margin-top: 5.6875rem; /* Full navbar is small navbar + 20px padding on each side when expanded */
}
.intro-header.big-img .page-heading,
.intro-header.big-img .post-heading {
padding: 150px 0;
padding: 9.375rem 0;
}
.intro-header .page-heading h1 {
font-size: 80px;
font-size: 5rem;
}
.intro-header .post-heading h1 {
font-size: 50px;
font-size: 3.125rem;
}
.intro-header.big-img .img-desc {
font-size: 14px;
font-size: 0.875rem;
}
}
.header-section.has-img .no-img {
margin-top: 0;
background-color: #FCFCFC;
margin: 0 0 40px;
padding: 20px 0;
box-shadow: 0 0 5px #AAA;
margin: 0 0 2.5rem;
padding: 1.25rem 0;
box-shadow: 0 0 0.3125rem #AAA;
}
/* Many phones are 320 or 360px, so make sure images are a proper aspect ratio in those cases */
.header-section.has-img .intro-header.no-img {
display: none;
}
@media only screen and (max-width: 365px) {
@media (max-width: 365px) {
.header-section.has-img .intro-header.no-img {
display: block;
}
.intro-header.big-img {
width: 100%;
height: 220px;
height: 13.75rem;
}
.intro-header.big-img .page-heading,
.intro-header.big-img .post-heading {
@ -585,30 +684,30 @@ footer .footer-custom-content {
margin-bottom: 0;
}
}
@media only screen and (max-width: 325px) {
@media (max-width: 325px) {
.intro-header.big-img {
height: 200px;
height: 12.5rem;
}
}
.caption {
text-align: center;
font-size: 14px;
padding: 10px;
font-size: 0.875rem;
padding: 0.625rem;
font-style: italic;
margin: 0;
display: block;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 0.3125rem;
border-bottom-left-radius: 0.3125rem;
}
#header-gh-btns {
margin-bottom: 15px;
margin-bottom: 0.9375rem;
}
@media only screen and (max-width: 500px) {
@media (max-width: 500px) {
#header-gh-btns > iframe {
display: block;
margin-bottom: 5px;
margin-bottom: 0.3125rem;
}
}
@ -621,48 +720,53 @@ footer .footer-custom-content {
}
}
.reader-time .middot {
margin: 0 10px;
margin: 0 0.625rem;
}
/* --- Pager --- */
/* --- Pagination --- */
.pager li a {
.pagination {
margin: 0.625rem 0 0;
justify-content: space-between;
}
.pagination.blog-pager {
margin-top: 0;
}
.pagination .page-item.next {
margin-left: auto;
}
@media (min-width: 768px) {
.pagination.blog-pager {
margin-top: 0.625rem;
}
}
.pagination .page-item .page-link {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
text-transform: uppercase;
font-size: 14px;
font-size: 0.875rem;
font-weight: 800;
letter-spacing: 1px;
padding: 10px 5px;
padding: 0.625rem 0.3125rem;
background-color: #FFF;
border-radius: 0;
color: #404040;
}
@media only screen and (min-width: 768px) {
.pager li a {
padding: 15px 25px;
@media (min-width: 768px) {
.pagination .page-item .page-link {
padding: 0.9375rem 1.5625rem;
}
}
.pager li a:hover,
.pager li a:focus {
.pagination .page-item .page-link:hover,
.pagination .page-item .page-link:focus {
color: #FFF;
border: 1px solid {{ site.hover-col | default: "#0085A1" }};
background-color: {{ site.hover-col | default: "#0085A1" }};
}
.pager {
margin: 10px 0 0;
}
.pager.blog-pager {
margin-top: 0;
}
@media only screen and (min-width: 768px) {
.pager.blog-pager {
margin-top: 10px;
}
}
/* --- Tables --- */
table {
@ -682,13 +786,13 @@ table tr th {
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 6px 13px;
padding: 0.375rem 0.8125rem;
}
table tr td {
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 6px 13px;
padding: 0.375rem 0.8125rem;
}
table tr th :first-child,
table tr td :first-child {
@ -702,8 +806,10 @@ table tr td :last-child {
/* --- Code blocks --- */
pre {
font-size: 16px;
line-height: 1.5em;
font-size: 1rem;
line-height: 1.5;
border-radius: 0.25rem;
padding: 0.59375rem;
}
.highlight pre {
border: none;
@ -714,9 +820,9 @@ pre {
background-image: linear-gradient(
rgba(0,0,0,0.06), rgba(0,0,0,0.06) 1.5em, rgba(0,0,0,0.03) 1.5em, rgba(0,0,0,0.03) 3em);
background-size: auto 3em;
background-position-y: 10px;
background-position-y: 0.625rem;
border: 1px solid rgba(0,0,0,0.1);
border-left: 7px solid #444;
border-left: 0.4375rem solid #444;
}
.highlight > pre:not([class~="highlight"]) { /* code block with line number */
padding: 0;
@ -747,16 +853,16 @@ pre {
/* --- Social media sharing section --- */
#social-share-section {
margin-bottom: 30px;
margin-bottom: 1.875rem;
}
/* --- Notification boxes --- */
.box-note, .box-warning, .box-error, .box-success {
padding: 15px 15px 15px 10px;
margin: 20px 20px 20px 5px;
padding: 0.9375rem 0.9375rem 0.9375rem 0.625rem;
margin: 1.25rem 1.25rem 1.25rem 0.3125rem;
border: 1px solid #eee;
border-left-width: 5px;
border-radius: 5px 3px 3px 5px;
border-left-width: 0.3125rem;
border-radius: 0.3125rem 0.1875rem 0.1875rem 0.3125rem;
}
.box-note {
@ -789,21 +895,10 @@ pre {
border: unset;
}
/* Fix .navbar-toggle */
.navbar-default button.navbar-toggle:focus,
.navbar-default button.navbar-toggle:hover {
background-color: initial;
}
.navbar-default button.navbar-toggle[aria-expanded="true"] {
background-color: rgba(0, 0, 0, 0.2);
}
/* Tags page */
.tag-btn {
margin: 5px;
margin: 0.3125rem;
}
#full-tags-list {
@ -811,15 +906,15 @@ pre {
}
#full-tags-list .tag-entry {
margin: 0 0 15px 25px;
margin: 0 0 0.9375rem 1.5625rem;
}
#full-tags-list .tag-entry a {
font-size: 20px;
font-size: 1.25rem;
}
#full-tags-list .tag-entry .entry-date {
color: #808080;
font-style: italic;
font-size: 16px;
font-size: 1rem;
}

View File

@ -1,427 +0,0 @@
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9/10.
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* Text-level semantics
========================================================================== */
/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9/10.
*/
img {
border: 0;
}
/**
* Correct overflow not hidden in IE 9/10/11.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari.
*/
figure {
margin: 1em 40px;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto;
}
/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/* Forms
========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit; /* 1 */
font: inherit; /* 2 */
margin: 0; /* 3 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/
button {
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/
textarea {
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold;
}
/* Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}

View File

@ -81,10 +81,10 @@
/*
Help text
========================================================================== */
.staticman-comments .help-block {
.staticman-comments .form-text {
color: #898c8e;
}
.staticman-comments .help-block {
.staticman-comments .form-text {
display: block;
margin-bottom: 1em;
line-height: 1em;

2306
assets/js/bootstrap.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
// Dean Attali / Beautiful Jekyll 2016
// Dean Attali / Beautiful Jekyll 2020
var main = {
var BeautifulJekyllJS = {
bigImgEl : null,
numImgs : null,
@ -10,10 +10,8 @@ var main = {
$(window).scroll(function() {
if ($(".navbar").offset().top > 50) {
$(".navbar").addClass("top-nav-short");
$(".navbar-custom .avatar-container").fadeOut(500);
} else {
$(".navbar").removeClass("top-nav-short");
$(".navbar-custom .avatar-container").fadeIn(500);
}
});
@ -25,116 +23,77 @@ var main = {
$(".navbar").removeClass("top-nav-expanded");
});
// On mobile, when clicking on a multi-level navbar menu, show the child links
$('#main-navbar').on("click", ".navlinks-parent", function(e) {
var target = e.target;
$.each($(".navlinks-parent"), function(key, value) {
if (value == target) {
$(value).parent().toggleClass("show-children");
} else {
$(value).parent().removeClass("show-children");
}
});
});
// Ensure nested navbar menus are not longer than the menu header
var menus = $(".navlinks-container");
if (menus.length > 0) {
var navbar = $("#main-navbar ul");
var fakeMenuHtml = "<li class='fake-menu' style='display:none;'><a></a></li>";
navbar.append(fakeMenuHtml);
var fakeMenu = $(".fake-menu");
$.each(menus, function(i) {
var parent = $(menus[i]).find(".navlinks-parent");
var children = $(menus[i]).find(".navlinks-children a");
var words = [];
$.each(children, function(idx, el) { words = words.concat($(el).text().trim().split(/\s+/)); });
var maxwidth = 0;
$.each(words, function(id, word) {
fakeMenu.html("<a>" + word + "</a>");
var width = fakeMenu.width();
if (width > maxwidth) {
maxwidth = width;
}
});
$(menus[i]).css('min-width', maxwidth + 'px')
});
fakeMenu.remove();
}
// show the big header image
main.initImgs();
BeautifulJekyllJS.initImgs();
},
initImgs : function() {
// If the page was large images to randomly select from, choose an image
if ($("#header-big-imgs").length > 0) {
main.bigImgEl = $("#header-big-imgs");
main.numImgs = main.bigImgEl.attr("data-num-img");
BeautifulJekyllJS.bigImgEl = $("#header-big-imgs");
BeautifulJekyllJS.numImgs = BeautifulJekyllJS.bigImgEl.attr("data-num-img");
// 2fc73a3a967e97599c9763d05e564189
// set an initial image
var imgInfo = main.getImgInfo();
var src = imgInfo.src;
var desc = imgInfo.desc;
main.setImg(src, desc);
// 2fc73a3a967e97599c9763d05e564189
// set an initial image
var imgInfo = BeautifulJekyllJS.getImgInfo();
var src = imgInfo.src;
var desc = imgInfo.desc;
BeautifulJekyllJS.setImg(src, desc);
// For better UX, prefetch the next image so that it will already be loaded when we want to show it
var getNextImg = function() {
var imgInfo = main.getImgInfo();
var src = imgInfo.src;
var desc = imgInfo.desc;
// For better UX, prefetch the next image so that it will already be loaded when we want to show it
var getNextImg = function() {
var imgInfo = BeautifulJekyllJS.getImgInfo();
var src = imgInfo.src;
var desc = imgInfo.desc;
var prefetchImg = new Image();
prefetchImg.src = src;
// if I want to do something once the image is ready: `prefetchImg.onload = function(){}`
var prefetchImg = new Image();
prefetchImg.src = src;
// if I want to do something once the image is ready: `prefetchImg.onload = function(){}`
setTimeout(function(){
var img = $("<div></div>").addClass("big-img-transition").css("background-image", 'url(' + src + ')');
$(".intro-header.big-img").prepend(img);
setTimeout(function(){ img.css("opacity", "1"); }, 50);
setTimeout(function(){
var img = $("<div></div>").addClass("big-img-transition").css("background-image", 'url(' + src + ')');
$(".intro-header.big-img").prepend(img);
setTimeout(function(){ img.css("opacity", "1"); }, 50);
// after the animation of fading in the new image is done, prefetch the next one
//img.one("transitioned webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
setTimeout(function() {
main.setImg(src, desc);
img.remove();
getNextImg();
}, 1000);
//});
}, 6000);
};
// after the animation of fading in the new image is done, prefetch the next one
//img.one("transitioned webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
setTimeout(function() {
BeautifulJekyllJS.setImg(src, desc);
img.remove();
getNextImg();
}, 1000);
//});
}, 6000);
};
// If there are multiple images, cycle through them
if (main.numImgs > 1) {
getNextImg();
}
// If there are multiple images, cycle through them
if (BeautifulJekyllJS.numImgs > 1) {
getNextImg();
}
}
},
getImgInfo : function() {
var randNum = Math.floor((Math.random() * main.numImgs) + 1);
var src = main.bigImgEl.attr("data-img-src-" + randNum);
var desc = main.bigImgEl.attr("data-img-desc-" + randNum);
var randNum = Math.floor((Math.random() * BeautifulJekyllJS.numImgs) + 1);
var src = BeautifulJekyllJS.bigImgEl.attr("data-img-src-" + randNum);
var desc = BeautifulJekyllJS.bigImgEl.attr("data-img-desc-" + randNum);
return {
src : src,
desc : desc
}
return {
src : src,
desc : desc
}
},
setImg : function(src, desc) {
$(".intro-header.big-img").css("background-image", 'url(' + src + ')');
if (typeof desc !== typeof undefined && desc !== false) {
$(".img-desc").text(desc).show();
} else {
$(".img-desc").hide();
}
$(".intro-header.big-img").css("background-image", 'url(' + src + ')');
if (typeof desc !== typeof undefined && desc !== false) {
$(".img-desc").text(desc).show();
} else {
$(".img-desc").hide();
}
}
};
// 2fc73a3a967e97599c9763d05e564189
document.addEventListener('DOMContentLoaded', main.init);
document.addEventListener('DOMContentLoaded', BeautifulJekyllJS.init);