diff --git a/.gitignore b/.gitignore index 82e2aef..73d51d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,10 @@ /public/ /exampleSite/public/ +/exampleSite/resources/_gen/ workspace # /resources/* -# static/*/*-*.min.* .env diff --git a/MOTIVATION.md b/MOTIVATION.md new file mode 100644 index 0000000..eb92256 --- /dev/null +++ b/MOTIVATION.md @@ -0,0 +1,62 @@ +# Why fork it? + +Well, first I personally did not need the blog features of the theme, so I removed them. +Though the original theme is already performance-tuned, I decided to improve it further which enabled me to get a PageSpeed score [of 100 *on desktop* and 99~100 *on mobile*](https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fkdevo.github.io). After optimizing, I added some other functionality in a modular way [as outlined below](#the-taste-features). + +Finally, I decided to publish it so that others with a similar use-case might profit from it, too. + +> In the latest version, the blog features of the theme have been re-implemented in a modular way! + +## The "Taste" (Features) + +### :low_brightness: Light: **Removed** features + +The following features of the original theme have been **removed** in order to make it more lightweight: + +- [Disqus](https://disqus.com) comments (not needed anymore) +- highlight.js (not needed anymore) +- [Formspree](https://formspree.io) AJAX contact form (with Formspree Gold) +- Hamburger and close images (in favor of Fontawesome icons, see below) + +### :sparkles: Delight: **Added** or **changed** features + +The following theme aspects have been changed delightfully: + +#### Gallery +* Introducing gallery item types! + * `github`: Fetch GitHub repo data with just a few lines config + * `normal`: The usual type that you're already familiar with if coming from [Osprey](https://github.com/tomanistor/osprey) +* Want to reference an item elsewhere? Anchor links to gallery items will open the respective modal automatically +* Use custom hugofied version of [Termynal](https://github.com/ines/termynal/) for terminal animations within gallery modals + +#### General +* Added a *small* set of (mostly social media) Fontawesome icons [using Fontello](http://fontello.com/) +* Vanilla JS scrollspy to highlight the active header links/sections +* Add "disabled JS message" since the page does not properly work without it +* Blazing fast loading speeds + * Removed menu *open* and *close* images (and instead use icons) + * Changed font to *Roboto Slab* (headers) and *Roboto* (body) resulting in a smaller font size and wider availability + * Minified and bundled JavaScript to reduce network requests + * Updated lazysizes to [v5.1.2](https://github.com/aFarkas/lazysizes/releases/tag/5.1.2) (current latest stable), about 15% smaller +* GPDR: No external requests to 3rd parties per default (Roboto fonts included) +* SEO: Added [structured data](https://developers.google.com/search/docs/guides/intro-structured-data) support + +#### Contact form +* [Basin](https://usebasin.com/) AJAX contact form (free) + * Added spambot protection [using the Basin honeypot feature](https://usebasin.com/docs/features/spam-filtering) +* Added optional *request type* select element +* Added status messaged when sending + +#### Styling +* Navbar shadow is only shown when navbar docks to prevent issues on mobile devices +* Rounded-up edges for modals (and use alternative close icon/position) +* Smooth scrolling via CSS-only +* Use buttons instead of links in modals + +#### Development/Setup +* [SASS](http://sass-lang.com/) styling Compiled natively to CSS, then minified and fingerprinted using Hugo Pipes +* No Cachebusting hash setup needed anymore +* Refactored theme + * Use more partials + * Change existing configuration variables, introduce new ones + * Make it easier to maintain \ No newline at end of file diff --git a/README.md b/README.md index 47a1b57..e3c9e28 100644 --- a/README.md +++ b/README.md @@ -1,99 +1,92 @@ -![Osprey Delight Logo](https://raw.githubusercontent.com/kdevo/osprey-delight/master/images/osprey-delight-logo.png) + + Osprey Delight Logo + + + + Nelify Continous Deployment Status + --- +[![GitHub Release](https://img.shields.io/github/v/release/kdevo/osprey-delight?style=flat-square&color=%230097a7&logo=github)](https://github.com/kdevo/osprey-delight/releases/latest) +[![Hugo Minimum Version](https://img.shields.io/badge/hugo-%3E=v0.65-%230097a7?logo=hugo&style=flat-square)](https://github.com/gohugoio/hugo/releases) +[![Project Status](https://img.shields.io/website?label=kdevo&style=flat-square&up_color=%230097a7&url=https%3A%2F%2Fkdevo.github.io)](#keep-it-up) -Osprey **De**light is a sugar-free version of the [awesome Osprey theme](https://github.com/tomanistor/osprey) which has been created by [Toma Nistor](https://tomanistor.com/) for [Hugo](https://gohugo.io/), a fast static site generator. -It's a blazingly fast minimalistic single page portfolio perfectly suited to show off your awesome work! :zap: +Osprey **De**light is a sugar-free version of the [awesome Osprey theme](https://github.com/tomanistor/osprey) by [Toma Nistor](https://tomanistor.com/) for [Hugo](https://gohugo.io/), a fast static site generator. -> It tastes a bit different than the original (hence the *light* in the name) but also adds great new functionality - hopefully to your ***delight***. +It's a blazingly fast minimalistic single page portfolio perfectly suited to show off your awesome work! -## Why? -Well, first I personally did not need the blog features of the theme, so I removed them. -Though the original theme is already performance-tuned, I decided to improve it further which enabled me to get a PageSpeed score [of 100 *on desktop* and 99~100 *on mobile*](https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fkdevo.github.io). After optimizing, I added some other functionality in a modular way [as outlined below](#the-taste-features). +> šŸ’” The theme tastes a bit different than the original (hence the *light* in the name) but also adds great new functionality - hopefully to your ***delight***. Read more about the motivation and differences of the fork [here](./MOTIVATION.md), but also check out the feature summary below! -Finally, I decided to publish it so that others with a similar use-case might profit from it, too. +## Features -## The "Taste" (Features) +- Gallery items with different types + - `normal`: Just as you are used to with the original Osprey theme + - `github`: Magic GitHub API integration +![GitHub Status](https://raw.githubusercontent.com/kdevo/osprey-delight/master/images/github-status.png) -> :warning: Please note: In contrary to [Osprey](https://github.com/tomanistor/osprey) it does **not** have the built-in minimalistic blog! This is not the aim of the project. +- Gallery images can optionally be normalized with Hugo's [amazing image processing](https://gohugo.io/content-management/image-processing/) +- Blazingly fast loading speeds + - Minified JS/CSS/icon bundles using Hugo Pipes + - Lazy-loading of images using lazysizes +- Contact form using Basin with Honeypot protection +- Fancy UX + - Smooth scrolling plus scroll-spy + - Nice CSS animations + - Awesome icons in the footer +- Modular theme, enable features as you want +- Intelli-404: Automatically searches for suitable matches - never loose the link to your content +- SEO-optimized + - High PageSpeed Insights score + - Automatically generated structured data ensures that everyone finds you -### :low_brightness: Light: **Removed** features +In general, many [open issues](https://github.com/tomanistor/osprey/issues) of the original theme have been resolved. -The following features of the original theme have been **removed** in order to make it more lightweight: -- **All** Blog features; use the [original Osprey](https://github.com/tomanistor/osprey) for this feature -- [Disqus](https://disqus.com) comments (not needed anymore) -- highlight.js (not needed anymore) -- [Formspree](https://formspree.io) AJAX contact form (with Formspree Gold) -- Hamburger and close images (in favor of Fontawesome icons, see below) +## Keep it up -### :sparkles: Delight: **Added** or **changed** features +There are multiple ways to show your support if you like this project: +- Start [contributing](#Contributing) if you are familiar with Hugo themes/templating +- [Donate anything to my non-profit organization](https://pyotek.dev/donate) via various options +- Push the ![GitHub stars](https://img.shields.io/github/stars/kdevo/osprey-delight?style=social) button - a small gesture with huge effect -The following theme aspects have been changed delightfully: +## Screenshot -#### Gallery -* Introducing gallery item types! - * `github`: Fetch GitHub repo data with just a few lines config - * `normal`: The usual type that you're already familiar with if coming from [Osprey](https://github.com/tomanistor/osprey) -* Want to reference an item elsewhere? Anchor links to gallery items will open the respective modal automatically -* Use custom hugofied version of [Termynal](https://github.com/ines/termynal/) for terminal animations within gallery modals +![Screenshot](https://raw.githubusercontent.com/kdevo/osprey-delight/master/images/tn.png) -#### General -* Added a *small* set of (mostly social media) Fontawesome icons [using Fontello](http://fontello.com/) -* Vanilla JS scrollspy to highlight the active header links/sections -* Add "disabled JS message" since the page does not properly work without it -* Blazing fast loading speeds - * Removed menu *open* and *close* images (and instead use icons) - * Changed font to *Roboto Slab* (headers) and *Roboto* (body) resulting in a smaller font size and wider availability - * Minified and bundled JavaScript to reduce network requests - * Updated lazysizes to [v5.1.2](https://github.com/aFarkas/lazysizes/releases/tag/5.1.2) (current latest stable), about 15% smaller -* GPDR: No external requests to 3rd parties per default (Roboto fonts included) -* SEO: Added [structured data](https://developers.google.com/search/docs/guides/intro-structured-data) support +> Yes, the screenshot looks pretty familiar if you have used Osprey before, doesn't it? +> To taste the differences, it's best to simply try Osprey Delight out! -#### Contact form -* [Basin](https://usebasin.com/) AJAX contact form (free) - * Added spambot protection [using the Basin honeypot feature](https://usebasin.com/docs/features/spam-filtering) -* Added optional *request type* select element -* Added status messaged when sending +## Quickstart -#### Styling -* Navbar shadow is only shown when navbar docks to prevent issues on mobile devices -* Rounded-up edges for modals (and use alternative close icon/position) -* Smooth scrolling via CSS-only -* Use buttons instead of links in modals -#### Development/Setup -* [SASS](http://sass-lang.com/) styling Compiled natively to CSS, then minified and fingerprinted using Hugo Pipes -* No Cachebusting hash setup needed anymore -* Refactored theme - * Use more partials - * Change existing configuration variables, introduce new ones - * Make it easier to maintain +The recommended way to setup this theme is to use a git submodule so that further upgrades can be received without any hassle. +Invoke the following from your Hugo site directory: -## :computer: Screenshot +```shell +git submodule add https://github.com/kdevo/osprey-delight.git themes/osprey-delight +``` -Yes, the screenshot looks pretty familiar, doesn't it? +The easiest way is to simply copy the [exampleSite](/exampleSite) directory's *content* to your project's root. +This way, you have a good starting point that you can use for further modifications. -![Screenshot](https://raw.githubusercontent.com/kdevo/osprey-delight/master/images/tn.png) +> [Visit the Hugo docs](https://gohugo.io/getting-started/quick-start/#step-3-add-a-theme) for more info and general setup of a Hugo site. -To taste the differences, it's best to simply try Osprey Delight out! +### Upgrade -## :zap: Quickstart +Receive the latest features of the theme by pulling the latest changes from `master`: -```console -$ mkdir themes/ # if dir does not exist yet -$ git clone https://github.com/kdevo/osprey-delight.git themes/ --depth 1 +``` +cd themes/osprey-delight +git pull ``` -:bulb: The easiest way is to simply copy the [exampleSite](/exampleSite) directory's *content* to your project's root. -This way, you have a good starting point that you can use for further modifications. +> It is good practice to [check the release notes](https://github.com/kdevo/osprey-delight/releases) before upgrading (especially before using new major versions). -## :wrench: Configuration and Usage -Documentation is not complete yet, but hopefully it's enough if you want to *migrate* from **Osprey** to **Osprey Delight**. -Since many configuration attributes have been changed/refactored, this is a necessary step. +## Configuration and Usage It's best if you simply check out the commented **[exampleSite/config.toml](/exampleSite/config.toml)**! +This theme follows a learning-by-doing approach. ### Content files @@ -115,16 +108,31 @@ $ hugo new gallery/item-name.md This is very helpful for the first time since you will get a fully documented file. -> :warning: Please make sure that `item-name` is unique on the whole page because it will be used as an anchor/identifier! +> āš ļø Please make sure that `item-name` is unique on the whole page because it will be used as an anchor/identifier! + + +### Custom (S)CSS + +Place a file named `_custom.scss` in your local `assets/sass/` folder (create the directories). This will override the theme's (empty) `_custom.scss` which is loaded in the internal main SCSS. + +#### Syntax Highlighting + +Limiting external dependencies is important when it comes to privacy as well as performance, therefore only Hugo's internal [Chroma Syntax Highlighting](https://gohugo.io/content-management/syntax-highlighting/) is supported. Here's how to use it: + +1. Generate a Chromastyle of your choice as `_custom.scss` in project root: `hugo gen chromastyles --style=solarized-dark > _custom.scss` +2. Move the file to `assets/sass/` folder +3. Add `pygmentsUseClasses = true` to your config.toml + +> Refer to [the official Hugo documentation](https://gohugo.io/content-management/syntax-highlighting/) for more info. ### Data directory (optional) Optionally, Osprey Delight makes use of the [Hugo's data folder](https://gohugo.io/templates/data-templates/#the-data-folder). Currently, the following files can be used to configure the theme in more detail: -- **terminal.json**: Configure several parameters for Termynal (see **config.toml** above for an explanation) +- **terminal.json**: Configure several parameters for optional Termynal (see **config.toml** for an explanation) -### Contact Form: Basin +### Contact form: Basin Basin is a free AJAX contact form service. To use Basin, [sign up for a free account](https://usebasin.com/users/sign_up) and create a form. Copy and paste your form's URL endpoint to the `ajaxBasin` config.toml parameter. Select the `Submit this form via AJAX` option on your Basin dashboard. @@ -139,11 +147,8 @@ Basin will [ignore all messages that contain this specific field](https://usebas Feel free to open an issue if the protection did not work for you. -### Custom (S)CSS - -Place a file named `_custom.scss` in your local **assets/sass/** folder (create the directories). This will override the theme's (empty) `_custom.scss` which is loaded in the internal main SCSS. -## Help wanted +## Contributing Contributions are welcome! Fork this repo and create a merge request if you implemented a feature or a bug fix that everyone can profit from. @@ -154,4 +159,4 @@ The necessary requirements for merge requests are: ## License -This theme is released under the Apache 2.0 license. For more information read the [license](https://github.com/kdevo/osprey-delight/blob/master/LICENSE.md). +This theme is released under the Apache 2.0 license, just like its predecessor. For more information read the [license](https://github.com/kdevo/osprey-delight/blob/master/LICENSE.md). diff --git a/archetypes/default.md b/archetypes/default.md index 2971d56..2661a12 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -2,4 +2,5 @@ title = "{{ replace .TranslationBaseName "-" " " | title }}" date = {{ .Date }} draft = true +description = "" +++ diff --git a/archetypes/gallery.md b/archetypes/gallery.md index 5280e1c..48a4196 100644 --- a/archetypes/gallery.md +++ b/archetypes/gallery.md @@ -1,34 +1,42 @@ --- -# [str] Display title of the project. +# [str] Title of the project. This is also visible when hovering over a gallery item. title: "{{ replace .TranslationBaseName "-" " " | title }}" -# [date] Specify project publication date - changes order; the latest item will be displayed first. +# [str] Optional subtitle of the project. +# Functions as an additional explanation when hovering over a gallery item (comment out the following line). +# subtitle: "" +# [date] Project publication date. +# Changes order: The newest item will be displayed first in the gallery. +# Just like Hugo's natural ordering, this is anti-chronological. +# You can use 'weight' to order (primarily) for more control (sometimes it makes sense to put old items before new ones). +# The specifics are documented here: https://gohugo.io/templates/lists/#order-content date: "{{ .Date }}" -# [str] Gallery image file name. Image needs to be under 'images/'. -# If ommited with type 'github', will attempt to fetch from '{repo_url}/.github/logo.png'. +# [str] Gallery image file. +# If the specified image is found in the 'assets' directory the image will be normalized to a specified height. +# If ommited AND type is 'github' (see below), will attempt to fetch from '{repo_url}/.github/logo.png'. image: "" # [str] Alternatively, you can specify an absolute image URL (comment out the following line). -# absImage: "" -# [str] Provide alternative description. -# If ommited with type 'github', will use 'description' field from GitHub API. +# imageUrl: "" +# [str] Alternative (image) description. +# If ommited with type 'github', will use 'description' field from GitHub API. alt: "" -# [css] Set gallery item's background color. +# [css] Background color of the gallery item. color: "#fff" -# [str] Possible types: -# - normal: Just as originally in Osprey -# - github: Fetch repo data using GitHub API +# [enum] Possible types: +# - normal: Just as in the original Osprey theme +# - github: Fetch repo data using GitHub API type: "normal" # [str] Link to view the project. linkView: "" # [str] Link to show the project's code. -# If ommited with type 'github', will use 'html_url' field from GitHub API. +# If ommited with type 'github', will use 'html_url' field from GitHub API. linkCode: "" -# Configure 'github'-type specific options here: +# [map] Configure 'github'-type specific options here: github: # [str] Repo is a combination of "{user_or_org}/{repository_name}", e.g. "kdevo/osprey-delight. repo: "YOUR-GITHUB-NAME/{{ .TranslationBaseName }}" # [bool] Show repository information such project language below the buttons. showInfo: true -# Configure optional terminal to be displayed when opening up the gallery item: +# [map] Configure optional terminal to be displayed when opening up the gallery item: terminal: # lines: # - type: input diff --git a/assets/js/src/contact.js b/assets/js/src/contact.js index b845d52..89de1bb 100644 --- a/assets/js/src/contact.js +++ b/assets/js/src/contact.js @@ -1,10 +1,13 @@ (function () { var realmsg = $('textarea[name=message2]') var honeypotmsg = $('textarea[name=message]') + + if (realmsg === null) { + return; + } setVisibility(realmsg, true) setVisibility(honeypotmsg, false) - // For spam protection, we use "message" as a honeypot field: honeypotmsg.removeAttribute("required") @@ -15,7 +18,7 @@ var name = $('input[name=name]').value, email = $('input[name=email]').value, subject = $('input[name=_subject]').value, - matter = $('select[name=matter]').value + matter = $('select[name=matter]').value, message = realmsg.value, honeypot = honeypotmsg.value diff --git a/assets/js/src/misc.js b/assets/js/src/misc.js index 57666a0..aac31db 100644 --- a/assets/js/src/misc.js +++ b/assets/js/src/misc.js @@ -1,46 +1,26 @@ var $ = document.querySelector.bind(document), $$ = document.querySelectorAll.bind(document) -function setVisibility(e, visible) { - e.classList.add(visible ? 'show' : 'hide') - e.classList.remove(visible ? 'hide' : 'show') +/** + * + * @param {Element} e Element for DOM modification + * @param {boolean} visible Self-explanatory. true = visible, false = hidden + * @param {boolean} useAttr Using visibility attribute will prevent smooth navbar transition + */ +function setVisibility(e, visible, useAttr = true) { if (visible) { e.style.visibility = "visible" - e.removeAttribute("hidden") + if (useAttr) { + e.removeAttribute("hidden") + } } else { e.style.visibility = "hidden" - e.setAttribute("hidden", true) + if (useAttr) { + e.setAttribute("hidden", true) + } } + e.classList.add(visible ? 'show' : 'hide') + e.classList.remove(visible ? 'hide' : 'show') } -function onLogoClick() {} - -// Partly adapted from https://medium.com/p/-3131c114abdc -document.addEventListener('DOMContentLoaded', function(){ - const ITEMS = [...$$(".nav-item")] - const SECTIONS = [...$$("main > section")].reverse() - const THRESHOLD = 340 - var oldIdx = -1 - - window.addEventListener("scroll", () => { - const idx = SECTIONS.length - SECTIONS.findIndex( - (sec) => window.scrollY > sec.offsetTop - THRESHOLD - ) - 1 - if (idx != oldIdx) { - ITEMS.forEach((itm) => itm.classList.remove("nav-item-active")) - ITEMS[idx].classList.add("nav-item-active") - oldIdx = idx - } - }); -}, false); - -// github = (function () { - // req = new XMLHttpRequest() - // req.open("GET", "https://api.github.com/repos/${repo}", true); - // req.send(); - // req.onreadystatechange = function() { - // if (this.readyState == 4 && this.status == 200) { - // console.log(this.responseText); - // } - // }; -// }) \ No newline at end of file +function onLogoClick() { } diff --git a/assets/js/src/nav.js b/assets/js/src/nav.js index b45aeae..dcc1e79 100644 --- a/assets/js/src/nav.js +++ b/assets/js/src/nav.js @@ -1,47 +1,67 @@ -(function () { +function handleNavBar(isMainPage) { menuActive = false var nav = $('nav') - // Nav starts at bottom then is fixed to top - // Logo and hamburger menus fade in and out - window.onscroll = function () { - var scrollPosition = window.pageYOffset || document.documentElement.scrollTop, - windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight, - navHeight = nav.clientHeight - - if (scrollPosition > windowHeight - navHeight) { - // Nav is fixed to top + function setFixedNav(isFixed) { + if (isFixed) { + // Fixed to top nav.classList.add('nav-fixed') nav.classList.add('nav-shadow') $$('nav > .logo, nav > .nav-toggle').forEach(function (el) { - el.style.visibility = 'visible' - el.classList.add('show') - el.classList.remove('hide') + setVisibility(el, true, false) }) } else { - // Nav is not fixed + // Not fixed, at bottom nav.classList.remove('nav-fixed') nav.classList.remove('nav-shadow') - - $$('nav > .logo, nav > .nav-toggle').forEach(function (el) { - el.style.visibility = 'hidden' - el.classList.add('hide') - el.classList.remove('show') + setVisibility(el, false, false) }) } } + if (isMainPage) { + // Nav starts at bottom then is fixed to top + // Logo and hamburger menus fade in and out + // Scrollspy partly adapted from https://medium.com/p/-3131c114abdc + document.addEventListener('DOMContentLoaded', function () { + const ITEMS = [...$$(".nav-item")] + const SECTIONS = [...$$("main > section")].reverse() + const THRESHOLD = 340 + var oldIdx = -1 + + window.addEventListener("scroll", () => { + var scrollPosition = window.scrollY || window.pageYOffset || document.documentElement.scrollTop, + windowHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight, + navHeight = nav.clientHeight + + if (scrollPosition > windowHeight - navHeight) { + setFixedNav(true) + } else { + setFixedNav(false) + } + const idx = SECTIONS.length - 1 - SECTIONS.findIndex( + (sec) => scrollPosition > sec.offsetTop - THRESHOLD + ) + if (idx != oldIdx) { + ITEMS.forEach((itm) => itm.classList.remove("nav-item-active")) + ITEMS[idx].classList.add("nav-item-active") + oldIdx = idx + } + }); + }, false); + } else { + setFixedNav(true) + } + function toggle() { if (menuActive) { $('#open').classList.remove('icon-active') - menuActive = false } else { $('#open').classList.add('icon-active') - menuActive = true } } @@ -84,6 +104,7 @@ }) // Mobile browsers viewport height bug fix + // TODO(kdevo): Verify relevance function fullMobileViewport() { var element = this, viewportHeight = window.innerHeight, @@ -106,4 +127,4 @@ $$('header').forEach(function () { fullMobileViewport }) -})() +} diff --git a/assets/sass/_base.scss b/assets/sass/_base.scss index 631bda7..80d6d03 100644 --- a/assets/sass/_base.scss +++ b/assets/sass/_base.scss @@ -26,105 +26,6 @@ a { } } -// TODO(kdevo): Provide optional parameter to enable blog (the only situation where this is needed): -// Code -// pre { -// margin-top: 0; -// margin-bottom: $vertical-rhythm; -// padding: 16px; -// overflow: auto; -// background-color: $smoke; -// font: 12px "Consolas", "Liberation Mono", "Menlo", "Courier", monospace; -// font-family: $font-code; -// font-size: 85%; -// line-height: 1.45; -// word-wrap: normal; - -// & > code { -// margin: 0; -// padding: 0; -// border: 0; -// background: transparent; -// font-size: 100%; -// word-break: normal; -// white-space: pre; -// } - -// code { -// display: inline; -// margin: 0; -// padding: 0; -// overflow: visible; -// border: 0; -// background-color: transparent; -// line-height: inherit; -// word-wrap: normal; - -// &::before, -// &::after { -// content: normal; -// } -// } -// } - -// code { -// padding: 4px; -// background-color: $smoke; -// font-family: $font-code; -// font-size: 90%; -// } - -// .sans { -// font-family: "Open Sans", "Myriad Pro", "Myriad", sans-serif; -// } - -// .mono, -// tt { -// font-family: $font-code; -// } - - -// // Quotes -// q { -// @extend em; - -// &::before { -// content: "\201C"; -// } - -// &::after { -// content: "\201D"; -// } -// } - -// %blockquote { -// content: "\201C"; -// color: $accent; -// font-family: $font-header; -// font-size: 35px; -// } - -// blockquote { -// padding: 25px; -// font-family: $font-header; -// text-align: center; - -// p { -// display: inline-block; -// font-style: italic; -// } - -// &::before { -// @extend %blockquote; -// } - -// &::after { -// @extend %blockquote; -// content: "\201D"; -// } -// } - - // Images img { display: inline-block; @@ -132,7 +33,6 @@ img { vertical-align: middle; } - // Lists ul, ol { diff --git a/assets/sass/_blog.scss b/assets/sass/_blog.scss new file mode 100644 index 0000000..b38d9d5 --- /dev/null +++ b/assets/sass/_blog.scss @@ -0,0 +1,134 @@ + +// Code +pre code { + // font-size: 100%; + color: inherit; + font-family: $font-code; + // background-color: transparent; +} + +pre { + margin-top: 8px; + // font: 12px $font-code; + padding: 16px; + border-radius: 4px; + margin-bottom: $vertical-rhythm; + overflow: auto; + word-wrap: normal; + // color: white; + // line-height: 1.45; or inherit + // background-color: $smoke; +} + +.mono, +tt { + font-family: $font-code; +} + + +// Quotes +q { + @extend em; + + &::before { + content: "\201C"; + } + + &::after { + content: "\201D"; + } +} + +%blockquote { + content: "\201C"; + color: $accent; + font-family: $font-header; + font-size: 35px; +} + +blockquote { + padding: 25px; + font-family: $font-header; + text-align: center; + + p { + display: inline-block; + font-style: italic; + } + + &::before { + @extend %blockquote; + } + + &::after { + @extend %blockquote; + content: "\201D"; + } +} + + +.posts-list { + margin: 0 0 $vertical-rhythm; +} + +.sub-header, +time { + @include size(p); + margin-bottom: $vertical-rhythm; + color: $storm; +} + +.content { + width: 100%; + text-align: left; + + time { + margin-left: 3px; + } + + // a { + // background-image: linear-gradient($accent, $accent); + // background-repeat: repeat-x; + // background-position: 0 95%; + // background-size: 1px 2px; + // text-decoration: none; + // text-shadow: .03em 0 $white, -.03em 0 $white, 0 .03em $white, 0 -.03em $white, + // .06em 0 $white, -.06em 0 $white, .09em 0 $white, -.09em 0 $white, + // .12em 0 $white, -.12em 0 $white, .15em 0 $white, -.15em 0 $white, + // .03em .075em $white, -.03em .075em $white, .06em .075em $white, + // -.06em .075em $white, .09em .075em $white, -.09em .075em $white, + // .12em .075em $white, -.12em .075em $white, .15em .075em $white, + // -.15em .075em $white; + + // &:hover { + // color: $accent; + // } + // } +} + +// .highlight { +// margin: 10px 0; +// } + +.pagination { + margin: 50px 0 0; + + &:nth-child(2) { + float: right; + } +} + +.blog { + display: flex; + min-height: 100vh; + background-color: $white; + + h2 { + margin-bottom: 0; + } + + h3 { + margin: 0 0 $vertical-rhythm * 2; + font-family: $font-body; + } +} \ No newline at end of file diff --git a/assets/sass/_gallery.scss b/assets/sass/_gallery.scss index 41de546..682b86e 100644 --- a/assets/sass/_gallery.scss +++ b/assets/sass/_gallery.scss @@ -29,8 +29,7 @@ height: 100%; transition: .25s ease-out; opacity: 0; - background-color: $black; - cursor: pointer; + background-color: $black; cursor: pointer; a { color: $white; @@ -59,6 +58,7 @@ padding: $vertical-rhythm * 3; } + .gallery-modal-link { display: flex; position: absolute; @@ -68,3 +68,14 @@ height: 100%; } } + +// Prevent "broken image" icon from showing up +img.lazyload:not([src]) { + visibility: hidden; +} + +// .lazyload, .lazyloading { +// object-fit: contain; +// width: 100%; +// height: 400px; +// } \ No newline at end of file diff --git a/assets/sass/_layout.scss b/assets/sass/_layout.scss index 1980fd6..a310054 100644 --- a/assets/sass/_layout.scss +++ b/assets/sass/_layout.scss @@ -27,7 +27,7 @@ header { } footer { - height: $vertical-rhythm * 6; + height: $vertical-rhythm * 7; background-color: $black; div, diff --git a/assets/sass/_modal.scss b/assets/sass/_modal.scss index 882e7dd..f875620 100644 --- a/assets/sass/_modal.scss +++ b/assets/sass/_modal.scss @@ -84,13 +84,11 @@ position: absolute; top: 10px; right: -4px; - - // top: -21px; - // right: -30px; color: $smoke; font-size: 30px; font-weight: bold; line-height: .5; + transition: color .2s ease-out; &:hover, &:focus { diff --git a/assets/sass/_typography.scss b/assets/sass/_typography.scss index 07f4d5f..0622b2a 100644 --- a/assets/sass/_typography.scss +++ b/assets/sass/_typography.scss @@ -1,6 +1,6 @@ -$font-header: "Roboto Slab", "Ubuntu", "Cambria", Georgia, serif; -$font-body: "Roboto", "Poppins", "HelĀ­vetica", Arial, sans-serif; -$font-code: "Menlo", "Monaco", "Andale Mono", "lucida console", "Courier New", monospace; +$font-header: "Roboto Slab", "Bitter", "Ubuntu", Georgia, serif; +$font-body: "Roboto", "Rubic", "Poppins", "HelĀ­vetica", Arial, sans-serif; +$font-code: "Roboto Mono", "Menlo", "Monaco", "Andale Mono", "lucida console", "Courier New", monospace; // Modular font scale // Large: http://www.modularscale.com/?1.25&em&1.333&web&text diff --git a/assets/sass/main.scss b/assets/sass/main.scss index bc98abd..4c2096e 100644 --- a/assets/sass/main.scss +++ b/assets/sass/main.scss @@ -41,6 +41,10 @@ $accent_color: #0097a7; @import "custom"; +{{ if .Site.Params.Feat.useBlog -}} +@import "blog"; +{{- end }} + {{ if .Site.Params.Feat.useTermynal -}} $term_title: "{{ .Site.Data.terminal.title }}"; @import "termynal"; @@ -52,7 +56,8 @@ $term_title: "{{ .Site.Data.terminal.title }}"; padding: 0; border: 0; font: inherit; - color: $black; + color: inherit; + // color: black; vertical-align: baseline; &::before, @@ -68,9 +73,14 @@ html { } footer { + padding-bottom: 1em; .icon { - padding-top: 0.5em; - font-size: 1.25em; + margin-top: 1em; + margin-bottom: 1em; + font-size: 2em; + } + a > .icon { + color: $white; } } @@ -90,13 +100,6 @@ footer { } } - footer { - .icon { - padding: 0.5em; - font-size: 2em; - } - } - .mobile-hidden { visibility: hidden; } @@ -235,46 +238,8 @@ h3 { margin-bottom: $vertical-rhythm; } -// .posts-list { -// margin: 0 0 $vertical-rhythm; -// } - -// .sub-header, -// time { -// @include size(p); -// margin-bottom: $vertical-rhythm; -// color: $storm; -// } - -// .content { -// width: 100%; -// text-align: left; - -// time { -// margin-left: 3px; -// } - -// a { -// background-image: linear-gradient($accent, $accent); -// background-repeat: repeat-x; -// background-position: 0 95%; -// background-size: 1px 2px; -// text-decoration: none; -// text-shadow: .03em 0 $white, -.03em 0 $white, 0 .03em $white, 0 -.03em $white, -// .06em 0 $white, -.06em 0 $white, .09em 0 $white, -.09em 0 $white, -// .12em 0 $white, -.12em 0 $white, .15em 0 $white, -.15em 0 $white, -// .03em .075em $white, -.03em .075em $white, .06em .075em $white, -// -.06em .075em $white, .09em .075em $white, -.09em .075em $white, -// .12em .075em $white, -.12em .075em $white, .15em .075em $white, -// -.15em .075em $white; - -// &:hover { -// color: $accent; -// } -// } -// } - a > .icon { + color: $black; transition: color .2s ease-out; &:not(.icon-menu):hover, &:not(.icon-menu):focus { @@ -282,41 +247,16 @@ a > .icon { } } -// .highlight { -// margin: 10px 0; -// } - -// .pagination { -// margin: 50px 0 0; - -// &:nth-child(2) { -// float: right; -// } -// } - .full { top: 0; bottom: 0; height: 100vh; } -// .blog { -// display: flex; -// min-height: 100vh; - -// h2 { -// margin-bottom: 0; -// } - -// h3 { -// margin: 0 0 $vertical-rhythm * 2; -// font-family: $font-body; -// } -// } - .contact { width: 100%; padding-bottom: $vertical-rhythm * 2; + // TODO(kdevo): Maybe consider to change this to white if blog is not enabled: background-color: $smoke; form { diff --git a/exampleSite/static/images/hugo.png b/exampleSite/assets/hugo.png similarity index 100% rename from exampleSite/static/images/hugo.png rename to exampleSite/assets/hugo.png diff --git a/exampleSite/static/images/osprey.png b/exampleSite/assets/osprey.png similarity index 100% rename from exampleSite/static/images/osprey.png rename to exampleSite/assets/osprey.png diff --git a/exampleSite/assets/sass/_custom.scss b/exampleSite/assets/sass/_custom.scss new file mode 100644 index 0000000..8e37fe9 --- /dev/null +++ b/exampleSite/assets/sass/_custom.scss @@ -0,0 +1,82 @@ +/* Background */ .chroma { color: #93a1a1; background-color: #002b36 } +/* Other */ .chroma .x { color: #cb4b16 } +/* Error */ .chroma .err { } +/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } +/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } +/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc } +/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #495050 } +/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #495050 } +/* Keyword */ .chroma .k { color: #719e07 } +/* KeywordConstant */ .chroma .kc { color: #cb4b16 } +/* KeywordDeclaration */ .chroma .kd { color: #268bd2 } +/* KeywordNamespace */ .chroma .kn { color: #719e07 } +/* KeywordPseudo */ .chroma .kp { color: #719e07 } +/* KeywordReserved */ .chroma .kr { color: #268bd2 } +/* KeywordType */ .chroma .kt { color: #dc322f } +/* Name */ .chroma .n { } +/* NameAttribute */ .chroma .na { } +/* NameBuiltin */ .chroma .nb { color: #b58900 } +/* NameBuiltinPseudo */ .chroma .bp { color: #268bd2 } +/* NameClass */ .chroma .nc { color: #268bd2 } +/* NameConstant */ .chroma .no { color: #cb4b16 } +/* NameDecorator */ .chroma .nd { color: #268bd2 } +/* NameEntity */ .chroma .ni { color: #cb4b16 } +/* NameException */ .chroma .ne { color: #cb4b16 } +/* NameFunction */ .chroma .nf { color: #268bd2 } +/* NameFunctionMagic */ .chroma .fm { } +/* NameLabel */ .chroma .nl { } +/* NameNamespace */ .chroma .nn { } +/* NameOther */ .chroma .nx { } +/* NameProperty */ .chroma .py { } +/* NameTag */ .chroma .nt { color: #268bd2 } +/* NameVariable */ .chroma .nv { color: #268bd2 } +/* NameVariableClass */ .chroma .vc { } +/* NameVariableGlobal */ .chroma .vg { } +/* NameVariableInstance */ .chroma .vi { } +/* NameVariableMagic */ .chroma .vm { } +/* Literal */ .chroma .l { } +/* LiteralDate */ .chroma .ld { } +/* LiteralString */ .chroma .s { color: #2aa198 } +/* LiteralStringAffix */ .chroma .sa { color: #2aa198 } +/* LiteralStringBacktick */ .chroma .sb { color: #586e75 } +/* LiteralStringChar */ .chroma .sc { color: #2aa198 } +/* LiteralStringDelimiter */ .chroma .dl { color: #2aa198 } +/* LiteralStringDoc */ .chroma .sd { } +/* LiteralStringDouble */ .chroma .s2 { color: #2aa198 } +/* LiteralStringEscape */ .chroma .se { color: #cb4b16 } +/* LiteralStringHeredoc */ .chroma .sh { } +/* LiteralStringInterpol */ .chroma .si { color: #2aa198 } +/* LiteralStringOther */ .chroma .sx { color: #2aa198 } +/* LiteralStringRegex */ .chroma .sr { color: #dc322f } +/* LiteralStringSingle */ .chroma .s1 { color: #2aa198 } +/* LiteralStringSymbol */ .chroma .ss { color: #2aa198 } +/* LiteralNumber */ .chroma .m { color: #2aa198 } +/* LiteralNumberBin */ .chroma .mb { color: #2aa198 } +/* LiteralNumberFloat */ .chroma .mf { color: #2aa198 } +/* LiteralNumberHex */ .chroma .mh { color: #2aa198 } +/* LiteralNumberInteger */ .chroma .mi { color: #2aa198 } +/* LiteralNumberIntegerLong */ .chroma .il { color: #2aa198 } +/* LiteralNumberOct */ .chroma .mo { color: #2aa198 } +/* Operator */ .chroma .o { color: #719e07 } +/* OperatorWord */ .chroma .ow { color: #719e07 } +/* Punctuation */ .chroma .p { } +/* Comment */ .chroma .c { color: #586e75 } +/* CommentHashbang */ .chroma .ch { color: #586e75 } +/* CommentMultiline */ .chroma .cm { color: #586e75 } +/* CommentSingle */ .chroma .c1 { color: #586e75 } +/* CommentSpecial */ .chroma .cs { color: #719e07 } +/* CommentPreproc */ .chroma .cp { color: #719e07 } +/* CommentPreprocFile */ .chroma .cpf { color: #719e07 } +/* Generic */ .chroma .g { } +/* GenericDeleted */ .chroma .gd { color: #dc322f } +/* GenericEmph */ .chroma .ge { font-style: italic } +/* GenericError */ .chroma .gr { color: #dc322f; font-weight: bold } +/* GenericHeading */ .chroma .gh { color: #cb4b16 } +/* GenericInserted */ .chroma .gi { color: #719e07 } +/* GenericOutput */ .chroma .go { } +/* GenericPrompt */ .chroma .gp { } +/* GenericStrong */ .chroma .gs { font-weight: bold } +/* GenericSubheading */ .chroma .gu { color: #268bd2 } +/* GenericTraceback */ .chroma .gt { } +/* GenericUnderline */ .chroma .gl { } +/* TextWhitespace */ .chroma .w { } diff --git a/exampleSite/static/images/toma-nistor.png b/exampleSite/assets/toma-nistor.png similarity index 100% rename from exampleSite/static/images/toma-nistor.png rename to exampleSite/assets/toma-nistor.png diff --git a/exampleSite/config.toml b/exampleSite/config.toml index e0976c6..4a5e50c 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -7,6 +7,7 @@ tags = ["personal", "homepage", "portfolio"] # googleAnalytics = "" disableKinds = ["taxonomy", "taxonomyTerm"] # This theme does not currently use "tag" and "category" taxonomies enableEmoji = true +pygmentsUseClasses = true ## Generic theme parameters: [Params] @@ -24,8 +25,9 @@ enableEmoji = true googleTagManager = "" # [bool] The following will enforce redirection to the baseURL for all sub-directories/-pages. # Example: If you create about.md, Hugo will also create a '/about/index.html'. - # This file will only contain a redirect directive if this switch is enabled (recommended, since this is a one-page theme). - enforceSinglePage = true + # This file will contain only a redirect directive if this switch is enabled. + # Make sure that you do not enable this switch if you also set useBlog to true. + enforceSinglePage = false # [bool] Will generate copyright notice in footer for your site. copyright = true # [bool] Your credit is much appreciated. It will be displayed in a small way in your footer. @@ -41,7 +43,7 @@ enableEmoji = true # [str] Link to your GitHub. github = "https://github.com/kdevo/osprey-delight" # [str] Link to your Facebook. - # facebook = "" + facebook = "" # [str] Link to your Instagram. # instagram = "" # [str] Link to your StackOverflow. @@ -67,6 +69,8 @@ enableEmoji = true # [str] Tell your GitHub username so that the GitHub API is used to fetch more information for structured data. # This will use information that is publically available about your GitHub user profile at https://api.github.com/users/{USERNAME}. # structuredDataFromGithub = "USERNAME" + # [bool] Enable the optional blog module + useBlog = true ## Configure contact form: [Params.Contact] @@ -83,13 +87,17 @@ enableEmoji = true name = "Work" url = "/#work" weight = 2 +[[menu.main]] + name = "Blog" + url = "/#blog" + weight = 3 [[menu.main]] name = "Contact" url = "/#contact" - weight = 3 + weight = 4 [[menu.main]] # Use icon here to neatly back reference an external site/blog/whatever: pre = " " name = "" url = "https://pyotek.dev" - weight = 4 + weight = 5 diff --git a/exampleSite/content/blog/_index.md b/exampleSite/content/blog/_index.md new file mode 100644 index 0000000..8a084d9 --- /dev/null +++ b/exampleSite/content/blog/_index.md @@ -0,0 +1,6 @@ ++++ +aliases = ["posts", "articles", "blog", "showcase", "docs"] +title = "Posts" +author = "Hugo Authors" +tags = ["index"] ++++ diff --git a/exampleSite/content/blog/emoji-support.md b/exampleSite/content/blog/emoji-support.md new file mode 100644 index 0000000..dc3589a --- /dev/null +++ b/exampleSite/content/blog/emoji-support.md @@ -0,0 +1,46 @@ ++++ +author = "Hugo Authors" +title = "Emoji Support" +date = "2019-03-05" +description = "Guide to emoji usage in Hugo" +tags = [ + "emoji", +] ++++ + +Emoji can be enabled in a Hugo project in a number of ways. + +The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes). + +To enable emoji globally, set `enableEmoji` to `true` in your site's [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g. + +

