28 | ```
29 |
--------------------------------------------------------------------------------
/example/_posts/2010-06-02-post-video-youtube.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Post: Video (YouTube)"
3 | categories:
4 | - Post Formats
5 | tags:
6 | - Post Formats
7 | last_modified_at: 2017-03-23T15:33:37-04:00
8 | ---
9 |
10 |
13 |
14 | This post tests YouTube video embeds.
15 |
16 | Simply wrap embeds with a `
` element and the appropriate classes:
17 |
18 | ```html
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | ```
29 |
--------------------------------------------------------------------------------
/_includes/icon-bitbucket.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_sass/basically-basic/_buttons.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Buttons
3 | ========================================================================== */
4 |
5 | .btn {
6 | display: inline-block;
7 | padding: 0.5em 1em;
8 | border: 0;
9 | border-radius: $border-radius;
10 | background-color: $accent-color;
11 | color: #fff;
12 | font-weight: bold;
13 | text-align: center;
14 | text-decoration: none;
15 | cursor: pointer;
16 |
17 | &:hover {
18 | background-color: tint($accent-color, 20%);
19 | color: #fff;
20 | }
21 |
22 | &:focus {
23 | background-color: shade($accent-color, 20%);
24 | }
25 |
26 | .icon {
27 | margin-right: 0.5em;
28 | }
29 |
30 | /* block button fills width of parent container */
31 | &--block {
32 | display: block;
33 | width: 100%;
34 |
35 | + .btn--block {
36 | margin-top: 1rem;
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/_sass/basically-basic/vendor/breakpoint/parsers/_triple.scss:
--------------------------------------------------------------------------------
1 | //////////////////////////////
2 | // Import Pieces
3 | //////////////////////////////
4 | @import "triple/default";
5 |
6 | @function breakpoint-parse-triple($feature, $empty-media, $first) {
7 | $parsed: '';
8 | $leader: '';
9 |
10 | // If we're forcing
11 | @if not ($empty-media) or not ($first) {
12 | $leader: 'and ';
13 | }
14 |
15 | // separate the string features from the value numbers
16 | $string: null;
17 | $numbers: null;
18 | @each $val in $feature {
19 | @if type-of($val) == string {
20 | $string: $val;
21 | }
22 | @else {
23 | @if type-of($numbers) == 'null' {
24 | $numbers: $val;
25 | }
26 | @else {
27 | $numbers: append($numbers, $val);
28 | }
29 | }
30 | }
31 |
32 | $parsed: breakpoint-parse-triple-default($string, nth($numbers, 1), nth($numbers, 2));
33 |
34 | @return $leader + $parsed;
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/_sass/basically-basic/utilities/_visibility.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Visibility
3 | ========================================================================== */
4 |
5 | /* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */
6 |
7 | .is--hidden {
8 | display: none;
9 | visibility: hidden;
10 | }
11 |
12 | .is--visible {
13 | display: block;
14 | visibility: visible;
15 | }
16 |
17 | /* https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html */
18 |
19 | .visually-hidden {
20 | position: absolute !important;
21 | clip: rect(1px, 1px, 1px, 1px);
22 | height: 1px !important;
23 | width: 1px !important;
24 | border: 0 !important;
25 | overflow: hidden;
26 | }
27 |
28 | body:hover .visually-hidden a,
29 | body:hover .visually-hidden input,
30 | body:hover .visually-hidden button {
31 | display: none !important;
32 | }
33 |
--------------------------------------------------------------------------------
/_sass/basically-basic/vendor/breakpoint/parsers/_resolution.scss:
--------------------------------------------------------------------------------
1 | @import "resolution/resolution";
2 |
3 | @function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first) {
4 | $leader: '';
5 | // If we're forcing
6 | @if not ($empty-media) or not ($first) {
7 | $leader: 'and ';
8 | }
9 |
10 | @if breakpoint-get('transform resolutions') and $query-resolution {
11 | $resolutions: breakpoint-make-resolutions($query-resolution);
12 | $length: length($resolutions);
13 | $query-holder: '';
14 |
15 | @for $i from 1 through $length {
16 | $query: '#{$query-print} #{$leader}#{nth($resolutions, $i)}';
17 | @if $i == 1 {
18 | $query-holder: $query;
19 | }
20 | @else {
21 | $query-holder: '#{$query-holder}, #{$query}';
22 | }
23 | }
24 |
25 | @return $query-holder;
26 | }
27 | @else {
28 | // Return with attached resolution
29 | @return $query-print;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/_includes/icon-dribbble.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_layouts/posts.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | ---
4 |
5 | {{ content }}
6 |
7 |
17 |
18 | {% assign postsByYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %}
19 | {% for year in postsByYear %}
20 |
29 | {% endfor %}
30 |
--------------------------------------------------------------------------------
/_includes/navigation.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 | {% assign default_paths = site.pages | map: "path" %}
12 | {% assign page_paths = site.data.theme.navigation_pages | default: default_paths %}
13 |
14 | {% for path in page_paths %}
15 | {% assign my_page = site.pages | where: "path", path | first %}
16 | {% if my_page.title %}
17 |
22 | {% endif %}
23 | {% endfor %}
24 |
25 |
26 |
--------------------------------------------------------------------------------
/_sass/basically-basic/themes/_steel.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Steel theme skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $base-color: #3a4750 !default;
7 | $text-color: #303841 !default;
8 | $accent-color: #d72323 !default;
9 | $background-color: #eee !default;
10 | $code-background-color: #fff !default;
11 | $border-color: rgba($text-color, 0.25) !default;
12 | $overlay-color: #fff !default;
13 |
14 | /* Syntax highlighting (base16) colors */
15 | $base00: #1d1f21 !default;
16 | $base01: #282a2e !default;
17 | $base02: #373b41 !default;
18 | $base03: #969896 !default;
19 | $base04: #b4b7b4 !default;
20 | $base05: #c5c8c6 !default;
21 | $base06: #e0e0e0 !default;
22 | $base07: #ffffff !default;
23 | $base08: #cc6666 !default;
24 | $base09: #de935f !default;
25 | $base0a: #f0c674 !default;
26 | $base0b: #b5bd68 !default;
27 | $base0c: #8abeb7 !default;
28 | $base0d: #81a2be !default;
29 | $base0e: #b294bb !default;
30 | $base0f: #a3685a !default;
31 |
--------------------------------------------------------------------------------
/_includes/cv/publications.html:
--------------------------------------------------------------------------------
1 | {% if cv.publications %}
2 |
3 |
6 |
7 |
8 | {% for p in cv.publications %}
9 | {% if p.name %}
10 |
11 | {% if p.website %}
12 | {{ p.name }}
13 | {% else %}
14 | {{ p.name }}
15 | {% endif %}
16 |
17 | {% endif %}
18 | {% if p.releaseDate %}
19 |
{{ p.releaseDate }}
20 | {% endif %}
21 | {% if p.publisher %}
22 |
{{ p.publisher | prepend: 'Published by ' }}
23 | {% endif %}
24 | {% if p.summary %}
25 |
{{ p.summary | markdownify }}
26 | {% endif %}
27 | {% endfor %}
28 |
29 |
30 | {% endif %}
--------------------------------------------------------------------------------
/_includes/contact-list.html:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/_sass/basically-basic/themes/_soft.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Soft theme skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $base-color: mix(#625772, #a9eee6, 75%) !default;
7 | $text-color: #625772 !default;
8 | $accent-color: #e85482 !default;
9 | $background-color: #fefaec !default;
10 | $code-background-color: #fff !default;
11 | $border-color: rgba($text-color, 0.5) !default;
12 | $overlay-color: #fff !default;
13 |
14 | /* Syntax highlighting (base16) colors */
15 | $base00: #efecf4 !default;
16 | $base01: #e2dfe7 !default;
17 | $base02: #8b8792 !default;
18 | $base03: #7e7887 !default;
19 | $base04: #655f6d !default;
20 | $base05: #585260 !default;
21 | $base06: #26232a !default;
22 | $base07: #19171c !default;
23 | $base08: #be4678 !default;
24 | $base09: #aa573c !default;
25 | $base0a: #a06e3b !default;
26 | $base0b: #2a9292 !default;
27 | $base0c: #398bc6 !default;
28 | $base0d: #576ddb !default;
29 | $base0e: #955ae7 !default;
30 | $base0f: #bf40bf !default;
31 |
--------------------------------------------------------------------------------
/_sass/basically-basic/utilities/_text.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Text
3 | ========================================================================== */
4 |
5 | /*
6 | Alignment
7 | ========================================================================== */
8 |
9 | .text-justify { text-align: justify !important; }
10 | .text-nowrap { white-space: nowrap !important; }
11 | .text-left { text-align: left !important; }
12 | .text-right { text-align: right !important; }
13 | .text-center { text-align: center !important; }
14 |
15 | /*
16 | Transformation
17 | ========================================================================== */
18 |
19 | .text-lowercase { text-transform: lowercase !important; }
20 | .text-uppercase { text-transform: uppercase !important; }
21 | .text-capitalize { text-transform: capitalize !important; }
22 | .text-truncate { @include text-truncate; }
23 |
24 | /*
25 | Sizing
26 | ========================================================================== */
27 |
28 | .small { font-size: 80%; }
29 |
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: home
3 | paginate: true
4 | alt_title: "Basically Basic"
5 | sub_title: "Your new default Jekyll theme"
6 | image: /assets/images/amine-ounnas-180287.jpg
7 | introduction: |
8 | Basically Basic is a [Jekyll theme](https://jekyllrb.com/docs/themes/) meant as a substitute for the default --- [Minima](https://github.com/jekyll/minima). Conventions and features found there are fully supported by **Basically Basic**, with a few enhancements thrown in for good measure:
9 |
10 | - Clean responsive design with six customizable skins
11 | - Curriculum Vitæ/Resume layout powered by [JSON data](http://registry.jsonresume.org/)
12 | - About page layout
13 | - Disqus Comments and Google Analytics support
14 | - SEO best practices via [Jekyll SEO Tag](https://github.com/jekyll/jekyll-seo-tag/)
15 | actions:
16 | - label: "Get Started"
17 | icon: github
18 | url: "https://github.com/mmistakes/jekyll-theme-basically-basic"
19 | - label: "Download"
20 | icon: download
21 | url: "https://github.com/mmistakes/jekyll-theme-basically-basic/archive/master.zip"
22 | ---
23 |
--------------------------------------------------------------------------------
/example/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: home
3 | paginate: true
4 | alt_title: "Basically Basic"
5 | sub_title: "Your new default Jekyll theme"
6 | image: /assets/images/amine-ounnas-180287.jpg
7 | introduction: |
8 | Basically Basic is a [Jekyll theme](https://jekyllrb.com/docs/themes/) meant as a substitute for the default --- [Minima](https://github.com/jekyll/minima). Conventions and features found there are fully supported by **Basically Basic**, with a few enhancements thrown in for good measure:
9 |
10 | - Clean responsive design with six customizable skins
11 | - Curriculum Vitæ/Resume layout powered by [JSON data](http://registry.jsonresume.org/)
12 | - About page layout
13 | - Disqus Comments and Google Analytics support
14 | - SEO best practices via [Jekyll SEO Tag](https://github.com/jekyll/jekyll-seo-tag/)
15 | actions:
16 | - label: "Get Started"
17 | icon: github
18 | url: "https://github.com/mmistakes/jekyll-theme-basically-basic"
19 | - label: "Download"
20 | icon: download
21 | url: "https://github.com/mmistakes/jekyll-theme-basically-basic/archive/master.zip"
22 | ---
23 |
--------------------------------------------------------------------------------
/_sass/basically-basic/_icons.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Icons
3 | ========================================================================== */
4 |
5 | .icon {
6 | display: inline-block;
7 | position: relative;
8 | top: -0.05em; /* fine-tune alignment */
9 | width: 1em;
10 | height: 1em;
11 | line-height: 1;
12 | vertical-align: middle;
13 | fill: currentColor;
14 |
15 | $icons: (
16 | (bitbucket, #205081),
17 | (codepen, #000),
18 | (dribbble, #ea4c89),
19 | (email, #000),
20 | (facebook, #3b5998),
21 | (flickr, #0063dc),
22 | (github, #181717),
23 | (gitlab, #e24329),
24 | (googleplus, #dc4e41),
25 | (instagram, #e4405f),
26 | (lastfm, #d51007),
27 | (linkedin, #0077b5),
28 | (pinterest, #bd081c),
29 | (rss, #ffa500),
30 | (soundcloud, #f30),
31 | (stackoverflow, #fe7a16),
32 | (tumblr, #36465d),
33 | (twitter, #1da1f2),
34 | (xing, #005a5f),
35 | (youtube, #cd201f)
36 | );
37 |
38 | @each $icon, $color in $icons {
39 | &--#{$icon} {
40 | fill: $color;
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/jekyll-theme-basically-basic.gemspec:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 |
3 | Gem::Specification.new do |spec|
4 | spec.name = "jekyll-theme-basically-basic"
5 | spec.version = "1.4.5"
6 | spec.authors = ["Michael Rose"]
7 |
8 | spec.summary = %q{Your new Jekyll default theme.}
9 | spec.homepage = "https://github.com/mmistakes/jekyll-theme-basically-basic"
10 | spec.license = "MIT"
11 |
12 | spec.metadata["plugin_type"] = "theme"
13 |
14 | spec.files = `git ls-files -z`.split("\x0").select do |f|
15 | f.match(%r{^(assets|_(includes|layouts|sass)/|(LICENSE|README|CHANGELOG)((\.(txt|md|markdown)|$)))}i)
16 | end
17 |
18 | spec.add_runtime_dependency "jekyll", ">= 3.6", "< 5.0"
19 | spec.add_runtime_dependency "jekyll-feed", "~> 0.1"
20 | spec.add_runtime_dependency "jekyll-paginate", "~> 1.1"
21 | spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.6"
22 | spec.add_runtime_dependency "jekyll-sitemap", "~> 1.3"
23 |
24 | spec.add_development_dependency "bundler"
25 | spec.add_development_dependency "rake", ">= 12.3.3"
26 | end
27 |
--------------------------------------------------------------------------------
/_includes/author:
--------------------------------------------------------------------------------
1 | {% assign author = page.author | default: page.authors[0] | default: site.author %}
2 | {% if author %}
3 | {% if author.name %}
4 | {% assign author_name = author.name %}
5 | {% else %}
6 | {% if site.data.authors and site.data.authors[author] %}
7 | {% assign author_name = site.data.authors[author].name %}
8 | {% else %}
9 | {% assign author_name = author %}
10 | {% endif %}
11 | {% endif %}
12 |
13 | {% if author.picture %}
14 | {% assign author_picture = author.picture %}
15 | {% else %}
16 | {% if site.data.authors and site.data.authors[author] %}
17 | {% assign author_picture = site.data.authors[author].picture %}
18 | {% endif %}
19 | {% endif %}
20 | {% assign author_picture = author_picture | relative_url %}
21 |
22 | {% if author.twitter %}
23 | {% assign author_twitter = author.twitter %}
24 | {% else %}
25 | {% if site.data.authors and site.data.authors[author] %}
26 | {% assign author_twitter = site.data.authors[author].twitter %}
27 | {% else %}
28 | {% assign author_twitter = site.twitter_username %}
29 | {% endif %}
30 | {% endif %}
31 | {% endif %}
32 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2017-2021 Michael Rose and contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/_sass/basically-basic/vendor/susy/susy/_unprefix.scss:
--------------------------------------------------------------------------------
1 | // Unprefix Susy
2 | // =============
3 |
4 |
5 | // Span
6 | // ----
7 | /// Un-prefixed alias for `susy-span`
8 | /// (available by default)
9 | ///
10 | /// @group api
11 | /// @alias susy-span
12 | ///
13 | /// @param {list} $span
14 | /// @param {map} $config [()]
15 | @function span(
16 | $span,
17 | $config: ()
18 | ) {
19 | @return susy-span($span, $config);
20 | }
21 |
22 |
23 | // Gutter
24 | // ------
25 | /// Un-prefixed alias for `susy-gutter`
26 | /// (available by default)
27 | ///
28 | /// @group api
29 | /// @alias susy-gutter
30 | ///
31 | /// @param {integer | list} $context [null] -
32 | /// @param {map} $config [()]
33 | @function gutter(
34 | $context: susy-get('columns'),
35 | $config: ()
36 | ) {
37 | @return susy-gutter($context, $config);
38 | }
39 |
40 |
41 | // Slice
42 | // -----
43 | /// Un-prefixed alias for `susy-slice`
44 | /// (available by default)
45 | ///
46 | /// @group api
47 | /// @alias susy-slice
48 | ///
49 | /// @param {list} $span
50 | /// @param {map} $config [()]
51 | @function slice(
52 | $span,
53 | $config: ()
54 | ) {
55 | @return susy-slice($span, $config);
56 | }
57 |
--------------------------------------------------------------------------------
/_includes/icon-calendar.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_sass/basically-basic/utilities/_accessibility.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Accessibility Modules
3 | ========================================================================== */
4 |
5 | /* Text meant only for screen readers */
6 | .screen-reader-text,
7 | .screen-reader-text span,
8 | .screen-reader-shortcut {
9 | position: absolute !important;
10 | width: 1px;
11 | height: 1px;
12 | clip: rect(0, 0, 0, 0);
13 | border: 0;
14 | overflow: hidden;
15 |
16 | &:focus {
17 | display: block;
18 | top: 5px;
19 | left: 5px;
20 | width: auto;
21 | height: auto;
22 | padding: 0.75em 1em;
23 | clip: auto !important;
24 | border-radius: 0.125em;
25 | background-color: $base-color;
26 | color: #fff;
27 | font-weight: bold;
28 | line-height: normal;
29 | text-decoration: none;
30 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
31 | z-index: 100000;
32 | }
33 | }
34 |
35 | .screen-reader-text:focus,
36 | .screen-reader-shortcut:focus {
37 | width: auto;
38 | height: auto;
39 | clip: auto !important;
40 | text-decoration: none;
41 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
42 | z-index: 100000;
43 | }
44 |
--------------------------------------------------------------------------------
/docs/_recipes/peanut-butter-cookies.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Peanut Butter Cookies"
3 | image:
4 | path: /assets/images/peanut-butter-cookies-lg.jpg
5 | thumbnail: /assets/images/peanut-butter-cookies-400x200.jpg
6 | caption: "Photo from [Pexels](https://www.pexels.com)"
7 | ---
8 |
9 | A peanut butter cookie is a type of cookie that is distinguished for having peanut butter as a principal ingredient. The cookie generally originated in the United States, its development dating back to the 1910s.
10 |
11 | ## Ingredients
12 |
13 | * 1 cup unsalted butter
14 | * 1 cup crunchy peanut butter
15 | * 1 cup white sugar
16 | * 1 cup packed brown sugar
17 | * 2 eggs 2
18 | * 1/2 cups all-purpose flour
19 | * 1 teaspoon baking powder
20 | * 1/2 teaspoon salt
21 | * 1 1/2 teaspoons baking soda
22 |
23 | ## Directions
24 |
25 | 1. Cream butter, peanut butter, and sugars together in a bowl; beat in eggs.
26 | 2. In a separate bowl, sift flour, baking powder, baking soda, and salt; stir into butter mixture. Put dough in refrigerator for 1 hour.
27 | 3. Roll dough into 1 inch balls and put on baking sheets. Flatten each ball with a fork, making a crisscross pattern. Bake in a preheated 375 degrees F oven for about 10 minutes or until cookies begin to brown.
28 |
--------------------------------------------------------------------------------
/example/_recipes/peanut-butter-cookies.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Peanut Butter Cookies"
3 | image:
4 | path: /assets/images/peanut-butter-cookies-lg.jpg
5 | thumbnail: /assets/images/peanut-butter-cookies-400x200.jpg
6 | caption: "Photo from [Pexels](https://www.pexels.com)"
7 | ---
8 |
9 | A peanut butter cookie is a type of cookie that is distinguished for having peanut butter as a principal ingredient. The cookie generally originated in the United States, its development dating back to the 1910s.
10 |
11 | ## Ingredients
12 |
13 | * 1 cup unsalted butter
14 | * 1 cup crunchy peanut butter
15 | * 1 cup white sugar
16 | * 1 cup packed brown sugar
17 | * 2 eggs 2
18 | * 1/2 cups all-purpose flour
19 | * 1 teaspoon baking powder
20 | * 1/2 teaspoon salt
21 | * 1 1/2 teaspoons baking soda
22 |
23 | ## Directions
24 |
25 | 1. Cream butter, peanut butter, and sugars together in a bowl; beat in eggs.
26 | 2. In a separate bowl, sift flour, baking powder, baking soda, and salt; stir into butter mixture. Put dough in refrigerator for 1 hour.
27 | 3. Roll dough into 1 inch balls and put on baking sheets. Flatten each ball with a fork, making a crisscross pattern. Bake in a preheated 375 degrees F oven for about 10 minutes or until cookies begin to brown.
28 |
--------------------------------------------------------------------------------
/_sass/basically-basic/functions/_fluid-type.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Fluid Type
3 | as seen on https://madebymike.com.au/writing/fluid-type-calc-examples/
4 | ========================================================================== */
5 |
6 | @function strip-unit($value) {
7 | @return $value / ($value * 0 + 1);
8 | }
9 |
10 | @mixin fluid-type($min-vw, $max-vw, $min-font-size, $max-font-size) {
11 | // scss-lint:disable UnnecessaryParentReference
12 | $u1: unit($min-vw);
13 | $u2: unit($max-vw);
14 | $u3: unit($min-font-size);
15 | $u4: unit($max-font-size);
16 |
17 | @if $u1 == $u2 and $u1 == $u3 and $u1 == $u4 {
18 | & {
19 |
20 | font-size: $min-font-size;
21 |
22 | @media screen and (min-width: $min-vw) {
23 | font-size: calc(#{$min-font-size} + #{strip-unit($max-font-size - $min-font-size)} * ((100vw - #{$min-vw}) / #{strip-unit($max-vw - $min-vw)}));
24 | }
25 |
26 | @media screen and (min-width: $max-vw) {
27 | font-size: $max-font-size;
28 | }
29 | }
30 | } @else {
31 | @error "Detected mixed units. Please use the same units for all parameters. " + $u1 +", " + $u2 + ", " + $u3 +", "+ $u4;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/_includes/icon-codepen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_layouts/home.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {% include page-intro.html %}
6 |
7 |
8 |
9 |
{{ content }}
10 |
11 | {% if site.posts.size > 0 %}
12 |
13 |
14 | {{ site.data.theme.t.posts | default: 'Posts' }}{% if paginator.page > 1 %}{{ site.data.theme.t.page | default: 'Page' | prepend: ' - ' | append: ' ' }}{{ paginator.page }} {{ site.data.theme.t.of | default: 'of' }} {{ paginator.total_pages }}{% endif %}
15 |
16 |
17 | {% if site.plugins contains 'jekyll-paginate' and page.paginate or site.gems contains 'jekyll-paginate' and page.paginate %}
18 | {% comment %}
19 | Add paginator.posts loop if jekyll-paginate plugin is enabled
20 | and page.paginate == true
21 | {% endcomment %}
22 | {% include posts-paginated.html %}
23 | {% else %}
24 | {% include posts-all.html %}
25 | {% endif %}
26 |
27 |
28 | {% endif %}
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/_sass/basically-basic/vendor/breakpoint/parsers/_double.scss:
--------------------------------------------------------------------------------
1 | //////////////////////////////
2 | // Import Pieces
3 | //////////////////////////////
4 | @import "double/default-pair";
5 | @import "double/double-string";
6 | @import "double/default";
7 |
8 | @function breakpoint-parse-double($feature, $empty-media, $first) {
9 | $parsed: '';
10 | $leader: '';
11 | // If we're forcing
12 | @if not ($empty-media) or not ($first) {
13 | $leader: 'and ';
14 | }
15 |
16 | $first: nth($feature, 1);
17 | $second: nth($feature, 2);
18 |
19 | // If we've got two numbers, we know we need to use the default pair because there are no media queries that has a media feature that is a number
20 | @if type-of($first) == 'number' and type-of($second) == 'number' {
21 | $parsed: breakpoint-parse-default-pair($first, $second);
22 | }
23 | // If they are both strings, we send it through the string parser
24 | @else if type-of($first) == 'string' and type-of($second) == 'string' {
25 | $parsed: breakpoint-parse-double-string($first, $second);
26 | }
27 | // If it's a string/number pair, we parse it as a normal double
28 | @else {
29 | $parsed: breakpoint-parse-double-default($first, $second);
30 | }
31 |
32 | @return $leader + $parsed;
33 | }
34 |
--------------------------------------------------------------------------------
/docs/_posts/2017-12-01-jekyll-remote-theme-support.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Jekyll Remote Theme Support Added"
3 | excerpt:
4 | last_modified_at: 2017-12-01T09:51:16-05:00
5 | tags:
6 | - Jekyll
7 | ---
8 |
9 | Basically Basic can now be installed remotely for use on GitHub Pages!
10 |
11 | The days of having to forking this repo and manually manage updates are over. Simply install the [**jekyll-remote-theme**](https://github.com/benbalter/jekyll-remote-theme) plugin by doing the following and away you go.
12 |
13 | 1. If you've previously forked this repo start by removing `_layouts`, `_includes`, `_sass`, `assets/javascripts`, and `assets/stylesheets`. Be sure to leave any files that you've customized so they override the versions bundled in the theme.
14 |
15 | 2. In your `Gemfile` replace `gem "jekyll"` with the following:
16 |
17 | ```ruby
18 | gem "github-pages", group: :jekyll_plugins
19 | gem "jekyll-remote-theme"
20 | ```
21 |
22 | 3. Run `bundle update` and verify that all gems install properly.
23 |
24 | 4. Add `remote_theme: "mmistakes/jekyll-theme-basically-basic"` to your `_config.yml` file.
25 |
26 | 5. Then add [`jekyll-remote-theme`](https://github.com/benbalter/jekyll-remote-theme) to the `plugins` (previously gems) array in your `_config.yml` file like so:
27 |
28 | ```yaml
29 | plugins:
30 | - jekyll-remote-theme
31 | ```
32 |
--------------------------------------------------------------------------------
/docs/_recipes/oatmeal-cookies.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Oatmeal Cookies"
3 | image:
4 | path: /assets/images/oatmeal-cookies-lg.jpg
5 | thumbnail: /assets/images/oatmeal-cookies-400x200.jpg
6 | caption: "Photo from [Pexels](https://www.pexels.com)"
7 | ---
8 |
9 | Oatmeal cookies are a proverbial favorite with both kids and adults. This crisp and chewy cookie is loaded with oats, dried fruit, and chopped nuts.
10 |
11 | ## Ingredients
12 |
13 | * 1 cup butter, softened 1 cup white sugar
14 | * 1 cup packed brown sugar
15 | * 2 eggs
16 | * 1 teaspoon vanilla extract
17 | * 2 cups all-purpose flour
18 | * 1 teaspoon baking soda
19 | * 1 teaspoon salt
20 | * 1 1/2 teaspoons ground cinnamon
21 | * 3 cups quick cooking oats
22 |
23 | ## Directions
24 |
25 | 1. In a medium bowl, cream together butter, white sugar, and brown sugar. Beat in eggs one at a time, then stir in vanilla. Combine flour, baking soda, salt, and cinnamon; stir into the creamed mixture. Mix in oats. Cover, and chill dough for at least one hour.
26 | 2. Preheat the oven to 375 degrees F (190 degrees C). Grease cookie sheets. Roll the dough into walnut sized balls, and place 2 inches apart on cookie sheets. Flatten each cookie with a large fork dipped in sugar.
27 | 3. Bake for 8 to 10 minutes in preheated oven. Allow cookies to cool on baking sheet for 5 minutes before transferring to a wire rack to cool completely.
28 |
--------------------------------------------------------------------------------
/docs/_posts/2012-03-14-layout-excerpt-generated.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Layout: Excerpt (Generated with Separator Tag)"
3 | excerpt_separator: ""
4 | categories:
5 | - Layout
6 | - Uncategorized
7 | tags:
8 | - content
9 | - excerpt
10 | - layout
11 | last_modified_at: 2017-03-09T12:32:16-05:00
12 | ---
13 |
14 | This is the post content. Archive-index pages should display an [auto-generated excerpt](https://jekyllrb.com/docs/posts/#post-excerpts) of all the content preceding the `excerpt_separator`, as defined in the YAML Front Matter or globally in `_config.yml`.
15 |
16 | Be sure to test the formatting of the auto-generated excerpt, to ensure that it doesn't create any layout problems.
17 |
18 |
19 |
20 | Lorem ipsum dolor sit amet, dicant nusquam corpora in usu, laudem putent fuisset ut eam. Justo accusam definitionem id cum, choro prodesset ex his. Noluisse constituto intellegebat ea mei. Timeam admodum omnesque pri ex, eos habemus suavitate aliquando cu. Dico nihil delectus quo cu. Ludus cetero cu eos, vidit invidunt dissentiet mea ne.
21 |
22 | Usu delenit vocibus elaboraret ex. Scripta sapientem adversarium ei pri, pri ex solet democritum. Nam te porro impedit, ei doctus albucius cotidieque pri, ea mutat causae lucilius has. Pri omnis errem labore ut. An aperiam tibique est, mei te dolore veritus, nam nulla feugait ut. In vis labitur eripuit contentiones.
--------------------------------------------------------------------------------
/example/_recipes/oatmeal-cookies.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Oatmeal Cookies"
3 | image:
4 | path: /assets/images/oatmeal-cookies-lg.jpg
5 | thumbnail: /assets/images/oatmeal-cookies-400x200.jpg
6 | caption: "Photo from [Pexels](https://www.pexels.com)"
7 | ---
8 |
9 | Oatmeal cookies are a proverbial favorite with both kids and adults. This crisp and chewy cookie is loaded with oats, dried fruit, and chopped nuts.
10 |
11 | ## Ingredients
12 |
13 | * 1 cup butter, softened 1 cup white sugar
14 | * 1 cup packed brown sugar
15 | * 2 eggs
16 | * 1 teaspoon vanilla extract
17 | * 2 cups all-purpose flour
18 | * 1 teaspoon baking soda
19 | * 1 teaspoon salt
20 | * 1 1/2 teaspoons ground cinnamon
21 | * 3 cups quick cooking oats
22 |
23 | ## Directions
24 |
25 | 1. In a medium bowl, cream together butter, white sugar, and brown sugar. Beat in eggs one at a time, then stir in vanilla. Combine flour, baking soda, salt, and cinnamon; stir into the creamed mixture. Mix in oats. Cover, and chill dough for at least one hour.
26 | 2. Preheat the oven to 375 degrees F (190 degrees C). Grease cookie sheets. Roll the dough into walnut sized balls, and place 2 inches apart on cookie sheets. Flatten each cookie with a large fork dipped in sugar.
27 | 3. Bake for 8 to 10 minutes in preheated oven. Allow cookies to cool on baking sheet for 5 minutes before transferring to a wire rack to cool completely.
28 |
--------------------------------------------------------------------------------
/docs/_posts/2009-05-15-edge-case-nested-and-mixed-lists.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Edge Case: Nested and Mixed Lists"
3 | categories:
4 | - Edge Case
5 | tags:
6 | - content
7 | - css
8 | - edge case
9 | - lists
10 | - markup
11 | last_modified_at: 2017-03-09T14:25:52-05:00
12 | ---
13 |
14 | Nested and mixed lists are an interesting beast. It's a corner case to make sure that lists within lists do not break the ordered list numbering order and list styles go deep enough.
15 |
16 | ## Ordered -- Unordered -- Ordered
17 |
18 | 1. ordered item
19 | 2. ordered item
20 | * **unordered**
21 | * **unordered**
22 | 1. ordered item
23 | 2. ordered item
24 | 3. ordered item
25 | 4. ordered item
26 |
27 | ## Ordered -- Unordered -- Unordered
28 |
29 | 1. ordered item
30 | 2. ordered item
31 | * **unordered**
32 | * **unordered**
33 | * unordered item
34 | * unordered item
35 | 3. ordered item
36 | 4. ordered item
37 |
38 | ## Unordered -- Ordered -- Unordered
39 |
40 | * unordered item
41 | * unordered item
42 | 1. ordered
43 | 2. ordered
44 | * unordered item
45 | * unordered item
46 | * unordered item
47 | * unordered item
48 |
49 | ## Unordered -- Unordered -- Ordered
50 |
51 | * unordered item
52 | * unordered item
53 | * unordered
54 | * unordered
55 | 1. **ordered item**
56 | 2. **ordered item**
57 | * unordered item
58 | * unordered item
--------------------------------------------------------------------------------
/example/_posts/2012-03-14-layout-excerpt-generated.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Layout: Excerpt (Generated with Separator Tag)"
3 | excerpt_separator: ""
4 | categories:
5 | - Layout
6 | - Uncategorized
7 | tags:
8 | - content
9 | - excerpt
10 | - layout
11 | last_modified_at: 2017-03-09T12:32:16-05:00
12 | ---
13 |
14 | This is the post content. Archive-index pages should display an [auto-generated excerpt](https://jekyllrb.com/docs/posts/#post-excerpts) of all the content preceding the `excerpt_separator`, as defined in the YAML Front Matter or globally in `_config.yml`.
15 |
16 | Be sure to test the formatting of the auto-generated excerpt, to ensure that it doesn't create any layout problems.
17 |
18 |
19 |
20 | Lorem ipsum dolor sit amet, dicant nusquam corpora in usu, laudem putent fuisset ut eam. Justo accusam definitionem id cum, choro prodesset ex his. Noluisse constituto intellegebat ea mei. Timeam admodum omnesque pri ex, eos habemus suavitate aliquando cu. Dico nihil delectus quo cu. Ludus cetero cu eos, vidit invidunt dissentiet mea ne.
21 |
22 | Usu delenit vocibus elaboraret ex. Scripta sapientem adversarium ei pri, pri ex solet democritum. Nam te porro impedit, ei doctus albucius cotidieque pri, ea mutat causae lucilius has. Pri omnis errem labore ut. An aperiam tibique est, mei te dolore veritus, nam nulla feugait ut. In vis labitur eripuit contentiones.
--------------------------------------------------------------------------------
/example/_posts/2009-05-15-edge-case-nested-and-mixed-lists.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Edge Case: Nested and Mixed Lists"
3 | categories:
4 | - Edge Case
5 | tags:
6 | - content
7 | - css
8 | - edge case
9 | - lists
10 | - markup
11 | last_modified_at: 2017-03-09T14:25:52-05:00
12 | ---
13 |
14 | Nested and mixed lists are an interesting beast. It's a corner case to make sure that lists within lists do not break the ordered list numbering order and list styles go deep enough.
15 |
16 | ## Ordered -- Unordered -- Ordered
17 |
18 | 1. ordered item
19 | 2. ordered item
20 | * **unordered**
21 | * **unordered**
22 | 1. ordered item
23 | 2. ordered item
24 | 3. ordered item
25 | 4. ordered item
26 |
27 | ## Ordered -- Unordered -- Unordered
28 |
29 | 1. ordered item
30 | 2. ordered item
31 | * **unordered**
32 | * **unordered**
33 | * unordered item
34 | * unordered item
35 | 3. ordered item
36 | 4. ordered item
37 |
38 | ## Unordered -- Ordered -- Unordered
39 |
40 | * unordered item
41 | * unordered item
42 | 1. ordered
43 | 2. ordered
44 | * unordered item
45 | * unordered item
46 | * unordered item
47 | * unordered item
48 |
49 | ## Unordered -- Unordered -- Ordered
50 |
51 | * unordered item
52 | * unordered item
53 | * unordered
54 | * unordered
55 | 1. **ordered item**
56 | 2. **ordered item**
57 | * unordered item
58 | * unordered item
--------------------------------------------------------------------------------
/_sass/basically-basic.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Basically Basic Jekyll Theme 1.4.5
3 | * Copyright 2017-2018 Michael Rose - mademistakes | @mmistakes
4 | * Free for personal and commercial use under the MIT license
5 | * https://github.com/mmistakes/jekyll-theme-basically-basic/blob/master/LICENSE
6 | */
7 |
8 | @import "basically-basic/functions";
9 | @import "basically-basic/variables";
10 | @import "basically-basic/mixins";
11 | @import "basically-basic/vendor/breakpoint/breakpoint";
12 | @include breakpoint-set("to ems", true);
13 | @import "basically-basic/vendor/susy/susy";
14 |
15 | /* Core CSS */
16 | @import "basically-basic/reset";
17 | @import "basically-basic/base";
18 | @import "basically-basic/layout";
19 | @import "basically-basic/tables";
20 |
21 | /* Components */
22 | @import "basically-basic/global";
23 | @import "basically-basic/sidebar";
24 | @import "basically-basic/navigation";
25 | @import "basically-basic/search";
26 | @import "basically-basic/footer";
27 | @import "basically-basic/entries";
28 | @import "basically-basic/buttons";
29 | @import "basically-basic/icons";
30 | @import "basically-basic/intro";
31 | @import "basically-basic/navicons";
32 | @import "basically-basic/contact-lists";
33 | @import "basically-basic/syntax-highlighting";
34 | @import "basically-basic/responsive-embed";
35 |
36 | /* Utility classes */
37 | @import "basically-basic/utilities";
38 |
39 | /* Print */
40 | @import "basically-basic/print";
41 |
--------------------------------------------------------------------------------
/_sass/basically-basic/_intro.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Page intro
3 | ========================================================================== */
4 |
5 | .intro {
6 | margin: 1rem 0;
7 | padding-top: 2rem;
8 | padding-bottom: 2rem;
9 | }
10 |
11 | .intro-image {
12 | position: relative;
13 | margin-top: -3rem; /* compensate for intro top margin */
14 | margin-bottom: 3rem;
15 |
16 | &::before {
17 | position: absolute;
18 | top: 0;
19 | right: 0;
20 | bottom: 0;
21 | left: 0;
22 | @if $intro-image-color-overlay == true {
23 | background-color: rgba($accent-color, 0.25);
24 | };
25 | content: '';
26 | }
27 |
28 | img {
29 | width: 100%;
30 | }
31 | }
32 |
33 | .intro-text {
34 |
35 | /* remove space after last child element */
36 | > *:last-child {
37 | margin-bottom: 0;
38 | }
39 | }
40 |
41 | .intro-title {
42 | @include fluid-type($min-vw, $max-vw, 26px, 80px);
43 | margin-bottom: 1rem;
44 | color: tint($text-color, 25%);
45 | line-height: 1;
46 | }
47 |
48 | .intro-subtitle {
49 | @include fluid-type($min-vw, $max-vw, 18px, 28px);
50 | font-style: italic;
51 | }
52 |
53 | .intro-actions {
54 | @include list-unstyled;
55 |
56 | li {
57 | display: inline-block;
58 | }
59 | }
60 |
61 | .intro-more {
62 |
63 | > p:first-child {
64 | font-size: 1.125em;
65 | line-height: 1.625;
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/_sass/basically-basic/_navigation.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Navigation
3 | ========================================================================== */
4 |
5 | .menu {
6 | @include list-unstyled;
7 |
8 | a {
9 | color: inherit;
10 | text-decoration: none;
11 | }
12 | }
13 |
14 | /*
15 | Skip links
16 | ========================================================================== */
17 |
18 | .skip-links {
19 | position: absolute;
20 | width: 100%;
21 |
22 | ul {
23 | @include list-unstyled;
24 | }
25 | }
26 |
27 | /*
28 | Paginator
29 | ========================================================================== */
30 |
31 | .pager {
32 | @include clearfix();
33 | margin-bottom: 2rem;
34 |
35 | ul {
36 | @include list-unstyled;
37 | display: -ms-flexbox;
38 | display: flex;
39 |
40 | > li {
41 | -ms-flex: 1;
42 | flex: 1;
43 | justify-content: space-between;
44 | -ms-flex-pack: justify;
45 | }
46 |
47 | li + li {
48 | margin-left: 0.125em;
49 | }
50 | }
51 |
52 | a {
53 | display: block;
54 | padding: 1em;
55 | border-radius: $border-radius;
56 | background-color: $accent-color;
57 | color: #fff;
58 | font-weight: bold;
59 | text-align: center;
60 | text-decoration: none;
61 |
62 | &:hover {
63 | background-color: tint($accent-color, 20%);
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/_includes/entry.html:
--------------------------------------------------------------------------------
1 | {% if post.id %}
2 | {% assign title = post.title | markdownify | strip_html %}
3 | {% else %}
4 | {% assign title = post.title %}
5 | {% endif %}
6 |
7 |
8 |
17 |
18 |
19 | {% if post.date %}
20 | {% include icon-calendar.svg %} {{ post.date | date: "%B %-d, %Y" }}
21 | {% endif %}
22 | {% if post.read_time %}
23 | {% include icon-stopwatch.svg %} {% capture read_time %}{% include read-time.html %}{% endcapture %}{{ read_time | strip }}
24 | {% endif %}
25 |
26 |
27 |
28 | {% if post.excerpt %}
29 | {{ post.excerpt | markdownify }}
30 |
{{ site.data.theme.t.read_more | default: 'Read More' }} {% include icon-arrow-right.svg %}
31 | {% endif %}
32 |
33 |
34 |
--------------------------------------------------------------------------------
/example/_data/theme.yml:
--------------------------------------------------------------------------------
1 | # Theme Skin
2 | skin: default # default, night, plum, sea, soft, steel
3 |
4 | # Theme Text
5 | t:
6 | skip_links: "Skip links"
7 | skip_primary_nav: "Skip to primary navigation"
8 | skip_content: "Skip to content"
9 | skip_footer: "Skip to footer"
10 | menu: "Menu"
11 | home: "Home"
12 | newer: "Newer"
13 | older: "Older"
14 | email: "Email"
15 | subscribe: "Subscribe"
16 | read_more: "Read More"
17 | posts: "Posts"
18 | page: "Page"
19 | of: "of"
20 | min_read: "min read"
21 | present: "Present"
22 | cv_awards: "Awards"
23 | cv_summary_contact: "Contact"
24 | cv_summary_contact_email: "Email"
25 | cv_summary_contact_phone: "Phone"
26 | cv_summary_contact_website: "Website"
27 | cv_location: "Location"
28 | cv_education: "Education"
29 | cv_education_courses: "Courses"
30 | cv_interests: "Interests"
31 | cv_languages: "Languages"
32 | cv_publications: "Publications"
33 | cv_references: "References"
34 | cv_skills: "Skills"
35 | cv_volunteer: "Volunteer"
36 | cv_work: "Work"
37 |
38 | # Google Fonts
39 | google_fonts:
40 | - name: "Fira Sans"
41 | weights: "400,400i,600,600i"
42 |
43 | # Link to specific internal pages in the navigation.
44 | # Create a custom list to override the default setting of including links to all
45 | # pages that have a `title`. Add raw page paths in the order you'd like.
46 |
47 | navigation_pages:
48 | - posts.md
49 | - recipes.md
50 | - about.md
51 | - cv.md
52 | - tags.md
53 | - categories.md
54 |
--------------------------------------------------------------------------------
/_layouts/tags.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | ---
4 |
5 | {{ content }}
6 |
7 |
8 | {% assign tags_max = 0 %}
9 | {% for tag in site.tags %}
10 | {% if tag[1].size > tags_max %}
11 | {% assign tags_max = tag[1].size %}
12 | {% endif %}
13 | {% endfor %}
14 | {% for i in (1..tags_max) reversed %}
15 | {% for tag in site.tags %}
16 | {% if tag[1].size == i %}
17 |
18 |
19 | {{ tag[0] }} {{ i }}
20 |
21 |
22 | {% endif %}
23 | {% endfor %}
24 | {% endfor %}
25 |
26 |
27 | {% assign tags_max = 0 %}
28 | {% for tag in site.tags %}
29 | {% if tag[1].size > tags_max %}
30 | {% assign tags_max = tag[1].size %}
31 | {% endif %}
32 | {% endfor %}
33 |
34 | {% for i in (1..tags_max) reversed %}
35 | {% for tag in site.tags %}
36 | {% if tag[1].size == i %}
37 |
46 | {% endif %}
47 | {% endfor %}
48 | {% endfor %}
49 |
--------------------------------------------------------------------------------
/assets/javascripts/lunr/lunr.store.js:
--------------------------------------------------------------------------------
1 | ---
2 | layout: null
3 | sitemap: false
4 | ---
5 |
6 | var store = [
7 | {%- for c in site.collections -%}
8 | {%- if forloop.last -%}
9 | {%- assign l = true -%}
10 | {%- endif -%}
11 | {%- assign docs = c.docs | where_exp: 'doc', 'doc.search != false' -%}
12 | {%- for doc in docs -%}
13 | {
14 | "title": {{ doc.title | jsonify }},
15 | "excerpt":
16 | {%- if site.search_full_content == true -%}
17 | {{ doc.content |
18 | replace:"", " " |
19 | replace:"", " " |
20 | replace:"", " " |
21 | replace:"", " " |
22 | replace:"", " " |
23 | replace:"", " " |
24 | replace:"", " "|
25 | strip_html | strip_newlines | jsonify }},
26 | {%- else -%}
27 | {{ doc.content |
28 | replace:"", " " |
29 | replace:"", " " |
30 | replace:"", " " |
31 | replace:"", " " |
32 | replace:"", " " |
33 | replace:"", " " |
34 | replace:"", " "|
35 | strip_html | strip_newlines | truncatewords: 50 | jsonify }},
36 | {%- endif -%}
37 | "categories": {{ doc.categories | jsonify }},
38 | "tags": {{ doc.tags | jsonify }},
39 | "url": {{ doc.url | absolute_url | jsonify }}
40 | } {%- unless forloop.last and l -%}, {%- endunless -%}
41 | {%- endfor -%}
42 | {%- endfor -%}
43 | ]
44 |
--------------------------------------------------------------------------------
/_data/theme.yml:
--------------------------------------------------------------------------------
1 | # Theme Skin
2 | skin: default # default, night, plum, sea, soft, steel
3 |
4 | # Theme Text
5 | t:
6 | skip_links: "Skip links"
7 | skip_primary_nav: "Skip to primary navigation"
8 | skip_content: "Skip to content"
9 | skip_footer: "Skip to footer"
10 | menu: "Menu"
11 | search: "Search"
12 | site_search: "Site Search"
13 | results_found: "Result(s) found"
14 | search_placeholder_text: "Enter your search term..."
15 | home: "Home"
16 | newer: "Newer"
17 | older: "Older"
18 | email: "Email"
19 | subscribe: "Subscribe"
20 | read_more: "Read More"
21 | posts: "Posts"
22 | page: "Page"
23 | of: "of"
24 | min_read: "min read"
25 | present: "Present"
26 | cv_awards: "Awards"
27 | cv_summary_contact: "Contact"
28 | cv_summary_contact_email: "Email"
29 | cv_summary_contact_phone: "Phone"
30 | cv_summary_contact_website: "Website"
31 | cv_location: "Location"
32 | cv_education: "Education"
33 | cv_education_courses: "Courses"
34 | cv_interests: "Interests"
35 | cv_languages: "Languages"
36 | cv_publications: "Publications"
37 | cv_references: "References"
38 | cv_skills: "Skills"
39 | cv_volunteer: "Volunteer"
40 | cv_work: "Work"
41 |
42 | # Google Fonts
43 | google_fonts:
44 | - name: "Fira Sans"
45 | weights: "400,400i,600,600i"
46 |
47 | # Link to specific internal pages in the navigation.
48 | # Create a custom list to override the default setting of including links to all
49 | # pages that have a `title`. Add raw page paths in the order you'd like.
50 |
51 | navigation_pages:
52 | - about.md
53 | - cv.md
54 |
--------------------------------------------------------------------------------
/_sass/basically-basic/_responsive-embed.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Responsive Embed
3 | Credit: Nicolas Gallagher and SUIT CSS.
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | ========================================================================== */
15 |
16 | .embed-responsive {
17 | display: block;
18 | position: relative;
19 | width: 100%;
20 | margin-bottom: 1.5rem;
21 | padding: 0;
22 | overflow: hidden;
23 |
24 | &::before {
25 | display: block;
26 | content: '';
27 | }
28 |
29 | .embed-responsive-item,
30 | iframe,
31 | embed,
32 | object,
33 | video {
34 | position: absolute;
35 | top: 0;
36 | bottom: 0;
37 | left: 0;
38 | width: 100%;
39 | height: 100%;
40 | border: 0;
41 | }
42 | }
43 |
44 | .embed-responsive-21by9 {
45 |
46 | &::before {
47 | padding-top: percentage(9 / 21);
48 | }
49 | }
50 |
51 | .embed-responsive-16by9 {
52 |
53 | &::before {
54 | padding-top: percentage(9 / 16);
55 | }
56 | }
57 |
58 | .embed-responsive-4by3 {
59 |
60 | &::before {
61 | padding-top: percentage(3 / 4);
62 | }
63 | }
64 |
65 | .embed-responsive-1by1 {
66 |
67 | &::before {
68 | padding-top: percentage(1 / 1);
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/_sass/basically-basic/mixins/_image.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Image Mixins
3 | - Responsive image
4 | - Retina image
5 | ========================================================================== */
6 |
7 | /*
8 | Responsive image
9 | Keep images from scaling beyond the width of their parents.
10 | ========================================================================== */
11 |
12 | @mixin img-fluid {
13 | // Part 1: Set a maximum relative to the parent
14 | max-width: 100%;
15 | // Part 2: Override the height to auto, otherwise images will be stretched
16 | // when setting a width and height attribute on the img element.
17 | height: auto;
18 | }
19 |
20 | /*
21 | Retina image
22 | Short retina mixin for setting background-image and -size.
23 | ========================================================================== */
24 |
25 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
26 | background-image: url($file-1x);
27 |
28 | // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
29 | // but doesn't convert dppx=>dpi.
30 | // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
31 | // Compatibility info: http://caniuse.com/#feat=css-media-resolution
32 | @media
33 | only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
34 | only screen and (min-resolution: 2dppx) { // Standardized
35 | background-image: url($file-2x);
36 | background-size: $width-1x $height-1x;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/docs/_data/theme.yml:
--------------------------------------------------------------------------------
1 | # Theme Skin
2 | skin: default # default, night, plum, sea, soft, steel
3 |
4 | # Theme Text
5 | t:
6 | skip_links: "Skip links"
7 | skip_primary_nav: "Skip to primary navigation"
8 | skip_content: "Skip to content"
9 | skip_footer: "Skip to footer"
10 | menu: "Menu"
11 | search: "Search"
12 | results_found: "Result(s) found"
13 | search_placeholder_text: "Enter your search term..."
14 | home: "Home"
15 | newer: "Newer"
16 | older: "Older"
17 | email: "Email"
18 | subscribe: "Subscribe"
19 | read_more: "Read More"
20 | posts: "Posts"
21 | page: "Page"
22 | of: "of"
23 | min_read: "min read"
24 | present: "Present"
25 | cv_awards: "Awards"
26 | cv_summary_contact: "Contact"
27 | cv_summary_contact_email: "Email"
28 | cv_summary_contact_phone: "Phone"
29 | cv_summary_contact_website: "Website"
30 | cv_location: "Location"
31 | cv_education: "Education"
32 | cv_education_courses: "Courses"
33 | cv_interests: "Interests"
34 | cv_languages: "Languages"
35 | cv_publications: "Publications"
36 | cv_references: "References"
37 | cv_skills: "Skills"
38 | cv_volunteer: "Volunteer"
39 | cv_work: "Work"
40 |
41 | # Google Fonts
42 | google_fonts:
43 | - name: "Fira Sans"
44 | weights: "400,400i,600,600i"
45 |
46 | # Link to specific internal pages in the navigation.
47 | # Create a custom list to override the default setting of including links to all
48 | # pages that have a `title`. Add raw page paths in the order you'd like.
49 |
50 | navigation_pages:
51 | - about.md
52 | - cv.md
53 | - recipes.md
54 | - tags.md
55 |
--------------------------------------------------------------------------------
/_includes/cv/education.html:
--------------------------------------------------------------------------------
1 | {% if cv.education %}
2 |
3 |
6 |
7 |
8 | {% for e in cv.education %}
9 | {% if e.institution %}
10 |
{{ e.institution }}
11 | {% endif %}
12 |
13 | {% if e.startDate %}
14 | {{ e.startDate }}
15 | {% endif %}
16 | {% if e.endDate == '' %}
17 | {{ site.data.theme.t.present | default: 'Present' | prepend: ' — ' }}
18 | {% else %}
19 | {{ e.endDate | prepend: ' — ' }}
20 | {% endif %}
21 |
22 | {% if e.area %}
23 |
{{ e.area }}{% if e.studyType %}{{ e.studyType | prepend: ', ' }} {% endif %} {% if e.gpa %}{{ e.gpa | prepend: ' (' | append: ' GPA)' }} {% endif %}
24 | {% endif %}
25 | {% if e.courses %}
26 |
{{ site.data.theme.t.cv_education_courses | default: 'Courses' }}
27 |
28 | {% for course in e.courses %}
29 | {{ course }}
30 | {% endfor %}
31 |
32 | {% endif %}
33 | {% endfor %}
34 |
35 |
36 | {% endif %}
37 |
--------------------------------------------------------------------------------
/_includes/cv/work.html:
--------------------------------------------------------------------------------
1 | {% if cv.work %}
2 |
3 |
6 |
7 |
8 | {% for w in cv.work %}
9 | {% if w.company %}
10 |
11 | {% if w.website %}
12 | {{ w.company }}
13 | {% else %}
14 | {{ w.company }}
15 | {% endif %}
16 |
17 | {% endif %}
18 | {% if w.position %}
19 |
{{ w.position }}
20 | {% endif %}
21 |
22 | {% if w.startDate %}
23 | {{ w.startDate }}
24 | {% endif %}
25 | {% if w.endDate == '' %}
26 | {{ site.data.theme.t.present | default: 'Present' | prepend: ' — ' }}
27 | {% else %}
28 | {{ w.endDate | prepend: ' — ' }}
29 | {% endif %}
30 |
31 | {% if w.summary %}
32 |
33 |
{{ w.summary }}
34 |
35 | {% endif %}
36 | {% if w.highlights %}
37 |
38 | {% for highlight in w.highlights %}
39 | {{ highlight }}
40 | {% endfor %}
41 |
42 | {% endif %}
43 | {% endfor %}
44 |
45 |
46 | {% endif %}
47 |
--------------------------------------------------------------------------------
/_includes/icon-pdf.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_sass/basically-basic/utilities/_align.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Alignment
3 | ========================================================================== */
4 |
5 | .align-baseline { vertical-align: baseline !important; } /* Browser default */
6 | .align-top { vertical-align: top !important; }
7 | .align-middle { vertical-align: middle !important; }
8 | .align-bottom { vertical-align: bottom !important; }
9 | .align-text-bottom { vertical-align: text-bottom !important; }
10 | .align-text-top { vertical-align: text-top !important; }
11 |
12 | /*
13 | Image Alignment
14 | ========================================================================== */
15 |
16 | .align-center,
17 | div.align-center,
18 | a img.align-center {
19 | display: block;
20 | margin-right: auto;
21 | margin-left: auto;
22 | }
23 |
24 | figure.align-center {
25 |
26 | img {
27 | display: block;
28 | margin-right: auto;
29 | margin-left: auto;
30 | }
31 |
32 | figcaption {
33 | text-align: center;
34 | }
35 | }
36 |
37 | .align-right,
38 | a img.align-right {
39 | margin-bottom: 1rem;
40 | margin-left: 1rem;
41 | float: right;
42 | }
43 |
44 | .align-left,
45 | a img.align-left {
46 | margin-right: 1rem;
47 | margin-bottom: 1rem;
48 | float: left;
49 | }
50 |
51 | /*
52 | Sidebar Pusher
53 | ========================================================================== */
54 |
55 | .is--pushed {
56 | transform: translateX(1 * $sidebar-width);
57 | transform-origin: right;
58 |
59 | @include breakpoint($large) {
60 | transform: translateX(1.5 * $sidebar-width);
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/_includes/cv/volunteer.html:
--------------------------------------------------------------------------------
1 | {% if cv.volunteer %}
2 |
3 |
6 |
7 |
8 | {% for v in cv.volunteer %}
9 | {% if v.organization %}
10 |
11 | {% if v.website %}
12 | {{ v.organization }}
13 | {% else %}
14 | {{ v.organization }}
15 | {% endif %}
16 |
17 | {% endif %}
18 | {% if v.position %}
19 |
{{ v.position }}
20 | {% endif %}
21 |
22 | {% if v.startDate %}
23 | {{ v.startDate }}
24 | {% endif %}
25 | {% if v.endDate == '' %}
26 | {{ site.data.theme.t.present | default: 'Present' | prepend: ' — ' }}
27 | {% else %}
28 | {{ v.endDate | prepend: ' — ' }}
29 | {% endif %}
30 |
31 | {% if v.summary %}
32 |
33 |
{{ v.summary }}
34 |
35 | {% endif %}
36 | {% if v.highlights %}
37 |
38 | {% for highlight in v.highlights %}
39 | {{ highlight }}
40 | {% endfor %}
41 |
42 | {% endif %}
43 | {% endfor %}
44 |
45 |
46 | {% endif %}
47 |
--------------------------------------------------------------------------------
/_layouts/categories.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | ---
4 |
5 | {{ content }}
6 |
7 |
8 | {% assign categories_max = 0 %}
9 | {% for category in site.categories %}
10 | {% if category[1].size > categories_max %}
11 | {% assign categories_max = category[1].size %}
12 | {% endif %}
13 | {% endfor %}
14 | {% for i in (1..categories_max) reversed %}
15 | {% for category in site.categories %}
16 | {% if category[1].size == i %}
17 |
18 |
19 | {{ category[0] }} {{ i }}
20 |
21 |
22 | {% endif %}
23 | {% endfor %}
24 | {% endfor %}
25 |
26 |
27 | {% assign categories_max = 0 %}
28 | {% for category in site.categories %}
29 | {% if category[1].size > categories_max %}
30 | {% assign categories_max = category[1].size %}
31 | {% endif %}
32 | {% endfor %}
33 |
34 | {% for i in (1..categories_max) reversed %}
35 | {% for category in site.categories %}
36 | {% if category[1].size == i %}
37 |
46 | {% endif %}
47 | {% endfor %}
48 | {% endfor %}
49 |
--------------------------------------------------------------------------------
/_includes/icon-instagram.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/_recipes/chocolate-chip-cookies.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Chocolate Chip Cookies"
3 | image:
4 | path: /assets/images/chocolate-chip-cookies-lg.jpg
5 | thumbnail: /assets/images/chocolate-chip-cookies-400x200.jpg
6 | caption: "Photo from [Pexels](https://www.pexels.com)"
7 | ---
8 |
9 | A chocolate chip cookie is a drop cookie that originated in the United States and features chocolate chips as its distinguishing ingredient.
10 |
11 | The traditional recipe combines a dough composed of butter and both brown and white sugar with semi-sweet chocolate chips. Variations include recipes with other types of chocolate as well as additional ingredients such as nuts or oatmeal.
12 |
13 | This recipe makes 4 dozen cookies.
14 |
15 | ## Ingredients
16 |
17 | * 2 1/4 cups all-purpose flour
18 | * 1 teaspoon baking soda
19 | * 1/2 teaspoon salt
20 | * 1 cup butter, softened and cut to pieces
21 | * 1 cup sugar
22 | * 1 cup light brown sugar, packed
23 | * 2 teaspoons vanilla extract
24 | * 2 large eggs
25 | * 2 cups semi-sweet chocolate chips
26 | * 1/2 teaspoon nutmeg (optional)
27 | * 1 cup chopped pecans or walnuts (optional)
28 |
29 | ## Directions
30 |
31 | 1. Preheat the oven to 350 F.
32 | 2. In a medium bowl, whisk flour with baking soda, nutmeg and salt.
33 | 3. In a large bowl, beat butter with sugar and brown sugar until creamy and light. Add vanilla and eggs, one at a time, and mix until incorporated.
34 | 4. Gradually add dry mixture into the butter-sugar wet blend, mixing with a spatula until combined. Add chocolate chips and nuts until just mixed.
35 | 5. Drop tablespoon-sized clumps onto un-greased cookie sheets. Bake for 8-12 minutes, or until pale brown. Allow to cool on the pan for a minute or three, then transfer cookies to a wire rack to finish cooling.
36 |
--------------------------------------------------------------------------------
/example/_recipes/chocolate-chip-cookies.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Chocolate Chip Cookies"
3 | image:
4 | path: /assets/images/chocolate-chip-cookies-lg.jpg
5 | thumbnail: /assets/images/chocolate-chip-cookies-400x200.jpg
6 | caption: "Photo from [Pexels](https://www.pexels.com)"
7 | ---
8 |
9 | A chocolate chip cookie is a drop cookie that originated in the United States and features chocolate chips as its distinguishing ingredient.
10 |
11 | The traditional recipe combines a dough composed of butter and both brown and white sugar with semi-sweet chocolate chips. Variations include recipes with other types of chocolate as well as additional ingredients such as nuts or oatmeal.
12 |
13 | This recipe makes 4 dozen cookies.
14 |
15 | ## Ingredients
16 |
17 | * 2 1/4 cups all-purpose flour
18 | * 1 teaspoon baking soda
19 | * 1/2 teaspoon salt
20 | * 1 cup butter, softened and cut to pieces
21 | * 1 cup sugar
22 | * 1 cup light brown sugar, packed
23 | * 2 teaspoons vanilla extract
24 | * 2 large eggs
25 | * 2 cups semi-sweet chocolate chips
26 | * 1/2 teaspoon nutmeg (optional)
27 | * 1 cup chopped pecans or walnuts (optional)
28 |
29 | ## Directions
30 |
31 | 1. Preheat the oven to 350 F.
32 | 2. In a medium bowl, whisk flour with baking soda, nutmeg and salt.
33 | 3. In a large bowl, beat butter with sugar and brown sugar until creamy and light. Add vanilla and eggs, one at a time, and mix until incorporated.
34 | 4. Gradually add dry mixture into the butter-sugar wet blend, mixing with a spatula until combined. Add chocolate chips and nuts until just mixed.
35 | 5. Drop tablespoon-sized clumps onto un-greased cookie sheets. Bake for 8-12 minutes, or until pale brown. Allow to cool on the pan for a minute or three, then transfer cookies to a wire rack to finish cooling.
36 |
--------------------------------------------------------------------------------
/_sass/basically-basic/vendor/susy/plugins/svg-grid/_svg-grid-math.scss:
--------------------------------------------------------------------------------
1 | // SVG Grid Math
2 | // =============
3 |
4 |
5 |
6 | // SVG Column Position
7 | // -------------------
8 | /// Determine the proper horizontal position
9 | /// for a column rectangle
10 | ///
11 | /// @access private
12 | ///
13 | /// @param {Integer} $column -
14 | /// 1-indexed column location on the grid
15 | /// @param {Map} $grid -
16 | /// Normalized settings map representing the current grid
17 | ///
18 | /// @return {Length} -
19 | /// Horizontal position of svg column rectangle,
20 | /// as distance from the grid edge
21 | @function _susy-svg-column-position(
22 | $column,
23 | $grid
24 | ) {
25 | $x: $column - 1;
26 |
27 | @if ($x > 0) {
28 | $x: susy-span(first $x wide, $grid);
29 | }
30 |
31 | @return $x;
32 | }
33 |
34 |
35 |
36 | // SVG Offset
37 | // ----------
38 | /// Determine if a grid image needs to be offset,
39 | /// to account for edge gutters.
40 | ///
41 | /// @access private
42 | ///
43 | /// @param {Map} $grid -
44 | /// Normalized settings map representing the current grid
45 | ///
46 | /// @return {Length | null} -
47 | /// Expected distance from container edge to first column,
48 | /// based on spread values and gutter-widths
49 | @function _susy-svg-offset(
50 | $grid
51 | ) {
52 | $columns: su-valid-columns(map-get($grid, 'columns'));
53 | $gutters: su-valid-gutters(map-get($grid, 'gutters'));
54 | $container: su-valid-spread(map-get($grid, 'container-spread')) + 1;
55 |
56 | @if ($container == 0) {
57 | @return null;
58 | }
59 |
60 | $gutter: su-call('su-gutter', $grid);
61 |
62 | @if (type-of($gutter) == 'string') {
63 | @return 'calc(#{$container} * #{$gutter} / 2)';
64 | }
65 |
66 | @return $container * $gutter / 2;
67 | }
68 |
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {% if site.plugins contains 'jekyll-seo-tag' or site.gems contains 'jekyll-seo-tag' %}
7 | {% comment %}
8 | Add metadata for search engines and social networks if jekyll-seo-tag plugin is enabled
9 | {% endcomment %}
10 | {% include head-seo.html %}
11 | {% else %}
12 |
{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}
13 |
14 |
15 | {% endif %}
16 |
17 |
23 |
24 |
25 | {% if site.data.theme.google_fonts %}
26 |
27 | {% endif %}
28 |
29 | {% if site.plugins contains 'jekyll-feed' or site.gems contains 'jekyll-feed'%}
30 | {% comment %}
31 | Add Atom feed link if jekyll-feed plugin is enabled
32 | {% endcomment %}
33 | {% include head-feed.html %}
34 | {% endif %}
35 |
36 |
--------------------------------------------------------------------------------
/_includes/search/algolia-search-scripts.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
53 |
--------------------------------------------------------------------------------
/_includes/page-intro.html:
--------------------------------------------------------------------------------
1 |
2 | {% if page.image %}
3 | {% assign intro_image = page.image.path | default: page.image | relative_url | escape %}
4 |
5 |
6 |
7 | {% endif %}
8 |
9 |
10 |
11 |
{{ page.alt_title | default: page.title | default: site.title | markdownify | strip_html }}
12 | {% if page.sub_title %}
13 |
{{ page.sub_title | markdownify | strip_html }}
14 | {% endif %}
15 |
16 | {% if page.date %}
17 | {% include author %}
18 |
19 | {% if author_name %}{{ author_name | prepend: 'by ' }} {% endif %}{% include icon-calendar.svg %} {{ page.date | date: "%B %-d, %Y" }} {% if page.read_time %} {% include icon-stopwatch.svg %} {% capture read_time %}{% include read-time.html %}{% endcapture %}{{ read_time | strip }} {% endif %}
20 |
21 | {% endif %}
22 |
23 | {% if page.introduction %}
24 |
25 | {{ page.introduction | markdownify }}
26 |
27 | {% endif %}
28 |
29 | {% if page.actions %}
30 |
35 | {% endif %}
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/_sass/basically-basic/vendor/breakpoint/parsers/resolution/_resolution.scss:
--------------------------------------------------------------------------------
1 | @function breakpoint-make-resolutions($resolution) {
2 | $length: length($resolution);
3 |
4 | $output: ();
5 |
6 | @if $length == 2 {
7 | $feature: '';
8 | $value: '';
9 |
10 | // Find which is number
11 | @if type-of(nth($resolution, 1)) == 'number' {
12 | $value: nth($resolution, 1);
13 | }
14 | @else {
15 | $value: nth($resolution, 2);
16 | }
17 |
18 | // Determine min/max/standard
19 | @if index($resolution, 'min-resolution') {
20 | $feature: 'min-';
21 | }
22 | @else if index($resolution, 'max-resolution') {
23 | $feature: 'max-';
24 | }
25 |
26 | $standard: '(#{$feature}resolution: #{$value})';
27 |
28 | // If we're not dealing with dppx,
29 | @if unit($value) != 'dppx' {
30 | $base: 96dpi;
31 | @if unit($value) == 'dpcm' {
32 | $base: 243.84dpcm;
33 | }
34 | // Write out feature tests
35 | $webkit: '';
36 | $moz: '';
37 | $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})';
38 | $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})';
39 | // Append to output
40 | $output: append($output, $standard, space);
41 | $output: append($output, $webkit, space);
42 | $output: append($output, $moz, space);
43 | }
44 | @else {
45 | $webkit: '';
46 | $moz: '';
47 | $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})';
48 | $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})';
49 | $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})';
50 | // Append to output
51 | $output: append($output, $standard, space);
52 | $output: append($output, $webkit, space);
53 | $output: append($output, $moz, space);
54 | $output: append($output, $fallback, space);
55 | }
56 |
57 | }
58 |
59 | @return $output;
60 | }
61 |
--------------------------------------------------------------------------------
/assets/javascripts/lunr/lunr.ja.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n
--------------------------------------------------------------------------------
/_sass/basically-basic/vendor/breakpoint/_settings.scss:
--------------------------------------------------------------------------------
1 | //////////////////////////////
2 | // Has Setting
3 | //////////////////////////////
4 | @function breakpoint-has($setting) {
5 | @if map-has-key($breakpoint, $setting) {
6 | @return true;
7 | }
8 | @else {
9 | @return false;
10 | }
11 | }
12 |
13 | //////////////////////////////
14 | // Get Settings
15 | //////////////////////////////
16 | @function breakpoint-get($setting) {
17 | @if breakpoint-has($setting) {
18 | @return map-get($breakpoint, $setting);
19 | }
20 | @else {
21 | @return map-get($Breakpoint-Settings, $setting);
22 | }
23 | }
24 |
25 | //////////////////////////////
26 | // Set Settings
27 | //////////////////////////////
28 | @function breakpoint-set($setting, $value) {
29 | @if (str-index($setting, '-') or str-index($setting, '_')) and str-index($setting, ' ') == null {
30 | @warn "Words in Breakpoint settings should be separated by spaces, not dashes or underscores. Please replace dashes and underscores between words with spaces. Settings will not work as expected until changed.";
31 | }
32 | $breakpoint: map-merge($breakpoint, ($setting: $value)) !global;
33 | @return true;
34 | }
35 |
36 | @mixin breakpoint-change($setting, $value) {
37 | $breakpoint-change: breakpoint-set($setting, $value);
38 | }
39 |
40 | @mixin breakpoint-set($setting, $value) {
41 | @include breakpoint-change($setting, $value);
42 | }
43 |
44 | @mixin bkpt-change($setting, $value) {
45 | @include breakpoint-change($setting, $value);
46 | }
47 | @mixin bkpt-set($setting, $value) {
48 | @include breakpoint-change($setting, $value);
49 | }
50 |
51 | //////////////////////////////
52 | // Remove Setting
53 | //////////////////////////////
54 | @function breakpoint-reset($settings...) {
55 | @if length($settings) == 1 {
56 | $settings: nth($settings, 1);
57 | }
58 |
59 | @each $setting in $settings {
60 | $breakpoint: map-remove($breakpoint, $setting) !global;
61 | }
62 | @return true;
63 | }
64 |
65 | @mixin breakpoint-reset($settings...) {
66 | $breakpoint-reset: breakpoint-reset($settings);
67 | }
68 |
69 | @mixin bkpt-reset($settings...) {
70 | $breakpoint-reset: breakpoint-reset($settings);
71 | }
--------------------------------------------------------------------------------
/Rakefile:
--------------------------------------------------------------------------------
1 | require "bundler/gem_tasks"
2 | require "jekyll"
3 | require "listen"
4 |
5 | def listen_ignore_paths(base, options)
6 | [
7 | /_config\.ya?ml/,
8 | /_site/,
9 | /\.jekyll-metadata/
10 | ]
11 | end
12 |
13 | def listen_handler(base, options)
14 | site = Jekyll::Site.new(options)
15 | Jekyll::Command.process_site(site)
16 | proc do |modified, added, removed|
17 | t = Time.now
18 | c = modified + added + removed
19 | n = c.length
20 | relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s }
21 | print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ")
22 | begin
23 | Jekyll::Command.process_site(site)
24 | puts "regenerated in #{Time.now - t} seconds."
25 | rescue => e
26 | puts "error:"
27 | Jekyll.logger.warn "Error:", e.message
28 | Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
29 | end
30 | end
31 | end
32 |
33 | task :preview do
34 | base = Pathname.new('.').expand_path
35 | options = {
36 | "source" => base.join('example').to_s,
37 | "destination" => base.join('example/_site').to_s,
38 | "force_polling" => false,
39 | "serving" => true,
40 | "theme" => "jekyll-theme-basically-basic"
41 | }
42 |
43 | options = Jekyll.configuration(options)
44 |
45 | ENV["LISTEN_GEM_DEBUGGING"] = "1"
46 | listener = Listen.to(
47 | base.join("_includes"),
48 | base.join("_layouts"),
49 | base.join("_sass"),
50 | base.join("assets"),
51 | options["source"],
52 | :ignore => listen_ignore_paths(base, options),
53 | :force_polling => options['force_polling'],
54 | &(listen_handler(base, options))
55 | )
56 |
57 | begin
58 | listener.start
59 | Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'"
60 |
61 | unless options['serving']
62 | trap("INT") do
63 | listener.stop
64 | puts " Halting auto-regeneration."
65 | exit 0
66 | end
67 |
68 | loop { sleep 1000 }
69 | end
70 | rescue ThreadError
71 | # You pressed Ctrl-C, oh my!
72 | end
73 |
74 | Jekyll::Commands::Serve.process(options)
75 | end
--------------------------------------------------------------------------------
/assets/javascripts/lunr/lunr.jp.min.js:
--------------------------------------------------------------------------------
1 | !function (e, r) { "function" == typeof define && define.amd ? define(r) : "object" == typeof exports ? module.exports = r() : r()(e.lunr) }(this, function () { return function (e) { if (void 0 === e) throw new Error("Lunr is not present. Please include / require Lunr before this script."); if (void 0 === e.stemmerSupport) throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script."); var r = "2" == e.version[0]; e.ja = function () { this.pipeline.reset(), this.pipeline.add(e.ja.trimmer, e.ja.stopWordFilter, e.ja.stemmer), r ? this.tokenizer = e.ja.tokenizer : (e.tokenizer && (e.tokenizer = e.ja.tokenizer), this.tokenizerFn && (this.tokenizerFn = e.ja.tokenizer)) }; var t = new e.TinySegmenter; e.ja.tokenizer = function (i) { var n, o, s, p, a, u, m, l, c, f; if (!arguments.length || null == i || void 0 == i) return []; if (Array.isArray(i)) return i.map(function (t) { return r ? new e.Token(t.toLowerCase()) : t.toLowerCase() }); for (o = i.toString().toLowerCase().replace(/^\s+/, ""), n = o.length - 1; n >= 0; n--)if (/\S/.test(o.charAt(n))) { o = o.substring(0, n + 1); break } for (a = [], s = o.length, c = 0, l = 0; c <= s; c++)if (u = o.charAt(c), m = c - l, u.match(/\s/) || c == s) { if (m > 0) for (p = t.segment(o.slice(l, c)).filter(function (e) { return !!e }), f = l, n = 0; n < p.length; n++)r ? a.push(new e.Token(p[n], { position: [f, p[n].length], index: a.length })) : a.push(p[n]), f += p[n].length; l = c + 1 } return a }, e.ja.stemmer = function () { return function (e) { return e } }(), e.Pipeline.registerFunction(e.ja.stemmer, "stemmer-ja"), e.ja.wordCharacters = "一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Za-zA-Z0-90-9", e.ja.trimmer = e.trimmerSupport.generateTrimmer(e.ja.wordCharacters), e.Pipeline.registerFunction(e.ja.trimmer, "trimmer-ja"), e.ja.stopWordFilter = e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")), e.Pipeline.registerFunction(e.ja.stopWordFilter, "stopWordFilter-ja"), e.jp = e.ja, e.Pipeline.registerFunction(e.jp.stemmer, "stemmer-jp"), e.Pipeline.registerFunction(e.jp.trimmer, "trimmer-jp"), e.Pipeline.registerFunction(e.jp.stopWordFilter, "stopWordFilter-jp") } });
2 |
--------------------------------------------------------------------------------
/_sass/basically-basic/_search.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | SEARCH
3 | ========================================================================== */
4 |
5 | .search-toggle {
6 | margin-left: 1rem;
7 | margin-right: 1rem;
8 | border: 0;
9 | outline: none;
10 | background-color: transparent;
11 | cursor: pointer;
12 | -webkit-transition: 0.2s;
13 | transition: 0.2s;
14 |
15 | .icon {
16 | @include fluid-type($min-vw, $max-vw, 20px, 24px);
17 | fill: $navicon-content-bg;
18 | }
19 | }
20 |
21 | .search-content {
22 | display: none;
23 | visibility: hidden;
24 | padding-top: 1em;
25 | padding-bottom: 1em;
26 |
27 | .inner {
28 | padding: 0 0.5rem;
29 |
30 | @include breakpoint($small) {
31 | padding-right: 1rem;
32 | padding-left: 1rem;
33 | }
34 |
35 | @include breakpoint($medium) {
36 | padding-right: 2rem;
37 | padding-left: 2rem;
38 | }
39 |
40 | @include breakpoint($large) {
41 | padding-right: 3rem;
42 | padding-left: 3rem;
43 | }
44 |
45 | @include breakpoint($xlarge) {
46 | padding-right: 4rem;
47 | padding-left: 4rem;
48 | }
49 | }
50 |
51 | .entry-excerpt {
52 | p {
53 | margin-bottom: 0;
54 | }
55 | }
56 |
57 | .search-input {
58 | display: block;
59 | margin-bottom: 0;
60 | padding: 0;
61 | border: none;
62 | outline: none;
63 | -webkit-box-shadow: none;
64 | box-shadow: none;
65 | background-color: transparent;
66 | @include fluid-type($min-vw, $max-vw, 24px, 32px);
67 | }
68 |
69 | &.is--visible::after {
70 | content: "";
71 | display: block;
72 | }
73 |
74 | .results-found {
75 | margin-top: 0.5em;
76 | }
77 | }
78 |
79 | /* Algolia search */
80 |
81 | .ais-hits {
82 | .entry {
83 | border-bottom: 1px solid $border-color;
84 | }
85 | }
86 |
87 | .ais-search-box {
88 | max-width: 100% !important;
89 | margin-bottom: 2em;
90 | }
91 |
92 | .entry-title .ais-Highlight {
93 | color: $accent-color;
94 | font-style: normal;
95 | text-decoration: underline;
96 | }
97 | .entry-excerpt .ais-Highlight {
98 | color: $accent-color;
99 | font-style: normal;
100 | font-weight: bold;
101 | }
102 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 | {% include head.html %}
10 |
11 |
12 |
13 | {% include skip-links.html %}
14 |
15 |
32 |
33 |
39 |
40 |
41 |
42 | {% include masthead.html %}
43 |
44 | {{ content }}
45 |
46 |
47 |
48 | {% include search-form.html %}
49 |
50 |
51 |
52 |
53 | {% include footer.html %}
54 | {% include scripts.html %}
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/_sass/basically-basic/_base.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Base elements
3 | ========================================================================== */
4 |
5 | html {
6 | @include fluid-type($min-vw, $max-vw, $min-font-size, $max-font-size);
7 | }
8 |
9 | body {
10 | background: $background-color;
11 | color: $text-color;
12 | }
13 |
14 | blockquote,
15 | q {
16 | color: tint($text-color, 40%);
17 | font-style: italic;
18 |
19 | cite {
20 | font-size: 80%;
21 | font-style: normal;
22 | font-weight: bold;
23 |
24 | &::before {
25 | padding-right: 0.25rem;
26 | content: '\2014';
27 | }
28 | }
29 | }
30 |
31 | code,
32 | kbd,
33 | samp,
34 | pre {
35 | font-family: $monospace-font-family;
36 | }
37 |
38 | kbd {
39 | display: inline-block;
40 | margin: 0 0.125em;
41 | padding: 0.125em 0.5em;
42 | border: 1px solid rgb(204, 204, 204);
43 | border-radius: 3px;
44 | background-color: rgb(247, 247, 247);
45 | text-shadow: 0 1px 0 #fff;
46 | box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25), inset 0 0 0 2px #fff;
47 | }
48 |
49 | h1,
50 | h2,
51 | h3,
52 | h4,
53 | h5,
54 | h6 {
55 | font-family: $headline-font-family;
56 | text-rendering: optimizeLegibility; /* enable common ligatures and kerning */
57 | }
58 |
59 | h1 {
60 | @include fluid-type($min-vw, $max-vw, $h1-min, $h1-max);
61 | }
62 |
63 | h2 {
64 | @include fluid-type($min-vw, $max-vw, $h2-min, $h2-max);
65 | }
66 |
67 | h3 {
68 | @include fluid-type($min-vw, $max-vw, $h3-min, $h3-max);
69 | }
70 |
71 | h4 {
72 | @include fluid-type($min-vw, $max-vw, $h4-min, $h4-max);
73 | }
74 |
75 | h5 {
76 | @include fluid-type($min-vw, $max-vw, $h5-min, $h5-max);
77 | }
78 |
79 | h6 {
80 | @include fluid-type($min-vw, $max-vw, $h6-min, $h6-max);
81 | }
82 |
83 | dt {
84 | font-weight: bold;
85 |
86 | &:not(:first-child) {
87 | margin-top: 1rem;
88 | }
89 | }
90 |
91 | dd {
92 | margin: 0;
93 | }
94 |
95 | pre {
96 | @include fluid-type($min-vw, $max-vw, 12px, 14px);
97 | }
98 |
99 | figcaption {
100 | margin: 0.5rem 0;
101 | font-size: 80%;
102 | }
103 |
104 | a {
105 | color: $accent-color;
106 |
107 | &:hover {
108 | color: shade($accent-color, 25%);
109 | }
110 | }
111 |
112 | // *:focus {
113 | // border-color: $accent-color;
114 | // outline: none;
115 | // box-shadow: 0 0 10px $accent-color;
116 | // }
117 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Bug Report"
3 | about: "Is something not working as expected?"
4 | ---
5 |
6 |
19 |
20 | ## Environment
21 |
22 |
31 |
32 | - Basically Basic version:
33 | - Ruby gem or remote theme version:
34 | - Jekyll version:
35 | - Git repository URL:
36 | - GitHub Pages hosted (if yes provide URL to site):
37 | - Operating system:
38 |
39 | ## Expected behavior
40 |
41 |
45 |
46 | ## Steps to reproduce the behavior
47 |
48 |
62 |
63 | ## Other
64 |
65 |
69 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Welcome to Jekyll!
2 | #
3 | # This config file is meant for settings that affect your whole blog, values
4 | # which you are expected to set up once and rarely edit after that. If you find
5 | # yourself editing this file very often, consider using Jekyll's data files
6 | # feature for the data you need to update frequently.
7 | #
8 | # For technical reasons, this file is *NOT* reloaded automatically when you use
9 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10 |
11 | # Site settings
12 | # These are used to personalize your new site. If you look in the HTML files,
13 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
14 | # You can create any custom variable you would like, and they will be accessible
15 | # in the templates via {{ site.myvariable }}.
16 | lang: en-US
17 | title: My Awesome Site
18 | email:
19 | description:
20 | baseurl: # the optional subpath of your site, e.g. "/blog"
21 | url: # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
22 | author:
23 | name:
24 | twitter:
25 | picture:
26 | twitter_username:
27 | github_username:
28 | logo: # path of site logo, e.g. "/assets/images/logo.png"
29 | search: # true, false (default)
30 | search_full_content: false # true, false (default)
31 | search_provider: # lunr (default), algolia
32 | algolia:
33 | application_id: # YOUR_APPLICATION_ID
34 | index_name: # YOUR_INDEX_NAME
35 | search_only_api_key: # YOUR_SEARCH_ONLY_API_KEY
36 | powered_by: # true (default), false
37 |
38 | # Build settings
39 | markdown: kramdown
40 | theme: jekyll-theme-basically-basic
41 | plugins: # previsously gems
42 | - jekyll-feed
43 | - jekyll-seo-tag
44 | - jekyll-sitemap
45 | - jekyll-paginate
46 | feed:
47 | path: atom.xml
48 |
49 | # Pagination - https://jekyllrb.com/docs/pagination/
50 | paginate: 10
51 | paginate_path: /page:num/
52 |
53 | # Exclude from processing.
54 | exclude:
55 | - .asset-cache
56 | - .bundle
57 | - .codeclimate.yml
58 | - .editorconfig
59 | - .gitattributes
60 | - .jekyll-assets-cache
61 | - .sass-cache
62 | - .scss-lint.yml
63 | - CHANGELOG
64 | - Gemfile
65 | - Gemfile.lock
66 | - LICENSE
67 | - node_modules
68 | - Rakefile
69 | - README
70 | - vendor/bundle/
71 | - vendor/cache/
72 | - vendor/gems/
73 | - vendor/ruby/
74 | - /docs # ignore Basically Basic sample site
75 | - /example # ignore Basically Basic dev site
76 |
77 | # Front Matter Defaults
78 | defaults:
79 | # _posts
80 | - scope:
81 | path: "_posts"
82 | type: posts
83 | values:
84 | layout: post
85 | read_time: true
86 |
--------------------------------------------------------------------------------
/assets/javascripts/main.js:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 | /*!
5 | * Basically Basic Jekyll Theme 1.4.5
6 | * Copyright 2017-2018 Michael Rose - mademistakes | @mmistakes
7 | * Free for personal and commercial use under the MIT license
8 | * https://github.com/mmistakes/jekyll-theme-basically-basic/blob/master/LICENSE
9 | */
10 |
11 | var menuItems = document.querySelectorAll('#sidebar li');
12 |
13 | // Get vendor transition property
14 | var docElemStyle = document.documentElement.style;
15 | var transitionProp = typeof docElemStyle.transition == 'string' ?
16 | 'transition' : 'WebkitTransition';
17 |
18 | // Animate sidebar menu items
19 | function animateMenuItems() {
20 | for (var i = 0; i < menuItems.length; i++) {
21 | var item = menuItems[i];
22 | // Stagger transition with transitionDelay
23 | item.style[transitionProp + 'Delay'] = (i * 75) + 'ms';
24 | item.classList.toggle('is--moved');
25 | }
26 | };
27 |
28 | var myWrapper = document.querySelector('.wrapper');
29 | var myMenu = document.querySelector('.sidebar');
30 | var myToggle = document.querySelector('.toggle');
31 | var myInitialContent = document.querySelector('.initial-content');
32 | var mySearchContent = document.querySelector('.search-content');
33 | var mySearchToggle = document.querySelector('.search-toggle');
34 |
35 | // Toggle sidebar visibility
36 | function toggleClassMenu() {
37 | myMenu.classList.add('is--animatable');
38 | if (!myMenu.classList.contains('is--visible')) {
39 | myMenu.classList.add('is--visible');
40 | myToggle.classList.add('open');
41 | myWrapper.classList.add('is--pushed');
42 | } else {
43 | myMenu.classList.remove('is--visible');
44 | myToggle.classList.remove('open');
45 | myWrapper.classList.remove('is--pushed');
46 | }
47 | }
48 |
49 | // Animation smoother
50 | function OnTransitionEnd() {
51 | myMenu.classList.remove('is--animatable');
52 | }
53 |
54 | myMenu.addEventListener('transitionend', OnTransitionEnd, false);
55 | myToggle.addEventListener('click', function () {
56 | toggleClassMenu();
57 | animateMenuItems();
58 | }, false);
59 | myMenu.addEventListener('click', function () {
60 | toggleClassMenu();
61 | animateMenuItems();
62 | }, false);
63 | if (mySearchToggle) {
64 | mySearchToggle.addEventListener('click', function () {
65 | toggleClassSearch();
66 | }, false);
67 | }
68 |
69 | // Toggle search input and content visibility
70 | function toggleClassSearch() {
71 | mySearchContent.classList.toggle('is--visible');
72 | myInitialContent.classList.toggle('is--hidden');
73 | setTimeout(function () {
74 | document.querySelector('.search-content input').focus();
75 | }, 400);
76 | }
77 |
--------------------------------------------------------------------------------
/example/_config.yml:
--------------------------------------------------------------------------------
1 | # Welcome to Jekyll!
2 | #
3 | # This config file is meant for settings that affect your whole blog, values
4 | # which you are expected to set up once and rarely edit after that. If you find
5 | # yourself editing this file very often, consider using Jekyll's data files
6 | # feature for the data you need to update frequently.
7 | #
8 | # For technical reasons, this file is *NOT* reloaded automatically when you use
9 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10 |
11 | # Site settings
12 | # These are used to personalize your new site. If you look in the HTML files,
13 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
14 | # You can create any custom variable you would like, and they will be accessible
15 | # in the templates via {{ site.myvariable }}.
16 | lang: en-US
17 | title: Basically Basic
18 | email: dugan.nash@mailinator.com
19 | description: "Your new default Jekyll theme"
20 | baseurl: "/example" # the subpath of your site, e.g. /blog
21 | url: "" # the base hostname & protocol for your site, e.g. http://example.com
22 | author:
23 | name: Dugan Nash
24 | twitter: Towlette_Pettetucci
25 | picture: /assets/images/johndoe.png
26 | twitter_username: Towlette_Pettetucci
27 | github_username: Towlette_Pettetucci
28 | logo: /assets/icons/basically-basic-logo-light.svg
29 | search: true
30 | search_full_content: true
31 | search_provider: algolia
32 | algolia:
33 | application_id: QB6HVGBSBA
34 | index_name: basically-basic
35 | search_only_api_key: 9d5014e5bbc77372547bce778dfa5663
36 | powered_by: # true (default), false
37 |
38 | # Liquid
39 | liquid:
40 | error_mode: strict
41 |
42 | # Build settings
43 | markdown: kramdown
44 | theme: jekyll-theme-basically-basic
45 | plugins: # previously gems
46 | - jekyll-feed
47 | - jekyll-seo-tag
48 | - jekyll-sitemap
49 | - jekyll-paginate
50 | feed:
51 | path: atom.xml
52 |
53 | # Pagination - https://jekyllrb.com/docs/pagination/
54 | paginate: 10
55 | paginate_path: /page:num/
56 |
57 | # Exclude from processing.
58 | # The following items will not be processed, by default. Create a custom list
59 | # to override the default setting.
60 | # exclude:
61 | # - Gemfile
62 | # - Gemfile.lock
63 | # - node_modules
64 | # - vendor/bundle/
65 | # - vendor/cache/
66 | # - vendor/gems/
67 | # - vendor/ruby/
68 |
69 | # Collections
70 | collections:
71 | recipes:
72 | output: true
73 | permalink: /:collection/:path/
74 |
75 | # Front Matter Defaults
76 | defaults:
77 | # _posts
78 | - scope:
79 | path: "_posts"
80 | type: posts
81 | values:
82 | layout: post
83 | read_time: true
84 | # _recipes
85 | - scope:
86 | path: "_recipes"
87 | type: recipes
88 | values:
89 | layout: post
90 | read_time: true
91 |
--------------------------------------------------------------------------------
/_includes/cv/basics.html:
--------------------------------------------------------------------------------
1 | {% if cv.basics.summary %}
2 |
3 | {{ cv.basics.summary | markdownify }}
4 |
5 | {% endif %}
6 |
7 |
8 |
11 |
12 |
13 | {% if cv.basics.email %}
14 |
15 | {% endif %}
16 | {% if cv.basics.phone %}
17 |
{{ site.data.theme.t.cv_summary_contact_phone | default: 'Phone' }} {{ cv.basics.phone }}
18 | {% endif %}
19 | {% if cv.basics.website %}
20 |
21 | {% endif %}
22 | {% if cv.basics.profiles %}
23 | {% for p in cv.basics.profiles %}
24 |
25 | {% if p.network %}
26 |
{{ p.network | append: ' ' }}
27 | {% endif %}
28 | {% if p.username %}
29 |
30 | {% unless p.url == '' or p.url == nil %}
31 | {{ p.username }}
32 | {% else %}
33 | {{ p.username }}
34 | {% endunless %}
35 |
36 | {% endif %}
37 |
38 | {% endfor %}
39 | {% endif %}
40 |
41 |
42 |
43 | {% if cv.basics.location %}
44 |
45 |
48 |
49 |
50 |
51 | {% if cv.basics.location.address %}
52 | {{ cv.basics.location.address }}
53 | {% endif %}
54 | {% if cv.basics.location.city %}
55 | {{ cv.basics.location.city | append: ', ' }}
56 | {% endif %}
57 | {% if cv.basics.location.region %}
58 | {{ cv.basics.location.region | append: ' ' }}
59 | {% endif %}
60 | {% if cv.basics.location.postalCode %}
61 | {{ cv.basics.location.postalCode | append: ' ' }}
62 | {% endif %}
63 | {% if cv.basics.location.countryCode %}
64 | {{ cv.basics.location.countryCode }}
65 | {% endif %}
66 |
67 |
68 |
69 | {% endif %}
--------------------------------------------------------------------------------
/_sass/basically-basic/_global.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Site-wide
3 | ========================================================================== */
4 |
5 | .site-title {
6 | @include fluid-type($min-vw, $max-vw, 20px, 24px);
7 | margin: 0;
8 | padding: 1.8125rem 1rem;
9 | padding-right: calc(
10 | 10vw + (2 * #{$navicon-width})
11 | ); /* make room for sidebar toggle */
12 | font-family: $base-font-family;
13 | font-weight: bold;
14 | line-height: 1;
15 |
16 | @include breakpoint($medium) {
17 | padding-left: 2rem;
18 | }
19 |
20 | @include breakpoint($large) {
21 | padding-left: 5vw;
22 | }
23 |
24 | a {
25 | display: -ms-flexbox;
26 | display: -webkit-box;
27 | display: flex;
28 | -ms-flex-align: center;
29 | -webkit-box-align: center;
30 | align-items: center;
31 | min-height: $site-image-height;
32 | color: $text-color;
33 | text-decoration: none;
34 | }
35 | }
36 |
37 | .site-logo {
38 | width: $site-image-width;
39 | height: $site-image-height;
40 | margin-right: 0.5rem;
41 | border-radius: 50%;
42 | }
43 |
44 | .more-link {
45 | font-weight: bold;
46 | text-decoration: none;
47 | }
48 |
49 | .back-to-top {
50 | display: block;
51 | color: lighten($text-color, 50%);
52 | font-size: 0.75em;
53 | text-transform: uppercase;
54 | text-align: right;
55 | text-decoration: none;
56 | }
57 |
58 | .taxonomy-section {
59 | margin-bottom: 2em;
60 | padding-bottom: 1em;
61 |
62 | &:not(:last-child) {
63 | border-bottom: solid 1px $border-color;
64 | }
65 |
66 | + .taxonomy-section {
67 | margin-top: 2em;
68 | }
69 | }
70 |
71 | .taxonomy-title {
72 | @include fluid-type($min-vw, $max-vw, 28px, 32px);
73 | margin-bottom: 0.5em;
74 | color: lighten($text-color, 60%);
75 | font-family: $base-font-family;
76 | }
77 |
78 | .taxonomy-count {
79 | color: lighten($text-color, 50%);
80 | }
81 |
82 | .taxonomy-index {
83 | display: grid;
84 | grid-column-gap: 2em;
85 | grid-template-columns: repeat(2, 1fr);
86 | margin: 0;
87 | padding: 0;
88 | font-family: $base-font-family;
89 | font-size: 0.9em;
90 | list-style: none;
91 |
92 | @include breakpoint($large) {
93 | grid-template-columns: repeat(3, 1fr);
94 | }
95 |
96 | a {
97 | display: -webkit-box;
98 | display: -ms-flexbox;
99 | display: flex;
100 | padding: 0.25em 0;
101 | -webkit-box-pack: justify;
102 | -ms-flex-pack: justify;
103 | justify-content: space-between;
104 | color: inherit;
105 | text-decoration: none;
106 | border-bottom: 1px solid $border-color;
107 |
108 | &:hover {
109 | color: $accent-color;
110 | }
111 | }
112 |
113 | + .taxonomy-section {
114 | margin-top: 3em;
115 | }
116 | }
117 |
--------------------------------------------------------------------------------