├── index.md ├── assets ├── css │ └── style.scss └── default-icon.png ├── .gitignore ├── Gemfile ├── screenshot.png ├── _sass ├── _layout.scss ├── _layout-footer.scss ├── _layout-home.scss ├── leaf.scss ├── _layout-post.scss ├── _layout-header.scss ├── _highlight-dark.scss └── _base.scss ├── _layouts ├── page.html ├── default.html ├── home.html └── post.html ├── contact.md ├── about.md ├── _config.yml ├── _includes ├── head.html ├── google-analytics.html ├── hyvor-talk-comments.html ├── header.html └── footer.html ├── jekyll-theme-leaf.gemspec ├── LICENSE.txt ├── _posts ├── 2020-02-25-welcome-to-jekyll.md └── 2020-02-24-markdown.md └── README.md /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: home 3 | --- -------------------------------------------------------------------------------- /assets/css/style.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | @import "leaf"; -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | .bundle 3 | .sass-cache 4 | _site 5 | Gemfile.lock 6 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | source "https://rubygems.org" 4 | gemspec 5 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/supun-io/jekyll-theme-leaf/HEAD/screenshot.png -------------------------------------------------------------------------------- /assets/default-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/supun-io/jekyll-theme-leaf/HEAD/assets/default-icon.png -------------------------------------------------------------------------------- /_sass/_layout.scss: -------------------------------------------------------------------------------- 1 | @import 'layout-post'; 2 | @import 'layout-header'; 3 | @import 'layout-home'; 4 | @import 'layout-footer'; -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 | 6 |
7 |

{{ page.title | escape }}