šŸ™ˆ :see_no_evil: šŸ™‰ :hear_no_evil: šŸ™Š :speak_no_evil:

+
+ +The [Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) is a useful reference for emoji shorthand codes. + +*** + +**N.B.** The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g. + +{{< highlight html >}} +.emoji { + font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols; +} +{{< /highlight >}} + +{{< css.inline >}} + +{{< /css.inline >}} diff --git a/exampleSite/content/blog/markdown-syntax.md b/exampleSite/content/blog/markdown-syntax.md new file mode 100644 index 0000000..2aa35e1 --- /dev/null +++ b/exampleSite/content/blog/markdown-syntax.md @@ -0,0 +1,149 @@ ++++ +author = "Hugo Authors" +title = "Markdown Syntax Guide" +date = "2019-03-11" +description = "Sample article showcasing basic Markdown syntax and formatting for HTML elements." +tags = [ + "markdown", + "css", + "html", + "themes", +] +categories = [ + "themes", + "syntax", +] +series = ["Themes Guide"] +aliases = ["migrate-from-jekyl"] ++++ + +This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme. + + +## Headings + +The following HTML `

`ā€”`

` elements represent six levels of section headings. `

` is the highest section level while `

` is the lowest. + +# H1 +## H2 +### H3 +#### H4 +##### H5 +###### H6 + +## Paragraph + +Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat. + +Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat. + +## Blockquotes + +The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations. + +#### Blockquote without attribution + +> Tiam, ad mint andaepu dandae nostion secatur sequo quae. +> **Note** that you can use *Markdown syntax* within a blockquote. + +#### Blockquote with attribution + +> Don't communicate by sharing memory, share memory by communicating.
+> ā€” Rob Pike[^1] + +[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015. + +## Tables + +Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box. + + Name | Age +--------|------ + Bob | 27 + Alice | 23 + +#### Inline Markdown within tables + +| Italics | Bold | Code | +| -------- | -------- | ------ | +| *italics* | **bold** | `code` | + +## Code Blocks + +#### Code block with backticks + +```html + + + + + Example HTML5 Document + + +

Test

+ + +``` + +#### Code block indented with four spaces + + + + + + Example HTML5 Document + + +

Test

+ + + +#### Code block with Hugo's internal highlight shortcode +{{< highlight html >}} + + + + + Example HTML5 Document + + +

Test

+ + +{{< /highlight >}} + +## List Types + +#### Ordered List + +1. First item +2. Second item +3. Third item + +#### Unordered List + +* List item +* Another item +* And another item + +#### Nested list + +* Fruit + * Apple + * Orange + * Banana +* Dairy + * Milk + * Cheese + +## Other Elements ā€” abbr, sub, sup, kbd, mark + +GIF is a bitmap image format. + +H2O + +Xn + Yn = Zn + +Press CTRL+ALT+Delete to end the session. + +Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures. diff --git a/exampleSite/content/blog/math-typesetting.md b/exampleSite/content/blog/math-typesetting.md new file mode 100644 index 0000000..48fdc79 --- /dev/null +++ b/exampleSite/content/blog/math-typesetting.md @@ -0,0 +1,49 @@ +--- +author: Hugo Authors +title: Math Typesetting +date: 2019-03-08 +description: A brief guide to setup KaTeX +math: true +--- + +Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries. + + +In this example we will be using [KaTeX](https://katex.org/) + +- Create a partial under `/layouts/partials/math.html` +- Within this partial reference the [Auto-render Extension](https://katex.org/docs/autorender.html) or host these scripts locally. +- Include the partial in your templates like so: + +```bash +{{ if or .Params.math .Site.Params.math }} +{{ partial "math.html" . }} +{{ end }} +``` + +- To enable KaTex globally set the parameter `math` to `true` in a project's configuration +- To enable KaTex on a per page basis include the parameter `math: true` in content files + +**Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html) + +{{< math.inline >}} +{{ if or .Page.Params.math .Site.Params.math }} + + + + +{{ end }} +{{}} + +### Examples + +{{< math.inline >}} +

+Inline math: \(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887ā€¦\) +

+{{}} + +Block math: +$$ + \varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } } +$$ diff --git a/exampleSite/content/blog/placeholder-text.md b/exampleSite/content/blog/placeholder-text.md new file mode 100644 index 0000000..9ed5f69 --- /dev/null +++ b/exampleSite/content/blog/placeholder-text.md @@ -0,0 +1,45 @@ ++++ +author = "Hugo Authors" +title = "Placeholder Text" +date = "2019-03-09" +description = "Lorem Ipsum Dolor Si Amet" +tags = [ + "markdown", + "text", +] ++++ + +Lorem est tota propiore conpellat pectoribus de pectora summo. Redit teque digerit hominumque toris verebor lumina non cervice subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum. + +1. Exierant elisi ambit vivere dedere +2. Duce pollice +3. Eris modo +4. Spargitque ferrea quos palude + +Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria tractus malis. + +1. Comas hunc haec pietate fetum procerum dixit +2. Post torum vates letum Tiresia +3. Flumen querellas +4. Arcanaque montibus omnes +5. Quidem et + +# Vagus elidunt + + + +[The Van de Graaf Canon](https://en.wikipedia.org/wiki/Canons_of_page_construction#Van_de_Graaf_canon) + +## Mane refeci capiebant unda mulcebat + +Victa caducifer, malo vulnere contra dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. **Faces illo pepulere** tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis. + +Iubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et. + +Eurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel **mitis temploque** vocatus, inque alis, *oculos nomen* non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides **parte**. + +{{< css.inline >}} + +{{< /css.inline >}} diff --git a/exampleSite/content/blog/rich-content.md b/exampleSite/content/blog/rich-content.md new file mode 100644 index 0000000..5ff41d7 --- /dev/null +++ b/exampleSite/content/blog/rich-content.md @@ -0,0 +1,42 @@ ++++ +author = "Hugo Authors" +title = "Rich Content" +date = "2019-03-10" +description = "A brief description of Hugo Shortcodes" +tags = [ + "shortcodes", + "privacy", +] ++++ + +Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugo-s-built-in-shortcodes) for rich content, along with a [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds. + +--- + +## Instagram Simple Shortcode + +{{< instagram_simple BGvuInzyFAe hidecaption >}} + +
+ +--- + +## YouTube Privacy Enhanced Shortcode + +{{< youtube ZJthWmvUzzc >}} + +
+ +--- + +## Twitter Simple Shortcode + +{{< twitter_simple 1085870671291310081 >}} + +
+ +--- + +## Vimeo Simple Shortcode + +{{< vimeo_simple 48912912 >}} diff --git a/exampleSite/content/gallery/hugo.md b/exampleSite/content/gallery/hugo.md index 844ce79..afd3891 100644 --- a/exampleSite/content/gallery/hugo.md +++ b/exampleSite/content/gallery/hugo.md @@ -1,4 +1,5 @@ +++ +weight = 1 date = "2017-05-12T22:25:02-07:00" title = "Hugo" image = "hugo.png" diff --git a/exampleSite/content/gallery/kdevo.md b/exampleSite/content/gallery/kdevo.md index 1112a3c..76abfaa 100644 --- a/exampleSite/content/gallery/kdevo.md +++ b/exampleSite/content/gallery/kdevo.md @@ -1,7 +1,9 @@ +++ -date = "2017-05-20T22:25:16-07:00" +weight = 20 +date = "2019-05-17T22:25:16-07:00" title = "kdevo" -image = "kd.png" +# Note that this image will be loaded from the static directory because it is not available under 'assets/': +image = "images/kd.png" alt = "kdevo" color = "#263238" linkView = "https://kdevo.github.io" diff --git a/exampleSite/content/gallery/osprey-delight.md b/exampleSite/content/gallery/osprey-delight.md index ba97d28..b4f7bf5 100644 --- a/exampleSite/content/gallery/osprey-delight.md +++ b/exampleSite/content/gallery/osprey-delight.md @@ -1,8 +1,9 @@ --- -date: "2017-05-18T21:57:17-07:00" +weight: 20 +date: "2019-09-18T21:57:17-07:00" title: "Osprey Delight" -image: "osprey-delight.png" -color: "#b2ebf2" +image: "images/osprey-delight.png" +color: "#C0C0C0 " type: "github" github: repo: "kdevo/osprey" @@ -30,4 +31,4 @@ terminal: {{! github-description !}} -> It tastes a bit different than the original (hence the *light* in the name) but also adds some new functionality to your ***delight***. \ No newline at end of file +Check it out. \ No newline at end of file diff --git a/exampleSite/content/gallery/osprey.md b/exampleSite/content/gallery/osprey.md index 73c736d..3a1ab2f 100644 --- a/exampleSite/content/gallery/osprey.md +++ b/exampleSite/content/gallery/osprey.md @@ -1,7 +1,8 @@ +++ +weight = 10 date = "2017-05-15T21:57:17-07:00" title = "Osprey" -image = "osprey.png" +imageUrl = "images/osprey.png" color = "#F7F7F7" linkView = "https://themes.gohugo.io/theme/osprey/" type = "github" diff --git a/exampleSite/content/gallery/toma-nistor.md b/exampleSite/content/gallery/toma-nistor.md index c96cc07..7acf5ca 100644 --- a/exampleSite/content/gallery/toma-nistor.md +++ b/exampleSite/content/gallery/toma-nistor.md @@ -1,5 +1,6 @@ +++ -date = "2017-05-15T22:25:16-07:00" +weight = 10 +date = "2017-05-15T20:00:16-07:00" title = "Toma Nistor" image = "toma-nistor.png" alt = "Toma Nistor" diff --git a/exampleSite/data/terminal.json b/exampleSite/data/terminal.json index a906bad..68a511b 100644 --- a/exampleSite/data/terminal.json +++ b/exampleSite/data/terminal.json @@ -1,7 +1,7 @@ { "startDelay": 600, - "lineDelay": 1000, - "typeDelay": 90, + "lineDelay": 900, + "typeDelay": 40, "progressChar": "ā–ˆ", "showPercent": true, "progressLength": 32, diff --git a/exampleSite/resources/_gen/assets/scss/sass/main.scss_97bc3a74098849226ebef999cbcdad23.content b/exampleSite/resources/_gen/assets/scss/sass/main.scss_97bc3a74098849226ebef999cbcdad23.content index 78fecf1..22ec9f4 100644 --- a/exampleSite/resources/_gen/assets/scss/sass/main.scss_97bc3a74098849226ebef999cbcdad23.content +++ b/exampleSite/resources/_gen/assets/scss/sass/main.scss_97bc3a74098849226ebef999cbcdad23.content @@ -1 +1 @@ -ļ»æ@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url("./fonts/roboto/roboto-v20-latin-regular.woff2") format("woff2"),url("./fonts/roboto/roboto-v20-latin-regular.woff") format("woff")}@font-face{font-family:'Roboto Slab';font-style:normal;font-weight:400;src:local("Roboto Slab Regular"),local("RobotoSlab-Regular"),url("./fonts/roboto/roboto-slab-v9-latin-regular.woff2") format("woff2"),url("./fonts/roboto/roboto-slab-v9-latin-regular.woff") format("woff")}@font-face{font-family:'icons';font-display:swap;font-weight:normal;font-style:normal;src:url("./fonts/icons/icons.woff2?30") format("woff2"),url("./fonts/icons/icons.woff?30") format("woff")}.col-xs,.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-offset-0,.col-xs-offset-1,.col-xs-offset-2,.col-xs-offset-3,.col-xs-offset-4,.col-xs-offset-5,.col-xs-offset-6,.col-xs-offset-7,.col-xs-offset-8,.col-xs-offset-9,.col-xs-offset-10,.col-xs-offset-11,.col-xs-offset-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem}.container-fluid{margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}.container{margin-right:auto;margin-left:auto}.row{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap}.row.reverse{flex-direction:row-reverse}.col-xs{flex-grow:1;flex-basis:0;max-width:100%}.col-xs-1{flex-basis:8.33333333%;max-width:8.33333333%}.col-xs-2{flex-basis:16.66666667%;max-width:16.66666667%}.col-xs-3{flex-basis:25%;max-width:25%}.col-xs-4{flex-basis:33.33333333%;max-width:33.33333333%}.col-xs-5{flex-basis:41.66666667%;max-width:41.66666667%}.col-xs-6{flex-basis:50%;max-width:50%}.col-xs-7{flex-basis:58.33333333%;max-width:58.33333333%}.col-xs-8{flex-basis:66.66666667%;max-width:66.66666667%}.col-xs-9{flex-basis:75%;max-width:75%}.col-xs-10{flex-basis:83.33333333%;max-width:83.33333333%}.col-xs-11{flex-basis:91.66666667%;max-width:91.66666667%}.col-xs-12{flex-basis:100%;max-width:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-11{margin-left:91.66666667%}.start-xs{justify-content:flex-start;text-align:start}.center-xs{justify-content:center;text-align:center}.end-xs{justify-content:flex-end;text-align:end}.top-xs{align-items:flex-start}.middle-xs{align-items:center}.bottom-xs{align-items:flex-end}.around-xs{justify-content:space-around}.between-xs{justify-content:space-between}.first-xs{order:-1}.last-xs{order:1}@media only screen and (min-width: 48em){.container{width:49rem}.col-sm{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-grow:1;flex-basis:0;max-width:100%}.col-sm-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:8.33333333%;max-width:8.33333333%}.col-sm-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:16.66666667%;max-width:16.66666667%}.col-sm-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:25%;max-width:25%}.col-sm-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:33.33333333%;max-width:33.33333333%}.col-sm-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:41.66666667%;max-width:41.66666667%}.col-sm-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:50%;max-width:50%}.col-sm-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:58.33333333%;max-width:58.33333333%}.col-sm-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:66.66666667%;max-width:66.66666667%}.col-sm-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:75%;max-width:75%}.col-sm-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:83.33333333%;max-width:83.33333333%}.col-sm-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:91.66666667%;max-width:91.66666667%}.col-sm-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:100%;max-width:100%}.col-sm-offset-0{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:0}.col-sm-offset-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:8.33333333%}.col-sm-offset-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:16.66666667%}.col-sm-offset-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:25%}.col-sm-offset-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:33.33333333%}.col-sm-offset-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:41.66666667%}.col-sm-offset-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:50%}.col-sm-offset-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:58.33333333%}.col-sm-offset-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:66.66666667%}.col-sm-offset-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:75%}.col-sm-offset-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:83.33333333%}.col-sm-offset-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:91.66666667%}.col-sm-offset-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem}.start-sm{justify-content:flex-start;text-align:start}.center-sm{justify-content:center;text-align:center}.end-sm{justify-content:flex-end;text-align:end}.top-sm{align-items:flex-start}.middle-sm{align-items:center}.bottom-sm{align-items:flex-end}.around-sm{justify-content:space-around}.between-sm{justify-content:space-between}.first-sm{order:-1}.last-sm{order:1}}@media only screen and (min-width: 64em){.container{width:65rem}.col-md{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-grow:1;flex-basis:0;max-width:100%}.col-md-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:8.33333333%;max-width:8.33333333%}.col-md-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:16.66666667%;max-width:16.66666667%}.col-md-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:25%;max-width:25%}.col-md-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:33.33333333%;max-width:33.33333333%}.col-md-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:41.66666667%;max-width:41.66666667%}.col-md-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:50%;max-width:50%}.col-md-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:58.33333333%;max-width:58.33333333%}.col-md-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:66.66666667%;max-width:66.66666667%}.col-md-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:75%;max-width:75%}.col-md-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:83.33333333%;max-width:83.33333333%}.col-md-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:91.66666667%;max-width:91.66666667%}.col-md-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:100%;max-width:100%}.col-md-offset-0{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:0}.col-md-offset-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:8.33333333%}.col-md-offset-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:16.66666667%}.col-md-offset-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:25%}.col-md-offset-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:33.33333333%}.col-md-offset-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:41.66666667%}.col-md-offset-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:50%}.col-md-offset-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:58.33333333%}.col-md-offset-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:66.66666667%}.col-md-offset-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:75%}.col-md-offset-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:83.33333333%}.col-md-offset-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:91.66666667%}.col-md-offset-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem}.start-md{justify-content:flex-start;text-align:start}.center-md{justify-content:center;text-align:center}.end-md{justify-content:flex-end;text-align:end}.top-md{align-items:flex-start}.middle-md{align-items:center}.bottom-md{align-items:flex-end}.around-md{justify-content:space-around}.between-md{justify-content:space-between}.first-md{order:-1}.last-md{order:1}}@media only screen and (min-width: 75em){.container{width:76rem}.col-lg{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-grow:1;flex-basis:0;max-width:100%}.col-lg-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:8.33333333%;max-width:8.33333333%}.col-lg-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:16.66666667%;max-width:16.66666667%}.col-lg-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:25%;max-width:25%}.col-lg-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:33.33333333%;max-width:33.33333333%}.col-lg-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:41.66666667%;max-width:41.66666667%}.col-lg-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:50%;max-width:50%}.col-lg-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:58.33333333%;max-width:58.33333333%}.col-lg-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:66.66666667%;max-width:66.66666667%}.col-lg-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:75%;max-width:75%}.col-lg-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:83.33333333%;max-width:83.33333333%}.col-lg-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:91.66666667%;max-width:91.66666667%}.col-lg-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:100%;max-width:100%}.col-lg-offset-0{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:0}.col-lg-offset-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:8.33333333%}.col-lg-offset-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:16.66666667%}.col-lg-offset-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:25%}.col-lg-offset-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:33.33333333%}.col-lg-offset-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:41.66666667%}.col-lg-offset-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:50%}.col-lg-offset-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:58.33333333%}.col-lg-offset-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:66.66666667%}.col-lg-offset-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:75%}.col-lg-offset-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:83.33333333%}.col-lg-offset-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:91.66666667%}.col-lg-offset-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem}.start-lg{justify-content:flex-start;text-align:start}.center-lg{justify-content:center;text-align:center}.end-lg{justify-content:flex-end;text-align:end}.top-lg{align-items:flex-start}.middle-lg{align-items:center}.bottom-lg{align-items:flex-end}.around-lg{justify-content:space-around}.between-lg{justify-content:space-between}.first-lg{order:-1}.last-lg{order:1}}.col.reverse{flex-direction:column-reverse}h1{font-size:2.961rem}@media (max-width: 49.99em){h1{font-size:2.441rem}}@media (max-width: 25em){h1{font-size:2.148rem}}h2{font-size:2.221rem}@media (max-width: 49.99em){h2{font-size:1.953em}}@media (max-width: 25em){h2{font-size:1.719rem}}h3{font-size:1.666rem}@media (max-width: 49.99em){h3{font-size:1.563rem}}@media (max-width: 25em){h3{font-size:1.375rem}}small{font-size:0.8em;color:grey}.icon{font:normal normal normal 14px/1 icons;display:inline-block;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-active{color:#0097a7}span.icon{margin-right:.3em}.icon-2x{font-size:2em}.icon-heart:before{content:'\e800'}.icon-attention-circled:before{content:'\e801'}.icon-link:before{content:'\e802'}.icon-ok-circled:before{content:'\e803'}.icon-info-circled:before{content:'\e804'}.icon-cancel-circled:before{content:'\e805'}.icon-download:before{content:'\e806'}.icon-tags:before{content:'\e807'}.icon-link-ext:before{content:'\f08e'}.icon-left-circled:before{content:'\f0a8'}.icon-right-circled:before{content:'\f0a9'}.icon-menu:before{content:'\f0c9'}.icon-money:before{content:'\f0d6'}.icon-mail-alt:before{content:'\f0e0'}.icon-terminal:before{content:'\f120'}.icon-rocket:before{content:'\f135'}.icon-space-shuttle:before{content:'\f197'}.icon-address-card:before{content:'\f2bb'}.icon-share:before{content:'\f1e0'}.icon-github:before{content:'\f09b'}.icon-github-cat:before{content:'\f113'}.icon-twitter:before{content:'\f304'}.icon-facebook:before{content:'\f308'}.icon-linkedin:before{content:'\f30c'}.icon-reddit:before{content:'\f1a2'}.icon-rss:before{content:'\f143'}.icon-youtube:before{content:'\f166'}.icon-stackoverflow:before{content:'\f16c'}.icon-instagram:before{content:'\f16d'}.icon-paypal:before{content:'\f1ed'}.icon-pulse-slow{animation:color 8s infinite;animation-direction:alternate}.icon-pulse-fast{animation:color 2s infinite;animation-direction:alternate}@keyframes color{from{color:#0097a7}to{color:#212121}}@keyframes blink{from,to{color:transparent}50%{color:#212121}}@keyframes scale-in-center{0%{transform:scale(0);opacity:1}100%{transform:scale(1);opacity:1}}@keyframes scale-out-center{0%{transform:scale(1);opacity:1}100%{transform:scale(0);opacity:1}}.cursor{animation:1.2s blink infinite}.scale-in-center{animation:scale-in-center 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) both}.scale-out-center{animation:scale-out-center 0.4s cubic-bezier(0.895, 0.03, 0.685, 0.22) both}body{font-size:1.25rem;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;color:#212121;font-family:"Roboto","Poppins","HelĀ­vetica",Arial,sans-serif;line-height:1.6}@media (max-width: 49.99em){body{font-size:1.25rem}}@media (max-width: 25em){body{font-size:1.1rem}}header{height:100vh;background-color:#fff}header div{z-index:101}header img{max-height:12rem}header h1{font-family:"Roboto","Poppins","HelĀ­vetica",Arial,sans-serif}footer{height:12rem;background-color:#212121}footer div,footer a,footer .icon{color:#fff}strong{font-weight:600}del,s{text-decoration:line-through}em,dfn{font-style:italic}a{transition:color .2s ease-out;text-decoration:none}a img{border:0}a:hover{color:#0097a7}img{display:inline-block;max-width:100%;vertical-align:middle}ul,ol{margin-bottom:2rem}ul li,ol li{margin-left:1.25em}ul li code,ol li code{font-family:"Menlo","Monaco","Andale Mono","lucida console","Courier New",monospace}ul li{list-style-type:disc}.show{transition:opacity 600ms}.hide{opacity:0}.modal{display:flex;visibility:hidden;position:fixed;z-index:-1000;top:0;left:0;width:100%;height:100%;overflow:hidden;overflow-x:hidden;transition:opacity .1s ease-out;background-color:rgba(33,33,33,0.75)}.modal.active{visibility:visible;z-index:1000}.modal a:hover{color:#0097a7}.modal article a{color:#0097a7}.modal-box{position:relative;width:80%;max-width:1000px;max-height:85vh;margin:auto;border-radius:9px;background-color:#F7F7F7;box-shadow:0 0 50px 0 #212121}.modal-container{overflow:hidden;border-radius:7px}.modal-header{height:20vh;border-radius:7px}.modal-header-img-container{display:flex;align-items:center;justify-content:center;height:100%;padding:40px}.modal-header-img-container img{max-height:100%}.modal-content{max-height:calc(80vh - 20vh);padding:30px;overflow-y:auto}.term-content{max-height:calc(80vh - 20vh);overflow-y:auto}.close{position:absolute;top:10px;right:-4px;color:#F7F7F7;font-size:30px;font-weight:bold;line-height:.5}.close:hover,.close:focus{color:#0097a7;text-decoration:none;cursor:pointer}.repo-info{color:grey;font-size:0.65em}.repo-info a{color:grey}.repo-info .icon{color:grey}.about{width:100%;background-color:#F7F7F7}.about p{font-size:1.666rem;margin-top:2rem}@media (max-width: 49.99em){.about p{font-size:1.563rem}}@media (max-width: 25em){.about p{font-size:1.375rem}}.about a{background-image:linear-gradient(#0097a7, #0097a7);background-repeat:repeat-x;background-position:0 95%;background-size:2px 3px;text-decoration:none;text-shadow:0.03em 0 #fff,-0.03em 0 #fff,0 0.03em #fff,0 -0.03em #fff,0.06em 0 #fff,-0.06em 0 #fff,0.09em 0 #fff,-0.09em 0 #fff,0.12em 0 #fff,-0.12em 0 #fff,0.15em 0 #fff,-0.15em 0 #fff,0.03em 0.075em #fff,-0.03em 0.075em #fff,0.06em 0.075em #fff,-0.06em 0.075em #fff,0.09em 0.075em #fff,-0.09em 0.075em #fff,0.12em 0.075em #fff,-0.12em 0.075em #fff,0.15em 0.075em #fff,-0.15em 0.075em #fff}.about a:hover{color:#0097a7}.gallery .gallery-item{position:relative;width:50%;padding:0}.gallery .gallery-item::after{content:"";display:block;padding-bottom:100%}.gallery .gallery-item:hover .overlay{visibility:visible;opacity:1}.gallery .overlay{visibility:hidden;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transition:.25s ease-out;opacity:0;background-color:#212121;cursor:pointer}.gallery .overlay a{color:#fff}.gallery .overlay a:hover{color:#0097a7}.gallery .overlay h2{margin:2rem;color:#fff}.gallery .gallery-img-container{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%}.gallery img{padding:6rem}.gallery .gallery-modal-link{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%}[data-termynal]{max-width:100%;background:#212121;color:#F7F7F7;font-size:0.8em;font-family:"Menlo","Monaco","Andale Mono","lucida console","Courier New",monospace;padding:75px 45px 35px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}[data-termynal]:before{content:'';position:absolute;top:15px;left:15px;display:inline-block;width:15px;height:15px;border-radius:50%;background:#d9515d;-webkit-box-shadow:25px 0 0 #f4c025,50px 0 0 #0097a7;box-shadow:25px 0 0 #f4c025,50px 0 0 #0097a7}[data-termynal]:after{content:"term";position:absolute;color:#4E6B6C;top:5px;left:0;width:100%;text-align:center}[data-ty]{display:block;line-height:2;color:#F7F7F7}[data-ty]:before{content:'';display:inline-block;vertical-align:middle}[data-ty="input"]:before,[data-ty-prompt]:before{margin-right:0.75em;color:#4E6B6C}[data-ty="input"]:before{content:'$'}[data-ty][data-ty-prompt]:before{content:attr(data-ty-prompt)}[data-ty-cursor]:after{content:attr(data-ty-cursor);font-family:monospace;margin-left:0.5em;-webkit-animation:blink 1s infinite;animation:blink 1s infinite}@-webkit-keyframes blink{50%{opacity:0}}@keyframes blink{50%{opacity:0}}*{box-sizing:border-box;margin:0;padding:0;border:0;font:inherit;color:#212121;vertical-align:baseline}*::before,*::after{box-sizing:border-box}html{box-sizing:inherit;overflow-x:hidden;scroll-behavior:smooth}footer .icon{padding-top:0.5em;font-size:1.25em}@media (max-width: 47.99em){body .container{padding:8rem 2rem}nav div:not(:first-child):not(:last-child){display:none}nav div.nav-toggle a{display:inline-block}footer .icon{padding:0.5em;font-size:2em}.mobile-hidden{visibility:hidden}}@media (max-width: 25em){body .container{padding:8rem 2rem}nav div.logo,nav div.nav-toggle{max-width:50% !important}}nav{position:absolute;z-index:100;bottom:0;width:100%;height:4rem;background-color:#fff;text-align:center}nav h3{margin:0;font-family:"Roboto","Poppins","HelĀ­vetica",Arial,sans-serif;font-weight:600;letter-spacing:2px;text-transform:uppercase}nav img{display:inline-block;max-width:10em;max-height:2.5em;vertical-align:middle}nav .logo,nav .nav-toggle{visibility:hidden}nav .nav-toggle a{display:none}nav .nav-item-active a{color:#0097a7}.nav-shadow{box-shadow:0 3px 4px rgba(0,0,0,0.2)}.nav-fixed{position:fixed;top:0;bottom:auto}.nav-full{position:fixed;top:0;right:-100vw;bottom:0;width:100vw;height:100%;transform:translate(0, 0);transition:.3s ease-out;background-color:#212121}.nav-full a,.nav-full .icon{color:#fff}.nav-full a:hover,.nav-full .icon:hover{color:#0097a7}.nav-full.active{transform:translate(-100vw, 0)}main{transition:.3s ease-in;background-color:#F7F7F7}main.active{transform:translate(-100vw, 0)}.container{max-width:43.75rem;margin:auto;padding:8rem 0 8rem}p{margin-bottom:2rem}p code{font-family:"Menlo","Monaco","Andale Mono","lucida console","Courier New",monospace}h1,h2,h3{margin-bottom:2rem;font-family:"Roboto Slab","Ubuntu","Cambria",Georgia,serif;letter-spacing:2px;line-height:1.45}h1 a,h2 a,h3 a{text-decoration:none}.home-logo{margin-bottom:2rem}a>.icon{transition:color .2s ease-out}a>.icon:not(.icon-menu):hover,a>.icon:not(.icon-menu):focus{color:#0097a7}.full{top:0;bottom:0;height:100vh}.contact{width:100%;padding-bottom:4rem;background-color:#F7F7F7}.contact form{margin-top:2rem}.contact .contact-submit{position:relative}.contact #form-submit{display:block;width:50%;margin:0 auto}.contact #form-thankyou,.contact #form-sending,.contact #form-error{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}input,textarea,button,select{width:100%;margin:8px 0;padding:10px;border-width:1px;border-style:solid;border-radius:3px;border-color:#F7F7F7;background-color:#fff;color:#212121}input[type="submit"],textarea[type="submit"],button[type="submit"],select[type="submit"]{transition:.4s ease-out;background-color:#4E6B6C;color:#fff}input[type="submit"]:hover,textarea[type="submit"]:hover,button[type="submit"]:hover,select[type="submit"]:hover{background-color:#0097a7;color:#fff;cursor:pointer}input .icon,textarea .icon,button .icon,select .icon{color:#fff}button{white-space:nowrap}textarea{min-height:8rem;overflow:auto} +ļ»æ@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url("./fonts/roboto/roboto-v20-latin-regular.woff2") format("woff2"),url("./fonts/roboto/roboto-v20-latin-regular.woff") format("woff")}@font-face{font-family:'Roboto Slab';font-style:normal;font-weight:400;src:local("Roboto Slab Regular"),local("RobotoSlab-Regular"),url("./fonts/roboto/roboto-slab-v9-latin-regular.woff2") format("woff2"),url("./fonts/roboto/roboto-slab-v9-latin-regular.woff") format("woff")}@font-face{font-family:'icons';font-display:swap;font-weight:normal;font-style:normal;src:url("./fonts/icons/icons.woff2?30") format("woff2"),url("./fonts/icons/icons.woff?30") format("woff")}.col-xs-offset-12,.col-xs-offset-11,.col-xs-offset-10,.col-xs-offset-9,.col-xs-offset-8,.col-xs-offset-7,.col-xs-offset-6,.col-xs-offset-5,.col-xs-offset-4,.col-xs-offset-3,.col-xs-offset-2,.col-xs-offset-1,.col-xs-offset-0,.col-xs-12,.col-xs-11,.col-xs-10,.col-xs-9,.col-xs-8,.col-xs-7,.col-xs-6,.col-xs-5,.col-xs-4,.col-xs-3,.col-xs-2,.col-xs-1,.col-xs{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem}.container-fluid{margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}.container{margin-right:auto;margin-left:auto}.row{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap}.row.reverse{flex-direction:row-reverse}.col-xs{flex-grow:1;flex-basis:0;max-width:100%}.col-xs-1{flex-basis:8.33333333%;max-width:8.33333333%}.col-xs-2{flex-basis:16.66666667%;max-width:16.66666667%}.col-xs-3{flex-basis:25%;max-width:25%}.col-xs-4{flex-basis:33.33333333%;max-width:33.33333333%}.col-xs-5{flex-basis:41.66666667%;max-width:41.66666667%}.col-xs-6{flex-basis:50%;max-width:50%}.col-xs-7{flex-basis:58.33333333%;max-width:58.33333333%}.col-xs-8{flex-basis:66.66666667%;max-width:66.66666667%}.col-xs-9{flex-basis:75%;max-width:75%}.col-xs-10{flex-basis:83.33333333%;max-width:83.33333333%}.col-xs-11{flex-basis:91.66666667%;max-width:91.66666667%}.col-xs-12{flex-basis:100%;max-width:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-11{margin-left:91.66666667%}.start-xs{justify-content:flex-start;text-align:start}.center-xs{justify-content:center;text-align:center}.end-xs{justify-content:flex-end;text-align:end}.top-xs{align-items:flex-start}.middle-xs{align-items:center}.bottom-xs{align-items:flex-end}.around-xs{justify-content:space-around}.between-xs{justify-content:space-between}.first-xs{order:-1}.last-xs{order:1}@media only screen and (min-width: 48em){.container{width:49rem}.col-sm{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-grow:1;flex-basis:0;max-width:100%}.col-sm-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:8.33333333%;max-width:8.33333333%}.col-sm-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:16.66666667%;max-width:16.66666667%}.col-sm-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:25%;max-width:25%}.col-sm-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:33.33333333%;max-width:33.33333333%}.col-sm-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:41.66666667%;max-width:41.66666667%}.col-sm-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:50%;max-width:50%}.col-sm-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:58.33333333%;max-width:58.33333333%}.col-sm-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:66.66666667%;max-width:66.66666667%}.col-sm-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:75%;max-width:75%}.col-sm-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:83.33333333%;max-width:83.33333333%}.col-sm-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:91.66666667%;max-width:91.66666667%}.col-sm-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:100%;max-width:100%}.col-sm-offset-0{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:0}.col-sm-offset-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:8.33333333%}.col-sm-offset-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:16.66666667%}.col-sm-offset-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:25%}.col-sm-offset-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:33.33333333%}.col-sm-offset-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:41.66666667%}.col-sm-offset-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:50%}.col-sm-offset-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:58.33333333%}.col-sm-offset-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:66.66666667%}.col-sm-offset-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:75%}.col-sm-offset-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:83.33333333%}.col-sm-offset-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:91.66666667%}.col-sm-offset-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem}.start-sm{justify-content:flex-start;text-align:start}.center-sm{justify-content:center;text-align:center}.end-sm{justify-content:flex-end;text-align:end}.top-sm{align-items:flex-start}.middle-sm{align-items:center}.bottom-sm{align-items:flex-end}.around-sm{justify-content:space-around}.between-sm{justify-content:space-between}.first-sm{order:-1}.last-sm{order:1}}@media only screen and (min-width: 64em){.container{width:65rem}.col-md{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-grow:1;flex-basis:0;max-width:100%}.col-md-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:8.33333333%;max-width:8.33333333%}.col-md-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:16.66666667%;max-width:16.66666667%}.col-md-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:25%;max-width:25%}.col-md-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:33.33333333%;max-width:33.33333333%}.col-md-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:41.66666667%;max-width:41.66666667%}.col-md-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:50%;max-width:50%}.col-md-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:58.33333333%;max-width:58.33333333%}.col-md-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:66.66666667%;max-width:66.66666667%}.col-md-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:75%;max-width:75%}.col-md-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:83.33333333%;max-width:83.33333333%}.col-md-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:91.66666667%;max-width:91.66666667%}.col-md-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:100%;max-width:100%}.col-md-offset-0{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:0}.col-md-offset-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:8.33333333%}.col-md-offset-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:16.66666667%}.col-md-offset-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:25%}.col-md-offset-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:33.33333333%}.col-md-offset-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:41.66666667%}.col-md-offset-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:50%}.col-md-offset-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:58.33333333%}.col-md-offset-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:66.66666667%}.col-md-offset-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:75%}.col-md-offset-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:83.33333333%}.col-md-offset-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:91.66666667%}.col-md-offset-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem}.start-md{justify-content:flex-start;text-align:start}.center-md{justify-content:center;text-align:center}.end-md{justify-content:flex-end;text-align:end}.top-md{align-items:flex-start}.middle-md{align-items:center}.bottom-md{align-items:flex-end}.around-md{justify-content:space-around}.between-md{justify-content:space-between}.first-md{order:-1}.last-md{order:1}}@media only screen and (min-width: 75em){.container{width:76rem}.col-lg{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-grow:1;flex-basis:0;max-width:100%}.col-lg-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:8.33333333%;max-width:8.33333333%}.col-lg-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:16.66666667%;max-width:16.66666667%}.col-lg-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:25%;max-width:25%}.col-lg-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:33.33333333%;max-width:33.33333333%}.col-lg-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:41.66666667%;max-width:41.66666667%}.col-lg-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:50%;max-width:50%}.col-lg-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:58.33333333%;max-width:58.33333333%}.col-lg-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:66.66666667%;max-width:66.66666667%}.col-lg-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:75%;max-width:75%}.col-lg-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:83.33333333%;max-width:83.33333333%}.col-lg-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:91.66666667%;max-width:91.66666667%}.col-lg-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;flex-basis:100%;max-width:100%}.col-lg-offset-0{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:0}.col-lg-offset-1{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:8.33333333%}.col-lg-offset-2{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:16.66666667%}.col-lg-offset-3{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:25%}.col-lg-offset-4{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:33.33333333%}.col-lg-offset-5{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:41.66666667%}.col-lg-offset-6{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:50%}.col-lg-offset-7{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:58.33333333%}.col-lg-offset-8{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:66.66666667%}.col-lg-offset-9{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:75%}.col-lg-offset-10{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:83.33333333%}.col-lg-offset-11{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem;margin-left:91.66666667%}.col-lg-offset-12{box-sizing:border-box;flex:0 0 auto;padding-right:0.5rem;padding-left:0.5rem}.start-lg{justify-content:flex-start;text-align:start}.center-lg{justify-content:center;text-align:center}.end-lg{justify-content:flex-end;text-align:end}.top-lg{align-items:flex-start}.middle-lg{align-items:center}.bottom-lg{align-items:flex-end}.around-lg{justify-content:space-around}.between-lg{justify-content:space-between}.first-lg{order:-1}.last-lg{order:1}}.col.reverse{flex-direction:column-reverse}h1{font-size:2.961rem}@media (max-width: 49.99em){h1{font-size:2.441rem}}@media (max-width: 25em){h1{font-size:2.148rem}}h2{font-size:2.221rem}@media (max-width: 49.99em){h2{font-size:1.953em}}@media (max-width: 25em){h2{font-size:1.719rem}}h3{font-size:1.666rem}@media (max-width: 49.99em){h3{font-size:1.563rem}}@media (max-width: 25em){h3{font-size:1.375rem}}small{font-size:0.8em;color:grey}.icon{font:normal normal normal 14px/1 icons;display:inline-block;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-active{color:#0097a7}span.icon{margin-right:.3em}.icon-2x{font-size:2em}.icon-heart:before{content:'\e800'}.icon-attention-circled:before{content:'\e801'}.icon-link:before{content:'\e802'}.icon-ok-circled:before{content:'\e803'}.icon-info-circled:before{content:'\e804'}.icon-cancel-circled:before{content:'\e805'}.icon-download:before{content:'\e806'}.icon-tags:before{content:'\e807'}.icon-link-ext:before{content:'\f08e'}.icon-left-circled:before{content:'\f0a8'}.icon-right-circled:before{content:'\f0a9'}.icon-menu:before{content:'\f0c9'}.icon-money:before{content:'\f0d6'}.icon-mail-alt:before{content:'\f0e0'}.icon-terminal:before{content:'\f120'}.icon-rocket:before{content:'\f135'}.icon-space-shuttle:before{content:'\f197'}.icon-address-card:before{content:'\f2bb'}.icon-share:before{content:'\f1e0'}.icon-github:before{content:'\f09b'}.icon-github-cat:before{content:'\f113'}.icon-twitter:before{content:'\f304'}.icon-facebook:before{content:'\f308'}.icon-linkedin:before{content:'\f30c'}.icon-reddit:before{content:'\f1a2'}.icon-rss:before{content:'\f143'}.icon-youtube:before{content:'\f166'}.icon-stackoverflow:before{content:'\f16c'}.icon-instagram:before{content:'\f16d'}.icon-paypal:before{content:'\f1ed'}.icon-pulse-slow{animation:color 8s infinite;animation-direction:alternate}.icon-pulse-fast{animation:color 2s infinite;animation-direction:alternate}@keyframes color{from{color:#0097a7}to{color:#212121}}@keyframes blink{from,to{color:transparent}50%{color:#212121}}@keyframes scale-in-center{0%{transform:scale(0);opacity:1}100%{transform:scale(1);opacity:1}}@keyframes scale-out-center{0%{transform:scale(1);opacity:1}100%{transform:scale(0);opacity:1}}.cursor{animation:1.2s blink infinite}.scale-in-center{animation:scale-in-center 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) both}.scale-out-center{animation:scale-out-center 0.4s cubic-bezier(0.895, 0.03, 0.685, 0.22) both}body{font-size:1.25rem;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;color:#212121;font-family:"Roboto","Rubic","Poppins","HelĀ­vetica",Arial,sans-serif;line-height:1.6}@media (max-width: 49.99em){body{font-size:1.25rem}}@media (max-width: 25em){body{font-size:1.1rem}}header{height:100vh;background-color:#fff}header div{z-index:101}header img{max-height:12rem}header h1{font-family:"Roboto","Rubic","Poppins","HelĀ­vetica",Arial,sans-serif}footer{height:14rem;background-color:#212121}footer div,footer a,footer .icon{color:#fff}strong{font-weight:600}del,s{text-decoration:line-through}em,q,dfn{font-style:italic}a{transition:color .2s ease-out;text-decoration:none}a img{border:0}a:hover{color:#0097a7}img{display:inline-block;max-width:100%;vertical-align:middle}ul,ol{margin-bottom:2rem}ul li,ol li{margin-left:1.25em}ul li code,ol li code{font-family:"Roboto Mono","Menlo","Monaco","Andale Mono","lucida console","Courier New",monospace}ul li{list-style-type:disc}.show{transition:opacity 600ms}.hide{opacity:0}.modal{display:flex;visibility:hidden;position:fixed;z-index:-1000;top:0;left:0;width:100%;height:100%;overflow:hidden;overflow-x:hidden;transition:opacity .1s ease-out;background-color:rgba(33,33,33,0.75)}.modal.active{visibility:visible;z-index:1000}.modal a:hover{color:#0097a7}.modal article a{color:#0097a7}.modal-box{position:relative;width:80%;max-width:1000px;max-height:85vh;margin:auto;border-radius:9px;background-color:#F7F7F7;box-shadow:0 0 50px 0 #212121}.modal-container{overflow:hidden;border-radius:7px}.modal-header{height:20vh;border-radius:7px}.modal-header-img-container{display:flex;align-items:center;justify-content:center;height:100%;padding:40px}.modal-header-img-container img{max-height:100%}.modal-content{max-height:calc(80vh - 20vh);padding:30px;overflow-y:auto}.term-content{max-height:calc(80vh - 20vh);overflow-y:auto}.close{position:absolute;top:10px;right:-4px;color:#F7F7F7;font-size:30px;font-weight:bold;line-height:.5;transition:color .2s ease-out}.close:hover,.close:focus{color:#0097a7;text-decoration:none;cursor:pointer}.repo-info{color:grey;font-size:0.65em}.repo-info a{color:grey}.repo-info .icon{color:grey}.about{width:100%;background-color:#F7F7F7}.about p{font-size:1.666rem;margin-top:2rem}@media (max-width: 49.99em){.about p{font-size:1.563rem}}@media (max-width: 25em){.about p{font-size:1.375rem}}.about a{background-image:linear-gradient(#0097a7, #0097a7);background-repeat:repeat-x;background-position:0 95%;background-size:2px 3px;text-decoration:none;text-shadow:0.03em 0 #fff,-0.03em 0 #fff,0 0.03em #fff,0 -0.03em #fff,0.06em 0 #fff,-0.06em 0 #fff,0.09em 0 #fff,-0.09em 0 #fff,0.12em 0 #fff,-0.12em 0 #fff,0.15em 0 #fff,-0.15em 0 #fff,0.03em 0.075em #fff,-0.03em 0.075em #fff,0.06em 0.075em #fff,-0.06em 0.075em #fff,0.09em 0.075em #fff,-0.09em 0.075em #fff,0.12em 0.075em #fff,-0.12em 0.075em #fff,0.15em 0.075em #fff,-0.15em 0.075em #fff}.about a:hover{color:#0097a7}.gallery .gallery-item{position:relative;width:50%;padding:0}.gallery .gallery-item::after{content:"";display:block;padding-bottom:100%}.gallery .gallery-item:hover .overlay{visibility:visible;opacity:1}.gallery .overlay{visibility:hidden;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transition:.25s ease-out;opacity:0;background-color:#212121;cursor:pointer}.gallery .overlay a{color:#fff}.gallery .overlay a:hover{color:#0097a7}.gallery .overlay h2{margin:2rem;color:#fff}.gallery .gallery-img-container{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%}.gallery img{padding:6rem}.gallery .gallery-modal-link{display:flex;position:absolute;align-items:center;justify-content:center;width:100%;height:100%}img.lazyload:not([src]){visibility:hidden}.chroma{color:#93a1a1;background-color:#002b36}.chroma .x{color:#cb4b16}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:#ffffcc}.chroma .lnt{margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#495050}.chroma .ln{margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#495050}.chroma .k{color:#719e07}.chroma .kc{color:#cb4b16}.chroma .kd{color:#268bd2}.chroma .kn{color:#719e07}.chroma .kp{color:#719e07}.chroma .kr{color:#268bd2}.chroma .kt{color:#dc322f}.chroma .nb{color:#b58900}.chroma .bp{color:#268bd2}.chroma .nc{color:#268bd2}.chroma .no{color:#cb4b16}.chroma .nd{color:#268bd2}.chroma .ni{color:#cb4b16}.chroma .ne{color:#cb4b16}.chroma .nf{color:#268bd2}.chroma .nt{color:#268bd2}.chroma .nv{color:#268bd2}.chroma .s{color:#2aa198}.chroma .sa{color:#2aa198}.chroma .sb{color:#586e75}.chroma .sc{color:#2aa198}.chroma .dl{color:#2aa198}.chroma .s2{color:#2aa198}.chroma .se{color:#cb4b16}.chroma .si{color:#2aa198}.chroma .sx{color:#2aa198}.chroma .sr{color:#dc322f}.chroma .s1{color:#2aa198}.chroma .ss{color:#2aa198}.chroma .m{color:#2aa198}.chroma .mb{color:#2aa198}.chroma .mf{color:#2aa198}.chroma .mh{color:#2aa198}.chroma .mi{color:#2aa198}.chroma .il{color:#2aa198}.chroma .mo{color:#2aa198}.chroma .o{color:#719e07}.chroma .ow{color:#719e07}.chroma .c{color:#586e75}.chroma .ch{color:#586e75}.chroma .cm{color:#586e75}.chroma .c1{color:#586e75}.chroma .cs{color:#719e07}.chroma .cp{color:#719e07}.chroma .cpf{color:#719e07}.chroma .gd{color:#dc322f}.chroma .ge{font-style:italic}.chroma .gr{color:#dc322f;font-weight:bold}.chroma .gh{color:#cb4b16}.chroma .gi{color:#719e07}.chroma .gs{font-weight:bold}.chroma .gu{color:#268bd2}pre code{color:inherit;font-family:"Roboto Mono","Menlo","Monaco","Andale Mono","lucida console","Courier New",monospace}pre{margin-top:8px;padding:16px;border-radius:4px;margin-bottom:2rem;overflow:auto;word-wrap:normal}.mono,tt{font-family:"Roboto Mono","Menlo","Monaco","Andale Mono","lucida console","Courier New",monospace}q::before{content:"\201C"}q::after{content:"\201D"}blockquote::after,blockquote::before{content:"\201C";color:#0097a7;font-family:"Roboto Slab","Bitter","Ubuntu",Georgia,serif;font-size:35px}blockquote{padding:25px;font-family:"Roboto Slab","Bitter","Ubuntu",Georgia,serif;text-align:center}blockquote p{display:inline-block;font-style:italic}blockquote::after{content:"\201D"}.posts-list{margin:0 0 2rem}.sub-header,time{font-size:1.25rem;margin-bottom:2rem;color:#4E6B6C}@media (max-width: 49.99em){.sub-header,time{font-size:1.25rem}}@media (max-width: 25em){.sub-header,time{font-size:1.1rem}}.content{width:100%;text-align:left}.content time{margin-left:3px}.pagination{margin:50px 0 0}.pagination:nth-child(2){float:right}.blog{display:flex;min-height:100vh;background-color:#fff}.blog h2{margin-bottom:0}.blog h3{margin:0 0 4rem;font-family:"Roboto","Rubic","Poppins","HelĀ­vetica",Arial,sans-serif}[data-termynal]{max-width:100%;background:#212121;color:#F7F7F7;font-size:0.8em;font-family:"Roboto Mono","Menlo","Monaco","Andale Mono","lucida console","Courier New",monospace;padding:75px 45px 35px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}[data-termynal]:before{content:'';position:absolute;top:15px;left:15px;display:inline-block;width:15px;height:15px;border-radius:50%;background:#d9515d;-webkit-box-shadow:25px 0 0 #f4c025,50px 0 0 #0097a7;box-shadow:25px 0 0 #f4c025,50px 0 0 #0097a7}[data-termynal]:after{content:"term";position:absolute;color:#4E6B6C;top:5px;left:0;width:100%;text-align:center}[data-ty]{display:block;line-height:2;color:#F7F7F7}[data-ty]:before{content:'';display:inline-block;vertical-align:middle}[data-ty="input"]:before,[data-ty-prompt]:before{margin-right:0.75em;color:#4E6B6C}[data-ty="input"]:before{content:'$'}[data-ty][data-ty-prompt]:before{content:attr(data-ty-prompt)}[data-ty-cursor]:after{content:attr(data-ty-cursor);font-family:monospace;margin-left:0.5em;-webkit-animation:blink 1s infinite;animation:blink 1s infinite}@-webkit-keyframes blink{50%{opacity:0}}@keyframes blink{50%{opacity:0}}*{box-sizing:border-box;margin:0;padding:0;border:0;font:inherit;color:inherit;vertical-align:baseline}*::before,*::after{box-sizing:border-box}html{box-sizing:inherit;overflow-x:hidden;scroll-behavior:smooth}footer{padding-bottom:1em}footer .icon{margin-top:1em;margin-bottom:1em;font-size:2em}footer a>.icon{color:#fff}@media (max-width: 47.99em){body .container{padding:8rem 2rem}nav div:not(:first-child):not(:last-child){display:none}nav div.nav-toggle a{display:inline-block}.mobile-hidden{visibility:hidden}}@media (max-width: 25em){body .container{padding:8rem 2rem}nav div.logo,nav div.nav-toggle{max-width:50% !important}}nav{position:absolute;z-index:100;bottom:0;width:100%;height:4rem;background-color:#fff;text-align:center}nav h3{margin:0;font-family:"Roboto","Rubic","Poppins","HelĀ­vetica",Arial,sans-serif;font-weight:600;letter-spacing:2px;text-transform:uppercase}nav img{display:inline-block;max-width:10em;max-height:2.5em;vertical-align:middle}nav .logo,nav .nav-toggle{visibility:hidden}nav .nav-toggle a{display:none}nav .nav-item-active a{color:#0097a7}.nav-shadow{box-shadow:0 3px 4px rgba(0,0,0,0.2)}.nav-fixed{position:fixed;top:0;bottom:auto}.nav-full{position:fixed;top:0;right:-100vw;bottom:0;width:100vw;height:100%;transform:translate(0, 0);transition:.3s ease-out;background-color:#212121}.nav-full a,.nav-full .icon{color:#fff}.nav-full a:hover,.nav-full .icon:hover{color:#0097a7}.nav-full.active{transform:translate(-100vw, 0)}main{transition:.3s ease-in;background-color:#F7F7F7}main.active{transform:translate(-100vw, 0)}.container{max-width:43.75rem;margin:auto;padding:8rem 0 8rem}p{margin-bottom:2rem}p code{font-family:"Roboto Mono","Menlo","Monaco","Andale Mono","lucida console","Courier New",monospace}h1,h2,h3{margin-bottom:2rem;font-family:"Roboto Slab","Bitter","Ubuntu",Georgia,serif;letter-spacing:2px;line-height:1.45}h1 a,h2 a,h3 a{text-decoration:none}.home-logo{margin-bottom:2rem}a>.icon{color:#212121;transition:color .2s ease-out}a>.icon:not(.icon-menu):hover,a>.icon:not(.icon-menu):focus{color:#0097a7}.full{top:0;bottom:0;height:100vh}.contact{width:100%;padding-bottom:4rem;background-color:#F7F7F7}.contact form{margin-top:2rem}.contact .contact-submit{position:relative}.contact #form-submit{display:block;width:50%;margin:0 auto}.contact #form-thankyou,.contact #form-sending,.contact #form-error{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}input,textarea,button,select{width:100%;margin:8px 0;padding:10px;border-width:1px;border-style:solid;border-radius:3px;border-color:#F7F7F7;background-color:#fff;color:#212121}input[type="submit"],textarea[type="submit"],button[type="submit"],select[type="submit"]{transition:.4s ease-out;background-color:#4E6B6C;color:#fff}input[type="submit"]:hover,textarea[type="submit"]:hover,button[type="submit"]:hover,select[type="submit"]:hover{background-color:#0097a7;color:#fff;cursor:pointer}input .icon,textarea .icon,button .icon,select .icon{color:#fff}button{white-space:nowrap}textarea{min-height:8rem;overflow:auto} diff --git a/exampleSite/resources/_gen/assets/scss/sass/main.scss_97bc3a74098849226ebef999cbcdad23.json b/exampleSite/resources/_gen/assets/scss/sass/main.scss_97bc3a74098849226ebef999cbcdad23.json index 2e2477e..9971233 100644 --- a/exampleSite/resources/_gen/assets/scss/sass/main.scss_97bc3a74098849226ebef999cbcdad23.json +++ b/exampleSite/resources/_gen/assets/scss/sass/main.scss_97bc3a74098849226ebef999cbcdad23.json @@ -1 +1 @@ -{"Target":"style.99c706c4b39456921057527eaa07573c108e67651332a274dbe919b51fefad88.css","MediaType":"text/css","Data":{"Integrity":"sha256-mccGxLOUVpIQV1J+qgdXPBCOZ2UTMqJ02+kZtR/vrYg="}} \ No newline at end of file +{"Target":"style.8bf9e65afd7249b538482c017b52bc4aab6c35fb771c80a22694935428991e48.css","MediaType":"text/css","Data":{"Integrity":"sha256-i/nmWv1ySbU4SCwBe1K8SqtsNft3HICiJpSTVCiZHkg="}} \ No newline at end of file diff --git a/exampleSite/static/images/osprey-logo.png b/exampleSite/static/images/osprey-logo.png deleted file mode 100644 index 64fdca7..0000000 Binary files a/exampleSite/static/images/osprey-logo.png and /dev/null differ diff --git a/exampleSite/static/images/rugged-fellows-guide.png b/exampleSite/static/images/rugged-fellows-guide.png deleted file mode 100644 index f6d9dba..0000000 Binary files a/exampleSite/static/images/rugged-fellows-guide.png and /dev/null differ diff --git a/images/github-status.png b/images/github-status.png new file mode 100644 index 0000000..60e2b86 Binary files /dev/null and b/images/github-status.png differ diff --git a/images/screenshot-modal.png b/images/screenshot-modal.png new file mode 100644 index 0000000..0147700 Binary files /dev/null and b/images/screenshot-modal.png differ diff --git a/layouts/_default/list.html b/layouts/_default/list.html index 1a239d7..d462c2b 100644 --- a/layouts/_default/list.html +++ b/layouts/_default/list.html @@ -9,7 +9,7 @@
-
+

{{ humanize .Type }}

diff --git a/layouts/index.html b/layouts/index.html index 5c25c12..0fb7787 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -11,12 +11,19 @@ {{ if not (eq (len (where .Site.RegularPages "Section" "gallery")) 0) }} {{ partial "gallery.html" . }} + {{ partial "modals.html" . }} {{ end }} - + {{ if .Site.Params.Feat.useBlog -}} + {{ if not (eq (len (where .Site.RegularPages "Section" "blog")) 0) }} + {{ partial "blog.html" . }} + {{ if .Site.Params.enforceSinglePage -}} + {{ warnf "enforceSinglePage and useBlog are both set to true. This is very likely not what you want (blog posts will always redirect to main page)"}} + + {{- end }} + {{ end }} + {{ end }} {{ partial "contact.html" . }} diff --git a/layouts/partials/blog.html b/layouts/partials/blog.html index 57cd613..374ef0d 100644 --- a/layouts/partials/blog.html +++ b/layouts/partials/blog.html @@ -3,7 +3,7 @@

{{ i18n "latestPosts" }}

-
+
{{ range first 5 (where .Site.RegularPages "Section" "blog") }}
diff --git a/layouts/partials/body-bottom.html b/layouts/partials/body-bottom.html index 79864fb..71610b4 100644 --- a/layouts/partials/body-bottom.html +++ b/layouts/partials/body-bottom.html @@ -4,11 +4,20 @@ {{ $scripts = $scripts | append (resources.Get "js/src/termynal.js" | resources.ExecuteAsTemplate "js/src/termynal.js" .) }} {{- end }} {{ if not (eq (len (where .Site.RegularPages "Section" "gallery")) 0) -}} - {{ partial "modals.html" . }} {{ $scripts = $scripts | append (resources.Get "js/src/modal.js" | resources.ExecuteAsTemplate "js/src/modal.js" .) }} {{- end }} {{ $scripts = $scripts | append (resources.Get "js/src/nav.js" | resources.ExecuteAsTemplate "js/src/nav.js" .) }} {{ if (.Site.Params.Feat.ajaxBasin) -}} {{ $scripts = $scripts | append (resources.Get "js/src/contact.js" | resources.ExecuteAsTemplate "js/src/contact.js" .) }} {{- end }} - +{{ if .Site.Params.Feat.useBlog -}} + + + +{{- else -}} + + +{{- end }} diff --git a/layouts/partials/contact.html b/layouts/partials/contact.html index 3086bbe..3c89d0a 100644 --- a/layouts/partials/contact.html +++ b/layouts/partials/contact.html @@ -2,7 +2,7 @@
-
+

{{ i18n "letsChat" }}

@@ -24,7 +24,7 @@

{{ i18n "letsChat" }}

{{- end }}
- +
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 3995e44..58d9ff0 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -1,11 +1,9 @@