8 |
9 | 10 |
11 | {{ content }} 12 |
13 | 14 |
-------------------------------------------------------------------------------- /contact.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Contact 3 | layout: page 4 | --- 5 | 6 | You can always contact the creator of this theme via [Twitter](https://twitter.com/_SupunKavinda). 7 | 8 | If you need help with Jekyll, ask questions on [Jekyll Talk](https://talk.jekyllrb.com/). 9 | 10 | (Change this by editing `contact.md` file) -------------------------------------------------------------------------------- /about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About 3 | layout: page 4 | --- 5 | 6 | Hey! This is the "Leaf" Jekyll theme created by Supun Kavinda. 7 | 8 | You can find the source code of this theme at Github 9 | 10 | (Change this by editing `about.md` file) -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | title: Leaf Blog 2 | iconURL: assets/default-icon.png 3 | theme: jekyll-theme-leaf 4 | 5 | # for a clean URL 6 | permalink: :slug 7 | 8 | social: 9 | twitter: _SupunKavinda 10 | github: SupunKavinda 11 | 12 | plugins: 13 | - jekyll-feed 14 | - jekyll-seo-tag 15 | 16 | ### comments & analytics 17 | hyvor_talk_website_id: 14 18 | google_analytics: UA-NNNNNNNN-N -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {%- include head.html -%} 5 | 6 | 7 | 8 | {%- include header.html -%} 9 | 10 |
11 |
12 | {{ content }} 13 |
14 |
15 | 16 | {%- include footer.html -%} 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /_includes/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {%- seo -%} 6 | 7 | {%- feed_meta -%} 8 | {%- if jekyll.environment == 'production' and site.google_analytics -%} 9 | {%- include google-analytics.html -%} 10 | {%- endif -%} 11 | 12 | -------------------------------------------------------------------------------- /_sass/_layout-footer.scss: -------------------------------------------------------------------------------- 1 | .site-footer { 2 | .footer { 3 | display:flex; 4 | padding:15px; 5 | padding-bottom:40px; 6 | } 7 | } 8 | 9 | .footer-title { 10 | flex:1; 11 | } 12 | 13 | .footer-social-links { 14 | svg { 15 | width:20px; 16 | height:20px; 17 | fill: $theme-color; 18 | } 19 | a { 20 | &:not(:first-child) { 21 | margin-left:6px; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /_includes/google-analytics.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /_sass/_layout-home.scss: -------------------------------------------------------------------------------- 1 | .home-box { 2 | padding:0; 3 | overflow:hidden; 4 | .post-link { 5 | color: inherit; 6 | display:block; 7 | padding: $spacing-unit; 8 | transition: .3s background-color; 9 | &:not(:last-child) { 10 | border-bottom:1px solid $header-color; 11 | } 12 | &:hover { 13 | text-decoration: none; 14 | background-color: $header-color; 15 | } 16 | h3 { 17 | margin:0; 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /_layouts/home.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 | 7 | {{ content }} 8 | 9 | {% assign posts = site.posts %} 10 | 11 | 12 | {%- if posts.size > 0 -%} 13 | {%- if page.list_title -%} 14 |

{{ page.list_title }}

15 | {%- endif -%} 16 |
17 |
18 | {%- for post in posts -%} 19 | 20 |

{{ post.title | escape }}

21 |
22 | {%- endfor -%} 23 |
24 |
25 | 26 | {%- endif -%} 27 | 28 |
29 | -------------------------------------------------------------------------------- /_includes/hyvor-talk-comments.html: -------------------------------------------------------------------------------- 1 |
2 | 19 | -------------------------------------------------------------------------------- /jekyll-theme-leaf.gemspec: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | Gem::Specification.new do |spec| 4 | spec.name = "jekyll-theme-leaf" 5 | spec.version = "0.1.0" 6 | spec.authors = ["Supun Kavinda"] 7 | spec.email = ["supunkavinda1125@gmail.com"] 8 | 9 | spec.summary = "Minimal yet beautiful Jekyll theme for dark background lovers." 10 | spec.homepage = "https://github.com/SupunKavinda/jekyll-theme-leaf" 11 | spec.license = "MIT" 12 | 13 | spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r!^(assets|_layouts|_includes|_sass|LICENSE|README)!i) } 14 | 15 | spec.add_runtime_dependency "jekyll", "~> 3.8" 16 | spec.add_runtime_dependency "jekyll-feed", "~> 0.9" 17 | spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.1" 18 | 19 | spec.add_development_dependency "bundler", "~> 2.1.4" 20 | spec.add_development_dependency "rake", "~> 12.0" 21 | end 22 | -------------------------------------------------------------------------------- /_sass/leaf.scss: -------------------------------------------------------------------------------- 1 | $base-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Segoe UI Symbol", "Segoe UI Emoji", "Apple Color Emoji", Roboto, Helvetica, Arial, sans-serif !default; 2 | $code-font-family: "Menlo", "Inconsolata", "Consolas", "Roboto Mono", "Ubuntu Mono", "Liberation Mono", "Courier New", monospace; 3 | $base-font-size: 16px !default; 4 | $base-font-weight: 400 !default; 5 | $base-font-color: #e0e0e0; 6 | $small-font-size: $base-font-size * 0.875 !default; 7 | $base-line-height: 1.5 !default; 8 | 9 | $theme-color: #86bb48; 10 | $header-color: #0f0f0f; 11 | 12 | $spacing-unit: 30px !default; 13 | 14 | $content-width: 850px !default; 15 | $content-color: #272726; 16 | 17 | // devices 18 | $on-mobile: 600px !default; 19 | $on-laptop: 800px !default; 20 | 21 | // mixins 22 | @mixin relative-font-size($ratio) { 23 | font-size: #{$ratio}rem; 24 | } 25 | @mixin media-query($device) { 26 | @media screen and (max-width: $device) { 27 | @content; 28 | } 29 | } 30 | 31 | @import 'base'; 32 | @import 'layout'; 33 | @import 'highlight-dark'; -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020 Supun Kavinda 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /_posts/2020-02-25-welcome-to-jekyll.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | author: Supun Kavinda 4 | --- 5 | You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. 6 | 7 | To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works. 8 | 9 | Jekyll also offers powerful support for code snippets: 10 | 11 | {% highlight ruby %} 12 | def print_hi(name) 13 | puts "Hi, #{name}" 14 | end 15 | print_hi('Tom') 16 | #=> prints 'Hi, Tom' to STDOUT. 17 | {% endhighlight %} 18 | 19 | Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. 20 | 21 | 22 | [jekyll-docs]: http://jekyllrb.com/docs/home 23 | [jekyll-gh]: https://github.com/jekyll/jekyll 24 | [jekyll-talk]: https://talk.jekyllrb.com/ 25 | -------------------------------------------------------------------------------- /_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 | 6 |
7 |

{{ page.title | escape }}

8 |
9 | 10 |
11 | {{ content }} 12 |
13 | 14 |

15 | {%- assign date_format = site.minima.date_format | default: "%b %-d, %Y" -%} 16 | {%- if page.modified_date -%} 17 | {%- assign mdate = page.modified_date | date_to_xmlschema -%} 18 | 21 | {%- else -%} 22 | 25 | {%- endif -%} 26 | {%- if page.author -%} 27 | • {% for author in page.author %} 28 | 30 | {%- if forloop.last == false %}, {% endif -%} 31 | {% endfor %} 32 | {%- endif -%} 33 |

34 | 35 | 36 | 37 |
38 | 39 | 40 | {%- if site.hyvor_talk_website_id -%} 41 |
42 | {%- include hyvor-talk-comments.html -%} 43 |
44 | {%- endif -%} 45 | 46 | 47 | -------------------------------------------------------------------------------- /_sass/_layout-post.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Posts 3 | */ 4 | .post-header { 5 | margin-bottom: $spacing-unit; 6 | } 7 | 8 | .post-title, 9 | .post-content h1 { 10 | @include relative-font-size(2.625); 11 | letter-spacing: -1px; 12 | line-height: 1.15; 13 | 14 | @media screen and (min-width: $on-laptop) { 15 | @include relative-font-size(2.625); 16 | } 17 | } 18 | 19 | .post-content { 20 | h1, h2, h3 { margin-top: $spacing-unit } 21 | h4, h5, h6 { margin-top: $spacing-unit } 22 | 23 | h2 { 24 | @include relative-font-size(1.75); 25 | 26 | @media screen and (min-width: $on-laptop) { 27 | @include relative-font-size(2); 28 | } 29 | } 30 | 31 | h3 { 32 | @include relative-font-size(1.375); 33 | 34 | @media screen and (min-width: $on-laptop) { 35 | @include relative-font-size(1.625); 36 | } 37 | } 38 | 39 | h4 { 40 | @include relative-font-size(1.25); 41 | } 42 | 43 | h5 { 44 | @include relative-font-size(1.125); 45 | } 46 | h6 { 47 | @include relative-font-size(1.0625); 48 | } 49 | } 50 | 51 | 52 | article, .comments, .box { 53 | padding: $spacing-unit; 54 | background: $content-color; 55 | border-radius: 20px; 56 | box-shadow: 0 0 40px rgba(0,0,0,0.5); 57 | margin: 25px 0; 58 | @include media-query($on-mobile) { 59 | padding: 0; 60 | background: transparent; 61 | box-shadow: none; 62 | } 63 | } 64 | .comments { 65 | @media screen and (min-width: $on-mobile) { 66 | padding:15px $spacing-unit; 67 | } 68 | } 69 | 70 | .page-content { 71 | margin-top: 80px; 72 | } -------------------------------------------------------------------------------- /_includes/header.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_sass/_layout-header.scss: -------------------------------------------------------------------------------- 1 | .site-header { 2 | position: fixed; 3 | top:0; 4 | left:0; 5 | width:100%; 6 | height:60px; 7 | display: flex; 8 | align-items: center; 9 | background-color:$header-color; 10 | border-bottom:2px solid $theme-color; 11 | padding-left:20px; 12 | font-weight: 600; 13 | } 14 | 15 | .site-title { 16 | @include relative-font-size(1.625); 17 | letter-spacing: -1px; 18 | margin-bottom: 0; 19 | float: left; 20 | 21 | &:hover { 22 | text-decoration: none; 23 | } 24 | 25 | @include media-query($on-mobile) { 26 | padding-right: 45px; 27 | } 28 | } 29 | 30 | .site-icon { 31 | position: absolute; 32 | left: 50%; 33 | top: 100%; 34 | margin-top: -47px; 35 | width: 70px; 36 | height: 70px; 37 | padding: 14px; 38 | background: $content-color; 39 | border-radius: 50%; 40 | @include media-query($on-mobile) { 41 | width: 50px; 42 | height: 50px; 43 | margin-top: -25px; 44 | } 45 | } 46 | 47 | .site-nav { 48 | position: absolute; 49 | top: 9px; 50 | right: $spacing-unit / 2; 51 | border-radius: 5px; 52 | text-align: right; 53 | 54 | .nav-trigger { 55 | display: none; 56 | } 57 | 58 | .menu-icon { 59 | float: right; 60 | width: 36px; 61 | height: 26px; 62 | line-height: 0; 63 | padding-top: 10px; 64 | text-align: center; 65 | 66 | > svg path { 67 | fill: $theme-color; 68 | } 69 | } 70 | 71 | label[for="nav-trigger"] { 72 | display: block; 73 | float: right; 74 | width: 36px; 75 | height: 36px; 76 | z-index: 2; 77 | cursor: pointer; 78 | } 79 | 80 | input ~ .trigger { 81 | clear: both; 82 | display: none; 83 | } 84 | 85 | input:checked ~ .trigger { 86 | display: block; 87 | background:$header-color; 88 | border-radius:20px; 89 | padding:10px; 90 | } 91 | 92 | .page-link { 93 | display: block; 94 | padding: 5px 10px; 95 | 96 | // Gaps between nav items, but not on the last one 97 | &:not(:last-child) { 98 | margin-right: 0; 99 | } 100 | 101 | &:hover { 102 | text-decoration: none; 103 | } 104 | 105 | } 106 | 107 | @media screen and (min-width: $on-laptop) { 108 | flex:1; 109 | position: static; 110 | float: right; 111 | border: none; 112 | background-color: inherit; 113 | height:100%; 114 | 115 | label[for="nav-trigger"] { 116 | display: none; 117 | } 118 | 119 | .menu-icon { 120 | display: none; 121 | } 122 | 123 | input ~ .trigger { 124 | display: block; 125 | height:100%; 126 | } 127 | 128 | .page-link { 129 | display: inline-flex; 130 | align-items:center; 131 | height:100%; 132 | &.active { 133 | background-color:$theme-color; 134 | color:$header-color; 135 | } 136 | } 137 | } 138 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # jekyll-theme-leaf 2 | 3 | 👇👇 4 | 5 | [Preview Theme](https://supunkavinda.github.io/jekyll-theme-leaf/) 6 | 7 | Jekyll Theme Leaf is a very simple yet beautiful theme created by [Supun Kavinda](https://twitter.com/_SupunKavinda). It is designed for those who love dark sites. 8 | 9 | ![Screenshot](https://i.imgur.com/fBiCIuL.png) 10 | 11 | ## Installation 12 | 13 | Add this line to your Jekyll site's `Gemfile`: 14 | 15 | ```ruby 16 | gem "jekyll-theme-leaf" 17 | ``` 18 | 19 | And add this line to your Jekyll site's `_config.yml`: 20 | 21 | ```yaml 22 | theme: jekyll-theme-leaf 23 | ``` 24 | 25 | And then execute: 26 | 27 | $ bundle 28 | 29 | Or install it yourself as: 30 | 31 | $ gem install jekyll-theme-leaf 32 | 33 | ## Usage 34 | 35 | ### Layouts 36 | 37 | Refers to files within the `_layouts` directory, that define the markup for your theme. 38 | 39 | * `default.html` - The base markup of all other layouts. 40 | * `home.html` - Home or index page layout. 41 | * `page.html` - Page layout (These are not listed as posts). 42 | * `posts.html` - Posts layout. These are listed in the home directory. 43 | 44 | ### Includes 45 | 46 | These are the files within the `_includes` directory. 47 | 48 | * `footer.html` - Markup for the footer. It's a minimal footer with the site title and twitter and github links. 49 | * `google-analytics.html` - Contains the [Google Analytics](https://analytics.google.com/analytics/web/) code. 50 | * `head.html` - Contains the HTML code for the ``. 51 | * `header.html` - The header/top navigation bar of the site. 52 | * `hyvor-talk-comments.html` - [Hyvor Talk](https://talk.hyvor.com) installation code with a customized color palette. 53 | 54 | ### Sass 55 | 56 | * `leaf.scss` - The main SCSS file. Contains several variables and mixins. 57 | * `_base.scss` - Primary styles 58 | * `_highlight-dark.scss` - Code highlighting 59 | * `_layout.scss` - Layout SCSS files 60 | * `_layout_header.scss` - Styles of the header (`_includes/header.html`) 61 | * `_layout_home.scss` - Styles of the home (`_layouts/home.html`) 62 | * `_layout-post.scss` - Styles of the post and page layouts (`_layouts/posts.html`, `_layouts/page.html`) 63 | 64 | ### Assets 65 | 66 | * `assets/css/style.css` - Imports `_sass/leaf.scss`. 67 | * `assets/default-icon.png` - The leaf icon. 68 | 69 | ### Plugins 70 | 71 | Leaf Jekyll theme uses two plugins by default. 72 | 73 | * `jekyll-seo-tag` - For better SEO 74 | * `jekyll-feed` - For RSS feed 75 | 76 | ## Configuration 77 | 78 | Here's the basic `_config.yml` file of this plugin. 79 | 80 | ```yaml 81 | title: Leaf Blog 82 | iconURL: assets/default-icon.png 83 | theme: jekyll-theme-leaf 84 | 85 | permalink: :slug 86 | 87 | social: 88 | twitter: YOUR_TWITTER 89 | github: YOUR_GITHUB 90 | 91 | plugins: 92 | - jekyll-feed 93 | - jekyll-seo-tag 94 | 95 | ### comments & analytics 96 | hyvor_talk_website_id: YOUR_WEBSITE_ID 97 | google_analytics: UA-NNNNNNNN-N 98 | ``` 99 | 100 | ### Adding Comments 101 | 102 | The Leaf Jekyll theme uses [Hyvor Talk](https://talk.hyvor.com) comments. The colors are customized based for the theme therefore you don't need to customize colors in the console. 103 | 104 | * First, [login to the Hyvor Talk console](https://talk.hyvor.com/console) 105 | * Register your website 106 | * Get your website ID from the **General** section of the console. 107 | * Then, replace `YOUR_WEBSITE_ID` in the above code in `_config.yml` with your code. 108 | 109 | Ex: 110 | 111 | ```yaml 112 | hyvor_talk_website_id: 14 113 | ``` 114 | 115 | ### Adding Google Analytics 116 | 117 | * Sign up to [Google Analytics](https://analytics.google.com) 118 | * Add your website and get the tracking ID. 119 | * Replace `UA-NNNNNNNN-N` with your tracking ID. 120 | 121 | Google Analytics will only appear in production. 122 | 123 | ## Contributing 124 | 125 | Bug reports and pull requests are welcome on GitHub at https://github.com/SupunKavinda/jekyll-theme-leaf. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. 126 | 127 | ## Development 128 | 129 | To set up your environment to develop this theme, run `bundle install`. 130 | 131 | Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal. 132 | 133 | When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled. 134 | To add a custom directory to your theme-gem, please edit the regexp in `leaf.gemspec` accordingly. 135 | 136 | ## License 137 | 138 | The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). 139 | 140 | -------------------------------------------------------------------------------- /_posts/2020-02-24-markdown.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | author: Supun Kavinda 4 | title: Styling with Markdown 5 | --- 6 | 7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit. 8 | 9 | ![800x600](https://i.picsum.photos/id/688/800/600.jpg) 10 | 11 | ## Some great heading (h2) 12 | 13 | Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu. 14 | 15 | Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est. 16 | 17 | ## Another great heading (h2) 18 | 19 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit. 20 | 21 | ### Some great subheading (h3) 22 | 23 | Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. 24 | 25 | Phasellus et hendrerit mauris. Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. 26 | 27 | ### Some great subheading (h3) 28 | 29 | Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est. 30 | 31 | > This quote will change your life. It will reveal the secrets of the universe, and all the wonders of humanity. Don't misuse it. 32 | 33 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum neque eget nunc mattis eu sollicitudin enim tincidunt. 34 | 35 | ### Some great subheading (h3) 36 | 37 | Vestibulum lacus tortor, ultricies id dignissim ac, bibendum in velit. Proin convallis mi ac felis pharetra aliquam. Curabitur dignissim accumsan rutrum. 38 | 39 | ```html 40 | 41 | 42 | 43 | 44 |

Hello, World!

45 | 46 | 47 | ``` 48 | 49 | 50 | In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. 51 | 52 | #### You might want a sub-subheading (h4) 53 | 54 | In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. 55 | 56 | In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. 57 | 58 | #### But it's probably overkill (h4) 59 | 60 | In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. 61 | 62 | ##### Could be a smaller sub-heading, `pacman` (h5) 63 | 64 | In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. 65 | 66 | ###### Small yet significant sub-heading (h6) 67 | 68 | In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. 69 | 70 | ### Oh hai, an unordered list!! 71 | 72 | In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. 73 | 74 | - First item, yo 75 | - Second item, dawg 76 | - Third item, what what?! 77 | - Fourth item, fo sheezy my neezy 78 | 79 | ### Oh hai, an ordered list!! 80 | 81 | In arcu magna, aliquet vel pretium et, molestie et arcu. Mauris lobortis nulla et felis ullamcorper bibendum. Phasellus et hendrerit mauris. 82 | 83 | 1. First item, yo 84 | 2. Second item, dawg 85 | 3. Third item, what what?! 86 | 4. Fourth item, fo sheezy my neezy 87 | 88 | 89 | 90 | ## Headings are cool! (h2) 91 | 92 | Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. Praesent varius interdum vehicula. Aenean risus libero, placerat at vestibulum eget, ultricies eu enim. Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est. 93 | 94 | Praesent nulla tortor, malesuada adipiscing adipiscing sollicitudin, adipiscing eget est. 95 | 96 | Proin eget nibh a massa vestibulum pretium. Suspendisse eu nisl a ante aliquet bibendum quis a nunc. 97 | 98 | ### Tables 99 | 100 | Title 1 | Title 2 | Title 3 | Title 4 101 | --------------------- | --------------------- | --------------------- | --------------------- 102 | lorem | lorem ipsum | lorem ipsum dolor | lorem ipsum dolor sit 103 | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit 104 | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit 105 | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit | lorem ipsum dolor sit 106 | 107 | 108 | Title 1 | Title 2 | Title 3 | Title 4 109 | --- | --- | --- | --- 110 | lorem | lorem ipsum | lorem ipsum dolor | lorem ipsum dolor sit 111 | lorem ipsum dolor sit amet | lorem ipsum dolor sit amet consectetur | lorem ipsum dolor sit amet | lorem ipsum dolor sit 112 | lorem ipsum dolor | lorem ipsum | lorem | lorem ipsum 113 | lorem ipsum dolor | lorem ipsum dolor sit | lorem ipsum dolor sit amet | lorem ipsum dolor sit amet consectetur -------------------------------------------------------------------------------- /_sass/_highlight-dark.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | // Solarized skin 4 | // ============== 5 | // Created by Sander Voerman using the Solarized 6 | // color scheme by Ethan Schoonover . 7 | 8 | // This style sheet implements two options for the minima.skin setting: 9 | // "solarized" for light mode and "solarized-dark" for dark mode. 10 | $sol-is-dark: true !default; 11 | 12 | 13 | // Color scheme 14 | // ------------ 15 | // The inline comments show the canonical L*a*b values for each color. 16 | 17 | $sol-base03: #002b36; // 15 -12 -12 18 | $sol-base02: #073642; // 20 -12 -12 19 | $sol-base01: #586e75; // 45 -07 -07 20 | $sol-base00: #657b83; // 50 -07 -07 21 | $sol-base0: #839496; // 60 -06 -03 22 | $sol-base1: #93a1a1; // 65 -05 -02 23 | $sol-base2: #eee8d5; // 92 -00 10 24 | $sol-base3: #fdf6e3; // 97 00 10 25 | $sol-yellow: #b58900; // 60 10 65 26 | $sol-orange: #cb4b16; // 50 50 55 27 | $sol-red: #dc322f; // 50 65 45 28 | $sol-magenta: #d33682; // 50 65 -05 29 | $sol-violet: #6c71c4; // 50 15 -45 30 | $sol-blue: #268bd2; // 55 -10 -45 31 | $sol-cyan: #2aa198; // 60 -35 -05 32 | $sol-green: #859900; // 60 -20 65 33 | 34 | $sol-mono3: $sol-base3; 35 | $sol-mono2: $sol-base2; 36 | $sol-mono1: $sol-base1; 37 | $sol-mono00: $sol-base00; 38 | $sol-mono01: $sol-base01; 39 | 40 | @if $sol-is-dark { 41 | $sol-mono3: $sol-base03; 42 | $sol-mono2: $sol-base02; 43 | $sol-mono1: $sol-base01; 44 | $sol-mono00: $sol-base0; 45 | $sol-mono01: $sol-base1; 46 | } 47 | 48 | 49 | // Minima color variables 50 | // ---------------------- 51 | 52 | $brand-color: $sol-mono1 !default; 53 | $brand-color-light: mix($sol-mono1, $sol-mono3) !default; 54 | $brand-color-dark: $sol-mono00 !default; 55 | 56 | $text-color: $sol-mono01 !default; 57 | $background-color: $sol-mono3 !default; 58 | $code-background-color: $sol-mono2 !default; 59 | 60 | $link-base-color: $sol-blue !default; 61 | $link-visited-color: mix($sol-blue, $sol-mono00) !default; 62 | 63 | $table-text-color: $sol-mono00 !default; 64 | $table-zebra-color: mix($sol-mono2, $sol-mono3) !default; 65 | $table-header-bg-color: $sol-mono2 !default; 66 | $table-header-border: $sol-mono1 !default; 67 | $table-border-color: $sol-mono1 !default; 68 | 69 | 70 | // Syntax highlighting styles 71 | // -------------------------- 72 | 73 | .highlight { 74 | .c { color: $sol-mono1; font-style: italic } // Comment 75 | .err { color: $sol-red } // Error 76 | .k { color: $sol-mono01; font-weight: bold } // Keyword 77 | .o { color: $sol-mono01; font-weight: bold } // Operator 78 | .cm { color: $sol-mono1; font-style: italic } // Comment.Multiline 79 | .cp { color: $sol-mono1; font-weight: bold } // Comment.Preproc 80 | .c1 { color: $sol-mono1; font-style: italic } // Comment.Single 81 | .cs { color: $sol-mono1; font-weight: bold; font-style: italic } // Comment.Special 82 | .gd { color: $sol-red } // Generic.Deleted 83 | .gd .x { color: $sol-red } // Generic.Deleted.Specific 84 | .ge { color: $sol-mono00; font-style: italic } // Generic.Emph 85 | .gr { color: $sol-red } // Generic.Error 86 | .gh { color: $sol-mono1 } // Generic.Heading 87 | .gi { color: $sol-green } // Generic.Inserted 88 | .gi .x { color: $sol-green } // Generic.Inserted.Specific 89 | .go { color: $sol-mono00 } // Generic.Output 90 | .gp { color: $sol-mono00 } // Generic.Prompt 91 | .gs { color: $sol-mono01; font-weight: bold } // Generic.Strong 92 | .gu { color: $sol-mono1 } // Generic.Subheading 93 | .gt { color: $sol-red } // Generic.Traceback 94 | .kc { color: $sol-mono01; font-weight: bold } // Keyword.Constant 95 | .kd { color: $sol-mono01; font-weight: bold } // Keyword.Declaration 96 | .kp { color: $sol-mono01; font-weight: bold } // Keyword.Pseudo 97 | .kr { color: $sol-mono01; font-weight: bold } // Keyword.Reserved 98 | .kt { color: $sol-violet; font-weight: bold } // Keyword.Type 99 | .m { color: $sol-cyan } // Literal.Number 100 | .s { color: $sol-magenta } // Literal.String 101 | .na { color: $sol-cyan } // Name.Attribute 102 | .nb { color: $sol-blue } // Name.Builtin 103 | .nc { color: $sol-violet; font-weight: bold } // Name.Class 104 | .no { color: $sol-cyan } // Name.Constant 105 | .ni { color: $sol-violet } // Name.Entity 106 | .ne { color: $sol-violet; font-weight: bold } // Name.Exception 107 | .nf { color: $sol-blue; font-weight: bold } // Name.Function 108 | .nn { color: $sol-mono00 } // Name.Namespace 109 | .nt { color: $sol-blue } // Name.Tag 110 | .nv { color: $sol-cyan } // Name.Variable 111 | .ow { color: $sol-mono01; font-weight: bold } // Operator.Word 112 | .w { color: $sol-mono1 } // Text.Whitespace 113 | .mf { color: $sol-cyan } // Literal.Number.Float 114 | .mh { color: $sol-cyan } // Literal.Number.Hex 115 | .mi { color: $sol-cyan } // Literal.Number.Integer 116 | .mo { color: $sol-cyan } // Literal.Number.Oct 117 | .sb { color: $sol-magenta } // Literal.String.Backtick 118 | .sc { color: $sol-magenta } // Literal.String.Char 119 | .sd { color: $sol-magenta } // Literal.String.Doc 120 | .s2 { color: $sol-magenta } // Literal.String.Double 121 | .se { color: $sol-magenta } // Literal.String.Escape 122 | .sh { color: $sol-magenta } // Literal.String.Heredoc 123 | .si { color: $sol-magenta } // Literal.String.Interpol 124 | .sx { color: $sol-magenta } // Literal.String.Other 125 | .sr { color: $sol-green } // Literal.String.Regex 126 | .s1 { color: $sol-magenta } // Literal.String.Single 127 | .ss { color: $sol-magenta } // Literal.String.Symbol 128 | .bp { color: $sol-mono1 } // Name.Builtin.Pseudo 129 | .vc { color: $sol-cyan } // Name.Variable.Class 130 | .vg { color: $sol-cyan } // Name.Variable.Global 131 | .vi { color: $sol-cyan } // Name.Variable.Instance 132 | .il { color: $sol-cyan } // Literal.Number.Integer.Long 133 | } 134 | -------------------------------------------------------------------------------- /_sass/_base.scss: -------------------------------------------------------------------------------- 1 | // reset 2 | body, h1, h2, h3, h4, h5, h6, 3 | p, blockquote, pre, hr, 4 | dl, dd, ol, ul, figure { 5 | margin: 0; 6 | padding: 0; 7 | } 8 | 9 | * { 10 | box-sizing: border-box; 11 | } 12 | 13 | body { 14 | 15 | 16 | // background style 17 | background-color: #454545; 18 | // from svgbackgrounds.com 19 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3Cdefs%3E%3CradialGradient id='a' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%23000000'/%3E%3Cstop offset='1' stop-color='%23454545'/%3E%3C/radialGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='0' y1='750' x2='1550' y2='750'%3E%3Cstop offset='0' stop-color='%23232323'/%3E%3Cstop offset='1' stop-color='%23454545'/%3E%3C/linearGradient%3E%3Cpath id='s' fill='url(%23b)' d='M1549.2 51.6c-5.4 99.1-20.2 197.6-44.2 293.6c-24.1 96-57.4 189.4-99.3 278.6c-41.9 89.2-92.4 174.1-150.3 253.3c-58 79.2-123.4 152.6-195.1 219c-71.7 66.4-149.6 125.8-232.2 177.2c-82.7 51.4-170.1 94.7-260.7 129.1c-90.6 34.4-184.4 60-279.5 76.3C192.6 1495 96.1 1502 0 1500c96.1-2.1 191.8-13.3 285.4-33.6c93.6-20.2 185-49.5 272.5-87.2c87.6-37.7 171.3-83.8 249.6-137.3c78.4-53.5 151.5-114.5 217.9-181.7c66.5-67.2 126.4-140.7 178.6-218.9c52.3-78.3 96.9-161.4 133-247.9c36.1-86.5 63.8-176.2 82.6-267.6c18.8-91.4 28.6-184.4 29.6-277.4c0.3-27.6 23.2-48.7 50.8-48.4s49.5 21.8 49.2 49.5c0 0.7 0 1.3-0.1 2L1549.2 51.6z'/%3E%3Cg id='g'%3E%3Cuse href='%23s' transform='scale(0.12) rotate(60)'/%3E%3Cuse href='%23s' transform='scale(0.2) rotate(10)'/%3E%3Cuse href='%23s' transform='scale(0.25) rotate(40)'/%3E%3Cuse href='%23s' transform='scale(0.3) rotate(-20)'/%3E%3Cuse href='%23s' transform='scale(0.4) rotate(-30)'/%3E%3Cuse href='%23s' transform='scale(0.5) rotate(20)'/%3E%3Cuse href='%23s' transform='scale(0.6) rotate(60)'/%3E%3Cuse href='%23s' transform='scale(0.7) rotate(10)'/%3E%3Cuse href='%23s' transform='scale(0.835) rotate(-40)'/%3E%3Cuse href='%23s' transform='scale(0.9) rotate(40)'/%3E%3Cuse href='%23s' transform='scale(1.05) rotate(25)'/%3E%3Cuse href='%23s' transform='scale(1.2) rotate(8)'/%3E%3Cuse href='%23s' transform='scale(1.333) rotate(-60)'/%3E%3Cuse href='%23s' transform='scale(1.45) rotate(-30)'/%3E%3Cuse href='%23s' transform='scale(1.6) rotate(10)'/%3E%3C/g%3E%3C/defs%3E%3Cg %3E%3Cg transform=''%3E%3Ccircle fill='url(%23a)' r='3000'/%3E%3Cg opacity='0.5'%3E%3Ccircle fill='url(%23a)' r='2000'/%3E%3Ccircle fill='url(%23a)' r='1800'/%3E%3Ccircle fill='url(%23a)' r='1700'/%3E%3Ccircle fill='url(%23a)' r='1651'/%3E%3Ccircle fill='url(%23a)' r='1450'/%3E%3Ccircle fill='url(%23a)' r='1250'/%3E%3Ccircle fill='url(%23a)' r='1175'/%3E%3Ccircle fill='url(%23a)' r='900'/%3E%3Ccircle fill='url(%23a)' r='750'/%3E%3Ccircle fill='url(%23a)' r='500'/%3E%3Ccircle fill='url(%23a)' r='380'/%3E%3Ccircle fill='url(%23a)' r='250'/%3E%3C/g%3E%3Cg transform='rotate(-129.6 0 0)'%3E%3Cuse href='%23g' transform='rotate(10)'/%3E%3Cuse href='%23g' transform='rotate(120)'/%3E%3Cuse href='%23g' transform='rotate(240)'/%3E%3C/g%3E%3Ccircle fill-opacity='0.87' fill='url(%23a)' r='3000'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); 20 | background-attachment: fixed; 21 | background-size: cover; 22 | background-repeat: no-repeat; 23 | 24 | // display 25 | display: flex; 26 | min-height: 100vh; 27 | flex-direction: column; 28 | overflow-wrap: break-word; 29 | 30 | // font 31 | font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family; 32 | color:$base-font-color; 33 | -webkit-text-size-adjust: 100%; 34 | -webkit-font-feature-settings: "kern" 1; 35 | -moz-font-feature-settings: "kern" 1; 36 | -o-font-feature-settings: "kern" 1; 37 | font-feature-settings: "kern" 1; 38 | font-kerning: normal; 39 | 40 | } 41 | 42 | // block elements - bottom margin 43 | h1, h2, h3, h4, h5, h6, 44 | p, blockquote, pre, 45 | ul, ol, dl, figure, 46 | %vertical-rhythm { 47 | margin-bottom: $spacing-unit / 2; 48 | } 49 | 50 | // wrapper 51 | .wrapper { 52 | max-width: calc(#{$content-width} - (#{$spacing-unit})); 53 | margin-right: auto; 54 | margin-left: auto; 55 | padding-right: $spacing-unit / 2; 56 | padding-left: $spacing-unit / 2; 57 | @extend %clearfix; 58 | 59 | @media screen and (min-width: $on-laptop) { 60 | max-width: calc(#{$content-width} - (#{$spacing-unit} * 2)); 61 | padding-right: $spacing-unit; 62 | padding-left: $spacing-unit; 63 | } 64 | } 65 | 66 | %clearfix:after { 67 | content: ""; 68 | display: table; 69 | clear: both; 70 | } 71 | 72 | // code 73 | pre, 74 | code { 75 | font-family: $code-font-family; 76 | font-size: 0.9375em; 77 | border-radius: 3px; 78 | } 79 | 80 | code { 81 | padding: 1px 5px; 82 | } 83 | 84 | pre { 85 | padding: 8px 12px; 86 | overflow-x: auto; 87 | padding: 20px; 88 | background: $header-color; 89 | border-radius: 20px; 90 | 91 | > code { 92 | border: 0; 93 | padding-right: 0; 94 | padding-left: 0; 95 | } 96 | } 97 | 98 | hr { 99 | margin-top: $spacing-unit; 100 | margin-bottom: $spacing-unit; 101 | } 102 | 103 | main { 104 | display: block; // IE fix 105 | } 106 | 107 | // images 108 | img { 109 | max-width: 100%; 110 | vertical-align: middle; 111 | } 112 | 113 | p { 114 | img:first-child:last-child { 115 | border-radius:10px; 116 | margin:20px 0; 117 | box-shadow: 0 0 30px rgba(0,0,0,.1); 118 | } 119 | } 120 | 121 | // fig 122 | figure > img { 123 | display: block; 124 | } 125 | 126 | figcaption { 127 | font-size: $small-font-size; 128 | } 129 | 130 | // lists 131 | ul, ol { 132 | margin-left: $spacing-unit; 133 | } 134 | 135 | li { 136 | > ul, 137 | > ol { 138 | margin-bottom: 0; 139 | } 140 | } 141 | 142 | // headings 143 | h1, h2, h3, h4, h5, h6 { 144 | font-weight: 600; 145 | color:#fff; 146 | } 147 | 148 | a { 149 | color: $theme-color; 150 | text-decoration: none; 151 | 152 | &:hover { 153 | // color: $text-color; 154 | text-decoration: underline; 155 | } 156 | } 157 | 158 | blockquote { 159 | border-left: 10px solid $theme-color; 160 | padding-left: $spacing-unit / 2; 161 | @include relative-font-size(1.125); 162 | letter-spacing: -1px; 163 | margin: $spacing-unit 0; 164 | padding: 15px; 165 | border-radius: 10px;; 166 | background-color: change-color($color: $theme-color, $alpha: 0.1); 167 | > :last-child { 168 | margin-bottom: 0; 169 | } 170 | } 171 | 172 | table { 173 | margin-bottom: $spacing-unit; 174 | width: 100%; 175 | text-align: left; 176 | border-collapse: collapse; 177 | border-radius: 10px; 178 | overflow: hidden; 179 | tr { 180 | &:nth-child(even) { 181 | background-color: #3c3c3c; 182 | } 183 | } 184 | th, td { 185 | padding: ($spacing-unit / 3) ($spacing-unit / 2); 186 | } 187 | th { 188 | background-color: #454545; 189 | } 190 | 191 | @include media-query($on-laptop) { 192 | display: block; 193 | overflow-x: auto; 194 | -webkit-overflow-scrolling: touch; 195 | -ms-overflow-style: -ms-autohiding-scrollbar; 196 | } 197 | } --------------------------------------------------------------------------------