mirror of
https://github.com/hacks-guide/Guide_Switch-OLD.git
synced 2024-11-26 19:10:34 +00:00
initial commit
This commit is contained in:
commit
3a9fdbcbc8
13
.editorconfig
Normal file
13
.editorconfig
Normal file
@ -0,0 +1,13 @@
|
||||
# editorconfig.org
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = false
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
5
.gitattributes
vendored
Normal file
5
.gitattributes
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
_assets/css/vendor/* linguist-vendored
|
||||
_assets/js/plugins/* linguist-vendored
|
||||
_assets/js/vendor/* linguist-vendored
|
||||
assets/fonts/* linguist-vendored
|
||||
assets/js/vendor/* linguist-vendored
|
16
.gitignore
vendored
Normal file
16
.gitignore
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
*.gem
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
.bundle
|
||||
.DS_Store
|
||||
.jekyll-metadata
|
||||
.sass-cache
|
||||
_asset_bundler_cache
|
||||
_site
|
||||
codekit-config.json
|
||||
example/_site
|
||||
node_modules
|
||||
npm-debug.log*
|
||||
/vendor
|
||||
torrents
|
||||
Gemfile.lock
|
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
// Place your settings in this file to overwrite default and user settings.
|
||||
{
|
||||
"files.associations": {"*.txt": "markdown"}
|
||||
}
|
3
Gemfile
Normal file
3
Gemfile
Normal file
@ -0,0 +1,3 @@
|
||||
source "https://rubygems.org"
|
||||
gem 'jekyll-redirect-from'
|
||||
gemspec
|
21
LICENSE.txt
Normal file
21
LICENSE.txt
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Michael Rose
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
76
Rakefile
Normal file
76
Rakefile
Normal file
@ -0,0 +1,76 @@
|
||||
require "bundler/gem_tasks"
|
||||
require "jekyll"
|
||||
require "listen"
|
||||
|
||||
def listen_ignore_paths(base, options)
|
||||
[
|
||||
/_config\.ya?ml/,
|
||||
/_site/,
|
||||
/\.jekyll-metadata/
|
||||
]
|
||||
end
|
||||
|
||||
def listen_handler(base, options)
|
||||
site = Jekyll::Site.new(options)
|
||||
Jekyll::Command.process_site(site)
|
||||
proc do |modified, added, removed|
|
||||
t = Time.now
|
||||
c = modified + added + removed
|
||||
n = c.length
|
||||
relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s }
|
||||
print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ")
|
||||
begin
|
||||
Jekyll::Command.process_site(site)
|
||||
puts "regenerated in #{Time.now - t} seconds."
|
||||
rescue => e
|
||||
puts "error:"
|
||||
Jekyll.logger.warn "Error:", e.message
|
||||
Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
task :preview do
|
||||
base = Pathname.new('.').expand_path
|
||||
options = {
|
||||
"source" => base.join('test').to_s,
|
||||
"destination" => base.join('test/_site').to_s,
|
||||
"force_polling" => false,
|
||||
"serving" => true,
|
||||
"theme" => "minimal-mistakes-jekyll"
|
||||
}
|
||||
|
||||
options = Jekyll.configuration(options)
|
||||
|
||||
ENV["LISTEN_GEM_DEBUGGING"] = "1"
|
||||
listener = Listen.to(
|
||||
base.join("_data"),
|
||||
base.join("_includes"),
|
||||
base.join("_layouts"),
|
||||
base.join("_sass"),
|
||||
base.join("assets"),
|
||||
options["source"],
|
||||
:ignore => listen_ignore_paths(base, options),
|
||||
:force_polling => options['force_polling'],
|
||||
&(listen_handler(base, options))
|
||||
)
|
||||
|
||||
begin
|
||||
listener.start
|
||||
Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'"
|
||||
|
||||
unless options['serving']
|
||||
trap("INT") do
|
||||
listener.stop
|
||||
puts " Halting auto-regeneration."
|
||||
exit 0
|
||||
end
|
||||
|
||||
loop { sleep 1000 }
|
||||
end
|
||||
rescue ThreadError
|
||||
# You pressed Ctrl-C, oh my!
|
||||
end
|
||||
|
||||
Jekyll::Commands::Serve.process(options)
|
||||
end
|
647
_config.yml
Normal file
647
_config.yml
Normal file
@ -0,0 +1,647 @@
|
||||
# Welcome to Jekyll!
|
||||
#
|
||||
# This config file is meant for settings that affect your entire site, values
|
||||
# which you are expected to set up once and rarely need to edit after that.
|
||||
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||
# `jekyll serve`. If you change this file, please restart the server process.
|
||||
|
||||
minimal_mistakes_skin : "nord"
|
||||
|
||||
# Site Settings
|
||||
locale : "en-US"
|
||||
title : "Switch Hacks Guide"
|
||||
title_separator : "-"
|
||||
name : "Plailect"
|
||||
description : "Full Homebrew Guide"
|
||||
url : "https://switch.hacks.guide" # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
|
||||
enforce_ssl : "switch.hacks.guide"
|
||||
baseurl : # the subpath of your site, e.g. "/blog"
|
||||
repository : "Plailect/Guide_Switch" # GitHub username/repo-name e.g. "mmistakes/minimal-mistakes"
|
||||
teaser : # filename of teaser fallback teaser image placed in /images/, .e.g. "500x300.png"
|
||||
breadcrumbs : # true, false (default)
|
||||
words_per_minute : 200
|
||||
comments:
|
||||
provider : # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom"
|
||||
disqus:
|
||||
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
|
||||
discourse:
|
||||
server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
|
||||
facebook:
|
||||
# https://developers.facebook.com/docs/plugins/comments
|
||||
appid :
|
||||
num_posts : # 5 (default)
|
||||
colorscheme : # "light" (default), "dark"
|
||||
staticman:
|
||||
allowedFields : ['name', 'email', 'url', 'message']
|
||||
branch : "master"
|
||||
commitMessage : "New comment."
|
||||
filename : comment-{@timestamp}
|
||||
format : "yml"
|
||||
moderation : true
|
||||
path : "_data/comments/{options.slug}"
|
||||
requiredFields : ['name', 'email', 'message']
|
||||
transforms:
|
||||
email : "md5"
|
||||
generatedFields:
|
||||
date:
|
||||
type : "date"
|
||||
options:
|
||||
format : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
|
||||
atom_feed:
|
||||
path : # blank (default) uses feed.xml
|
||||
|
||||
# SEO Related
|
||||
google_site_verification : jVXoPK_-qzKJp4SScnZYpOIX3yDXfGnAoTBJYixUOwg
|
||||
bing_site_verification : F3532011519E308583A0A2CAF2DD69E8
|
||||
alexa_site_verification :
|
||||
yandex_site_verification :
|
||||
|
||||
# Social Sharing
|
||||
twitter:
|
||||
username :
|
||||
facebook:
|
||||
username :
|
||||
app_id :
|
||||
publisher :
|
||||
og_image : # Open Graph/Twitter default site image
|
||||
# For specifying social profiles
|
||||
# - https://developers.google.com/structured-data/customize/social-profiles
|
||||
social:
|
||||
type : # Person or Organization (defaults to Person)
|
||||
name : # If the user or organization name differs from the site's name
|
||||
links: # An array of links to social media profiles
|
||||
|
||||
# Analytics
|
||||
analytics:
|
||||
provider : "google-universal" # false (default), "google", "google-universal", "custom"
|
||||
google:
|
||||
tracking_id : "UA-86465881-5"
|
||||
|
||||
|
||||
# Site Author
|
||||
author:
|
||||
name : "Plailect"
|
||||
avatar : "bio-photo.png"
|
||||
bio : "Wii U Hacker"
|
||||
location : "Nullsec"
|
||||
email : "Plailect@gmail.com"
|
||||
uri :
|
||||
bitbucket :
|
||||
codepen :
|
||||
dribbble :
|
||||
flickr :
|
||||
facebook :
|
||||
foursquare :
|
||||
github : "Plailect"
|
||||
google_plus :
|
||||
keybase :
|
||||
instagram :
|
||||
lastfm : "Plailect"
|
||||
linkedin :
|
||||
pinterest :
|
||||
soundcloud :
|
||||
stackoverflow : # "123456/username" (the last part of your profile url, e.g. http://stackoverflow.com/users/123456/username)
|
||||
steam :
|
||||
tumblr :
|
||||
twitter : "Plailect"
|
||||
vine :
|
||||
weibo :
|
||||
xing :
|
||||
youtube :
|
||||
|
||||
|
||||
# Reading Files
|
||||
include:
|
||||
- .htaccess
|
||||
- _pages
|
||||
exclude: [
|
||||
"*.sublime-project",
|
||||
"*.sublime-workspace",
|
||||
vendor,
|
||||
.asset-cache,
|
||||
.bundle,
|
||||
.jekyll-assets-cache,
|
||||
.sass-cache,
|
||||
assets/js/plugins,
|
||||
assets/js/_main.js,
|
||||
assets/js/vendor,
|
||||
Capfile,
|
||||
CHANGELOG,
|
||||
config,
|
||||
Gemfile,
|
||||
Gruntfile.js,
|
||||
gulpfile.js,
|
||||
LICENSE,
|
||||
log,
|
||||
node_modules,
|
||||
package.json,
|
||||
Rakefile,
|
||||
README,
|
||||
tmp,
|
||||
_pages/af_ZA,
|
||||
_pages/ar_SA,
|
||||
_pages/ca_ES,
|
||||
_pages/cs_CZ,
|
||||
_pages/da_DK,
|
||||
_pages/de_DE,
|
||||
_pages/el_GR,
|
||||
_pages/en_PT,
|
||||
# _pages/en_US,
|
||||
_pages/es_EM,
|
||||
_pages/es_ES,
|
||||
_pages/fi_FI,
|
||||
_pages/fr_FR,
|
||||
_pages/he_IL,
|
||||
_pages/hu_HU,
|
||||
_pages/id_ID,
|
||||
_pages/it_IT,
|
||||
_pages/ja_JP,
|
||||
_pages/ko_KR,
|
||||
_pages/ms_MY,
|
||||
_pages/no_NO,
|
||||
_pages/nl_NL,
|
||||
_pages/pl_PL,
|
||||
_pages/pt_BR,
|
||||
_pages/pt_PT,
|
||||
_pages/ro_RO,
|
||||
_pages/ru_RU,
|
||||
_pages/sr_SP,
|
||||
_pages/sv_SE,
|
||||
_pages/th_TH,
|
||||
_pages/tr_TR,
|
||||
_pages/uk_UA,
|
||||
_pages/vi_VN,
|
||||
_pages/zh_CN,
|
||||
_pages/zh_TW,
|
||||
]
|
||||
|
||||
keep_files:
|
||||
- .git
|
||||
- .svn
|
||||
encoding: "utf-8"
|
||||
markdown_ext: "markdown,mkdown,mkdn,mkd,md,txt"
|
||||
|
||||
|
||||
# Conversion
|
||||
markdown: kramdown
|
||||
highlighter: rouge
|
||||
lsi: false
|
||||
excerpt_separator: "\n\n"
|
||||
incremental: false
|
||||
|
||||
|
||||
# Markdown Processing
|
||||
kramdown:
|
||||
input: GFM
|
||||
hard_wrap: false
|
||||
auto_ids: true
|
||||
footnote_nr: 1
|
||||
entity_output: as_char
|
||||
toc_levels: 1..6
|
||||
smart_quotes: lsquo,rsquo,ldquo,rdquo
|
||||
enable_coderay: false
|
||||
|
||||
|
||||
# Sass/SCSS
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
|
||||
|
||||
# Plugins
|
||||
plugins:
|
||||
- jekyll-paginate
|
||||
- jekyll-sitemap
|
||||
- jekyll-gist
|
||||
- jekyll-feed
|
||||
- jemoji
|
||||
- jekyll-redirect-from
|
||||
|
||||
# mimic GitHub Pages with --safe
|
||||
whitelist:
|
||||
- jekyll-paginate
|
||||
- jekyll-sitemap
|
||||
- jekyll-gist
|
||||
- jekyll-feed
|
||||
- jemoji
|
||||
|
||||
|
||||
# Archives
|
||||
# Type
|
||||
# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
|
||||
# - Jekyll Archives plugin archive pages ~> type: jekyll-archives
|
||||
# Path (examples)
|
||||
# - Archive page should exist at path when using Liquid method or you can
|
||||
# expect broken links (especially with breadcrumbs enabled)
|
||||
# - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
|
||||
# - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
|
||||
# - <base_path/my-awesome-category/index.html ~> path: /
|
||||
category_archive:
|
||||
type: liquid
|
||||
path: /categories/
|
||||
tag_archive:
|
||||
type: liquid
|
||||
path: /tags/
|
||||
# https://github.com/jekyll/jekyll-archives
|
||||
# jekyll-archives:
|
||||
# enabled:
|
||||
# - categories
|
||||
# - tags
|
||||
# layouts:
|
||||
# category: archive-taxonomy
|
||||
# tag: archive-taxonomy
|
||||
# permalinks:
|
||||
# category: /categories/:name/
|
||||
# tag: /tags/:name/
|
||||
|
||||
|
||||
# HTML Compression
|
||||
# - http://jch.penibelst.de/
|
||||
compress_html:
|
||||
clippings: all
|
||||
ignore:
|
||||
envs: development
|
||||
|
||||
# Defaults
|
||||
defaults:
|
||||
# _pages
|
||||
- scope:
|
||||
path: ""
|
||||
type: pages
|
||||
values:
|
||||
layout: single
|
||||
author_profile: false
|
||||
sidebar: true
|
||||
- scope:
|
||||
path: "_pages/af_ZA"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /af_ZA/:basename:output_ext
|
||||
lang: af
|
||||
- scope:
|
||||
path: "_pages/ar_SA"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ar_SA/:basename:output_ext
|
||||
lang: ar
|
||||
- scope:
|
||||
path: "_pages/ca_ES"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ca_ES/:basename:output_ext
|
||||
lang: ca
|
||||
- scope:
|
||||
path: "_pages/cs_CZ"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /cs_CZ/:basename:output_ext
|
||||
lang: cs
|
||||
- scope:
|
||||
path: "_pages/da_DK"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /da_DK/:basename:output_ext
|
||||
lang: da
|
||||
- scope:
|
||||
path: "_pages/de_DE"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /de_DE/:basename:output_ext
|
||||
lang: ds
|
||||
- scope:
|
||||
path: "_pages/el_GR"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /el_GR/:basename:output_ext
|
||||
lang: el
|
||||
- scope:
|
||||
path: "_pages/en_PT"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /en_PT/:basename:output_ext
|
||||
lang: en-PT
|
||||
- scope:
|
||||
path: "_pages/en_US"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /:basename:output_ext
|
||||
lang: en
|
||||
- scope:
|
||||
path: "_pages/es_ES"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /es_ES/:basename:output_ext
|
||||
lang: es
|
||||
- scope:
|
||||
path: "_pages/fi_FI"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /fi_FI/:basename:output_ext
|
||||
lang: fi
|
||||
- scope:
|
||||
path: "_pages/fr_FR"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /fr_FR/:basename:output_ext
|
||||
lang: fr
|
||||
- scope:
|
||||
path: "_pages/he_IL"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /he_IL/:basename:output_ext
|
||||
lang: he
|
||||
- scope:
|
||||
path: "_pages/hu_HU"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /hu_HU/:basename:output_ext
|
||||
lang: hu
|
||||
- scope:
|
||||
path: "_pages/id_ID"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /id_ID/:basename:output_ext
|
||||
lang: id
|
||||
- scope:
|
||||
path: "_pages/it_IT"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /it_IT/:basename:output_ext
|
||||
lang: it
|
||||
- scope:
|
||||
path: "_pages/ja_JP"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ja_JP/:basename:output_ext
|
||||
lang: ja
|
||||
- scope:
|
||||
path: "_pages/ko_KR"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ko_KR/:basename:output_ext
|
||||
lang: ko
|
||||
- scope:
|
||||
path: "_pages/ms_MY"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ms_MY/:basename:output_ext
|
||||
lang: ms
|
||||
- scope:
|
||||
path: "_pages/no_NO"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /no_NO/:basename:output_ext
|
||||
lang: no-NO
|
||||
- scope:
|
||||
path: "_pages/nl_NL"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /nl_NL/:basename:output_ext
|
||||
lang: nl
|
||||
- scope:
|
||||
path: "_pages/pl_PL"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /pl_PL/:basename:output_ext
|
||||
lang: pl
|
||||
- scope:
|
||||
path: "_pages/pt_BR"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /pt_BR/:basename:output_ext
|
||||
lang: pt-BR
|
||||
- scope:
|
||||
path: "_pages/pt_PT"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /pt_PT/:basename:output_ext
|
||||
lang: pt-PT
|
||||
- scope:
|
||||
path: "_pages/ro_RO"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ro_RO/:basename:output_ext
|
||||
lang: ro
|
||||
- scope:
|
||||
path: "_pages/ru_RU"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ru_RU/:basename:output_ext
|
||||
lang: ru
|
||||
- scope:
|
||||
path: "_pages/sr_SP"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /sr_SP/:basename:output_ext
|
||||
lang: sr
|
||||
- scope:
|
||||
path: "_pages/sv_SE"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /sv_SE/:basename:output_ext
|
||||
lang: sv
|
||||
- scope:
|
||||
path: "_pages/th_TH"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /th_TH/:basename:output_ext
|
||||
lang: th
|
||||
- scope:
|
||||
path: "_pages/tr_TR"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /tr_TR/:basename:output_ext
|
||||
lang: tr
|
||||
- scope:
|
||||
path: "_pages/uk_UA"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /uk_UA/:basename:output_ext
|
||||
lang: uk
|
||||
- scope:
|
||||
path: "_pages/vi_VN"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /vi_VN/:basename:output_ext
|
||||
lang: vi
|
||||
- scope:
|
||||
path: "_pages/zh_CN"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /zh_CN/:basename:output_ext
|
||||
lang: zh-Hans
|
||||
- scope:
|
||||
path: "_pages/zh_TW"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /zh_TW/:basename:output_ext
|
||||
lang: zh-Hant
|
||||
- scope:
|
||||
path: "_pages/af_ZA/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /af_ZA/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/ar_SA/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ar_SA/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/ca_ES/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ca_ES/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/cs_CZ/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /cs_CZ/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/da_DK/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /da_DK/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/de_DE/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /de_DE/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/el_GR/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /el_GR/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/en_PT/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /en_PT/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/en_US/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /index:output_ext
|
||||
- scope:
|
||||
path: "_pages/es_ES/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /es_ES/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/fi_FI/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /fi_FI/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/fr_FR/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /fr_FR/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/he_IL/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /he_IL/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/hu_HU/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /hu_HU/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/id_ID/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /id_ID/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/it_IT/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /it_IT/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/ja_JP/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ja_JP/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/ko_KR/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ko_KR/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/ms_MY/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ms_MY/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/no_NO/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /no_NO/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/nl_NL/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /nl_NL/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/pl_PL/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /pl_PL/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/pt_BR/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /pt_BR/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/pt_PT/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /pt_PT/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/ro_RO/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ro_RO/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/ru_RU/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /ru_RU/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/sr_SP/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /sr_SP/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/sv_SE/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /sv_SE/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/th_TH/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /th_TH/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/tr_TR/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /tr_TR/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/uk_UA/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /uk_UA/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/vi_VN/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /vi_VN/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/zh_CN/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /zh_CN/index:output_ext
|
||||
- scope:
|
||||
path: "_pages/zh_TW/home.txt"
|
||||
type: pages
|
||||
values:
|
||||
permalink: /zh_TW/index:output_ext
|
57
_data/navigation/en_US.yml
Normal file
57
_data/navigation/en_US.yml
Normal file
@ -0,0 +1,57 @@
|
||||
---
|
||||
main:
|
||||
-
|
||||
title: Home
|
||||
url: /
|
||||
-
|
||||
title: FAQ
|
||||
url: faq
|
||||
-
|
||||
title: Donations
|
||||
url: donations
|
||||
-
|
||||
title: Credits
|
||||
url: credits
|
||||
-
|
||||
title: Troubleshooting
|
||||
url: troubleshooting
|
||||
-
|
||||
title: Homebrew Development
|
||||
url: homebrew-development
|
||||
-
|
||||
title: Site Navigation
|
||||
url: site-navigation
|
||||
bottom:
|
||||
-
|
||||
title: For support in English, ask for help at <a href="https://discord.gg/ZdqEhed">ReSwitched on Discord</a>.
|
||||
-
|
||||
title: If you appreciate this guide, I accept <a href="donations">Donations</a>.
|
||||
footer:
|
||||
-
|
||||
title: Source
|
||||
-
|
||||
title: Site Navigation
|
||||
-
|
||||
title: Why Ads?
|
||||
sidebar_title:
|
||||
-
|
||||
title: Overall Progress
|
||||
sidebar_pages:
|
||||
-
|
||||
title: Home
|
||||
url: /
|
||||
-
|
||||
title: Get Started
|
||||
url: get-started
|
||||
-
|
||||
title: Blocking Updates
|
||||
url: blocking-updates
|
||||
-
|
||||
title: Game Card Update
|
||||
url: game-card-update
|
||||
-
|
||||
title: Homebrew Launcher
|
||||
url: homebrew-launcher
|
||||
-
|
||||
title: Multiple Options
|
||||
url: multiple-options
|
416
_data/ui-text.yml
Normal file
416
_data/ui-text.yml
Normal file
@ -0,0 +1,416 @@
|
||||
# User interface text and labels
|
||||
|
||||
# English (default)
|
||||
# -----------------
|
||||
en: &DEFAULT_EN
|
||||
page : "Page"
|
||||
pagination_previous : "Previous"
|
||||
pagination_next : "Next"
|
||||
breadcrumb_home_label : "Home"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label : "Toggle Menu"
|
||||
toc_label : "On This Page"
|
||||
ext_link_label : "Direct Link"
|
||||
less_than : "less than"
|
||||
minute_read : "minute read"
|
||||
share_on_label : "Share on"
|
||||
meta_label :
|
||||
tags_label : "Tags:"
|
||||
categories_label : "Categories:"
|
||||
date_label : "Updated:"
|
||||
comments_label : "Leave a Comment"
|
||||
comments_title : "Comments"
|
||||
more_label : "Learn More"
|
||||
related_label : "You May Also Enjoy"
|
||||
follow_label : "Follow:"
|
||||
feed_label : "Feed"
|
||||
powered_by : "Powered by"
|
||||
website_label : "Website"
|
||||
email_label : "Email"
|
||||
recent_posts : "Recent Posts"
|
||||
undefined_wpm : "Undefined parameter words_per_minute at _config.yml"
|
||||
comment_form_info : "Your email address will not be published. Required fields are marked"
|
||||
comment_form_comment_label : "Comment"
|
||||
comment_form_md_info : "Markdown is supported."
|
||||
comment_form_name_label : "Name"
|
||||
comment_form_email_label : "Email address"
|
||||
comment_form_website_label : "Website (optional)"
|
||||
comment_btn_submit : "Submit Comment"
|
||||
comment_btn_submitted : "Submitted"
|
||||
comment_success_msg : "Thanks for your comment! It will show on the site once it has been approved."
|
||||
comment_error_msg : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again."
|
||||
loading_label : "Loading..."
|
||||
en-US:
|
||||
<<: *DEFAULT_EN
|
||||
en-CA:
|
||||
<<: *DEFAULT_EN
|
||||
en-GB:
|
||||
<<: *DEFAULT_EN
|
||||
en-AU:
|
||||
<<: *DEFAULT_EN
|
||||
|
||||
# Spanish
|
||||
# --------------
|
||||
es: &DEFAULT_ES
|
||||
page : "Página"
|
||||
pagination_previous : "Anterior"
|
||||
pagination_next : "Siguiente"
|
||||
breadcrumb_home_label : "Inicio"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label :
|
||||
toc_label : "Contenidos"
|
||||
ext_link_label : "Enlace"
|
||||
less_than : "menos de"
|
||||
minute_read : "minuto de lectura"
|
||||
share_on_label : "Compartir"
|
||||
meta_label :
|
||||
tags_label : "Etiquetas:"
|
||||
categories_label : "Categorías:"
|
||||
date_label : "Actualizado:"
|
||||
comments_label : "Comentar"
|
||||
comments_title :
|
||||
more_label : "Ver más"
|
||||
related_label : "Podrías ver también"
|
||||
follow_label : "Seguir:"
|
||||
feed_label : "Feed"
|
||||
powered_by : "Powered by"
|
||||
website_label : "Sitio web"
|
||||
email_label : "Email"
|
||||
recent_posts : "Entradas recientes"
|
||||
undefined_wpm : "Parametro words_per_minute (Palabras por minuto) no definido en _config.yml"
|
||||
comment_form_info :
|
||||
comment_form_comment_label :
|
||||
comment_form_md_info :
|
||||
comment_form_name_label :
|
||||
comment_form_email_label :
|
||||
comment_form_website_label :
|
||||
comment_btn_submit :
|
||||
comment_btn_submitted :
|
||||
comment_success_msg :
|
||||
comment_error_msg :
|
||||
loading_label :
|
||||
es-ES:
|
||||
<<: *DEFAULT_ES
|
||||
es-CO:
|
||||
<<: *DEFAULT_ES
|
||||
|
||||
# French
|
||||
# -----------------
|
||||
fr: &DEFAULT_FR
|
||||
page : "Page"
|
||||
pagination_previous : "Précédent"
|
||||
pagination_next : "Suivant"
|
||||
breadcrumb_home_label : "Accueil"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label :
|
||||
toc_label : "Sur cette page"
|
||||
ext_link_label : "Lien direct"
|
||||
less_than : "plus petit que"
|
||||
minute_read : "minute de lecture"
|
||||
share_on_label : "Partager sur"
|
||||
meta_label :
|
||||
tags_label : "Tags :"
|
||||
categories_label : "Catégories :"
|
||||
date_label : "Mis à jour :"
|
||||
comments_label : "Laisser un commentaire"
|
||||
comments_title :
|
||||
more_label : "Lire plus"
|
||||
related_label : "Vous pourriez aimer"
|
||||
follow_label : "Suivez moi"
|
||||
feed_label : "Flux"
|
||||
powered_by : "Propulsé par"
|
||||
website_label : "Site"
|
||||
email_label : "Email"
|
||||
recent_posts : "Posts récents"
|
||||
undefined_wpm : "Le paramètre words_per_minute n'est pas défini dans _config.yml"
|
||||
comments_title : "Commentaires"
|
||||
comment_form_info : "Votre adresse email ne sera pas visible. Les champs obligatoires sont marqués"
|
||||
comment_form_comment_label : "Commentaire"
|
||||
comment_form_md_info : "Markdown est supporté."
|
||||
comment_form_name_label : "Nom"
|
||||
comment_form_email_label : "Adresse mail"
|
||||
comment_form_website_label : "Site web (optionnel)"
|
||||
comment_btn_submit : "Envoyer"
|
||||
comment_btn_submitted : "Envoyé"
|
||||
comment_success_msg : "Merci pour votre comentaire, il sera visible sur le site une fois approuvé."
|
||||
comment_error_msg : "Désolé, une erreur est survenue lors de la soumission. Vérifiez que les champs obligatoires ont été remplis et réessayez."
|
||||
loading_label : "Chargement..."
|
||||
fr-FR:
|
||||
<<: *DEFAULT_FR
|
||||
fr-BE:
|
||||
<<: *DEFAULT_FR
|
||||
fr-CH:
|
||||
<<: *DEFAULT_FR
|
||||
|
||||
# Turkish
|
||||
# -----------------
|
||||
tr: &DEFAULT_TR
|
||||
page : "Sayfa"
|
||||
pagination_previous : "Önceki"
|
||||
pagination_next : "Sonraki"
|
||||
breadcrumb_home_label : "Ana Sayfa"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label :
|
||||
toc_label : "İçindekiler"
|
||||
ext_link_label : "Doğrudan Bağlantı"
|
||||
less_than : "Şu süreden az: "
|
||||
minute_read : "dakika tahmini okuma süresi"
|
||||
share_on_label : "Paylaş"
|
||||
meta_label :
|
||||
tags_label : "Etiketler:"
|
||||
categories_label : "Kategoriler:"
|
||||
date_label : "Güncelleme tarihi:"
|
||||
comments_label : "Yorum yapın"
|
||||
comments_title : "Yorumlar"
|
||||
more_label : "Daha fazlasını öğrenin"
|
||||
related_label : "Bunlar ilginizi çekebilir:"
|
||||
follow_label : "Takip et:"
|
||||
feed_label : "RSS"
|
||||
powered_by : "Emeği geçenler: "
|
||||
website_label : "Web sayfası"
|
||||
email_label : "E-posta"
|
||||
recent_posts : "Son yazılar"
|
||||
undefined_wpm : "_config.yml dosyasında tanımlanmamış words_per_minute parametresi"
|
||||
comment_form_info : "Email adresiniz gösterilmeyecektir. Zorunlu alanlar işaretlenmiştir"
|
||||
comment_form_comment_label : "Yorumunuz"
|
||||
comment_form_md_info : "Markdown desteklenmektedir."
|
||||
comment_form_name_label : "Adınız"
|
||||
comment_form_email_label : "Email adresiniz"
|
||||
comment_form_website_label : "Websiteniz (opsiyonel)"
|
||||
comment_btn_submit : "Yorum Yap"
|
||||
comment_btn_submitted : "Gönderildi"
|
||||
comment_success_msg : "Yorumunuz için teşekkürler! Yorumunuz onaylandıktan sonra sitede gösterilecektir."
|
||||
comment_error_msg : "Maalesef bir hata oluştu. Lütfen zorunlu olan tüm alanları doldurduğunuzdan emin olun ve sonrasında tekrar deneyin."
|
||||
loading_label : "Yükleniyor..."
|
||||
tr-TR:
|
||||
<<: *DEFAULT_TR
|
||||
|
||||
# Portuguese
|
||||
# -----------------
|
||||
pt: &DEFAULT_PT
|
||||
page : "Página"
|
||||
pagination_previous : "Anterior"
|
||||
pagination_next : "Seguinte"
|
||||
breadcrumb_home_label : "Início"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label :
|
||||
toc_label : "Nesta Página"
|
||||
ext_link_label : "Link Direto"
|
||||
less_than : "menos de"
|
||||
minute_read : "minutos de leitura"
|
||||
share_on_label : "Partilhar no"
|
||||
meta_label :
|
||||
tags_label : "Etiquetas:"
|
||||
categories_label : "Categorias:"
|
||||
date_label : "Atualizado:"
|
||||
comments_label : "Deixe um Comentário"
|
||||
comments_title : "Comentários"
|
||||
more_label : "Saber mais"
|
||||
related_label : "Também pode gostar de"
|
||||
follow_label : "Siga:"
|
||||
feed_label : "Feed"
|
||||
powered_by : "Feito com"
|
||||
website_label : "Site"
|
||||
email_label : "Email"
|
||||
recent_posts : "Artigos Recentes"
|
||||
undefined_wpm : "Parâmetro words_per_minute não definido em _config.yml"
|
||||
comment_form_info : "O seu endereço email não será publicado. Os campos obrigatórios estão assinalados"
|
||||
comment_form_comment_label : "Comentário"
|
||||
comment_form_md_info : "Markdown é suportado."
|
||||
comment_form_name_label : "Nome"
|
||||
comment_form_email_label : "Endereço Email"
|
||||
comment_form_website_label : "Site (opcional)"
|
||||
comment_btn_submit : "Sumbeter Comentário"
|
||||
comment_btn_submitted : "Submetido"
|
||||
comment_success_msg : "Obrigado pelo seu comentário! Será visível no site logo que aprovado."
|
||||
comment_error_msg : "Lamento, ocorreu um erro na sua submissão. Por favor verifique se todos os campos obrigatórios estão corretamente preenchidos e tente novamente."
|
||||
loading_label : "A carregar..."
|
||||
# Brazilian Portuguese
|
||||
pt-BR:
|
||||
page : "Página"
|
||||
pagination_previous : "Anterior"
|
||||
pagination_next : "Próxima"
|
||||
breadcrumb_home_label : "Home"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label :
|
||||
toc_label : "Nesta página"
|
||||
ext_link_label : "Link direto"
|
||||
less_than : "meno que"
|
||||
minute_read : "minutos de leitura"
|
||||
share_on_label : "Compartilhe em"
|
||||
meta_label :
|
||||
tags_label : "Tags:"
|
||||
categories_label : "Categorias:"
|
||||
date_label : "Atualizado em:"
|
||||
comments_label : "Deixe um comentário"
|
||||
comments_title :
|
||||
more_label : "Aprenda Mais"
|
||||
related_label : "Você Talvez Goste Também"
|
||||
follow_label : "Acompanhe em"
|
||||
feed_label : "Feed"
|
||||
powered_by : "Feito com"
|
||||
website_label : "Site"
|
||||
email_label : "Email"
|
||||
recent_posts : "Postagens recentes"
|
||||
undefined_wpm : "Parâmetro indefinido em word_per_minute no _config.yml"
|
||||
comment_form_info :
|
||||
comment_form_comment_label :
|
||||
comment_form_md_info :
|
||||
comment_form_name_label :
|
||||
comment_form_email_label :
|
||||
comment_form_website_label :
|
||||
comment_btn_submit :
|
||||
comment_btn_submitted :
|
||||
comment_success_msg :
|
||||
comment_error_msg :
|
||||
loading_label :
|
||||
pt-PT:
|
||||
<<: *DEFAULT_PT
|
||||
|
||||
# Italian
|
||||
# -----------------
|
||||
it: &DEFAULT_IT
|
||||
page : "Pagina"
|
||||
pagination_previous : "Precedente"
|
||||
pagination_next : "Prossima"
|
||||
breadcrumb_home_label : "Home"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label :
|
||||
toc_label : "Indice della pagina"
|
||||
ext_link_label : "Link"
|
||||
less_than : "meno di"
|
||||
minute_read : "minuto/i di lettura"
|
||||
share_on_label : "Condividi"
|
||||
meta_label :
|
||||
tags_label : "Tags:"
|
||||
categories_label : "Categorie:"
|
||||
date_label : "Aggiornato:"
|
||||
comments_label : "Scrivi un commento"
|
||||
comments_title :
|
||||
more_label : "Scopri di più"
|
||||
related_label : "Potrebbe Piacerti Anche"
|
||||
follow_label : "Segui:"
|
||||
feed_label : "Feed"
|
||||
powered_by : "Powered by"
|
||||
website_label : "Website"
|
||||
email_label : "Email"
|
||||
recent_posts : "Articoli Recenti"
|
||||
undefined_wpm : "Parametro words_per_minute non definito in _config.yml"
|
||||
comment_form_info : "Il tuo indirizzo email non sarà pubblicato. Sono segnati i campi obbligatori"
|
||||
comment_form_comment_label : "Commenta"
|
||||
comment_form_md_info : "Il linguaggio Markdown è supportato"
|
||||
comment_form_name_label : "Nome"
|
||||
comment_form_email_label : "Indirizzo email"
|
||||
comment_form_website_label : "Sito Web (opzionale)"
|
||||
comment_btn_submit : "Invia commento"
|
||||
comment_btn_submitted : "Inviato"
|
||||
comment_success_msg : "Grazie per il tuo commento! Verrà visualizzato nel sito una volta che sarà approvato."
|
||||
comment_error_msg : "C'è stato un errore con il tuo invio. Assicurati che tutti i campi richiesti siano stati completati e riprova."
|
||||
loading_label : "Caricamento..."
|
||||
it-IT:
|
||||
<<: *DEFAULT_IT
|
||||
|
||||
# Chinese (zh-CN Chinese - China)
|
||||
# -----------------
|
||||
zh: &DEFAULT_ZH
|
||||
page : "页面"
|
||||
pagination_previous : "向前"
|
||||
pagination_next : "向后"
|
||||
breadcrumb_home_label : "首页"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label :
|
||||
toc_label : "在本页上"
|
||||
ext_link_label : "直接链接"
|
||||
less_than : "少于"
|
||||
minute_read : "分钟 阅读"
|
||||
share_on_label : "分享"
|
||||
meta_label :
|
||||
tags_label : "标签:"
|
||||
categories_label : "分类:"
|
||||
date_label : "最新的:"
|
||||
comments_label : "留下评论"
|
||||
comments_title : "评论"
|
||||
more_label : "了解更多"
|
||||
related_label : "猜您还喜欢"
|
||||
follow_label : "关注:"
|
||||
feed_label : "Feed"
|
||||
powered_by : "Powered by"
|
||||
website_label : "网站"
|
||||
email_label : "Email"
|
||||
recent_posts : "最新文章"
|
||||
undefined_wpm : "Undefined parameter words_per_minute at _config.yml"
|
||||
comment_form_info : "Your email address will not be published. Required fields are marked"
|
||||
comment_form_comment_label : "Comment"
|
||||
comment_form_md_info : "Markdown is supported."
|
||||
comment_form_name_label : "Name"
|
||||
comment_form_email_label : "Email address"
|
||||
comment_form_website_label : "Website (optional)"
|
||||
comment_btn_submit : "Submit Comment"
|
||||
comment_btn_submitted : "Submitted"
|
||||
comment_success_msg : "Thanks for your comment! It will show on the site once it has been approved."
|
||||
comment_error_msg : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again."
|
||||
loading_label : "Loading..."
|
||||
zh-CN:
|
||||
<<: *DEFAULT_ZH
|
||||
zh-HK:
|
||||
<<: *DEFAULT_ZH
|
||||
zh-SG:
|
||||
<<: *DEFAULT_ZH
|
||||
zh-TW:
|
||||
<<: *DEFAULT_ZH
|
||||
|
||||
# German / Deutsch
|
||||
# -----------------
|
||||
de: &DEFAULT_DE
|
||||
page : "Seite"
|
||||
pagination_previous : "Vorherige"
|
||||
pagination_next : "Nächste"
|
||||
breadcrumb_home_label : "Home"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label :
|
||||
toc_label : "Auf dieser Seite"
|
||||
ext_link_label : "Direkter Link"
|
||||
less_than : "weniger als"
|
||||
minute_read : "Minuten zum lesen"
|
||||
share_on_label : "Teilen auf"
|
||||
meta_label :
|
||||
tags_label : "Tags:"
|
||||
categories_label : "Kategorien:"
|
||||
date_label : "Aktualisiert:"
|
||||
comments_label : "Hinterlassen sie einen Kommentar"
|
||||
comments_title : "Kommentare"
|
||||
more_label : "Mehr anzeigen"
|
||||
related_label : "Ihnen gefällt vielleicht auch"
|
||||
follow_label : "Folgen:"
|
||||
feed_label : "Feed"
|
||||
powered_by : "Powered by"
|
||||
website_label : "Webseite"
|
||||
email_label : "E-Mail"
|
||||
recent_posts : "Aktuelle Beiträge"
|
||||
undefined_wpm : "Undefinierter Parameter words_per_minute in _config.yml"
|
||||
comment_form_info : "Ihre E-Mail Adresse wird nicht veröffentlicht. Benötigte Felder sind markiert"
|
||||
comment_form_comment_label : "Kommentar"
|
||||
comment_form_md_info : "Markdown wird unterstützt."
|
||||
comment_form_name_label : "Name"
|
||||
comment_form_email_label : "E-Mail Addresse"
|
||||
comment_form_website_label : "Webseite (optional)"
|
||||
comment_btn_submit : "Kommentar absenden"
|
||||
comment_btn_submitted : "Versendet"
|
||||
comment_success_msg : "Danke für ihren Kommentar! Er wird auf der Seite angezeigt, nachdem er geprüft wurde."
|
||||
comment_error_msg : "Entschuldigung, es gab einen Fehler. Bitte füllen sie alle benötigten Felder aus und versuchen sie es erneut."
|
||||
loading_label : "Lade..."
|
||||
de-DE:
|
||||
<<: *DEFAULT_DE
|
||||
de-AT:
|
||||
<<: *DEFAULT_DE
|
||||
de-CH:
|
||||
<<: *DEFAULT_DE
|
||||
de-BE:
|
||||
<<: *DEFAULT_DE
|
||||
de-LI:
|
||||
<<: *DEFAULT_DE
|
||||
de-LU:
|
||||
<<: *DEFAULT_DE
|
||||
|
||||
# Another locale
|
||||
# --------------
|
3
_includes/analytics-providers/custom.html
Normal file
3
_includes/analytics-providers/custom.html
Normal file
@ -0,0 +1,3 @@
|
||||
<!-- start custom analytics snippet -->
|
||||
|
||||
<!-- end custom analytics snippet -->
|
9
_includes/analytics-providers/google-universal.html
Normal file
9
_includes/analytics-providers/google-universal.html
Normal file
@ -0,0 +1,9 @@
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{ site.analytics.google.tracking_id }}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
11
_includes/analytics-providers/google.html
Normal file
11
_includes/analytics-providers/google.html
Normal file
@ -0,0 +1,11 @@
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
12
_includes/analytics.html
Normal file
12
_includes/analytics.html
Normal file
@ -0,0 +1,12 @@
|
||||
{% if site.analytics.provider and page.analytics != false %}
|
||||
|
||||
{% case site.analytics.provider %}
|
||||
{% when "google" %}
|
||||
{% include /analytics-providers/google.html %}
|
||||
{% when "google-universal" %}
|
||||
{% include /analytics-providers/google-universal.html %}
|
||||
{% when "custom" %}
|
||||
{% include /analytics-providers/custom.html %}
|
||||
{% endcase %}
|
||||
|
||||
{% endif %}
|
38
_includes/archive-single.html
Normal file
38
_includes/archive-single.html
Normal file
@ -0,0 +1,38 @@
|
||||
{% if post.header.teaser %}
|
||||
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
|
||||
{% else %}
|
||||
{% assign teaser = site.teaser %}
|
||||
{% endif %}
|
||||
|
||||
{% if post.id %}
|
||||
{% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
|
||||
{% else %}
|
||||
{% assign title = post.title %}
|
||||
{% endif %}
|
||||
|
||||
<div class="{{ include.type | default: "list" }}__item">
|
||||
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
|
||||
{% if include.type == "grid" and teaser %}
|
||||
<div class="archive__item-teaser">
|
||||
<img src=
|
||||
{% if teaser contains "://" %}
|
||||
"{{ teaser }}"
|
||||
{% else %}
|
||||
"{{ teaser | absolute_url }}"
|
||||
{% endif %}
|
||||
alt="">
|
||||
</div>
|
||||
{% endif %}
|
||||
<h2 class="archive__item-title" itemprop="headline">
|
||||
{% if post.link %}
|
||||
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ post.url | absolute_url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
|
||||
{% else %}
|
||||
<a href="{{ post.url | absolute_url }}" rel="permalink">{{ title }}</a>
|
||||
{% endif %}
|
||||
</h2>
|
||||
{% if post.read_time %}
|
||||
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
|
||||
{% endif %}
|
||||
{% if post.excerpt %}<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify | strip_html | truncate: 160 }}</p>{% endif %}
|
||||
</article>
|
||||
</div>
|
7
_includes/author-profile-custom-links.html
Normal file
7
_includes/author-profile-custom-links.html
Normal file
@ -0,0 +1,7 @@
|
||||
<!--
|
||||
<li>
|
||||
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs">
|
||||
<i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link
|
||||
</a>
|
||||
</li>
|
||||
-->
|
249
_includes/author-profile.html
Normal file
249
_includes/author-profile.html
Normal file
@ -0,0 +1,249 @@
|
||||
{% if page.author and site.data.authors[page.author] %}
|
||||
{% assign author = site.data.authors[page.author] %}
|
||||
{% else %}
|
||||
{% assign author = site.author %}
|
||||
{% endif %}
|
||||
|
||||
<div itemscope itemtype="http://schema.org/Person">
|
||||
|
||||
{% if author.avatar %}
|
||||
<div class="author__avatar">
|
||||
{% if author.avatar contains "://" %}
|
||||
<img src="{{ author.avatar }}" alt="{{ author.name }}" itemprop="image">
|
||||
{% else %}
|
||||
<img src="{{ author.avatar | absolute_url }}" class="author__avatar" alt="{{ author.name }}" itemprop="image">
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="author__content">
|
||||
<h3 class="author__name" itemprop="name">{{ author.name }}</h3>
|
||||
{% if author.bio %}
|
||||
<p class="author__bio" itemprop="description">
|
||||
{{ author.bio }}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="author__urls-wrapper">
|
||||
<button class="btn btn--inverse">{{ site.data.ui-text[site.locale].follow_label | remove: ":" | default: "Follow" }}</button>
|
||||
<ul class="author__urls social-icons">
|
||||
{% if author.location %}
|
||||
<li itemprop="homeLocation" itemscope itemtype="http://schema.org/Place">
|
||||
<i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> <span itemprop="name">{{ author.location }}</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.uri %}
|
||||
<li>
|
||||
<a href="{{ author.uri }}" itemprop="url">
|
||||
<i class="fa fa-fw fa-chain" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].website_label | default: "Website" }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.email %}
|
||||
<li>
|
||||
<a href="mailto:{{ author.email }}">
|
||||
<meta itemprop="email" content="{{ author.email }}" />
|
||||
<i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].email_label | default: "Email" }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.keybase %}
|
||||
<li>
|
||||
<a href="https://keybase.io/{{ author.keybase }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-key" aria-hidden="true"></i> Keybase
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.twitter %}
|
||||
<li>
|
||||
<a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.facebook %}
|
||||
<li>
|
||||
<a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.google_plus %}
|
||||
<li>
|
||||
<a href="https://plus.google.com/+{{ author.google_plus }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-google-plus-square" aria-hidden="true"></i> Google+
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.linkedin %}
|
||||
<li>
|
||||
<a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-linkedin-square" aria-hidden="true"></i> LinkedIn
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.xing %}
|
||||
<li>
|
||||
<a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-xing-square" aria-hidden="true"></i> XING
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.instagram %}
|
||||
<li>
|
||||
<a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-instagram" aria-hidden="true"></i> Instagram
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.tumblr %}
|
||||
<li>
|
||||
<a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-tumblr-square" aria-hidden="true"></i> Tumblr
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.bitbucket %}
|
||||
<li>
|
||||
<a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.github %}
|
||||
<li>
|
||||
<a href="https://github.com/{{ author.github }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.gitlab %}
|
||||
<li>
|
||||
<a href="https://gitlab.com/{{ author.gitlab }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-gitlab" aria-hidden="true"></i> Gitlab
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.stackoverflow %}
|
||||
<li>
|
||||
<a href="https://www.stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-stack-overflow" aria-hidden="true"></i> Stackoverflow
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.lastfm %}
|
||||
<li>
|
||||
<a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-lastfm-square" aria-hidden="true"></i> Last.fm
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.dribbble %}
|
||||
<li>
|
||||
<a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-dribbble" aria-hidden="true"></i> Dribbble
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.pinterest %}
|
||||
<li>
|
||||
<a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-pinterest" aria-hidden="true"></i> Pinterest
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.foursquare %}
|
||||
<li>
|
||||
<a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-foursquare" aria-hidden="true"></i> Foursquare
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.steam %}
|
||||
<li>
|
||||
<a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-steam-square" aria-hidden="true"></i> Steam
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.youtube %}
|
||||
{% if author.youtube contains "://" %}
|
||||
<li>
|
||||
<a href="{{ author.youtube }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-youtube-square" aria-hidden="true"></i> YouTube
|
||||
</a>
|
||||
</li>
|
||||
{% else author.youtube %}
|
||||
<li>
|
||||
<a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-youtube-square" aria-hidden="true"></i> YouTube
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if author.soundcloud %}
|
||||
<li>
|
||||
<a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-soundcloud" aria-hidden="true"></i> Soundcloud
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.weibo %}
|
||||
<li>
|
||||
<a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-weibo" aria-hidden="true"></i> Weibo
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.flickr %}
|
||||
<li>
|
||||
<a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-flickr" aria-hidden="true"></i> Flickr
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.codepen %}
|
||||
<li>
|
||||
<a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-codepen" aria-hidden="true"></i> CodePen
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.vine %}
|
||||
<li>
|
||||
<a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs">
|
||||
<i class="fa fa-fw fa-vine" aria-hidden="true"></i> Vine
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% include author-profile-custom-links.html %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
5
_includes/base_path
Normal file
5
_includes/base_path
Normal file
@ -0,0 +1,5 @@
|
||||
{% if site.url %}
|
||||
{% assign base_path = site.url | append: site.baseurl %}
|
||||
{% else %}
|
||||
{% assign base_path = site.github.url %}
|
||||
{% endif %}
|
39
_includes/breadcrumbs.html
Normal file
39
_includes/breadcrumbs.html
Normal file
@ -0,0 +1,39 @@
|
||||
{% case site.category_archive.type %}
|
||||
{% when "liquid" %}
|
||||
{% assign path_type = "#" %}
|
||||
{% when "jekyll-archives" %}
|
||||
{% assign path_type = nil %}
|
||||
{% endcase %}
|
||||
|
||||
{% if page.collection != 'posts' %}
|
||||
{% assign path_type = nil %}
|
||||
{% assign crumb_path = '/' %}
|
||||
{% else %}
|
||||
{% assign crumb_path = site.category_archive.path %}
|
||||
{% endif %}
|
||||
|
||||
<nav class="breadcrumbs">
|
||||
<ol itemscope itemtype="http://schema.org/BreadcrumbList">
|
||||
{% assign crumbs = page.url | split: '/' %}
|
||||
{% assign i = 1 %}
|
||||
{% for crumb in crumbs offset: 1 %}
|
||||
{% if forloop.first %}
|
||||
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
|
||||
<a href="{{ site.url }}{{ site.baseurl }}/" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
|
||||
<meta itemprop="position" content="{{ i }}" />
|
||||
</li>
|
||||
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
|
||||
{% endif %}
|
||||
{% if forloop.last %}
|
||||
<li class="current">{{ page.title }}</li>
|
||||
{% else %}
|
||||
{% assign i = i | plus: 1 %}
|
||||
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
|
||||
<a href="{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path | absolute_url }}" itemprop="item"><span itemprop="name">{{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}</span></a>
|
||||
<meta itemprop="position" content="{{ i }}" />
|
||||
</li>
|
||||
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</nav>
|
3
_includes/browser-upgrade.html
Normal file
3
_includes/browser-upgrade.html
Normal file
@ -0,0 +1,3 @@
|
||||
<!--[if lt IE 9]>
|
||||
<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
|
||||
<![endif]-->
|
26
_includes/category-list.html
Normal file
26
_includes/category-list.html
Normal file
@ -0,0 +1,26 @@
|
||||
{% case site.category_archive.type %}
|
||||
{% when "liquid" %}
|
||||
{% assign path_type = "#" %}
|
||||
{% when "jekyll-archives" %}
|
||||
{% assign path_type = nil %}
|
||||
{% endcase %}
|
||||
|
||||
{% if site.category_archive.path %}
|
||||
{% comment %}
|
||||
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
|
||||
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
|
||||
{% endcomment %}
|
||||
{% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}#{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
|
||||
{% assign category_hashes = page_categories | split: ',' | sort %}
|
||||
|
||||
<p class="page__taxonomy">
|
||||
<strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong>
|
||||
<span itemprop="keywords">
|
||||
{% for hash in category_hashes %}
|
||||
{% assign keyValue = hash | split: '#' %}
|
||||
{% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
|
||||
<a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | absolute_url }}" class="page__taxonomy-item" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
||||
{% endfor %}
|
||||
</span>
|
||||
</p>
|
||||
{% endif %}
|
22
_includes/comment.html
Normal file
22
_includes/comment.html
Normal file
@ -0,0 +1,22 @@
|
||||
<article id="comment{{ include.index }}" class="js-comment comment" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
|
||||
<div class="comment__avatar-wrapper">
|
||||
<img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80" alt="{{ include.name }}">
|
||||
</div>
|
||||
<div class="comment__content-wrapper">
|
||||
<h3 class="comment__author" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||
{% unless include.url == blank %}
|
||||
<span itemprop="name"><a rel="external nofollow" itemprop="url" href="{{ include.url }}">{{ include.name }}</a></span>
|
||||
{% else %}
|
||||
<span itemprop="name">{{ include.name }}</span>
|
||||
{% endunless %}
|
||||
</h3>
|
||||
<p class="comment__date">
|
||||
{% if include.date %}
|
||||
{% if include.index %}<a href="#comment{{ include.index }}" itemprop="url">{% endif %}
|
||||
<time datetime="{{ include.date | date_to_xmlschema }}" itemprop="datePublished">{{ include.date | date: "%B %d, %Y at %I:%M %p" }}</time>
|
||||
{% if include.index %}</a>{% endif %}
|
||||
{% endif %}
|
||||
</p>
|
||||
<div itemprop="text">{{ include.message | markdownify }}</div>
|
||||
</div>
|
||||
</article>
|
3
_includes/comments-providers/custom.html
Normal file
3
_includes/comments-providers/custom.html
Normal file
@ -0,0 +1,3 @@
|
||||
<!-- start custom comments snippet -->
|
||||
|
||||
<!-- end custom comments snippet -->
|
13
_includes/comments-providers/discourse.html
Normal file
13
_includes/comments-providers/discourse.html
Normal file
@ -0,0 +1,13 @@
|
||||
{% if site.comments.discourse.server %}
|
||||
{% capture canonical %}{% if site.permalink contains '.html' %}{{ page.url | absolute_url }}{% else %}{{ page.url | absolute_url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
|
||||
<script type="text/javascript">
|
||||
DiscourseEmbed = { discourseUrl: '//{{ site.comments.discourse.server }}/',
|
||||
discourseEmbedUrl: '{{ canonical }}' };
|
||||
(function () {
|
||||
var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
|
||||
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
|
||||
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
|
||||
})();
|
||||
</script>
|
||||
<noscript>Please enable JavaScript to view the comments powered by <a href="https://www.discourse.org/">Discourse.</a></noscript>
|
||||
{% endif %}
|
15
_includes/comments-providers/disqus.html
Normal file
15
_includes/comments-providers/disqus.html
Normal file
@ -0,0 +1,15 @@
|
||||
{% if site.comments.disqus.shortname %}
|
||||
<script>
|
||||
var disqus_config = function () {
|
||||
this.page.url = "{{ page.url | absolute_url }}"; // Replace PAGE_URL with your page's canonical URL variable
|
||||
this.page.identifier = "{{ page.id }}"; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
|
||||
};
|
||||
(function() { // DON'T EDIT BELOW THIS LINE
|
||||
var d = document, s = d.createElement('script');
|
||||
s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
|
||||
s.setAttribute('data-timestamp', +new Date());
|
||||
(d.head || d.body).appendChild(s);
|
||||
})();
|
||||
</script>
|
||||
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
||||
{% endif %}
|
8
_includes/comments-providers/facebook.html
Normal file
8
_includes/comments-providers/facebook.html
Normal file
@ -0,0 +1,8 @@
|
||||
<div id="fb-root"></div>
|
||||
<script>(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5{% if site.comments.facebook.appid %}&appId={{ site.comments.facebook.appid }}{% endif %}";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));</script>
|
2
_includes/comments-providers/google-plus.html
Normal file
2
_includes/comments-providers/google-plus.html
Normal file
@ -0,0 +1,2 @@
|
||||
<script async type="text/javascript" src="//apis.google.com/js/plusone.js?callback=gpcb"></script>
|
||||
<noscript>Please enable JavaScript to view the <a href="https://plus.google.com/">comments powered by Google+.</a></noscript>
|
16
_includes/comments-providers/scripts.html
Normal file
16
_includes/comments-providers/scripts.html
Normal file
@ -0,0 +1,16 @@
|
||||
{% if site.comments.provider and page.comments %}
|
||||
{% case site.comments.provider %}
|
||||
{% when "disqus" %}
|
||||
{% include /comments-providers/disqus.html %}
|
||||
{% when "discourse" %}
|
||||
{% include /comments-providers/discourse.html %}
|
||||
{% when "facebook" %}
|
||||
{% include /comments-providers/facebook.html %}
|
||||
{% when "google-plus" %}
|
||||
{% include /comments-providers/google-plus.html %}
|
||||
{% when "staticman" %}
|
||||
{% include /comments-providers/staticman.html %}
|
||||
{% when "custom" %}
|
||||
{% include /comments-providers/custom.html %}
|
||||
{% endcase %}
|
||||
{% endif %}
|
42
_includes/comments-providers/staticman.html
Normal file
42
_includes/comments-providers/staticman.html
Normal file
@ -0,0 +1,42 @@
|
||||
{% if site.repository and site.staticman.branch %}
|
||||
<script>
|
||||
(function ($) {
|
||||
var $comments = $('.js-comments');
|
||||
|
||||
$('#new_comment').submit(function () {
|
||||
var form = this;
|
||||
|
||||
$(form).addClass('disabled');
|
||||
$('#comment-form-submit').html('<i class="fa fa-spinner fa-spin fa-fw"></i> {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}');
|
||||
|
||||
$.ajax({
|
||||
type: $(this).attr('method'),
|
||||
url: $(this).attr('action'),
|
||||
data: $(this).serialize(),
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
success: function (data) {
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--danger');
|
||||
$('.page__comments-form .js-notice').addClass('notice--success');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}');
|
||||
},
|
||||
error: function (err) {
|
||||
console.log(err);
|
||||
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}');
|
||||
$('.page__comments-form .js-notice').removeClass('notice--success');
|
||||
$('.page__comments-form .js-notice').addClass('notice--danger');
|
||||
showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}');
|
||||
$(form).removeClass('disabled');
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
function showAlert(message) {
|
||||
$('.page__comments-form .js-notice').removeClass('hidden');
|
||||
$('.page__comments-form .js-notice-text').html(message);
|
||||
}
|
||||
})(jQuery);
|
||||
</script>
|
||||
{% endif %}
|
97
_includes/comments.html
Normal file
97
_includes/comments.html
Normal file
@ -0,0 +1,97 @@
|
||||
<div class="page__comments">
|
||||
{% capture comments_label %}{{ site.data.ui-text[site.locale].comments_label | default: "Comments" }}{% endcapture %}
|
||||
{% case site.comments.provider %}
|
||||
{% when "discourse" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="discourse-comments"></section>
|
||||
{% when "disqus" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="disqus_thread"></section>
|
||||
{% when "facebook" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section class="fb-comments" data-href="{{ page.url | absolute_url }}" data-mobile="true" data-num-posts="{{ site.comments.facebook.num_posts | default: 5 }}" data-width="100%" data-colorscheme="{{ site.comments.facebook.colorscheme | default: 'light' }}"></section>
|
||||
{% when "google-plus" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="g-comments" class="g-comments">Loading Google+ Comments ...</section>
|
||||
<script>
|
||||
function initComment() {
|
||||
gapi.comments.render("g-comments", {
|
||||
href: "{{ page.url | absolute_url }}",
|
||||
width: "624",
|
||||
first_party_property: "BLOGGER",
|
||||
view_type: "FILTERED_POSTMOD"
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<script async type="text/javascript" src="https://apis.google.com/js/plusone.js" onload="initComment()" />
|
||||
<noscript>Please enable JavaScript to view the <a href="https://plus.google.com/">comments powered by Google+.</a></noscript>-->
|
||||
{% when "staticman" %}
|
||||
<section id="static-comments">
|
||||
{% if site.repository and site.staticman.branch %}
|
||||
<!-- Start static comments -->
|
||||
<div class="js-comments">
|
||||
{% if site.data.comments[page.slug] %}
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
|
||||
{% assign comments = site.data.comments[page.slug] | sort %}
|
||||
|
||||
{% for comment in comments %}
|
||||
{% assign email = comment[1].email %}
|
||||
{% assign name = comment[1].name %}
|
||||
{% assign url = comment[1].url %}
|
||||
{% assign date = comment[1].date %}
|
||||
{% assign message = comment[1].message %}
|
||||
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- End static comments -->
|
||||
|
||||
<!-- Start new comment form -->
|
||||
<div class="page__comments-form">
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
|
||||
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
|
||||
<form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/{{ site.repository }}/{{ site.staticman.branch }}">
|
||||
<div class="form__spinner">
|
||||
<i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
|
||||
<span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
|
||||
</div>
|
||||
|
||||
<fieldset>
|
||||
<label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label>
|
||||
<textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
|
||||
<div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label>
|
||||
<input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label>
|
||||
<input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label>
|
||||
<input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
|
||||
</fieldset>
|
||||
<fieldset class="hidden" style="display: none;">
|
||||
<input type="hidden" name="options[slug]" value="{{ page.slug }}">
|
||||
<label for="comment-form-location">Not used. Leave blank if you are a human.</label>
|
||||
<input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/>
|
||||
</fieldset>
|
||||
<!-- Start comment form alert messaging -->
|
||||
<p class="hidden js-notice">
|
||||
<strong class="js-notice-text"></strong>
|
||||
</p>
|
||||
<!-- End comment form alert messaging -->
|
||||
<fieldset>
|
||||
<button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--primary btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<!-- End new comment form -->
|
||||
{% endif %}
|
||||
</section>
|
||||
{% when "custom" %}
|
||||
<section id="custom-comments"></section>
|
||||
{% endcase %}
|
||||
</div>
|
50
_includes/feature_row
Normal file
50
_includes/feature_row
Normal file
@ -0,0 +1,50 @@
|
||||
{% if include.id %}
|
||||
{% assign feature_row = page[include.id] %}
|
||||
{% else %}
|
||||
{% assign feature_row = page.feature_row %}
|
||||
{% endif %}
|
||||
|
||||
<div class="feature__wrapper">
|
||||
|
||||
{% for f in feature_row %}
|
||||
|
||||
{% if f.url contains "://" %}
|
||||
{% capture f_url %}{{ f.url }}{% endcapture %}
|
||||
{% else %}
|
||||
{% capture f_url %}{{ f.url | absolute_url }}{% endcapture %}
|
||||
{% endif %}
|
||||
|
||||
<div class="feature__item{% if include.type %}--{{ include.type }}{% endif %}">
|
||||
<div class="archive__item">
|
||||
{% if f.image_path %}
|
||||
<div class="archive__item-teaser">
|
||||
<img src=
|
||||
{% if f.image_path contains "://" %}
|
||||
"{{ f.image_path }}"
|
||||
{% else %}
|
||||
"{{ f.image_path | absolute_url }}"
|
||||
{% endif %}
|
||||
alt="{% if f.alt %}{{ f.alt }}{% endif %}">
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="archive__item-body">
|
||||
{% if f.title %}
|
||||
<h2 class="archive__item-title">{{ f.title }}</h2>
|
||||
{% endif %}
|
||||
|
||||
{% if f.excerpt %}
|
||||
<div class="archive__item-excerpt">
|
||||
{{ f.excerpt | markdownify }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if f.url %}
|
||||
<p><a href="{{ f_url }}" class="btn {{ f.btn_class }}">{{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
12
_includes/figure
Normal file
12
_includes/figure
Normal file
@ -0,0 +1,12 @@
|
||||
<figure class="{{ include.class }}">
|
||||
<img src=
|
||||
{% if include.image_path contains "://" %}
|
||||
"{{ include.image_path }}"
|
||||
{% else %}
|
||||
"{{ include.image_path | absolute_url }}"
|
||||
{% endif %}
|
||||
alt="{% if include.alt %}{{ include.alt }}{% endif %}">
|
||||
{% if include.caption %}
|
||||
<figcaption>{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}</figcaption>
|
||||
{% endif %}
|
||||
</figure>
|
6
_includes/footer.html
Normal file
6
_includes/footer.html
Normal file
@ -0,0 +1,6 @@
|
||||
{% include base_path %}
|
||||
{% assign split_path = page.path | split: "/" %}
|
||||
{% assign locale = split_path[1] %}
|
||||
{% assign titles = site.data.navigation[locale].footer %}
|
||||
<div class="page__footer-copyright">© {{ site.time | date: '%Y' }} {{ site.name | default: site.title }} - <a href="https://github.com/Plailect/Guide_Switch">{{ titles[0].title }}</a> - <a href="site-navigation">{{ titles[1].title }}</a> - <a href="why-ads">{{ titles[2].title }}</a>
|
||||
|
3
_includes/footer/custom.html
Normal file
3
_includes/footer/custom.html
Normal file
@ -0,0 +1,3 @@
|
||||
<!-- start custom footer snippets -->
|
||||
|
||||
<!-- end custom footer snippets -->
|
47
_includes/gallery
Normal file
47
_includes/gallery
Normal file
@ -0,0 +1,47 @@
|
||||
{% if include.id %}
|
||||
{% assign gallery = page[include.id] %}
|
||||
{% else %}
|
||||
{% assign gallery = page.gallery %}
|
||||
{% endif %}
|
||||
|
||||
{% if gallery.size == 2 %}
|
||||
{% assign gallery_layout = 'half' %}
|
||||
{% elsif gallery.size >= 3 %}
|
||||
{% assign gallery_layout = 'third' %}
|
||||
{% else %}
|
||||
{% assign gallery_layout = '' %}
|
||||
{% endif %}
|
||||
|
||||
<figure class="{{ gallery_layout }} {{ include.class }}">
|
||||
{% for img in gallery %}
|
||||
{% if img.url %}
|
||||
<a href=
|
||||
{% if img.url contains "://" %}
|
||||
"{{ img.url }}"
|
||||
{% else %}
|
||||
"{{ img.url | absolute_url }}"
|
||||
{% endif %}
|
||||
{% if img.title %}title="{{ img.title }}"{% endif %}
|
||||
>
|
||||
<img src=
|
||||
{% if img.image_path contains "://" %}
|
||||
"{{ img.image_path }}"
|
||||
{% else %}
|
||||
"{{ img.image_path | absolute_url }}"
|
||||
{% endif %}
|
||||
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
|
||||
</a>
|
||||
{% else %}
|
||||
<img src=
|
||||
{% if img.image_path contains "://" %}
|
||||
"{{ img.image_path }}"
|
||||
{% else %}
|
||||
"{{ img.image_path | absolute_url }}"
|
||||
{% endif %}
|
||||
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if include.caption %}
|
||||
<figcaption>{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}</figcaption>
|
||||
{% endif %}
|
||||
</figure>
|
47
_includes/group-by-array
Normal file
47
_includes/group-by-array
Normal file
@ -0,0 +1,47 @@
|
||||
<!--
|
||||
# Jekyll Group-By-Array 0.1.0
|
||||
# https://github.com/mushishi78/jekyll-group-by-array
|
||||
# © 2015 Max White <mushishi78@gmail.com>
|
||||
# MIT License
|
||||
-->
|
||||
|
||||
<!-- Initialize -->
|
||||
{% assign __empty_array = '' | split: ',' %}
|
||||
{% assign group_names = __empty_array %}
|
||||
{% assign group_items = __empty_array %}
|
||||
|
||||
<!-- Map -->
|
||||
{% assign __names = include.collection | map: include.field %}
|
||||
|
||||
<!-- Flatten -->
|
||||
{% assign __names = __names | join: ',' | join: ',' | split: ',' %}
|
||||
|
||||
<!-- Uniq -->
|
||||
{% assign __names = __names | sort %}
|
||||
{% for name in __names %}
|
||||
|
||||
<!-- If not equal to previous then it must be unique as sorted -->
|
||||
{% unless name == previous %}
|
||||
|
||||
<!-- Push to group_names -->
|
||||
{% assign group_names = group_names | push: name %}
|
||||
{% endunless %}
|
||||
|
||||
{% assign previous = name %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
<!-- group_items -->
|
||||
{% for name in group_names %}
|
||||
|
||||
<!-- Collect if contains -->
|
||||
{% assign __item = __empty_array %}
|
||||
{% for __element in include.collection %}
|
||||
{% if __element[include.field] contains name %}
|
||||
{% assign __item = __item | push: __element %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<!-- Push to group_items -->
|
||||
{% assign group_items = group_items | push: __item %}
|
||||
{% endfor %}
|
43
_includes/head.html
Normal file
43
_includes/head.html
Normal file
@ -0,0 +1,43 @@
|
||||
<meta charset="utf-8">
|
||||
|
||||
{% include seo.html %}
|
||||
|
||||
<link href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | absolute_url }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed">
|
||||
|
||||
<!-- http://t.co/dKP3o1e -->
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
<meta name="MobileOptimized" content="320">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<script>
|
||||
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
|
||||
</script>
|
||||
|
||||
<!-- For all browsers -->
|
||||
<link rel="stylesheet" href="{{ '/assets/css/main.css' | absolute_url }}">
|
||||
|
||||
<!--[if lte IE 9]>
|
||||
<style>
|
||||
/* old IE unsupported flexbox fixes */
|
||||
.greedy-nav .site-title {
|
||||
padding-right: 3em;
|
||||
}
|
||||
.greedy-nav button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
<![endif]-->
|
||||
|
||||
{% if site.head_scripts %}
|
||||
{% for script in site.head_scripts %}
|
||||
{% if script contains "://" %}
|
||||
{% capture script_path %}{{ script }}{% endcapture %}
|
||||
{% else %}
|
||||
{% capture script_path %}{{ script | absolute_url }}{% endcapture %}
|
||||
{% endif %}
|
||||
<script src="{{ script_path }}"></script>
|
||||
{% endfor %}
|
||||
{% endif %}
|
19
_includes/head/custom.html
Normal file
19
_includes/head/custom.html
Normal file
@ -0,0 +1,19 @@
|
||||
<!-- start custom head snippets -->
|
||||
{% include base_path %}
|
||||
<!-- insert favicons. use http://realfavicongenerator.net/ -->
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ base_path }}/images/apple-touch-icon.png?v=PYEmwKvQAx">
|
||||
<link rel="icon" type="image/png" href="{{ base_path }}/images/favicon-32x32.png?v=PYEmwKvQAx" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="{{ base_path }}/images/favicon-194x194.png?v=PYEmwKvQAx" sizes="194x194">
|
||||
<link rel="icon" type="image/png" href="{{ base_path }}/images/android-chrome-192x192.png?v=PYEmwKvQAx" sizes="192x192">
|
||||
<link rel="icon" type="image/png" href="{{ base_path }}/images/favicon-16x16.png?v=PYEmwKvQAx" sizes="16x16">
|
||||
<link rel="manifest" href="{{ base_path }}/images/manifest.json?v=PYEmwKvQAx">
|
||||
<link rel="mask-icon" href="{{ base_path }}/images/safari-pinned-tab.svg?v=PYEmwKvQAx" color="#2E3440">
|
||||
<link rel="shortcut icon" href="{{ base_path }}/images/favicon.ico?v=PYEmwKvQAx">
|
||||
<meta name="apple-mobile-web-app-title" content="Guide">
|
||||
<meta name="application-name" content="Guide">
|
||||
<meta name="msapplication-TileColor" content="#2E3440">
|
||||
<meta name="msapplication-TileImage" content="{{ base_path }}/images/mstile-144x144.png?v=PYEmwKvQAx">
|
||||
<meta name="msapplication-config" content="{{ base_path }}/images/browserconfig.xml?v=PYEmwKvQAx">
|
||||
<meta name="theme-color" content="#2E3440">
|
||||
<!-- end custom head snippets -->
|
71
_includes/masthead.html
Normal file
71
_includes/masthead.html
Normal file
@ -0,0 +1,71 @@
|
||||
<div class="masthead">
|
||||
<div class="masthead__inner-wrap">
|
||||
<div class="masthead__menu">
|
||||
<nav id="site-nav" class="greedy-nav">
|
||||
<ul class="visible-links">
|
||||
{% assign split_path = page.path | split: "/" %}
|
||||
{% assign locale = split_path[1] %}
|
||||
{% assign titles = site.data.navigation[locale].main %}
|
||||
{% if locale == 'en_US' %}
|
||||
{% assign locale_var = '/' %}
|
||||
{% else %}
|
||||
{% assign locale_var = locale | prepend:'/' | append:'/' %}
|
||||
{% endif %}
|
||||
{% for link in site.data.navigation[locale].main %}
|
||||
{% if link.url == "/" %}
|
||||
<li class="masthead__menu-item masthead__menu-item--lg"><a href="{{ domain }}{{ locale_var }}">{{ link.title }}</a></li>
|
||||
{% else %}
|
||||
<li class="masthead__menu-item"><a href="{{ domain }}{{ locale_var }}{{ link.url }}">{{ link.title }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<ul class="hidden-links links-menu hidden"></ul>
|
||||
<ul class="hidden-links lang-menu hidden">
|
||||
{% assign split_url = page.url | split: "/" %}
|
||||
{% if split_url.size == 3 %}
|
||||
{% assign langless_url = split_url[2] %}
|
||||
{% else %}
|
||||
{% assign langless_url = split_url[1] %}
|
||||
{% endif %}
|
||||
{% if langless_url == "index.html" %}
|
||||
{% assign langless_url = "" %}
|
||||
{% endif %}
|
||||
<li class="masthead__menu-item"><a href="{{ site.url }}/{{ langless_url }}">English</a></li>
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/es_ES/{{ langless_url }}">Español</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/de_DE/{{ langless_url }}">Deutsch</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/fr_FR/{{ langless_url }}">Français</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/it_IT/{{ langless_url }}">Italiano</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/nl_NL/{{ langless_url }}">Nederlands</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/pt_BR/{{ langless_url }}">Português do Brasil</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/pt_PT/{{ langless_url }}">Português (Portugal)</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/ru_RU/{{ langless_url }}">Русский</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/zh_CN/{{ langless_url }}">简体中文</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/zh_TW/{{ langless_url }}">繁體中文</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/pl_PL/{{ langless_url }}">Polski</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/tr_TR/{{ langless_url }}">Türkçe</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/vi_VN/{{ langless_url }}">Tiếng Việt</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/ca_ES/{{ langless_url }}">Català</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/el_GR/{{ langless_url }}">Ελληνικά</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/he_IL/{{ langless_url }}">עברית</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/sv_SE/{{ langless_url }}">Svenska</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/ko_KR/{{ langless_url }}">한국어</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/no_NO/{{ langless_url }}">Norsk</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/ja_JP/{{ langless_url }}">日本語</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/ar_SA/{{ langless_url }}">اللغة العربية</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/hu_HU/{{ langless_url }}">Magyar</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/ro_RO/{{ langless_url }}">Română</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/sr_SP/{{ langless_url }}">Српски</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/af_ZA/{{ langless_url }}">Afrikaans</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/ms_MY/{{ langless_url }}">Bahasa Melayu</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/fi_FI/{{ langless_url }}">Suomi</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/da_DK/{{ langless_url }}">Dansk</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/uk_UA/{{ langless_url }}">Українська</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/cs_CZ/{{ langless_url }}">Čeština</a></li> -->
|
||||
<!-- <li class="masthead__menu-item"><a href="{{ site.url }}/en_PT/{{ langless_url }}">Pirate English</a></li> -->
|
||||
</ul>
|
||||
<button class="navsel"><div class="navicon"></div></button>
|
||||
<button class="langsel"><div class="langicon"><i class="fa fa-language fa-lg" aria-hidden="true"></i></div></button>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
32
_includes/nav_list
Normal file
32
_includes/nav_list
Normal file
@ -0,0 +1,32 @@
|
||||
{% assign split_path = page.path | split: "/" %}
|
||||
{% assign locale = split_path[1] %}
|
||||
{% if locale == 'en_US' %}
|
||||
{% assign locale_var = '/' %}
|
||||
{% else %}
|
||||
{% assign locale_var = locale | prepend:'/' | append:'/' %}
|
||||
{% endif %}
|
||||
|
||||
{% assign title = site.data.navigation[locale].sidebar_title %}
|
||||
{% assign navigation = site.data.navigation[locale].sidebar_pages %}
|
||||
|
||||
<nav class="nav__list">
|
||||
{% if page.sidebar.title %}<h3 class="nav__title" style="padding-left: 0;">{{ page.sidebar.title }}</h3>{% endif %}
|
||||
<input id="ac-toc" name="accordion-toc" type="checkbox" />
|
||||
<label for="ac-toc">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</label>
|
||||
<ul class="nav__items">
|
||||
<li>
|
||||
<span class="nav__sub-title">{{ title[0].title }}</span>
|
||||
<ol>
|
||||
{% for link in site.data.navigation[locale].sidebar_pages %}
|
||||
{% if link.url == "/" %}
|
||||
<li style="display: none;" data-name="home"><a href='{{ domain }}{{ locale_var }}'>{{ link.title }}</a></li>
|
||||
{% elsif link.url == "multiple-options" %}
|
||||
<li style="display: none;" data-name="multiple-options"><i>({{ link.title }})</i></li>
|
||||
{% else %}
|
||||
<li style="display: none;" data-name="{{ site.data.navigation.en_US.sidebar_pages[forloop.index0].url }}"><a href='{{ domain }}{{ locale_var }}{{ link.url }}'>{{ link.title }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
61
_includes/page__hero.html
Normal file
61
_includes/page__hero.html
Normal file
@ -0,0 +1,61 @@
|
||||
{% if page.header.image contains "://" %}
|
||||
{% capture img_path %}{{ page.header.image }}{% endcapture %}
|
||||
{% else %}
|
||||
{% capture img_path %}{{ page.header.image | absolute_url }}{% endcapture %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.header.cta_url contains "://" %}
|
||||
{% capture cta_path %}{{ page.header.cta_url }}{% endcapture %}
|
||||
{% else %}
|
||||
{% capture cta_path %}{{ page.header.cta_url | absolute_url }}{% endcapture %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.header.overlay_image contains "://" %}
|
||||
{% capture overlay_img_path %}{{ page.header.overlay_image }}{% endcapture %}
|
||||
{% elsif page.header.overlay_image %}
|
||||
{% capture overlay_img_path %}{{ page.header.overlay_image | absolute_url }}{% endcapture %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.header.overlay_filter contains "rgba" %}
|
||||
{% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %}
|
||||
{% elsif page.header.overlay_filter %}
|
||||
{% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.header.image_description %}
|
||||
{% assign image_description = page.header.image_description %}
|
||||
{% else %}
|
||||
{% assign image_description = page.title %}
|
||||
{% endif %}
|
||||
|
||||
{% assign image_description = image_description | markdownify | strip_html | strip_newlines | escape_once %}
|
||||
|
||||
<div class="page__hero{% if page.header.overlay_color or page.header.overlay_image %}--overlay{% endif %}"
|
||||
style="{% if page.header.overlay_color %}background-color: {{ page.header.overlay_color | default: 'transparent' }};{% endif %} {% if overlay_img_path %}background-image: {% if overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}), {% endif %}url('{{ overlay_img_path }}');{% endif %}"
|
||||
>
|
||||
{% if page.header.overlay_color or page.header.overlay_image %}
|
||||
<div class="wrapper">
|
||||
<h1 class="page__title" itemprop="headline">
|
||||
{% if paginator and site.paginate_show_page_num %}
|
||||
{{ site.title }}{% unless paginator.page == 1 %} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}
|
||||
{% else %}
|
||||
{{ page.title | default: site.title | markdownify | remove: "<p>" | remove: "</p>" }}
|
||||
{% endif %}
|
||||
</h1>
|
||||
{% if page.excerpt %}
|
||||
<p class="page__lead">{{ page.excerpt | markdownify | remove: "<p>" | remove: "</p>" }}</p>
|
||||
{% endif %}
|
||||
{% if site.read_time and page.read_time %}
|
||||
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
|
||||
{% endif %}
|
||||
{% if page.header.cta_url %}
|
||||
<p><a href="{{ cta_path }}" class="btn btn--light-outline btn--large">{{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
<img src="{{ img_path }}" alt="{{ image_description }}" class="page__hero-image">
|
||||
{% endif %}
|
||||
{% if page.header.caption %}
|
||||
<span class="page__hero-caption">{{ page.header.caption | markdownify | remove: "<p>" | remove: "</p>" }}</span>
|
||||
{% endif %}
|
||||
</div>
|
4
_includes/page__hero_video.html
Normal file
4
_includes/page__hero_video.html
Normal file
@ -0,0 +1,4 @@
|
||||
{% capture video_id %}{{ page.header.video.id }}{% endcapture %}
|
||||
{% capture video_provider %}{{ page.header.video.provider }}{% endcapture %}
|
||||
|
||||
{% include video id=video_id provider=video_provider %}
|
7
_includes/page__taxonomy.html
Normal file
7
_includes/page__taxonomy.html
Normal file
@ -0,0 +1,7 @@
|
||||
{% if site.tag_archive.type and page.tags[0] %}
|
||||
{% include tag-list.html %}
|
||||
{% endif %}
|
||||
|
||||
{% if site.category_archive.type and page.categories[0] %}
|
||||
{% include category-list.html %}
|
||||
{% endif %}
|
69
_includes/paginator.html
Normal file
69
_includes/paginator.html
Normal file
@ -0,0 +1,69 @@
|
||||
{% if paginator.total_pages > 1 %}
|
||||
<nav class="pagination">
|
||||
{% assign first_page_path = site.paginate_path | replace: 'page:num', '' | replace: '//', '/' | absolute_url %}
|
||||
<ul>
|
||||
{% comment %} Link for previous page {% endcomment %}
|
||||
{% if paginator.previous_page %}
|
||||
{% if paginator.previous_page == 1 %}
|
||||
<li><a href="{{ first_page_path }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', paginator.previous_page | replace: '//', '/' | absolute_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
|
||||
{% endif %}
|
||||
|
||||
{% comment %} First page {% endcomment %}
|
||||
{% if paginator.page == 1 %}
|
||||
<li><a href="#" class="disabled current">1</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ first_page_path }}">1</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% assign page_start = 2 %}
|
||||
{% if paginator.page > 4 %}
|
||||
{% assign page_start = paginator.page | minus: 2 %}
|
||||
{% comment %} Ellipsis for truncated links {% endcomment %}
|
||||
<li><a href="#" class="disabled">…</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% assign page_end = paginator.total_pages | minus: 1 %}
|
||||
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
|
||||
{% if pages_to_end > 4 %}
|
||||
{% assign page_end = paginator.page | plus: 2 %}
|
||||
{% endif %}
|
||||
|
||||
{% for index in (page_start..page_end) %}
|
||||
{% if index == paginator.page %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', index | replace: '//', '/' | absolute_url }}" class="disabled current">{{ index }}</a></li>
|
||||
{% else %}
|
||||
{% comment %} Distance from current page and this link {% endcomment %}
|
||||
{% assign dist = paginator.page | minus: index %}
|
||||
{% if dist < 0 %}
|
||||
{% comment %} Distance must be a positive value {% endcomment %}
|
||||
{% assign dist = 0 | minus: dist %}
|
||||
{% endif %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', index | absolute_url }}">{{ index }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% comment %} Ellipsis for truncated links {% endcomment %}
|
||||
{% if pages_to_end > 3 %}
|
||||
<li><a href="#" class="disabled">…</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% if paginator.page == paginator.total_pages %}
|
||||
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', paginator.total_pages | replace: '//', '/' | absolute_url }}">{{ paginator.total_pages }}</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% comment %} Link next page {% endcomment %}
|
||||
{% if paginator.next_page %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', paginator.next_page | replace: '//', '/' | absolute_url }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif %}
|
14
_includes/post_pagination.html
Normal file
14
_includes/post_pagination.html
Normal file
@ -0,0 +1,14 @@
|
||||
{% if page.previous or page.next %}
|
||||
<nav class="pagination">
|
||||
{% if page.previous %}
|
||||
<a href="{{ page.previous.url | absolute_url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
||||
{% else %}
|
||||
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
||||
{% endif %}
|
||||
{% if page.next %}
|
||||
<a href="{{ page.next.url | absolute_url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
||||
{% else %}
|
||||
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
||||
{% endif %}
|
||||
</nav>
|
||||
{% endif %}
|
15
_includes/read-time.html
Normal file
15
_includes/read-time.html
Normal file
@ -0,0 +1,15 @@
|
||||
{% assign words_per_minute = site.words_per_minute | default: 200 %}
|
||||
|
||||
{% if post.read_time %}
|
||||
{% assign words = post.content | strip_html | number_of_words %}
|
||||
{% elsif page.read_time %}
|
||||
{% assign words = page.content | strip_html | number_of_words %}
|
||||
{% endif %}
|
||||
|
||||
{% if words < words_per_minute %}
|
||||
{{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
||||
{% elsif words == words_per_minute %}
|
||||
1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
||||
{% else %}
|
||||
{{ words | divided_by:words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
||||
{% endif %}
|
15
_includes/scripts.html
Normal file
15
_includes/scripts.html
Normal file
@ -0,0 +1,15 @@
|
||||
{% if site.footer_scripts %}
|
||||
{% for script in site.footer_scripts %}
|
||||
{% if script contains "://" %}
|
||||
{% capture script_path %}{{ script }}{% endcapture %}
|
||||
{% else %}
|
||||
{% capture script_path %}{{ script | absolute_url }}{% endcapture %}
|
||||
{% endif %}
|
||||
<script src="{{ script_path }}"></script>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<script src="{{ '/assets/js/main.min.js' | absolute_url }}"></script>
|
||||
{% endif %}
|
||||
|
||||
{% include analytics.html %}
|
||||
{% include /comments-providers/scripts.html %}
|
147
_includes/seo.html
Normal file
147
_includes/seo.html
Normal file
@ -0,0 +1,147 @@
|
||||
<!-- begin SEO -->
|
||||
{% if site.url %}
|
||||
{% assign seo_url = site.url | append: site.baseurl %}
|
||||
{% endif %}
|
||||
{% assign seo_url = seo_url | default: site.github.url %}
|
||||
|
||||
{% if page.title %}
|
||||
{% assign seo_title = page.title | append: " " | append: site.title_separator | append: " " | append: site.title %}
|
||||
{% endif %}
|
||||
|
||||
{% if seo_title %}
|
||||
{% assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once %}
|
||||
{% endif %}
|
||||
|
||||
{% if site.url %}
|
||||
{% assign canonical_url = page.url | replace: "index.html", "" | prepend: site.url %}
|
||||
{% endif %}
|
||||
|
||||
<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ site.title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
|
||||
|
||||
{% assign seo_description = page.description | default: page.excerpt | default: site.description %}
|
||||
{% if seo_description %}
|
||||
{% assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once %}
|
||||
{% endif %}
|
||||
|
||||
<meta name="description" content="{{ seo_description }}">
|
||||
|
||||
{% assign seo_author = page.author | default: page.author[0] | default: site.author.name %}
|
||||
{% if seo_author %}
|
||||
{% if seo_author.twitter %}
|
||||
{% assign seo_author_twitter = seo_author.twitter %}
|
||||
{% else %}
|
||||
{% if site.data.authors and site.data.authors[seo_author] %}
|
||||
{% assign seo_author_twitter = site.data.authors[seo_author].twitter %}
|
||||
{% else %}
|
||||
{% assign seo_author_twitter = seo_author %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% assign seo_author_twitter = seo_author_twitter | replace: "@", "" %}
|
||||
{% endif %}
|
||||
|
||||
<meta name="author" content="{{ seo_author }}">
|
||||
|
||||
<meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en_US" }}">
|
||||
<meta property="og:site_name" content="{{ site.title }}">
|
||||
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
||||
|
||||
{% if seo_url %}
|
||||
<link rel="canonical" href="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
|
||||
<meta property="og:url" content="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
|
||||
{% endif %}
|
||||
|
||||
{% if page.excerpt %}
|
||||
<meta property="og:description" content="{{ seo_description }}">
|
||||
{% endif %}
|
||||
|
||||
{% if site.twitter.username %}
|
||||
<meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
|
||||
<meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
||||
<meta name="twitter:description" content="{{ seo_description }}">
|
||||
<meta name="twitter:url" content="{{ canonical_url }}">
|
||||
|
||||
{% if page.header.image %}
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:image" content="{% if page.header.image contains "://" %}{{ page.header.image }}{% else %}{{ page.header.image | absolute_url }}{% endif %}">
|
||||
{% else %}
|
||||
<meta name="twitter:card" content="summary">
|
||||
{% if page.header.teaser %}
|
||||
<meta name="twitter:image" content="{% if page.header.teaser contains "://" %}{{ page.header.teaser }}{% else %}{{ page.header.teaser | absolute_url }}{% endif %}">
|
||||
{% elsif site.og_image %}
|
||||
<meta name="twitter:image" content="{{ site.og_image | absolute_url }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if seo_author_twitter %}
|
||||
<meta name="twitter:creator" content="@{{ seo_author_twitter }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if site.facebook %}
|
||||
{% if site.facebook.publisher %}
|
||||
<meta property="article:publisher" content="{{ site.facebook.publisher }}">
|
||||
{% endif %}
|
||||
|
||||
{% if site.facebook.app_id %}
|
||||
<meta property="fb:app_id" content="{{ site.facebook.app_id }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.header.image %}
|
||||
<meta property="og:image" content="{% if page.header.image contains "://" %}{{ page.header.image }}{% else %}{{ page.header.image | absolute_url }}{% endif %}">
|
||||
{% elsif page.header.overlay_image %}
|
||||
<meta property="og:image" content="{% if page.header.overlay_image contains "://" %}{{ page.header.overlay_image }}{% else %}{{ page.header.overlay_image | absolute_url }}{% endif %}">
|
||||
{% elsif page.header.teaser %}
|
||||
<meta property="og:image" content="{% if page.header.teaser contains "://" %}{{ page.header.teaser }}{% else %}{{ page.header.teaser | absolute_url }}{% endif %}">
|
||||
{% elsif site.og_image %}
|
||||
<meta property="og:image" content="{% if site.og_image contains "://" %}{{ site.og_image }}{% else %}{{ site.og_image | absolute_url }}{% endif %}">
|
||||
{% endif %}
|
||||
|
||||
{% if page.date %}
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
|
||||
{% endif %}
|
||||
|
||||
{% if paginator.previous_page %}
|
||||
<link rel="prev" href="{{ paginator.previous_page_path | prepend: seo_url }}">
|
||||
{% endif %}
|
||||
{% if paginator.next_page %}
|
||||
<link rel="next" href="{{ paginator.next_page_path | prepend: seo_url }}">
|
||||
{% endif %}
|
||||
|
||||
{% if site.og_image %}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "Organization",
|
||||
"url": {{ seo_url | jsonify }},
|
||||
"logo": {{ site.og_image | absolute_url | jsonify }}
|
||||
}
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
{% if site.social %}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context" : "http://schema.org",
|
||||
"@type" : "{% if site.social.type %}{{ site.social.type }}{% else %}Person{% endif %}",
|
||||
"name" : "{{ site.social.name | default: site.name }}",
|
||||
"url" : {{ seo_url | jsonify }},
|
||||
"sameAs" : {{ site.social.links | jsonify }}
|
||||
}
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
{% if site.google_site_verification %}
|
||||
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
|
||||
{% endif %}
|
||||
{% if site.bing_site_verification %}
|
||||
<meta name="msvalidate.01" content="{{ site.bing_site_verification }}">
|
||||
{% endif %}
|
||||
{% if site.alexa_site_verification %}
|
||||
<meta name="alexaVerifyID" content="{{ site.alexa_site_verification }}">
|
||||
{% endif %}
|
||||
{% if site.yandex_site_verification %}
|
||||
<meta name="yandex-verification" content="{{ site.yandex_site_verification }}">
|
||||
{% endif %}
|
||||
<!-- end SEO -->
|
7
_includes/sidebar.html
Normal file
7
_includes/sidebar.html
Normal file
@ -0,0 +1,7 @@
|
||||
{% if page.sidebar %}
|
||||
|
||||
<div class="sidebar sticky" style="display: none;">
|
||||
{% include nav_list %}
|
||||
</div>
|
||||
|
||||
{% endif %}
|
13
_includes/social-share.html
Normal file
13
_includes/social-share.html
Normal file
@ -0,0 +1,13 @@
|
||||
<section class="page__share">
|
||||
{% if site.data.ui-text[site.locale].share_on_label %}
|
||||
<h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
|
||||
{% endif %}
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?{% if site.twitter.username %}via={{ site.twitter.username | url_encode }}&{% endif %}text={{ page.title | url_encode }}%20{{ page.url | absolute_url | url_encode }}" class="btn btn--twitter" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u={{ page.url | absolute_url | url_encode }}" class="btn btn--facebook" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://plus.google.com/share?url={{ page.url | absolute_url | url_encode }}" class="btn btn--google-plus" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ page.url | absolute_url | url_encode }}" class="btn btn--linkedin" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
26
_includes/tag-list.html
Normal file
26
_includes/tag-list.html
Normal file
@ -0,0 +1,26 @@
|
||||
{% case site.tag_archive.type %}
|
||||
{% when "liquid" %}
|
||||
{% assign path_type = "#" %}
|
||||
{% when "jekyll-archives" %}
|
||||
{% assign path_type = nil %}
|
||||
{% endcase %}
|
||||
|
||||
{% if site.tag_archive.path %}
|
||||
{% comment %}
|
||||
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
|
||||
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
|
||||
{% endcomment %}
|
||||
{% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}#{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
|
||||
{% assign tag_hashes = page_tags | split: ',' | sort %}
|
||||
|
||||
<p class="page__taxonomy">
|
||||
<strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} </strong>
|
||||
<span itemprop="keywords">
|
||||
{% for hash in tag_hashes %}
|
||||
{% assign keyValue = hash | split: '#' %}
|
||||
{% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
|
||||
<a href="{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path | absolute_url }}" class="page__taxonomy-item" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
||||
{% endfor %}
|
||||
</span>
|
||||
</p>
|
||||
{% endif %}
|
7
_includes/toc
Normal file
7
_includes/toc
Normal file
@ -0,0 +1,7 @@
|
||||
<aside class="sidebar__right">
|
||||
<nav class="toc" markdown="1">
|
||||
<header><h4 class="nav__title"><i class="fa fa-{{ include.icon | default: 'file-text' }}"></i> {{ include.title | default: site.data.ui-text[site.locale].toc_label }}</h4></header>
|
||||
* Auto generated table of contents
|
||||
{:toc .toc__menu}
|
||||
</nav>
|
||||
</aside>
|
11
_includes/video
Normal file
11
_includes/video
Normal file
@ -0,0 +1,11 @@
|
||||
{% capture video_id %}{{ include.id }}{% endcapture %}
|
||||
{% capture video_provider %}{{ include.provider }}{% endcapture %}
|
||||
|
||||
<!-- Courtesy of embedresponsively.com //-->
|
||||
<div class="responsive-video-container">
|
||||
{% if video_provider == "vimeo" %}
|
||||
<iframe src="https://player.vimeo.com/video/{{ video_id }}" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
|
||||
{% elsif video_provider == "youtube" %}
|
||||
<iframe src="https://www.youtube.com/embed/{{ video_id }}" frameborder="0" allowfullscreen></iframe>
|
||||
{% endif %}
|
||||
</div>
|
15
_layouts/archive-taxonomy.html
Normal file
15
_layouts/archive-taxonomy.html
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
layout: default
|
||||
author_profile: false
|
||||
---
|
||||
|
||||
<div id="main" role="main">
|
||||
{% include sidebar.html %}
|
||||
|
||||
<div class="archive">
|
||||
<h1 class="page__title">{{ page.title }}</h1>
|
||||
{% for post in page.posts %}
|
||||
{% include archive-single.html %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
26
_layouts/archive.html
Normal file
26
_layouts/archive.html
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
|
||||
{% include page__hero.html %}
|
||||
{% elsif page.header.video.id and page.header.video.provider %}
|
||||
{% include page__hero_video.html %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.url != "/" and site.breadcrumbs %}
|
||||
{% unless paginator %}
|
||||
{% include breadcrumbs.html %}
|
||||
{% endunless %}
|
||||
{% endif %}
|
||||
|
||||
<div id="main" role="main">
|
||||
{% include sidebar.html %}
|
||||
|
||||
<div class="archive">
|
||||
{% unless page.header.overlay_color or page.header.overlay_image %}
|
||||
<h1 class="page__title">{{ page.title }}</h1>
|
||||
{% endunless %}
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
10
_layouts/compress.html
Normal file
10
_layouts/compress.html
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
# Jekyll layout that compresses HTML
|
||||
# v3.0.2
|
||||
# http://jch.penibelst.de/
|
||||
# © 2014–2015 Anatol Broder
|
||||
# MIT License
|
||||
---
|
||||
|
||||
{% capture _LINE_FEED %}
|
||||
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
|
34
_layouts/default.html
Normal file
34
_layouts/default.html
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.6.0 by Michael Rose
|
||||
Copyright 2017 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt
|
||||
-->
|
||||
<html lang="{{ site.locale | slice: 0,2 | default: "en" }}" class="no-js">
|
||||
<head>
|
||||
{% include head.html %}
|
||||
{% include head/custom.html %}
|
||||
</head>
|
||||
|
||||
<body class="layout--{{ page.layout | default: layout.layout }}{% if page.classes or layout.classes %}{{ page.classes | default: layout.classes | join: ' ' | prepend: ' ' }}{% endif %}">
|
||||
|
||||
{% include browser-upgrade.html %}
|
||||
{% include masthead.html %}
|
||||
|
||||
{{ content }}
|
||||
|
||||
<div class="page__footer">
|
||||
<footer>
|
||||
{% include footer/custom.html %}
|
||||
{% include footer.html %}
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
{% include scripts.html %}
|
||||
|
||||
</body>
|
||||
</html>
|
11
_layouts/home.html
Normal file
11
_layouts/home.html
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
layout: archive
|
||||
---
|
||||
|
||||
<h3 class="archive__subtitle">{{ site.data.ui-text[site.locale].recent_posts | default: "Recent Posts" }}</h3>
|
||||
|
||||
{% for post in paginator.posts %}
|
||||
{% include archive-single.html %}
|
||||
{% endfor %}
|
||||
|
||||
{% include paginator.html %}
|
85
_layouts/single-no-ads.html
Normal file
85
_layouts/single-no-ads.html
Normal file
@ -0,0 +1,85 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
|
||||
{% include page__hero.html %}
|
||||
{% elsif page.header.video.id and page.header.video.provider %}
|
||||
{% include page__hero_video.html %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.url != "/" and site.breadcrumbs %}
|
||||
{% unless paginator %}
|
||||
{% include breadcrumbs.html %}
|
||||
{% endunless %}
|
||||
{% endif %}
|
||||
|
||||
<div id="main" role="main">
|
||||
{% include sidebar.html %}
|
||||
|
||||
<article class="page" itemscope itemtype="http://schema.org/CreativeWork">
|
||||
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
|
||||
{% if page.last_modified_at %}<meta itemprop="dateModified" content="{{ page.last_modified_at | date: "%B %d, %Y" }}">{% endif %}
|
||||
|
||||
<div class="page__inner-wrap">
|
||||
{% unless page.header.overlay_color or page.header.overlay_image %}
|
||||
<header>
|
||||
{% if page.title %}<h1 class="page__title" itemprop="headline">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</h1>{% endif %}
|
||||
{% if page.read_time %}
|
||||
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
|
||||
{% endif %}
|
||||
</header>
|
||||
{% endunless %}
|
||||
|
||||
<section class="page__content" itemprop="text">
|
||||
{{ content }}
|
||||
{% if page.link %}<div><a href="{{ page.link }}" class="btn btn--primary">{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}</a></div>{% endif %}
|
||||
|
||||
</section>
|
||||
|
||||
<footer class="page__meta">
|
||||
{% if site.data.ui-text[site.locale].meta_label %}
|
||||
<h4 class="page__meta-title">{{ site.data.ui-text[site.locale].meta_label }}</h4>
|
||||
{% endif %}
|
||||
{% include page__taxonomy.html %}
|
||||
{% if page.last_modified_at %}
|
||||
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.last_modified_at | date: "%Y-%m-%d" }}">{{ page.last_modified_at | date: "%B %d, %Y" }}</time></p>
|
||||
{% elsif page.date %}
|
||||
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%B %d, %Y" }}</time></p>
|
||||
{% endif %}
|
||||
</footer>
|
||||
|
||||
{% if page.share %}{% include social-share.html %}{% endif %}
|
||||
|
||||
{% include post_pagination.html %}
|
||||
</div>
|
||||
|
||||
{% if site.comments.provider and page.comments %}
|
||||
{% include comments.html %}
|
||||
{% endif %}
|
||||
</article>
|
||||
|
||||
{% comment %}<!-- only show related on a post page when `related: true` -->{% endcomment %}
|
||||
{% if page.id and page.related and site.related_posts.size > 0 %}
|
||||
<div class="page__related">
|
||||
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
||||
<div class="grid__wrapper">
|
||||
{% for post in site.related_posts limit:4 %}
|
||||
{% include archive-single.html type="grid" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% comment %}<!-- otherwise show recent posts if no related when `related: true` -->{% endcomment %}
|
||||
{% elsif page.id and page.related %}
|
||||
<div class="page__related">
|
||||
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
||||
<div class="grid__wrapper">
|
||||
{% for post in site.posts limit:4 %}
|
||||
{% include archive-single.html type="grid" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
157
_layouts/single.html
Normal file
157
_layouts/single.html
Normal file
@ -0,0 +1,157 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
|
||||
{% include page__hero.html %}
|
||||
{% elsif page.header.video.id and page.header.video.provider %}
|
||||
{% include page__hero_video.html %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.url != "/" and site.breadcrumbs %}
|
||||
{% unless paginator %}
|
||||
{% include breadcrumbs.html %}
|
||||
{% endunless %}
|
||||
{% endif %}
|
||||
|
||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({
|
||||
google_ad_client: "ca-pub-6670011780914577",
|
||||
enable_page_level_ads: true
|
||||
});
|
||||
</script>
|
||||
|
||||
<div id="main" role="main">
|
||||
{% include sidebar.html %}
|
||||
|
||||
<article class="page" itemscope itemtype="http://schema.org/CreativeWork">
|
||||
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
|
||||
{% if page.last_modified_at %}<meta itemprop="dateModified" content="{{ page.last_modified_at | date: "%B %d, %Y" }}">{% endif %}
|
||||
|
||||
<div class="page__inner-wrap">
|
||||
{% unless page.header.overlay_color or page.header.overlay_image %}
|
||||
<header>
|
||||
{% if page.title %}<h1 class="page__title" itemprop="headline">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</h1>{% endif %}
|
||||
{% if page.read_time %}
|
||||
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
|
||||
{% endif %}
|
||||
</header>
|
||||
{% endunless %}
|
||||
|
||||
<section class="page__content" itemprop="text">
|
||||
|
||||
<hr>
|
||||
|
||||
{% assign split_path = page.path | split: "/" %}
|
||||
{% assign locale = split_path[1] %}
|
||||
|
||||
{% for link in site.data.navigation[locale].bottom %}
|
||||
{% if link.url contains 'http' %}
|
||||
{% assign domain = '' %}
|
||||
{% else %}
|
||||
{% assign domain = site.url | append: site.baseurl %}
|
||||
{% endif %}
|
||||
<div class ="notice"><b>{{ link.title }}</b></div>
|
||||
{% endfor %}
|
||||
|
||||
<hr>
|
||||
|
||||
<center>
|
||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||
<ins class="adsbygoogle"
|
||||
style="display:block"
|
||||
data-ad-client="ca-pub-6670011780914577"
|
||||
data-ad-slot="2889110246"
|
||||
data-ad-format="auto">
|
||||
</ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
<ins class="adsbygoogle"
|
||||
style="display:block"
|
||||
data-ad-client="ca-pub-6670011780914577"
|
||||
data-ad-slot="8734909100"
|
||||
data-ad-format="auto">
|
||||
</ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
||||
{{ content }}
|
||||
{% if page.link %}<div><a href="{{ page.link }}" class="btn btn--primary">{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}</a></div>{% endif %}
|
||||
|
||||
<hr>
|
||||
|
||||
<center>
|
||||
<ins class="adsbygoogle"
|
||||
style="display:block"
|
||||
data-ad-client="ca-pub-6670011780914577"
|
||||
data-ad-slot="7670623049"
|
||||
data-ad-format="horizontal">
|
||||
</ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
<ins class="adsbygoogle"
|
||||
style="display:block"
|
||||
data-ad-client="ca-pub-6670011780914577"
|
||||
data-ad-slot="9147356245"
|
||||
data-ad-format="horizontal">
|
||||
</ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
</center>
|
||||
|
||||
</section>
|
||||
|
||||
<footer class="page__meta">
|
||||
{% if site.data.ui-text[site.locale].meta_label %}
|
||||
<h4 class="page__meta-title">{{ site.data.ui-text[site.locale].meta_label }}</h4>
|
||||
{% endif %}
|
||||
{% include page__taxonomy.html %}
|
||||
{% if page.last_modified_at %}
|
||||
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.last_modified_at | date: "%Y-%m-%d" }}">{{ page.last_modified_at | date: "%B %d, %Y" }}</time></p>
|
||||
{% elsif page.date %}
|
||||
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%B %d, %Y" }}</time></p>
|
||||
{% endif %}
|
||||
</footer>
|
||||
|
||||
{% if page.share %}{% include social-share.html %}{% endif %}
|
||||
|
||||
{% include post_pagination.html %}
|
||||
</div>
|
||||
|
||||
{% if site.comments.provider and page.comments %}
|
||||
{% include comments.html %}
|
||||
{% endif %}
|
||||
</article>
|
||||
|
||||
{% comment %}<!-- only show related on a post page when `related: true` -->{% endcomment %}
|
||||
{% if page.id and page.related and site.related_posts.size > 0 %}
|
||||
<div class="page__related">
|
||||
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
||||
<div class="grid__wrapper">
|
||||
{% for post in site.related_posts limit:4 %}
|
||||
{% include archive-single.html type="grid" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% comment %}<!-- otherwise show recent posts if no related when `related: true` -->{% endcomment %}
|
||||
{% elsif page.id and page.related %}
|
||||
<div class="page__related">
|
||||
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
||||
<div class="grid__wrapper">
|
||||
{% for post in site.posts limit:4 %}
|
||||
{% include archive-single.html type="grid" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
84
_layouts/splash.html
Normal file
84
_layouts/splash.html
Normal file
@ -0,0 +1,84 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
|
||||
{% include page__hero.html %}
|
||||
{% elsif page.header.video.id and page.header.video.provider %}
|
||||
{% include page__hero_video.html %}
|
||||
{% endif %}
|
||||
|
||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({
|
||||
google_ad_client: "ca-pub-6670011780914577",
|
||||
enable_page_level_ads: true
|
||||
});
|
||||
</script>
|
||||
|
||||
<div id="main" role="main">
|
||||
<article class="splash" itemscope itemtype="http://schema.org/CreativeWork">
|
||||
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
|
||||
{% if page.last_modified_at %}<meta itemprop="dateModified" content="{{ page.last_modified_at | date: "%B %d, %Y" }}">{% endif %}
|
||||
|
||||
<section class="page__content" itemprop="text">
|
||||
<hr>
|
||||
|
||||
{% assign split_path = page.path | split: "/" %}
|
||||
{% assign locale = split_path[1] %}
|
||||
|
||||
{% for link in site.data.navigation[locale].bottom %}
|
||||
{% if link.url contains 'http' %}
|
||||
{% assign domain = '' %}
|
||||
{% else %}
|
||||
{% assign domain = site.url | append: site.baseurl %}
|
||||
{% endif %}
|
||||
<div class ="notice"><b>{{ link.title }}</b></div>
|
||||
{% endfor %}
|
||||
|
||||
<hr>
|
||||
|
||||
<center>
|
||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||
<ins class="adsbygoogle"
|
||||
style="display:block"
|
||||
data-ad-client="ca-pub-6670011780914577"
|
||||
data-ad-slot="2889110246"
|
||||
data-ad-format="auto"></ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
||||
{{ content }}
|
||||
</section>
|
||||
</article>
|
||||
|
||||
<hr>
|
||||
|
||||
<center>
|
||||
<ins class="adsbygoogle"
|
||||
style="display:block"
|
||||
data-ad-client="ca-pub-6670011780914577"
|
||||
data-ad-slot="7670623049"
|
||||
data-ad-format="horizontal">
|
||||
</ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
<ins class="adsbygoogle"
|
||||
style="display:block"
|
||||
data-ad-client="ca-pub-6670011780914577"
|
||||
data-ad-slot="9147356245"
|
||||
data-ad-format="horizontal">
|
||||
</ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
</center>
|
||||
|
||||
</div>
|
9
_pages/en_US/404.txt
Normal file
9
_pages/en_US/404.txt
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "Page Not Found" #
|
||||
layout: single-no-ads
|
||||
excerpt: "Page not found. Your pixels are in another canvas." #
|
||||
sitemap: false
|
||||
---
|
||||
|
||||
Sorry, but the page you were trying to view does not exist.
|
||||
{: .notice--info}
|
43
_pages/en_US/blocking-updates.txt
Normal file
43
_pages/en_US/blocking-updates.txt
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
title: "Blocking Updates"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
Currently, homebrew is only available for firmware version 3.0.0, but future homebrew and CFW support is planned for all versions up to 4.1.0.
|
||||
|
||||
In order to guarantee future access, we set your current network's DNS to a server (hosted by ReSwitched) which blocks requests to Nintendo's Switch update server.
|
||||
|
||||
Additionally, we enter Recovery / Maintenance Mode and delete any update data which may have already been downloaded.
|
||||
|
||||
### Instructions
|
||||
|
||||
#### Section I - DNS Configuration
|
||||
|
||||
Note that these DNS servers will need to be set on each network you connect your device to for it to block updates!
|
||||
{: .notice--warning}
|
||||
|
||||
1. Launch System Settings
|
||||
1. Navigate to `Internet` -> `Internet Settings`
|
||||
1. Select your current network
|
||||
+ This is signified by a green check mark next to the network
|
||||
1. Select "Change Settings"
|
||||
1. Set "DNS Settings" to "Manual"
|
||||
1. Set "Primary DNS" to `173.255.238.217`
|
||||
1. Set "Secondary DNS" to `173.255.238.217`
|
||||
1. Save the network settings
|
||||
1. Exit System Settings
|
||||
|
||||
#### Section II - Deleting Update Data
|
||||
|
||||
1. Power off your device
|
||||
1. Power on your device while holding (Power) + (Volume Up) + (Volume Down)
|
||||
1. Any downloaded update data has been deleted from your system
|
||||
1. Press (Power) to power off your device
|
||||
|
||||
___
|
||||
|
||||
Updates are now blocked on your device for the configured network.
|
||||
{: .notice--success}
|
55
_pages/en_US/credits.txt
Normal file
55
_pages/en_US/credits.txt
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
title: "Credits"
|
||||
---
|
||||
|
||||
**Special thanks to all of [the translators](https://crowdin.com/project/switch-guide) for being awesome!**
|
||||
{: .notice--primary}
|
||||
|
||||
If I forgot you here, contact me and I'll add your name.
|
||||
|
||||
{% capture notice-1 %}
|
||||
|
||||
+ andoma
|
||||
+ andeor
|
||||
+ Aurora Wright
|
||||
+ bunnei
|
||||
+ Daeken
|
||||
+ derrek
|
||||
+ f916253
|
||||
+ fincs
|
||||
+ hedgeberg
|
||||
+ hexkyz
|
||||
+ hthh
|
||||
+ ihaveahax
|
||||
+ junko
|
||||
+ kgsws
|
||||
+ ktemkin
|
||||
+ Maschell
|
||||
+ misson20000
|
||||
+ motezazer
|
||||
+ mtheall
|
||||
+ naehrwert
|
||||
+ nedwill
|
||||
+ neobrain
|
||||
+ Nicolás
|
||||
+ Normmatt
|
||||
+ ogniK
|
||||
+ q3k
|
||||
+ racerxdl
|
||||
+ s1w
|
||||
+ SciresM
|
||||
+ shinyquag
|
||||
+ shufol3
|
||||
+ sirocyl
|
||||
+ smea
|
||||
+ st4rk
|
||||
+ Stary
|
||||
+ stuckpixel
|
||||
+ thexyz
|
||||
+ TuxSH
|
||||
+ Überflüp
|
||||
+ WntrMute
|
||||
|
||||
{% endcapture %}
|
||||
|
||||
<div class="notice--info">{{ notice-1 | markdownify }}</div>
|
126
_pages/en_US/development-(libtransistor).txt
Normal file
126
_pages/en_US/development-(libtransistor).txt
Normal file
@ -0,0 +1,126 @@
|
||||
---
|
||||
title: "Development (libtransistor)"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
### What You Need
|
||||
|
||||
* A supported operating system
|
||||
+ MacOS and most linux distributions are supported; commands for Arch Linux, Ubuntu, and Debian will be supplied
|
||||
+ Windows is *only* supported using a [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) distribution
|
||||
* Basic development tools
|
||||
+ Linux / WSL: install the relevant development package for your distribution (such as `base-devel` on Arch, or `build-essential` on Ubuntu / Debian)
|
||||
+ MacOS: install the Xcode Command Line Tools and the [Homebrew](https://brew.sh/) package manager
|
||||
|
||||
### Instructions
|
||||
|
||||
#### Section I - Installing Dependencies
|
||||
|
||||
The libtransistor library relies on several dependencies, including LLVM / Clang, Python 3, and cmake.
|
||||
|
||||
To install them, run the commands corresponding to your operating system.
|
||||
|
||||
+ MacOS:
|
||||
|
||||
~~~ bash
|
||||
# install dependencies
|
||||
brew install python3 cmake llvm
|
||||
|
||||
# manually add llvm to $PATH
|
||||
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.bash_profile
|
||||
~~~
|
||||
|
||||
+ Arch Linux:
|
||||
|
||||
~~~ bash
|
||||
# install dependencies
|
||||
sudo pacman -Syu python python-pip cmake clang lld nmap
|
||||
~~~
|
||||
|
||||
+ Ubuntu / Debian:
|
||||
|
||||
Before running these commands, add the [LLVM repository](https://apt.llvm.org/) corresponding to your operating system to `/etc/apt/sources.list`.
|
||||
|
||||
~~~ bash
|
||||
# add the LLVM signature key
|
||||
# fingerprint: 6084 F3CF 814B 57C1 CF12 EFD5 15CF 4D18 AF4F 7421
|
||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
|
||||
|
||||
# install dependencies
|
||||
sudo apt-get update
|
||||
sudo apt-get install build-essential automake autoconf python3-setuptools squashfs-tools python3 python3-dev python3-pip cmake clang-5.0 lld-5.0 nmap
|
||||
~~~
|
||||
|
||||
#### Section II - Building libtransistor
|
||||
|
||||
+ MacOS:
|
||||
|
||||
~~~ bash
|
||||
# clone the repository
|
||||
git clone --recursive https://github.com/reswitched/libtransistor
|
||||
cd libtransistor
|
||||
|
||||
# install python dependencies
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
# set libtransistor environment variable to current directory
|
||||
echo "export LIBTRANSISTOR_HOME=$(pwd)" >> ~/.bashrc
|
||||
|
||||
# build libtransistor
|
||||
make
|
||||
~~~
|
||||
|
||||
+ Arch Linux:
|
||||
|
||||
~~~ bash
|
||||
# clone the repository
|
||||
git clone --recursive https://github.com/reswitched/libtransistor
|
||||
cd libtransistor
|
||||
|
||||
# install python dependencies
|
||||
pip install -r requirements.txt
|
||||
|
||||
# set libtransistor environment variable to current directory
|
||||
echo "export LIBTRANSISTOR_HOME=$(pwd)" >> ~/.bashrc
|
||||
|
||||
# build libtransistor
|
||||
make
|
||||
~~~
|
||||
|
||||
+ Ubuntu / Debian:
|
||||
|
||||
~~~ bash
|
||||
# clone the repository
|
||||
git clone --recursive https://github.com/reswitched/libtransistor
|
||||
cd libtransistor
|
||||
|
||||
# install python dependencies
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
# set libtransistor environment variable to current directory
|
||||
echo "export LIBTRANSISTOR_HOME=$(pwd)" >> ~/.bashrc
|
||||
|
||||
# build libtransistor
|
||||
make LLVM_POSTFIX=-5.0
|
||||
~~~
|
||||
|
||||
#### Section III - ACE Loader
|
||||
|
||||
For information on using ACE Loader, see the [repository](https://github.com/reswitched/libtransistor/tree/development/projects/ace_loader) on GitHub.
|
||||
{: .notice--info}
|
||||
|
||||
#### Section IV - Mephisto
|
||||
|
||||
For information on using Mephisto, see the [repository](https://github.com/reswitched/Mephisto) on GitHub.
|
||||
{: .notice--info}
|
||||
|
||||
___
|
||||
|
||||
You now have a fully functional libtransistor development environment.
|
||||
{: .notice--success}
|
||||
|
||||
If you are interested in collaborating with ReSwitched members on Homebrew Development, check out [ReSwitched on Discord](https://discord.gg/ZdqEhed).
|
||||
{: .notice--success}
|
19
_pages/en_US/donations.txt
Normal file
19
_pages/en_US/donations.txt
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
title: "Donations" #
|
||||
layout: single-no-ads
|
||||
---
|
||||
|
||||
[![Paypal]({{ "/images/paypal_white.png" | absolute_url }}){:height="72px" width="256px"}{: style="padding-bottom: .35em"}](https://www.paypal.me/plailectguides/15){: .align-center}
|
||||
plailect@gmail.com
|
||||
{: .text-center}
|
||||
{: .notice--info}
|
||||
|
||||
[![Bitcoin]({{ "/images/bitcoin_white.png" | absolute_url }}){:height="73px" width="256px"}{: style="padding-bottom: .35em"}](bitcoin:3MtzjaRNrcG57RbNxJegcs8UdtaEfmSZLp){: .align-center}
|
||||
3MtzjaRNrcG57RbNxJegcs8UdtaEfmSZLp
|
||||
{: .text-center}
|
||||
{: .notice--info}
|
||||
|
||||
[![Ethereum]({{ "/images/ethereum_white.png" | absolute_url }}){:height="64px" width="256px"}{: style="padding-bottom: .35em"}](https://www.ethereum.org/){: .align-center}
|
||||
0x608C5554D2C53698aA7DFFc7e64BF37f7bebb475
|
||||
{: .text-center}
|
||||
{: .notice--info}
|
62
_pages/en_US/f3-(linux).txt
Normal file
62
_pages/en_US/f3-(linux).txt
Normal file
@ -0,0 +1,62 @@
|
||||
---
|
||||
title: "F3 (Linux)"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
This is an add-on section for checking your SD card for errors using F3.
|
||||
|
||||
Depending on the size of your SD card and the speed of your computer, this process can take up to several hours!
|
||||
|
||||
This page is for Linux users only. If you are not on Linux, check out the [H2testw (windows)](h2testw-(windows)) or [F3X (mac)](f3x-(mac)) pages.
|
||||
|
||||
### What You Need
|
||||
|
||||
* The latest version of [F3](https://github.com/AltraMayor/f3/archive/v6.0.zip)
|
||||
|
||||
### Instructions
|
||||
|
||||
1. Unzip the f3 `.zip` file
|
||||
1. `cd` into the f3 directory
|
||||
1. Run `make` to compile F3
|
||||
1. Insert your SD card into your computer
|
||||
1. Mount your SD card
|
||||
1. Run `./f3write <your sd card mount point>`
|
||||
1. Wait until the process is complete. See below for an example output.
|
||||
|
||||
$ ./f3write /media/michel/6135-3363/
|
||||
Free space: 29.71 GB
|
||||
Creating file 1.h2w ... OK!
|
||||
...
|
||||
Creating file 30.h2w ... OK!
|
||||
Free space: 0.00 Byte
|
||||
Average Writing speed: 4.90 MB/s
|
||||
|
||||
1. Run `./f3read <your sd card mount point>`
|
||||
1. Wait until the process is complete. See below for an example output.
|
||||
|
||||
$ ./f3read /media/michel/6135-3363/
|
||||
SECTORS ok/corrupted/changed/overwritten
|
||||
Validating file 1.h2w ... 2097152/ 0/ 0/ 0
|
||||
...
|
||||
Validating file 30.h2w ... 1491904/ 0/ 0/ 0
|
||||
|
||||
Data OK: 29.71 GB (62309312 sectors)
|
||||
Data LOST: 0.00 Byte (0 sectors)
|
||||
Corrupted: 0.00 Byte (0 sectors)
|
||||
Slightly changed: 0.00 Byte (0 sectors)
|
||||
Overwritten: 0.00 Byte (0 sectors)
|
||||
Average Reading speed: 9.42 MB/s
|
||||
|
||||
___
|
||||
|
||||
If the test shows the result `Data LOST: 0.00 Byte (0 sectors)` your SD card is good and you can delete all `.h2w` files on your SD card
|
||||
{: .notice--success}
|
||||
|
||||
If the test shows any other results, your SD card may be corrupted or damaged and you may have to replace it!
|
||||
{: .notice--danger}
|
||||
|
||||
### Return to [Get Started](get-started)
|
||||
{: .notice--primary}
|
37
_pages/en_US/f3x-(mac).txt
Normal file
37
_pages/en_US/f3x-(mac).txt
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "F3X (Mac)"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
This is an add-on section for checking your SD card for errors using F3X.
|
||||
|
||||
Depending on the size of your SD card and the speed of your computer, this process can take up to several hours!
|
||||
|
||||
This page is for Mac users only. If you are not on Mac, check out the [H2testw (windows)](h2testw-(windows)) or [F3 (Linux)](f3-(linux)) pages.
|
||||
|
||||
### What You Need
|
||||
|
||||
* The latest release of [F3X](https://github.com/insidegui/F3X/releases/latest){:target="_blank"}
|
||||
|
||||
### Instructions
|
||||
|
||||
1. Unzip the F3X `.zip` file
|
||||
1. Insert your SD card into your computer
|
||||
1. Run the F3X app
|
||||
1. Select your SD card
|
||||
1. Press "Start Test"
|
||||
1. Wait until the process is complete.
|
||||
|
||||
___
|
||||
|
||||
If the test shows the result `Success! Your card is ok!` your SD card is good and you can delete all `.h2w` files on your SD card
|
||||
{: .notice--success}
|
||||
|
||||
If the test shows any other results, your SD card may be corrupted or damaged and you may have to replace it!
|
||||
{: .notice--danger}
|
||||
|
||||
### Return to [Get Started](get-started)
|
||||
{: .notice--primary}
|
4
_pages/en_US/faq.txt
Normal file
4
_pages/en_US/faq.txt
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "FAQ"
|
||||
---
|
||||
|
37
_pages/en_US/file-extensions-(windows).txt
Normal file
37
_pages/en_US/file-extensions-(windows).txt
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "File Extensions (Windows)"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
This is an add-on section for disabling Windows's default behavior of hiding file extensions.
|
||||
|
||||
This will make it easier for you to find the referenced files in the rest of this guide.
|
||||
|
||||
### Instructions
|
||||
|
||||
#### Windows 10 / 8.1 / 8
|
||||
|
||||
1. Launch File Explorer by opening any directory, such as your SD card directory
|
||||
1. Click the "View" option on the ribbon menu
|
||||
1. Check the box labeled "File name extensions"
|
||||
|
||||
![]({{ "/images/screenshots/windows-10-file-extensions.png" | absolute_url }})
|
||||
{: .notice--info}
|
||||
|
||||
#### Windows 7
|
||||
|
||||
1. Open the start menu by clicking on it or using the Windows key
|
||||
1. Search for "Folder Options" and select the corresponding result
|
||||
|
||||
![]({{ "/images/screenshots/windows-7-folder-options-start-menu.png" | absolute_url }})
|
||||
{: .notice--info}
|
||||
|
||||
1. Click the "View" option at the top of the Folder Options menu
|
||||
1. Uncheck the box labeled "Hide extensions for known file types"
|
||||
|
||||
![]({{ "/images/screenshots/windows-7-folder-options.png" | absolute_url }})
|
||||
{: .notice--info}
|
||||
|
||||
### Return to [Get Started](get-started)
|
||||
{: .notice--primary}
|
56
_pages/en_US/game-card-update.txt
Normal file
56
_pages/en_US/game-card-update.txt
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
title: "Game Card Update"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
All game cards contain a copy of the required firmware version to play it, allowing anyone on a lower version to update to that version and play the game (even without an internet connection).
|
||||
|
||||
We can take advantage of this by using a game containing a specific version in order to install a more recent firmware version (3.0.0) without updating all the way to the latest available.
|
||||
|
||||
Before performing the game card update, we block online updates by using airplane mode and enter Recovery / Maintenance Mode to delete any update data which may have already been downloaded.
|
||||
|
||||
### What you need
|
||||
|
||||
* An original revision game card of [Pokkén Tournament DX](https://amzn.to/2F9nsF3)
|
||||
+ Original revisions of this game card contain 3.0.0; they have a green printed circuit board and a serial ending in **000** (see image below)
|
||||
+ Newer revisions of this game card contain 3.0.1; they have a black printed circuit board and a serial ending in **001** (*avoid using these to update!*)
|
||||
|
||||
![]({{ "/images/screenshots/pokken-game-card.png" | absolute_url }}){:height="148px" width="203px"}
|
||||
{: .notice--info}
|
||||
|
||||
### Instructions
|
||||
|
||||
#### Section I - Enable Airplane Mode
|
||||
|
||||
1. Launch System Settings
|
||||
1. Navigate to `Airplane Mode`
|
||||
1. Enable Airplane Mode
|
||||
1. Exit System Settings
|
||||
|
||||
#### Section II - Deleting Update Data
|
||||
|
||||
1. Power off your device
|
||||
1. Power on your device while holding (Power) + (Volume Up) + (Volume Down)
|
||||
1. Any downloaded update data has been deleted from your system
|
||||
1. Press (Power) to power off your device
|
||||
|
||||
#### Section III - Game Card Update
|
||||
|
||||
1. Insert your Pokkén Tournament DX game card into your device
|
||||
1. Attempt to launch the game
|
||||
1. Update when prompted
|
||||
|
||||
#### Section IV - Disable Airplane Mode
|
||||
|
||||
1. Launch System Settings
|
||||
1. Navigate to `Airplane Mode`
|
||||
1. Disable Airplane Mode
|
||||
1. Exit System Settings
|
||||
|
||||
___
|
||||
|
||||
### Continue to [Homebrew Launcher](homebrew-launcher)
|
||||
{: .notice--primary}
|
66
_pages/en_US/get-started.txt
Normal file
66
_pages/en_US/get-started.txt
Normal file
@ -0,0 +1,66 @@
|
||||
---
|
||||
title: "Get Started"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
Different device versions will require different steps to achieve the current end goal of Homebrew. This page will help you find where to start for your device.
|
||||
|
||||
Before starting, Windows users should enable the option to show file extensions using [File Extensions (Windows)](file-extensions-(windows))!
|
||||
{: .notice--info}
|
||||
|
||||
Before starting, you may want to check your SD card for errors using [H2testw (Windows)](h2testw-(windows)), [F3 (Linux)](f3-(linux)), or [F3X (Mac)](f3x-(mac))!
|
||||
{: .notice--warning}
|
||||
|
||||
Select the appropriate page for your version from the chart below. Note that the "from" and "to" fields are inclusive. This means that, for example, the "from 1.0.0 to 2.3.0" row includes 1.0.0, 2.3.0, and all versions in-between.
|
||||
|
||||
Your device version can be found under the System Information menu in the System tab of the Settings application.
|
||||
|
||||
![]({{ "/images/screenshots/system-version.png" | absolute_url }})
|
||||
{: .notice--info}
|
||||
|
||||
{% capture notice %}
|
||||
|
||||
Note that the device may not display the system version if a downloaded update is pending installation.
|
||||
|
||||
If that is the case on your device, you can view your version from Recovery / Maintenance Mode by powering on your device while holding (Power) + (Volume Up) + (Volume Down).
|
||||
|
||||
{% endcapture %}
|
||||
|
||||
<div class="notice--warning">{{ notice | markdownify }}</div>
|
||||
|
||||
### Version Table
|
||||
|
||||
<table>
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10%;">
|
||||
<col span="1" style="width: 10%;">
|
||||
<col span="1" style="width: 80%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: center; font-weight: bold;">From</th>
|
||||
<th style="text-align: center; font-weight: bold;">To</th>
|
||||
<th style="text-align: center; font-weight: bold;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align: center; font-weight: bold;">1.0.0</td>
|
||||
<td style="text-align: center; font-weight: bold;">2.3.0</td>
|
||||
<td style="text-align: center; font-weight: bold;"><a href="game-card-update">Game Card Update</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; font-weight: bold;">3.0.0</td>
|
||||
<td style="text-align: center; font-weight: bold;">3.0.0</td>
|
||||
<td style="text-align: center; font-weight: bold;"><a href="homebrew-launcher">Homebrew Launcher</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; font-weight: bold;">3.0.1</td>
|
||||
<td style="text-align: center; font-weight: bold;">4.1.0</td>
|
||||
<td style="text-align: center; font-weight: bold;"><a href="blocking-updates">Blocking Updates</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
40
_pages/en_US/h2testw-(windows).txt
Normal file
40
_pages/en_US/h2testw-(windows).txt
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
title: "H2testw (Windows)"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
This is an add-on section for checking your SD card for errors using h2testw.
|
||||
|
||||
Depending on the size of your SD card and the speed of your computer, this process can take up to several hours!
|
||||
|
||||
This page is for Windows users only. If you are not on windows, check out the [F3 (linux)](f3-(linux)) or [F3X (mac)](f3x-(mac)) pages.
|
||||
|
||||
### What You Need
|
||||
|
||||
* The latest version of [h2testw](http://www.heise.de/ct/Redaktion/bo/downloads/h2testw_1.4.zip)
|
||||
|
||||
### Instructions
|
||||
|
||||
1. Copy `h2testw.exe` from the h2testw `.zip` to your desktop
|
||||
1. Insert your SD card into your computer
|
||||
1. Run `h2tsetw.exe`
|
||||
1. Select "English"
|
||||
1. Click "Select target"
|
||||
1. Select your SD card's drive letter
|
||||
1. Ensure "all available space" is selected
|
||||
1. Click "Write + Verify"
|
||||
1. Wait until the process is completed
|
||||
|
||||
___
|
||||
|
||||
If the test shows the result `Test finished without errors`, your SD card is good and you can delete all `.h2w` files on your SD card
|
||||
{: .notice--success}
|
||||
|
||||
If the test shows any other results, your SD card may be corrupted or damaged and you may have to replace it!
|
||||
{: .notice--danger}
|
||||
|
||||
### Return to [Get Started](get-started)
|
||||
{: .notice--primary}
|
81
_pages/en_US/home.txt
Normal file
81
_pages/en_US/home.txt
Normal file
@ -0,0 +1,81 @@
|
||||
---
|
||||
layout: splash
|
||||
title: "Switch Hacks Guide" #
|
||||
header:
|
||||
overlay_color: "#5e616c" #
|
||||
overlay_image: images/home-page-feature.jpg
|
||||
overlay_filter: 0.5
|
||||
caption:
|
||||
|
||||
excerpt: "A complete guide to Switch homebrew <br /> and homebrew development.<br />"
|
||||
---
|
||||
|
||||
Thoroughly read all of the introductory pages (including this one!) before proceeding.
|
||||
{: .notice--warning}
|
||||
|
||||
{% capture notice-1 %}
|
||||
This guide is available in other languages!
|
||||
Click the <i class="fa fa-language" aria-hidden="true"></i> icon at the top right of the page to change the language.
|
||||
Alternatively, click [here](https://crowdin.com/project/switch-guide) to help to keep these translations up to date.
|
||||
{% endcapture %}
|
||||
|
||||
<div class="notice--success">{{ notice-1 | markdownify }}</div>
|
||||
|
||||
## What is Homebrew?
|
||||
|
||||
[**Homebrew**](https://en.wikipedia.org/wiki/List_of_homebrew_video_games) usually refers to software that is not authorized by Nintendo. This includes homebrew tools, applications, games, and emulators.
|
||||
|
||||
If your device is on firmware version 3.0.0, running homebrew on your device is 100% free using just the system browser. Lower firmware versions can update to 3.0.0 with the use of a game card. Higher firmware versions can block future updates in order to assure access to future exploits.
|
||||
|
||||
## What is Custom Firmware?
|
||||
|
||||
When released, **Custom Firmware** ("CFW") will enable you to use more advanced hacks that userland homebrew can't easily do. It is currently in development, and will be released according to schedule when all relevant components are completed.
|
||||
|
||||
The current CFW release schedule is in order of ascending firmware versions, divided into the following tiers:
|
||||
|
||||
<table style="max-width:420px;">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 10%;">
|
||||
<col span="1" style="width: 10%;">
|
||||
<col span="1" style="width: 10%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: center; font-weight: bold;">Near Future</th>
|
||||
<th style="text-align: center; font-weight: bold;">Distant Future</th>
|
||||
<th style="text-align: center; font-weight: bold;">Far Future</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align: center; font-weight: bold;">1.0.0</td>
|
||||
<td style="text-align: center; font-weight: bold;">2.0.0 - 3.0.0</td>
|
||||
<td style="text-align: center; font-weight: bold;">3.0.1 - 4.1.0</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
If your device is on firmware version 1.0.0 and you are interested in CFW, your best current option is to follow this guide's [Blocking Updates](blocking-updates) page, pick up a Japanese copy of [Puyo Puyo Tetris](http://amzn.to/2sBRvD2) (which will be required for 1.0.0 Custom Firmware), and wait patiently for a CFW release.
|
||||
{: .notice--info}
|
||||
|
||||
If your device is on a firmware version >=3.0.1, your best current option is to update to 4.1.0 (as it will receive CFW at the same time), follow this guide's [Blocking Updates](blocking-updates) page, stock up on games while you can (the eShop only functions on the latest version), and wait patiently for a CFW release.
|
||||
{: .notice--info}
|
||||
|
||||
## What does this guide install?
|
||||
|
||||
This guide currently enables access to the Homebrew Launcher via a browser exploit, though "installed" is not a particularly good description. This is because the exploit must be re-run after every reboot in order to re-enable Homebrew Launcher access.
|
||||
|
||||
If you are familiar with iOS device "jailbreaking", this idea could be considered analagous to a "tethered jailbreak".
|
||||
|
||||
## What do I need to know before starting?
|
||||
|
||||
+ While switch hacks are constantly progressing, they are not yet in a very user-friendly state. As such, this guide may require some technical understanding in order to troubleshoot any issues which may come up.
|
||||
+ The scope of device modification is limited for most current homebrew, meaning there is little chance of data loss or console damage when using popular homebrew applications.
|
||||
+ This guide will work on all Switch devices on firmwares from 1.0.0 to 3.0.0, with all versions up to 4.1.0 having planned future support. Instructions are included for blocking updates on devices with firmware versions >=3.0.1.
|
||||
+ You will need a micro SD card for your device. It should be formatted as Fat32 and [MBR, not GPT](http://www.howtogeek.com/245610/) (most micro SD cards will be formatted this way by default).
|
||||
+ If you need to format a micro SD card, you can use [`guiformat`](http://www.ridgecrop.demon.co.uk/index.htm?guiformat.htm) and set to an Allocation Unit Size of 32K.
|
||||
|
||||
___
|
||||
|
||||
### Continue to [Get Started](get-started)
|
||||
{: .notice--primary}
|
43
_pages/en_US/homebrew-development.txt
Normal file
43
_pages/en_US/homebrew-development.txt
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
title: "Homebrew Development"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
Currently, the major public exploitation toolkit used for the Switch is PegaSwitch, developed by ReSwitched.
|
||||
|
||||
If you are interested in collaborating with ReSwitched members on Homebrew Development, check out [ReSwitched on Discord](https://discord.gg/ZdqEhed).
|
||||
{: .notice--success}
|
||||
|
||||
While the Homebrew Launcher alone is sufficient for running compiled homebrew, any more serious development work will likely require a local PegaSwitch environment.
|
||||
|
||||
For information on setting up a local PegaSwitch environment, check out the [PegaSwitch](pegaswitch) page.
|
||||
{: .notice--primary}
|
||||
|
||||
### Libraries
|
||||
|
||||
Currently, there are two major libraries used for developing Switch homebrew.
|
||||
|
||||
___
|
||||
|
||||
#### Development (libtransistor)
|
||||
|
||||
The libtransistor library is developed by ReSwitched and built on the LLVM / Clang stack.
|
||||
|
||||
Binaries can be run on your PC using the Mephisto emulator, or on your device using either the Homebrew Launcher or ACE Loader.
|
||||
|
||||
Continue to [Development (libtransistor)](development-(libtransistor))
|
||||
{: .notice--primary}
|
||||
|
||||
___
|
||||
|
||||
#### Development (libnx)
|
||||
|
||||
The libnx library is developed by SwitchBrew and built on the devkitA64 toolchain.
|
||||
|
||||
Binaries can be run on your device using the Homebrew Launcher.
|
||||
|
||||
Continue to [Setting up Development Environment](http://switchbrew.org/index.php?title=Setting_up_Development_Environment) on SwitchBrew
|
||||
{: .notice--primary}
|
125
_pages/en_US/homebrew-launcher.txt
Normal file
125
_pages/en_US/homebrew-launcher.txt
Normal file
@ -0,0 +1,125 @@
|
||||
---
|
||||
title: "Homebrew Launcher"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
The Homebrew Launcher is currently "installed" to your device through a browser exploit.
|
||||
|
||||
Once this installation has been performed, you will be able to access the Homebrew Launcher through the Album application *until your device is rebooted*.
|
||||
|
||||
After a reboot, you will have to re-run the exploit in order to re-enable Homebrew Launcher access on your device. If you are familiar with iOS device "jailbreaking", this idea could be considered analagous to a "tethered jailbreak".
|
||||
|
||||
Note that the current homebrew exploit has the side-effect of corrupting your device's Mii Database upon initial installation. While this effect is harmless, it will result in the loss of any user-created Miis.
|
||||
{: .notice--warning}
|
||||
|
||||
### What you need
|
||||
|
||||
* The latest release of [nx-hbmenu](https://github.com/switchbrew/nx-hbmenu/releases/latest){:target="_blank"}
|
||||
|
||||
### Instructions
|
||||
|
||||
#### Section I - Prep Work
|
||||
|
||||
1. Power off your device
|
||||
1. Insert your SD card into your computer
|
||||
1. Copy `hbmenu.nro` from the nx-hbmenu `.zip` to the root of your SD card
|
||||
1. Create a folder named `switch` on the root of your SD card if it does not already exist
|
||||
1. Reinsert your SD card into your device
|
||||
1. Power on your device
|
||||
|
||||
#### Section II - DNS Configuration
|
||||
|
||||
Note that these DNS servers will need to be set on each network you connect your device to in order for it to be able to trigger the exploit.
|
||||
{: .notice--info}
|
||||
|
||||
1. Launch System Settings
|
||||
1. Navigate to `Internet` -> `Internet Settings`
|
||||
1. Select your current network
|
||||
+ This is signified by a green check mark next to the network
|
||||
1. Select "Change Settings"
|
||||
1. Set "DNS Settings" to "Manual"
|
||||
1. Set "Primary DNS" to `104.236.106.125`
|
||||
1. Set "Secondary DNS" to `62.210.147.20`
|
||||
1. Save the network settings
|
||||
1. Exit System Settings
|
||||
|
||||
#### Section III - Initial Installation
|
||||
|
||||
1. Navigate to `Internet` -> `Test Connection`
|
||||
1. Select your current network
|
||||
1. Select "Connect to this Network"
|
||||
1. If the DNS connection was successful, you will see the message "Registration is required to use this network."
|
||||
1. Select "Next"
|
||||
1. The Homebrew Launcher webpage
|
||||
1. Select "Install"
|
||||
1. The PegaSwitch webpage will load
|
||||
1. If the exploit was successful, you will see the error `2000-1337`
|
||||
+ If you get stuck on the PegaSwitch page without seeing the error, reboot your device and try performing the connection test again
|
||||
1. Reboot your device
|
||||
|
||||
#### Section IV - Running the Homebrew Launcher
|
||||
|
||||
Note that you will have to re-run this section of the exploit after each reboot in order to re-enable access to the Homebrew Launcher.
|
||||
|
||||
1. Navigate to `Internet` -> `Test Connection`
|
||||
1. Select your current network
|
||||
1. Select "Connect to this Network"
|
||||
1. If the DNS connection was successful, you will see the message "Registration is required to use this network."
|
||||
1. Select "Next"
|
||||
1. The Homebrew Launcher webpage
|
||||
1. Select "Run"
|
||||
1. If the exploit was successful, you will receive a popup asking you to exit
|
||||
1. Return to the home menu
|
||||
1. Launch the Album application
|
||||
1. If the exploit was successful, the Homebrew Launcher will launch
|
||||
|
||||
#### Section V - Alternative Browser Applets (Optional)
|
||||
|
||||
As you must re-run the "Run" section of the exploit after each reboot, it would be ideal if there was a more convenient way of launching the browser than the connection test.
|
||||
|
||||
Fortunately, there are actually [multiple](http://switchbrew.org/index.php?title=Internet_Browser#Browser_Applets) browsers applets on the Switch, and any of them can be used to trigger the browser exploit.
|
||||
|
||||
Two convenient methods for launching a browser are listed below:
|
||||
|
||||
##### Game Update Prompt
|
||||
|
||||
To use this method, you must have at least one game on your home screen.
|
||||
|
||||
1. Press (+) with any game highlighted
|
||||
1. In the "Software Update" tab, select "Via the Internet"
|
||||
1. The browser applet will launch
|
||||
|
||||
##### eShop Sign In Prompt
|
||||
|
||||
To use this method, create a second account on your device. Do not connect it to a Nintendo Account.
|
||||
|
||||
1. Launch Nintendo eShop
|
||||
1. Select the second account
|
||||
1. Select "Sign In and link"
|
||||
1. The browser applet will launch
|
||||
|
||||
___
|
||||
|
||||
|
||||
Note that, currently, homebrew development is in a very early state with a very limited number of applications.
|
||||
|
||||
You can find available applications on [switchbrew](http://switchbrew.org/index.php?title=Homebrew_Applications), [/r/SwitchHacks on reddit](https://www.reddit.com/r/SwitchHacks/), or [Switch Homebrew on GBAtemp](https://gbatemp.net/forums/285/).
|
||||
|
||||
To install homebrew applications, simply copy the homebrew `.nro` file to the `/switch/` folder on your SD card.
|
||||
|
||||
___
|
||||
|
||||
You can now launch the Homebrew Launcher by launching the Album application from your device's home menu (until next reboot).
|
||||
{: .notice--success}
|
||||
|
||||
You will need to re-run the "Run" step of the exploit (using any browser applet) after each reboot in order to re-enable Homebrew Launcher access on your device.
|
||||
{: .notice--warning}
|
||||
|
||||
For regular homebrew and development progress summaries, check the [ReSwitched Weekly](https://reswitchedweekly.github.io/) blog regularly.
|
||||
{: .notice--primary}
|
||||
|
||||
For information on contributing to homebrew development as a developer, check out the [Homebrew Development](homebrew-development) page.
|
||||
{: .notice--primary}
|
112
_pages/en_US/pegaswitch.txt
Normal file
112
_pages/en_US/pegaswitch.txt
Normal file
@ -0,0 +1,112 @@
|
||||
---
|
||||
title: "PegaSwitch"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
PegaSwitch is a developer-focused exploitation toolkit for the Switch developed by ReSwitched. It is compatible with firmware versions 1.0.0 - 3.0.0.
|
||||
|
||||
The toolkit uses a combination of vulnerabilities to take over the WebKit-based browser, giving the user a shell which can be used to read / write memory, call native functions, and otherwise explore the functionality of the Switch.
|
||||
|
||||
Note that the current homebrew exploit has the side-effect of corrupting your device's Mii Database. While this effect is harmless, it will result in the loss of any user-created Miis.
|
||||
{: .notice--warning}
|
||||
|
||||
### What You Need
|
||||
|
||||
* A supported operating system
|
||||
+ MacOS and most linux distributions are supported
|
||||
+ Windows is best supported using a [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) distribution
|
||||
* The [git](https://git-scm.com/) version control system
|
||||
* The [Node.JS](https://nodejs.org/en/download/package-manager/) JavaScript runtime
|
||||
|
||||
### Instructions
|
||||
|
||||
#### Section I - Network Configuration
|
||||
|
||||
PegaSwitch works by hosting a [captive portal](https://en.wikipedia.org/wiki/Captive_portal) using DNS redirection.
|
||||
|
||||
For this to work, your device must be able to connect to your PC over the network.
|
||||
|
||||
1. Ensure no other applications are bound to UDP port 53 or TCP ports 80 and 8100
|
||||
+ WSL: look at the "Listening Ports" section of the "Network" tab in `resmon.exe`
|
||||
+ Linux / MacOS: view the output of `sudo netstat -tulpn`
|
||||
1. Ensure your firewall does not block incomming connections to any of these ports
|
||||
|
||||
#### Section II - Running PegaSwitch
|
||||
|
||||
~~~ bash
|
||||
# clone the repository
|
||||
git clone https://github.com/reswitched/pegaswitch
|
||||
|
||||
# install dependencies
|
||||
cd pegaswitch
|
||||
npm install
|
||||
|
||||
# start PegaSwitch
|
||||
# Windows users: omit the 'sudo'
|
||||
sudo node start.js
|
||||
~~~
|
||||
|
||||
#### Section III - DNS Configuration
|
||||
|
||||
Note that these DNS servers will need to be set on each network you connect your device to for it to be able to trigger the exploit.
|
||||
{: .notice--info}
|
||||
|
||||
1. Get your PC's IP address with `ifconfig` (or `ipconfig` on windows)
|
||||
1. Launch System Settings on your device
|
||||
1. Navigate to `Internet` -> `Internet Settings`
|
||||
1. Select your current network
|
||||
+ This is signified by a green check mark next to the network
|
||||
1. Select "Change Settings"
|
||||
1. Set "DNS Settings" to "Manual"
|
||||
1. Set "Primary DNS" and "Secondary DNS" to your PC's IP address
|
||||
1. Save the network settings
|
||||
1. Return to `Internet Settings`
|
||||
|
||||
#### Section IV - Initial Connection
|
||||
|
||||
1. Navigate to `Internet` -> `Test Connection`
|
||||
1. Select your current network
|
||||
1. Select "Connect to this Network"
|
||||
1. If the DNS connection was successful, you will see the message "Registration is required to use this network."
|
||||
1. Select "Next"
|
||||
1. The PegaSwitch webpage will load
|
||||
1. If the exploit was successful, you will now have a PegaSwitch shell connected to your console
|
||||
|
||||
#### Section V - Alternative Browser Applets (Optional)
|
||||
|
||||
There are actually [multiple](http://switchbrew.org/index.php?title=Internet_Browser#Browser_Applets) internet browsers on the Switch, and any of them can be used to trigger the browser exploit.
|
||||
|
||||
While we used the connection test browser applet to initially trigger the exploit, it may be more convenient in the future to use another browser applet.
|
||||
|
||||
Triggering the browser exploit using either of these methods will have the same effect as triggering the exploit through the Connection Test method we used before.
|
||||
|
||||
##### Game Update Prompt
|
||||
|
||||
To use this method, you must have at least one game on your home screen.
|
||||
|
||||
1. Press (+) with any game highlighted
|
||||
1. In the "Software Update" tab, select "Via the Internet"
|
||||
1. The browser applet will launch
|
||||
|
||||
##### eShop Sign In Prompt
|
||||
|
||||
To use this method, create a second account on your device. Do not connect it to a Nintendo Account.
|
||||
|
||||
1. Launch Nintendo eShop
|
||||
1. Select the second account
|
||||
1. Select "Sign In and link"
|
||||
1. The browser applet will launch
|
||||
|
||||
___
|
||||
|
||||
You can now easily connect to your device using the PegaSwitch environment.
|
||||
{: .notice--success}
|
||||
|
||||
For debugging purposes, you may want to [enable extra error info](troubleshooting#enable-extra-error-info).
|
||||
{: .notice--info}
|
||||
|
||||
### Return to [Homebrew Development](homebrew-development)
|
||||
{: .notice--primary}
|
37
_pages/en_US/site-navigation.txt
Normal file
37
_pages/en_US/site-navigation.txt
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "Site Navigation" #
|
||||
layout: single-no-ads
|
||||
sitemap: false
|
||||
---
|
||||
|
||||
{% capture notice-1 %}
|
||||
**Popular**
|
||||
|
||||
+ [Homebrew Launcher](homebrew-launcher)
|
||||
+ [Blocking Updates](blocking-updates)
|
||||
+ [Game Card Update](game-card-update)
|
||||
{% endcapture %}
|
||||
<div class="notice--info">{{ notice-1 | markdownify }}</div>
|
||||
|
||||
{% capture notice-2 %}
|
||||
**All**
|
||||
|
||||
+ [Blocking Updates](blocking-updates)
|
||||
+ [Credits](credits)
|
||||
+ [Development (libtransistor)](development-(libtransistor))
|
||||
+ [Donations](donations)
|
||||
+ [F3 (Linux)](f3-(linux))
|
||||
+ [F3X (Mac)](f3x-(mac))
|
||||
+ [FAQ](faq)
|
||||
+ [File Extensions (Windows)](file-extensions-(windows))
|
||||
+ [Game Card Update](game-card-update)
|
||||
+ [Get Started](get-started)
|
||||
+ [H2testw (Windows)](h2testw-(windows))
|
||||
+ [Home](/)
|
||||
+ [Haxchi](haxchi)
|
||||
+ [Homebrew Development](homebrew-development)
|
||||
+ [Homebrew Launcher](homebrew-launcher)
|
||||
+ [PegaSwitch](pegaswitch)
|
||||
+ [Why Ads?](why-ads)
|
||||
{% endcapture %}
|
||||
<div class="notice--primary">{{ notice-2 | markdownify }}</div>
|
42
_pages/en_US/troubleshooting.txt
Normal file
42
_pages/en_US/troubleshooting.txt
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
title: "Troubleshooting"
|
||||
---
|
||||
|
||||
{% include toc title="Table of Contents" %}
|
||||
|
||||
### Required Reading
|
||||
|
||||
If you encounter issues, please look for the section relevant to you and follow the instructions.
|
||||
|
||||
If you still cannot solve your issue and need to reach out for help, please come for help prepared with a detailed description of your problem and what you've tried.
|
||||
|
||||
## Error 2347-0003
|
||||
|
||||
This error occurs when the nx-hbmenu `.nro` is not found on your SD card.
|
||||
|
||||
### What You Need
|
||||
|
||||
* The latest release of [nx-hbmenu](https://github.com/switchbrew/nx-hbmenu/releases/latest){:target="_blank"}
|
||||
|
||||
### Instructions
|
||||
|
||||
1. Power off your device
|
||||
1. Insert your SD card into your computer
|
||||
1. Copy `hbmenu.nro` from the nx-hbmenu `.zip` to the root of your SD card
|
||||
1. Reinsert your SD card into your device
|
||||
1. Power on your device
|
||||
|
||||
## Enable Extra Error Info
|
||||
|
||||
This script will enable the displaying of extra error info when a fatal error is encountered. It may be useful for debugging purposes.
|
||||
|
||||
### What You Need
|
||||
|
||||
* [PegaSwitch](pegaswitch)
|
||||
* [`extraerrorinfo.js`]({{ "/images/extraerrorinfo.js" | absolute_url }})
|
||||
|
||||
### Instructions
|
||||
|
||||
1. Copy `extraerrorinfo.js` to the `/usefulscripts/` folder in PegaSwitch
|
||||
1. Connect to your device using PegaSwitch
|
||||
1. Run `evalfile usefulscripts/extraerrorinfo.js`
|
15
_pages/en_US/why-ads.txt
Normal file
15
_pages/en_US/why-ads.txt
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
title: "Why Ads?" #
|
||||
layout: single-no-ads
|
||||
---
|
||||
|
||||
This project is an extension of hundreds upon hundreds of hours of constant work.
|
||||
|
||||
We maintain this guide, for free, and ensure it is always up to date. Because of this effort, we feel that it is fair for us to attempt to gain a meager income from our work.
|
||||
|
||||
This site costs you nothing to use, and all that we display are non-intrusive ads. If you still have a problem with this, feel free to block these ads.
|
||||
|
||||
If you do block ads, we would like to also remind you of the [Donations](donations) page, but once again that is optional too.
|
||||
|
||||
Thanks,<br>
|
||||
Plailect & FlimFlam69
|
40
_sass/minimal-mistakes.scss
Normal file
40
_sass/minimal-mistakes.scss
Normal file
@ -0,0 +1,40 @@
|
||||
/*!
|
||||
* Minimal Mistakes Jekyll Theme 4.6.0 by Michael Rose
|
||||
* Copyright 2017 Michael Rose - mademistakes.com | @mmistakes
|
||||
* Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt)
|
||||
*/
|
||||
|
||||
/* Variables */
|
||||
@import "minimal-mistakes/variables";
|
||||
|
||||
/* Mixins and functions */
|
||||
@import "minimal-mistakes/vendor/breakpoint/breakpoint";
|
||||
@include breakpoint-set("to ems", true);
|
||||
@import "minimal-mistakes/vendor/font-awesome/font-awesome";
|
||||
@import "minimal-mistakes/vendor/magnific-popup/magnific-popup"; // Magnific Popup
|
||||
@import "minimal-mistakes/vendor/susy/susy";
|
||||
@import "minimal-mistakes/mixins";
|
||||
|
||||
/* Core CSS */
|
||||
@import "minimal-mistakes/reset";
|
||||
@import "minimal-mistakes/base";
|
||||
@import "minimal-mistakes/forms";
|
||||
@import "minimal-mistakes/tables";
|
||||
@import "minimal-mistakes/animations";
|
||||
|
||||
/* Components */
|
||||
@import "minimal-mistakes/buttons";
|
||||
@import "minimal-mistakes/notices";
|
||||
@import "minimal-mistakes/masthead";
|
||||
@import "minimal-mistakes/navigation";
|
||||
@import "minimal-mistakes/footer";
|
||||
@import "minimal-mistakes/syntax";
|
||||
|
||||
/* Utility classes */
|
||||
@import "minimal-mistakes/utilities";
|
||||
|
||||
/* Layout specific */
|
||||
@import "minimal-mistakes/page";
|
||||
@import "minimal-mistakes/archive";
|
||||
@import "minimal-mistakes/sidebar";
|
||||
@import "minimal-mistakes/print";
|
21
_sass/minimal-mistakes/_animations.scss
Normal file
21
_sass/minimal-mistakes/_animations.scss
Normal file
@ -0,0 +1,21 @@
|
||||
/* ==========================================================================
|
||||
ANIMATIONS
|
||||
========================================================================== */
|
||||
|
||||
@-webkit-keyframes intro {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes intro {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
318
_sass/minimal-mistakes/_archive.scss
Normal file
318
_sass/minimal-mistakes/_archive.scss
Normal file
@ -0,0 +1,318 @@
|
||||
/* ==========================================================================
|
||||
ARCHIVE
|
||||
========================================================================== */
|
||||
|
||||
.archive {
|
||||
margin-bottom: 2em;
|
||||
|
||||
@include breakpoint($large) {
|
||||
float: right;
|
||||
width: calc(100% - #{$right-sidebar-width-narrow});
|
||||
padding-right: $right-sidebar-width-narrow;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
width: calc(100% - #{$right-sidebar-width});
|
||||
padding-right: $right-sidebar-width;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.archive__subtitle {
|
||||
margin: 1.414em 0 0;
|
||||
padding-bottom: 0.5em;
|
||||
font-size: $type-size-5;
|
||||
color: $muted-text-color;
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
+ .list__item .archive__item-title {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
.archive__item-title {
|
||||
margin-bottom: 0.25em;
|
||||
font-family: $sans-serif-narrow;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
a + a {
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
/* remove border*/
|
||||
.page__content {
|
||||
|
||||
.archive__item-title {
|
||||
margin-top: 1em;
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
|
||||
.archive__item-excerpt {
|
||||
margin-top: 0;
|
||||
font-size: $type-size-6;
|
||||
|
||||
& + p {
|
||||
text-indent: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.archive__item-teaser {
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.archive__item:hover {
|
||||
|
||||
.archive__item-teaser {
|
||||
box-shadow: 0 0 10px rgba(#000, 0.25);
|
||||
}
|
||||
|
||||
.archive__item-title {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
List view
|
||||
========================================================================== */
|
||||
|
||||
.list__item {
|
||||
|
||||
.page__meta {
|
||||
margin: 0 0 4px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Grid view
|
||||
========================================================================== */
|
||||
|
||||
.archive {
|
||||
|
||||
.grid__wrapper {
|
||||
/* extend grid elements to the right */
|
||||
|
||||
@include breakpoint($large) {
|
||||
margin-right: -1 * $right-sidebar-width-narrow;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
margin-right: -1 * $right-sidebar-width;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.grid__item {
|
||||
margin-bottom: 2em;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: left;
|
||||
width: span(5 of 10);
|
||||
|
||||
&:nth-child(2n+1) {
|
||||
clear: both;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
&:nth-child(2n+2) {
|
||||
clear: none;
|
||||
margin-left: gutter(of 10);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint($medium) {
|
||||
margin-left: 0; /* override margin*/
|
||||
margin-right: 0; /* override margin*/
|
||||
width: span(3 of 12);
|
||||
|
||||
&:nth-child(2n+1) {
|
||||
clear: none;
|
||||
}
|
||||
|
||||
&:nth-child(4n+1) {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
&:nth-child(4n+2) {
|
||||
clear: none;
|
||||
margin-left: gutter(1 of 12);
|
||||
}
|
||||
|
||||
&:nth-child(4n+3) {
|
||||
clear: none;
|
||||
margin-left: gutter(1 of 12);
|
||||
}
|
||||
|
||||
&:nth-child(4n+4) {
|
||||
clear: none;
|
||||
margin-left: gutter(1 of 12);
|
||||
}
|
||||
}
|
||||
|
||||
.page__meta {
|
||||
margin: 0 0 4px;
|
||||
}
|
||||
|
||||
.archive__item-title {
|
||||
margin-top: 0.5em;
|
||||
font-size: $type-size-5;
|
||||
}
|
||||
|
||||
.archive__item-excerpt {
|
||||
display: none;
|
||||
|
||||
@include breakpoint($medium) {
|
||||
display: block;
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
}
|
||||
|
||||
.archive__item-teaser {
|
||||
|
||||
@include breakpoint($small) {
|
||||
max-height: 200px;
|
||||
}
|
||||
|
||||
@include breakpoint($medium) {
|
||||
max-height: 120px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Features
|
||||
========================================================================== */
|
||||
|
||||
.feature__wrapper {
|
||||
@include clearfix();
|
||||
margin-bottom: 2em;
|
||||
border-bottom: 1px solid $border-color;
|
||||
}
|
||||
|
||||
.feature__item {
|
||||
margin-bottom: 2em;
|
||||
font-size: 1.25rem;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: left;
|
||||
margin-bottom: 0;
|
||||
width: span(4 of 12);
|
||||
|
||||
&:nth-child(3n+1) {
|
||||
clear: both;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
&:nth-child(3n+2) {
|
||||
clear: none;
|
||||
margin-left: gutter(of 12);
|
||||
}
|
||||
|
||||
&:nth-child(3n+3) {
|
||||
clear: none;
|
||||
margin-left: gutter(of 12);
|
||||
}
|
||||
|
||||
.feature__item-teaser {
|
||||
max-height: 200px;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
&--left {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
font-size: 1.25rem;
|
||||
|
||||
.archive__item-teaser {
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
@include breakpoint($small) {
|
||||
|
||||
.archive__item-teaser {
|
||||
float: left;
|
||||
width: span(5 of 12);
|
||||
}
|
||||
|
||||
.archive__item-body {
|
||||
float: right;
|
||||
padding-left: gutter(0.5 of 12);
|
||||
padding-right: gutter(1 of 12);
|
||||
width: span(7 of 12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&--right {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
font-size: 1.25rem;
|
||||
|
||||
.archive__item-teaser {
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
@include breakpoint($small) {
|
||||
text-align: right;
|
||||
|
||||
.archive__item-teaser {
|
||||
float: right;
|
||||
width: span(5 of 12);
|
||||
}
|
||||
|
||||
.archive__item-body {
|
||||
float: right;
|
||||
width: span(7 of 12);
|
||||
padding-left: gutter(0.5 of 12);
|
||||
padding-right: gutter(1 of 12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&--center {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
font-size: 1.25rem;
|
||||
|
||||
.archive__item-teaser {
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
@include breakpoint($small) {
|
||||
text-align: center;
|
||||
|
||||
.archive__item-teaser {
|
||||
margin: 0 auto;
|
||||
width: span(5 of 12);
|
||||
}
|
||||
|
||||
.archive__item-body {
|
||||
margin: 0 auto;
|
||||
width: span(7 of 12);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
316
_sass/minimal-mistakes/_base.scss
Normal file
316
_sass/minimal-mistakes/_base.scss
Normal file
@ -0,0 +1,316 @@
|
||||
/* ==========================================================================
|
||||
BASE ELEMENTS
|
||||
========================================================================== */
|
||||
|
||||
html {
|
||||
/* sticky footer fix */
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: $text-color;
|
||||
font-family: $global-font-family;
|
||||
line-height: 1.5;
|
||||
|
||||
&.overflow--hidden {
|
||||
/* when primary navigation is visible, the content in the background won't scroll */
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 2em 0 0.5em;
|
||||
line-height: 1.2;
|
||||
font-family: $header-font-family;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 0;
|
||||
font-size: $type-size-3;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: $type-size-4;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: $type-size-5;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
|
||||
small, .small {
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 1.3em;
|
||||
}
|
||||
|
||||
u,
|
||||
ins {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid $text-color;
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
del a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* reduce orphans and widows when printing */
|
||||
|
||||
p, pre, blockquote, ul, ol, dl, figure, table, fieldset {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
|
||||
/* abbreviations */
|
||||
|
||||
abbr[title],
|
||||
abbr[data-original-title] {
|
||||
text-decoration: none;
|
||||
cursor: help;
|
||||
border-bottom: 1px dotted $text-color;
|
||||
}
|
||||
|
||||
/* blockquotes */
|
||||
|
||||
blockquote {
|
||||
margin: 2em 1em 2em 0;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
font-style: italic;
|
||||
border-left: 0.25em solid $primary-color;
|
||||
|
||||
cite {
|
||||
font-style: italic;
|
||||
|
||||
&:before {
|
||||
content: "\2014";
|
||||
padding-right: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* links */
|
||||
|
||||
a {
|
||||
&:focus {
|
||||
@extend %tab-focus;
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:active {
|
||||
color: $link-color-hover;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
&:visited {
|
||||
color: $link-color-visited;
|
||||
}
|
||||
}
|
||||
|
||||
/* code */
|
||||
|
||||
tt, code, kbd, samp, pre {
|
||||
font-family: $monospace;
|
||||
}
|
||||
|
||||
pre {
|
||||
overflow-x: auto; /* add scrollbars to wide code blocks*/
|
||||
}
|
||||
|
||||
p > code,
|
||||
a > code,
|
||||
li > code,
|
||||
figcaption > code,
|
||||
td > code {
|
||||
padding-top: 0.1rem;
|
||||
padding-bottom: 0.1rem;
|
||||
font-size: $type-size-6;
|
||||
background: $code-background-color;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: $border-radius;
|
||||
box-shadow: $box-shadow;
|
||||
|
||||
&:before, &:after {
|
||||
letter-spacing: -0.2em;
|
||||
content: "\00a0"; /* non-breaking space*/
|
||||
}
|
||||
}
|
||||
|
||||
/* horizontal rule */
|
||||
|
||||
hr {
|
||||
display: block;
|
||||
margin: 1em 0;
|
||||
border: 0;
|
||||
border-top: 1px solid $border-color;
|
||||
}
|
||||
|
||||
/* lists */
|
||||
|
||||
ul li,
|
||||
ol li {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
li ul,
|
||||
li ol {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
/*
|
||||
Media and embeds
|
||||
========================================================================== */
|
||||
|
||||
/* Figures and images */
|
||||
|
||||
figure {
|
||||
display: -webkit-box;
|
||||
display: flex;
|
||||
-webkit-box-pack: justify;
|
||||
justify-content: space-between;
|
||||
-webkit-box-align: start;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
margin: 2em 0;
|
||||
|
||||
img,
|
||||
iframe,
|
||||
.fluid-width-video-wrapper {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
border-radius: $border-radius;
|
||||
-webkit-transition: $global-transition;
|
||||
transition: $global-transition;
|
||||
}
|
||||
|
||||
> a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
&.half {
|
||||
> a,
|
||||
> img {
|
||||
@include breakpoint($small) {
|
||||
width: calc(50% - 0.5em);
|
||||
}
|
||||
}
|
||||
|
||||
figcaption {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.third {
|
||||
> a,
|
||||
> img {
|
||||
@include breakpoint($small) {
|
||||
width: calc(33.3333% - 0.5em);
|
||||
}
|
||||
}
|
||||
|
||||
figcaption {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Figure captions */
|
||||
|
||||
figcaption {
|
||||
margin-bottom: 0.5em;
|
||||
color: $muted-text-color;
|
||||
font-family: $caption-font-family;
|
||||
font-size: $type-size-6;
|
||||
|
||||
a {
|
||||
-webkit-transition: $global-transition;
|
||||
transition: $global-transition;
|
||||
|
||||
&:hover {
|
||||
color: $link-color-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Fix IE9 SVG bug */
|
||||
|
||||
svg:not(:root) {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Navigation lists
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Removes margins, padding, and bullet points from navigation lists
|
||||
*
|
||||
* Example usage:
|
||||
* <nav>
|
||||
* <ul>
|
||||
* <li><a href="#link-1">Link 1</a></li>
|
||||
* <li><a href="#link-2">Link 2</a></li>
|
||||
* <li><a href="#link-3">Link 3</a></li>
|
||||
* </ul>
|
||||
* </nav>
|
||||
*/
|
||||
|
||||
nav {
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* override white-space for nested lists */
|
||||
ul li,
|
||||
ol li {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
li ul,
|
||||
li ol {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Global animation transition
|
||||
========================================================================== */
|
||||
|
||||
b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a, tr, td, form button, input[type="submit"], .btn, .highlight, .archive__item-teaser {
|
||||
-webkit-transition: $global-transition;
|
||||
transition: $global-transition;
|
||||
}
|
98
_sass/minimal-mistakes/_buttons.scss
Normal file
98
_sass/minimal-mistakes/_buttons.scss
Normal file
@ -0,0 +1,98 @@
|
||||
/* ==========================================================================
|
||||
BUTTONS
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
Default button
|
||||
========================================================================== */
|
||||
|
||||
.btn {
|
||||
/* default */
|
||||
display: inline-block;
|
||||
margin-bottom: 0.25em;
|
||||
padding: 0.5em 1em;
|
||||
font-family: $sans-serif;
|
||||
font-size: $type-size-6;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
border-width: 0;
|
||||
border-radius: $border-radius;
|
||||
cursor: pointer;
|
||||
|
||||
.icon {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
.icon + .hidden {
|
||||
margin-left: -0.5em; /* override for hidden text*/
|
||||
}
|
||||
|
||||
/* button colors */
|
||||
$buttoncolors:
|
||||
(primary, $primary-color),
|
||||
(inverse, #fff),
|
||||
(light-outline, transparent),
|
||||
(success, $success-color),
|
||||
(warning, $warning-color),
|
||||
(danger, $danger-color),
|
||||
(info, $info-color),
|
||||
(facebook, $facebook-color),
|
||||
(twitter, $twitter-color),
|
||||
(google-plus, $google-plus-color),
|
||||
(linkedin, $linkedin-color);
|
||||
|
||||
@each $buttoncolor, $color in $buttoncolors {
|
||||
&--#{$buttoncolor} {
|
||||
@include yiq-contrasted($color);
|
||||
@if ($buttoncolor == inverse) {
|
||||
border: 1px solid $border-color;
|
||||
}
|
||||
@if ($buttoncolor == light-outline) {
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
@include yiq-contrasted(mix(#000, $color, 20%));
|
||||
}
|
||||
|
||||
&:visited {
|
||||
@include yiq-contrasted($color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* fills width of parent container */
|
||||
&--block {
|
||||
display: block;
|
||||
width: 100%;
|
||||
|
||||
+ .btn--block {
|
||||
margin-top: 0.25em;
|
||||
}
|
||||
}
|
||||
|
||||
/* disabled */
|
||||
&--disabled {
|
||||
pointer-events: none;
|
||||
cursor: not-allowed;
|
||||
filter: alpha(opacity=65);
|
||||
box-shadow: none;
|
||||
opacity: 0.65;
|
||||
}
|
||||
|
||||
/* extra large button */
|
||||
&--x-large {
|
||||
font-size: $type-size-4;
|
||||
}
|
||||
|
||||
/* large button */
|
||||
&--large {
|
||||
font-size: $type-size-5;
|
||||
}
|
||||
|
||||
/* small button */
|
||||
&--small {
|
||||
font-size: $type-size-7;
|
||||
}
|
||||
}
|
83
_sass/minimal-mistakes/_footer.scss
Normal file
83
_sass/minimal-mistakes/_footer.scss
Normal file
@ -0,0 +1,83 @@
|
||||
/* ==========================================================================
|
||||
FOOTER
|
||||
========================================================================== */
|
||||
|
||||
.page__footer {
|
||||
@include clearfix;
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
/* sticky footer fix start */
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
height: auto;
|
||||
/* sticky footer fix end */
|
||||
margin-top: 3em;
|
||||
color: $muted-text-color;
|
||||
-webkit-animation: $intro-transition;
|
||||
animation: $intro-transition;
|
||||
-webkit-animation-delay: 0.45s;
|
||||
animation-delay: 0.45s;
|
||||
background-color: $footer-background-color;
|
||||
|
||||
footer {
|
||||
@include clearfix;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 2em;
|
||||
max-width: 100%;
|
||||
padding: 0 1em 2em;
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
max-width: $x-large;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
.fa {
|
||||
color: $muted-text-color;
|
||||
}
|
||||
}
|
||||
|
||||
.page__footer-copyright {
|
||||
font-family: $global-font-family;
|
||||
font-size: $type-size-7;
|
||||
}
|
||||
|
||||
.page__footer-follow {
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
font-family: $sans-serif-narrow;
|
||||
font-size: $type-size-6;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
li + li:before {
|
||||
content: "";
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
a {
|
||||
padding-right: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
389
_sass/minimal-mistakes/_forms.scss
Normal file
389
_sass/minimal-mistakes/_forms.scss
Normal file
@ -0,0 +1,389 @@
|
||||
/* ==========================================================================
|
||||
Forms
|
||||
========================================================================== */
|
||||
|
||||
form {
|
||||
margin: 0 0 5px 0;
|
||||
padding: 1em;
|
||||
background-color: $form-background-color;
|
||||
|
||||
fieldset {
|
||||
margin-bottom: 5px;
|
||||
padding: 0;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
legend {
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin-bottom: 5px * 2;
|
||||
*margin-left: -7px;
|
||||
padding: 0;
|
||||
color: $text-color;
|
||||
border: 0;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 5px / 2;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: none;
|
||||
margin: 0 0 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
br {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
label,
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
textarea {
|
||||
vertical-align: baseline;
|
||||
*vertical-align: middle;
|
||||
}
|
||||
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
textarea {
|
||||
box-sizing: border-box;
|
||||
font-family: $sans-serif;
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
margin-bottom: 0.25em;
|
||||
color: $text-color;
|
||||
cursor: pointer;
|
||||
|
||||
small {
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
|
||||
input,
|
||||
textarea,
|
||||
select {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
input,
|
||||
textarea,
|
||||
select {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
padding: 0.25em;
|
||||
margin-bottom: 0.5em;
|
||||
color: $text-color;
|
||||
background-color: $background-color;
|
||||
border: $border-color;
|
||||
border-radius: $border-radius;
|
||||
box-shadow: $box-shadow;
|
||||
}
|
||||
|
||||
.input-mini {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.input-small {
|
||||
width: 90px;
|
||||
}
|
||||
|
||||
input[type="image"],
|
||||
input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
width: auto;
|
||||
height: auto;
|
||||
padding: 0;
|
||||
margin: 3px 0;
|
||||
*margin-top: 0;
|
||||
line-height: normal;
|
||||
cursor: pointer;
|
||||
border-radius: 0;
|
||||
border: 0 \9;
|
||||
}
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
*width: 13px;
|
||||
*height: 13px;
|
||||
}
|
||||
|
||||
input[type="image"] {
|
||||
border: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
input[type="file"] {
|
||||
width: auto;
|
||||
padding: initial;
|
||||
line-height: initial;
|
||||
border: initial;
|
||||
background-color: transparent;
|
||||
background-color: initial;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
input[type="button"],
|
||||
input[type="reset"],
|
||||
input[type="submit"] {
|
||||
width: auto;
|
||||
height: auto;
|
||||
cursor: pointer;
|
||||
*overflow: visible;
|
||||
}
|
||||
|
||||
select,
|
||||
input[type="file"] {
|
||||
*margin-top: 4px;
|
||||
}
|
||||
|
||||
select {
|
||||
width: auto;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
select[multiple],
|
||||
select[size] {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
height: auto;
|
||||
overflow: auto;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
input[type="hidden"] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.form {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.radio,
|
||||
.checkbox {
|
||||
padding-left: 18px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.radio input[type="radio"],
|
||||
.checkbox input[type="checkbox"] {
|
||||
float: left;
|
||||
margin-left: -18px;
|
||||
}
|
||||
|
||||
.radio.inline,
|
||||
.checkbox.inline {
|
||||
display: inline-block;
|
||||
padding-top: 5px;
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.radio.inline + .radio.inline,
|
||||
.checkbox.inline + .checkbox.inline {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Disabled state
|
||||
========================================================================== */
|
||||
|
||||
input[disabled],
|
||||
select[disabled],
|
||||
textarea[disabled],
|
||||
input[readonly],
|
||||
select[readonly],
|
||||
textarea[readonly] {
|
||||
opacity: 0.5;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Focus & active state
|
||||
========================================================================== */
|
||||
|
||||
input:focus,
|
||||
textarea:focus {
|
||||
border-color: $primary-color;
|
||||
outline: 0;
|
||||
outline: thin dotted \9;
|
||||
box-shadow: inset 0 1px 3px rgba($text-color, 0.06), 0 0 5px rgba($primary-color, 0.7);
|
||||
}
|
||||
|
||||
input[type="file"]:focus,
|
||||
input[type="radio"]:focus,
|
||||
input[type="checkbox"]:focus,
|
||||
select:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Help text
|
||||
========================================================================== */
|
||||
|
||||
.help-block,
|
||||
.help-inline {
|
||||
color: $muted-text-color;
|
||||
}
|
||||
|
||||
.help-block {
|
||||
display: block;
|
||||
margin-bottom: 1em;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
.help-inline {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
.form-inline
|
||||
========================================================================== */
|
||||
|
||||
.form-inline input,
|
||||
.form-inline textarea,
|
||||
.form-inline select {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.form-inline label {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.form-inline .radio,
|
||||
.form-inline .checkbox,
|
||||
.form-inline .radio {
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.form-inline .radio input[type="radio"],
|
||||
.form-inline .checkbox input[type="checkbox"] {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 3px; }
|
||||
|
||||
|
||||
/*
|
||||
.form-search
|
||||
========================================================================== */
|
||||
|
||||
.form-search input,
|
||||
.form-search textarea,
|
||||
.form-search select {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.form-search .search-query {
|
||||
padding-left: 14px;
|
||||
padding-right: 14px;
|
||||
margin-bottom: 0;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
.form-search label {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.form-search .radio,
|
||||
.form-search .checkbox,
|
||||
.form-inline .radio {
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.form-search .radio input[type="radio"],
|
||||
.form-search .checkbox input[type="checkbox"] {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
.form--loading
|
||||
========================================================================== */
|
||||
|
||||
.form--loading:before {
|
||||
content: '';
|
||||
}
|
||||
|
||||
.form--loading .form__spinner {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.form:before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(255, 255, 255, 0.7);
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.form__spinner {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
z-index: 11;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Google search form
|
||||
========================================================================== */
|
||||
|
||||
#goog-fixurl {
|
||||
ul {
|
||||
list-style: none;
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
li {
|
||||
list-style-type: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#goog-wm-qt {
|
||||
width: auto;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 20px;
|
||||
padding: 8px 20px;
|
||||
display: inline-block;
|
||||
font-size: $type-size-6;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
border-width: 2px !important;
|
||||
border-style: solid !important;
|
||||
border-color: $border-color;
|
||||
border-radius: $border-radius;
|
||||
}
|
||||
|
||||
#goog-wm-sb {
|
||||
@extend .btn;
|
||||
}
|
83
_sass/minimal-mistakes/_masthead.scss
Normal file
83
_sass/minimal-mistakes/_masthead.scss
Normal file
@ -0,0 +1,83 @@
|
||||
/* ==========================================================================
|
||||
MASTHEAD
|
||||
========================================================================== */
|
||||
|
||||
.masthead {
|
||||
position: relative;
|
||||
border-bottom: 1px solid $border-color;
|
||||
-webkit-animation: $intro-transition;
|
||||
animation: $intro-transition;
|
||||
-webkit-animation-delay: 0.15s;
|
||||
animation-delay: 0.15s;
|
||||
z-index: 20;
|
||||
|
||||
&__inner-wrap {
|
||||
@include clearfix;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding: 1em;
|
||||
max-width: 100%;
|
||||
display: -webkit-box;
|
||||
display: flex;
|
||||
-webkit-box-pack: justify;
|
||||
justify-content: space-between;
|
||||
font-family: $sans-serif-narrow;
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
max-width: $x-large;
|
||||
}
|
||||
|
||||
nav {
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.site-title {
|
||||
display: -webkit-box;
|
||||
display: flex;
|
||||
padding: 0.5rem 0;
|
||||
align-self: stretch;
|
||||
-webkit-box-align: center;
|
||||
align-items: center;
|
||||
font-weight: bold;
|
||||
z-index: 20;
|
||||
}
|
||||
|
||||
.masthead__menu {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
|
||||
.site-nav {
|
||||
margin-left: 0;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
clear: both;
|
||||
list-style-type: none;
|
||||
}
|
||||
}
|
||||
|
||||
.masthead__menu-item {
|
||||
display: block;
|
||||
list-style-type: none;
|
||||
white-space: nowrap;
|
||||
|
||||
&--lg {
|
||||
padding-right: 2em;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
92
_sass/minimal-mistakes/_mixins.scss
Normal file
92
_sass/minimal-mistakes/_mixins.scss
Normal file
@ -0,0 +1,92 @@
|
||||
/* ==========================================================================
|
||||
MIXINS
|
||||
========================================================================== */
|
||||
|
||||
%tab-focus {
|
||||
/* Default*/
|
||||
outline: thin dotted $warning-color;
|
||||
/* Webkit*/
|
||||
outline: 5px auto $warning-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
/*
|
||||
em function
|
||||
========================================================================== */
|
||||
|
||||
@function em($target, $context: $doc-font-size) {
|
||||
@return ($target / $context) * 1em;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Bourbon clearfix
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
* Provides an easy way to include a clearfix for containing floats.
|
||||
* link http://cssmojo.com/latest_new_clearfix_so_far/
|
||||
*
|
||||
* example scss - Usage
|
||||
*
|
||||
* .element {
|
||||
* @include clearfix;
|
||||
* }
|
||||
*
|
||||
* example css - CSS Output
|
||||
*
|
||||
* .element::after {
|
||||
* clear: both;
|
||||
* content: "";
|
||||
* display: table;
|
||||
* }
|
||||
*/
|
||||
|
||||
@mixin clearfix {
|
||||
clear: both;
|
||||
|
||||
&::after {
|
||||
clear: both;
|
||||
content: "";
|
||||
display: table;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Compass YIQ Color Contrast
|
||||
https://github.com/easy-designs/yiq-color-contrast
|
||||
========================================================================== */
|
||||
|
||||
@function yiq-is-light(
|
||||
$color,
|
||||
$threshold: $yiq-contrasted-threshold
|
||||
) {
|
||||
$red: red($color);
|
||||
$green: green($color);
|
||||
$blue: blue($color);
|
||||
|
||||
$yiq: (($red*299)+($green*587)+($blue*114))/1000;
|
||||
|
||||
@if $yiq-debug { @debug $yiq, $threshold; }
|
||||
|
||||
@return if($yiq >= $threshold, true, false);
|
||||
}
|
||||
|
||||
@function yiq-contrast-color(
|
||||
$color,
|
||||
$dark: $yiq-contrasted-dark-default,
|
||||
$light: $yiq-contrasted-light-default,
|
||||
$threshold: $yiq-contrasted-threshold
|
||||
) {
|
||||
@return if(yiq-is-light($color, $threshold), $yiq-contrasted-dark-default, $yiq-contrasted-light-default);
|
||||
}
|
||||
|
||||
@mixin yiq-contrasted(
|
||||
$background-color,
|
||||
$dark: $yiq-contrasted-dark-default,
|
||||
$light: $yiq-contrasted-light-default,
|
||||
$threshold: $yiq-contrasted-threshold
|
||||
) {
|
||||
background-color: $background-color;
|
||||
color: yiq-contrast-color($background-color, $dark, $light, $threshold);
|
||||
}
|
569
_sass/minimal-mistakes/_navigation.scss
Normal file
569
_sass/minimal-mistakes/_navigation.scss
Normal file
@ -0,0 +1,569 @@
|
||||
/* ==========================================================================
|
||||
NAVIGATION
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
Breadcrumb navigation links
|
||||
========================================================================== */
|
||||
|
||||
.breadcrumbs {
|
||||
@include clearfix;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
font-family: $sans-serif;
|
||||
-webkit-animation: $intro-transition;
|
||||
animation: $intro-transition;
|
||||
-webkit-animation-delay: 0.30s;
|
||||
animation-delay: 0.30s;
|
||||
|
||||
@include breakpoint($large) {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
max-width: $x-large;
|
||||
}
|
||||
|
||||
ol {
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
font-size: $type-size-6;
|
||||
|
||||
@include breakpoint($large) {
|
||||
float: right;
|
||||
width: span(10 of 12);
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
padding-left: gutter(0.5 of 12);
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.current {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Post pagination navigation links
|
||||
========================================================================== */
|
||||
|
||||
.pagination {
|
||||
@include clearfix();
|
||||
float: left;
|
||||
margin-top: 1em;
|
||||
padding-top: 1em;
|
||||
width: 100%;
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
font-family: $sans-serif;
|
||||
}
|
||||
|
||||
li {
|
||||
display: block;
|
||||
float: left;
|
||||
margin-left: -1px;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
margin-bottom: 0.25em;
|
||||
padding: 0.5em 1em;
|
||||
font-family: $sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
line-height: 1.5;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: $muted-text-color;
|
||||
border: 1px solid mix(#000, $border-color, 25%);
|
||||
border-radius: 0;
|
||||
|
||||
&:hover {
|
||||
color: $link-color-hover;
|
||||
}
|
||||
|
||||
&.current,
|
||||
&.current.disabled {
|
||||
color: #fff;
|
||||
background: $primary-color;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
color: rgba($muted-text-color, 0.5);
|
||||
pointer-events: none;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
|
||||
a {
|
||||
border-top-left-radius: $border-radius;
|
||||
border-bottom-left-radius: $border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
a {
|
||||
border-top-right-radius: $border-radius;
|
||||
border-bottom-right-radius: $border-radius;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* next/previous buttons */
|
||||
&--pager {
|
||||
display: block;
|
||||
padding: 1em 2em;
|
||||
float: left;
|
||||
width: 50%;
|
||||
font-family: $sans-serif;
|
||||
font-size: $type-size-5;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: $muted-text-color;
|
||||
border: 1px solid mix(#000, $border-color, 25%);
|
||||
border-radius: $border-radius;
|
||||
|
||||
&:hover {
|
||||
@include yiq-contrasted($muted-text-color);
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-left: -1px;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
color: rgba($muted-text-color, 0.5);
|
||||
pointer-events: none;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page__content + .pagination,
|
||||
.page__meta + .pagination,
|
||||
.page__share + .pagination,
|
||||
.page__comments + .pagination {
|
||||
margin-top: 2em;
|
||||
padding-top: 2em;
|
||||
border-top: 1px solid $border-color;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Priority plus navigation
|
||||
========================================================================== */
|
||||
|
||||
.greedy-nav {
|
||||
position: relative;
|
||||
display: -webkit-box;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
align-items: center;
|
||||
background: $background-color;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
margin: 0 1rem;
|
||||
padding: 0.5rem 0;
|
||||
color: $masthead-link-color;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
color: $masthead-link-color-hover;
|
||||
}
|
||||
|
||||
&.site-title {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 0 0.5rem;
|
||||
align-self: stretch;
|
||||
border: 0;
|
||||
outline: none;
|
||||
color: #fff;
|
||||
background: transparent;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.visible-links {
|
||||
display: -webkit-box;
|
||||
display: flex;
|
||||
-webkit-box-pack: end;
|
||||
-webkit-box-flex: 1;
|
||||
flex: 1;
|
||||
padding-right: 2rem;
|
||||
overflow: hidden;
|
||||
|
||||
li {
|
||||
-webkit-box-flex: 0;
|
||||
flex: none;
|
||||
|
||||
&:first-child {
|
||||
a {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
&:last-child {
|
||||
a {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
position: relative;
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
height: 4px;
|
||||
background: $primary-color;
|
||||
width: 100%;
|
||||
-webkit-transition: $global-transition;
|
||||
transition: $global-transition;
|
||||
-webkit-transform: scaleX(0) translate3d(0, 0 , 0);
|
||||
transform: scaleX(0) translate3d(0, 0 , 0); /* hide*/
|
||||
}
|
||||
|
||||
&:hover:before {
|
||||
-webkit-transform: scaleX(1);
|
||||
-ms-transform: scaleX(1);
|
||||
transform: scaleX(1); /* reveal*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.links-menu{
|
||||
right: 2.5rem;
|
||||
}
|
||||
|
||||
.lang-menu{
|
||||
right: .2rem;
|
||||
}
|
||||
|
||||
.hidden-links {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
margin-top: 15px;
|
||||
padding: 5px;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: $border-radius;
|
||||
background: $background-color;
|
||||
box-shadow: 0 2px 4px 0 rgba(#000, 0.16), 0 2px 10px 0 rgba(#000, 0.12);
|
||||
|
||||
&.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a {
|
||||
margin: 0;
|
||||
padding: 10px 20px;
|
||||
font-size: $type-size-5;
|
||||
|
||||
&:hover {
|
||||
color: $masthead-link-color-hover;
|
||||
background: $navicon-link-color-hover;
|
||||
}
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
right: 5px;
|
||||
width: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px;
|
||||
border-color: $border-color transparent;
|
||||
display: block;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
right: 5px;
|
||||
width: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px;
|
||||
border-color: $background-color transparent;
|
||||
display: block;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
li {
|
||||
display: block;
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Navigation list
|
||||
========================================================================== */
|
||||
|
||||
.nav__list {
|
||||
margin-bottom: 1.5em;
|
||||
|
||||
input[type="checkbox"],
|
||||
label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@include breakpoint(max-width ($large - 1px)) {
|
||||
|
||||
label {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
padding: 0.5em 2.5em 0.5em 1em;
|
||||
font-size: $type-size-6;
|
||||
font-weight: bold;
|
||||
border: 1px solid $light-gray;
|
||||
border-radius: $border-radius;
|
||||
z-index: 20;
|
||||
-webkit-transition: 0.2s ease-out;
|
||||
transition: 0.2s ease-out;
|
||||
cursor: pointer;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
right: 1em;
|
||||
top: 1.25em;
|
||||
width: 0.75em;
|
||||
height: 0.125em;
|
||||
line-height: 1;
|
||||
background-color: $gray;
|
||||
-webkit-transition: 0.2s ease-out;
|
||||
transition: 0.2s ease-out;
|
||||
}
|
||||
|
||||
&:after {
|
||||
-webkit-transform: rotate(90deg);
|
||||
-ms-transform: rotate(90deg);
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: #fff;
|
||||
border-color: $gray;
|
||||
background-color: mix(white, #000, 20%);
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
background-color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* selected*/
|
||||
input:checked + label {
|
||||
color: white;
|
||||
background-color: mix(white, #000, 20%);
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
background-color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
/* on hover show expand*/
|
||||
label:hover:after {
|
||||
-webkit-transform: rotate(90deg);
|
||||
-ms-transform: rotate(90deg);
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
input:checked + label:hover:after {
|
||||
-webkit-transform: rotate(0);
|
||||
-ms-transform: rotate(0);
|
||||
transform: rotate(0);
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
a {
|
||||
display: block;
|
||||
padding: 0.25em 0;
|
||||
|
||||
@include breakpoint($large) {
|
||||
padding-top: 0.125em;
|
||||
padding-bottom: 0.125em;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.nav__list .nav__items {
|
||||
margin: 0;
|
||||
font-size: 1.4rem;
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
ol {
|
||||
padding-left: 0.9rem;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style: inherit;
|
||||
}
|
||||
|
||||
.active {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.completed {
|
||||
color: $gray;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
@include breakpoint(max-width ($large - 1px)) {
|
||||
position: relative;
|
||||
max-height: 0;
|
||||
opacity: 0%;
|
||||
overflow: hidden;
|
||||
z-index: 10;
|
||||
-webkit-transition: 0.3s ease-in-out;
|
||||
transition: 0.3s ease-in-out;
|
||||
-webkit-transform: translate(0, 10%);
|
||||
-ms-transform: translate(0, 10%);
|
||||
transform: translate(0, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint(max-width ($large - 1px)) {
|
||||
.nav__list input:checked ~ .nav__items {
|
||||
-webkit-transition: 0.5s ease-in-out;
|
||||
transition: 0.5s ease-in-out;
|
||||
max-height: 9999px; /* exaggerate max-height to accommodate tall lists*/
|
||||
overflow: visible;
|
||||
opacity: 1;
|
||||
margin-top: 1em;
|
||||
-webkit-transform: translate(0, 0);
|
||||
-ms-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.nav__title {
|
||||
margin: 0;
|
||||
padding: 0.5rem 1rem;
|
||||
font-family: $sans-serif-narrow;
|
||||
font-size: $type-size-5;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.nav__sub-title {
|
||||
display: block;
|
||||
margin: 0.5rem 0;
|
||||
padding: 0.5rem 0;
|
||||
font-family: $sans-serif-narrow;
|
||||
font-size: $type-size-6;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
border-bottom: 1px solid $border-color;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Table of contents navigation
|
||||
========================================================================== */
|
||||
|
||||
.toc {
|
||||
font-family: $sans-serif-narrow;
|
||||
color: $gray;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
background-color: $background-color;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: $border-radius;
|
||||
box-shadow: $box-shadow;
|
||||
|
||||
.nav__title {
|
||||
color: #fff;
|
||||
font-size: $type-size-6;
|
||||
background: $primary-color;
|
||||
border-top-left-radius: $border-radius;
|
||||
border-top-right-radius: $border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
.toc__menu {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
list-style: none;
|
||||
font-size: 1rem;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
padding: 0.5rem 1rem;
|
||||
color: $text-color;
|
||||
font-size: $type-size-7;
|
||||
font-weight: bold;
|
||||
line-height: 1.5;
|
||||
border-bottom: 1px solid $border-color;
|
||||
}
|
||||
|
||||
> li:last-child {
|
||||
a {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
|
||||
li ul > li a {
|
||||
padding-left: 1.75rem;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* hide sub sub links on small screens*/
|
||||
li > ul li {
|
||||
display: none;
|
||||
|
||||
@include breakpoint($medium) {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
97
_sass/minimal-mistakes/_notices.scss
Normal file
97
_sass/minimal-mistakes/_notices.scss
Normal file
@ -0,0 +1,97 @@
|
||||
/* ==========================================================================
|
||||
NOTICE TEXT BLOCKS
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Default Kramdown usage (no indents!):
|
||||
* <div class="notice" markdown="1">
|
||||
* #### Headline for the Notice
|
||||
* Text for the notice
|
||||
* </div>
|
||||
*/
|
||||
|
||||
@mixin notice($notice-color) {
|
||||
margin: 2em 0 !important; /* override*/
|
||||
padding: 1em;
|
||||
font-family: $global-font-family;
|
||||
font-size: $type-size-6 !important;
|
||||
text-indent: initial; /* override*/
|
||||
font-weight: bold;
|
||||
background-color: mix($background-color, $notice-color, 45%);
|
||||
border-radius: $border-radius;
|
||||
box-shadow: 0 1px 1px rgba($notice-color, 0.25);
|
||||
|
||||
h4 {
|
||||
margin-top: 0 !important; /* override*/
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
|
||||
@at-root .page__content #{&} h4 {
|
||||
/* using at-root to override .page-content h4 font size*/
|
||||
margin-bottom: 0;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
p {
|
||||
&:last-child {
|
||||
margin-bottom: 0 !important; /* override*/
|
||||
}
|
||||
}
|
||||
|
||||
h4 + p {
|
||||
/* remove space above paragraphs that appear directly after notice headline*/
|
||||
margin-top: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: mix(#fff, $notice-color, 30%);
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
&:last-child {
|
||||
margin-bottom: 0; /* override*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Default notice */
|
||||
|
||||
.notice {
|
||||
@include notice($light-gray);
|
||||
}
|
||||
|
||||
/* Primary notice */
|
||||
|
||||
.notice--primary {
|
||||
@include notice($primary-color);
|
||||
}
|
||||
|
||||
/* Info notice */
|
||||
|
||||
.notice--info {
|
||||
@include notice($info-color);
|
||||
}
|
||||
|
||||
/* Warning notice */
|
||||
|
||||
.notice--warning {
|
||||
@include notice($warning-color);
|
||||
}
|
||||
|
||||
/* Success notice */
|
||||
|
||||
.notice--success {
|
||||
@include notice($success-color);
|
||||
}
|
||||
|
||||
/* Danger notice */
|
||||
|
||||
.notice--danger {
|
||||
@include notice($danger-color);
|
||||
}
|
431
_sass/minimal-mistakes/_page.scss
Normal file
431
_sass/minimal-mistakes/_page.scss
Normal file
@ -0,0 +1,431 @@
|
||||
/* ==========================================================================
|
||||
SINGLE PAGE/POST
|
||||
========================================================================== */
|
||||
|
||||
#main {
|
||||
@include clearfix;
|
||||
margin-left: auto;
|
||||
margin-top: 2em;
|
||||
margin-right: auto;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
-webkit-animation: $intro-transition;
|
||||
animation: $intro-transition;
|
||||
max-width: 100%;
|
||||
-webkit-animation-delay: 0.35s;
|
||||
animation-delay: 0.35s;
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
max-width: $x-large;
|
||||
}
|
||||
}
|
||||
|
||||
.page {
|
||||
|
||||
@include breakpoint($large) {
|
||||
float: right;
|
||||
width: calc(100% - #{$right-sidebar-width-narrow});
|
||||
padding-right: $right-sidebar-width-narrow;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
width: calc(100% - #{$right-sidebar-width});
|
||||
padding-right: $right-sidebar-width;
|
||||
}
|
||||
|
||||
.page__inner-wrap {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
|
||||
.page__content,
|
||||
.page__meta,
|
||||
.page__share {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page__title {
|
||||
margin-top: 0;
|
||||
line-height: 1;
|
||||
|
||||
& + .page__meta {
|
||||
margin-top: -0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
.page__lead {
|
||||
font-family: $global-font-family;
|
||||
font-size: $type-size-4;
|
||||
}
|
||||
|
||||
.page__content {
|
||||
|
||||
h2 {
|
||||
padding-bottom: 0.5em;
|
||||
border-bottom: 1px solid $border-color;
|
||||
}
|
||||
|
||||
p, li, dl {
|
||||
font-size: .85em;
|
||||
}
|
||||
|
||||
/* paragraph indents */
|
||||
p {
|
||||
margin: 0 0 $indent-var;
|
||||
|
||||
/* sibling indentation*/
|
||||
@if $paragraph-indent == true {
|
||||
& + p {
|
||||
text-indent: $indent-var;
|
||||
margin-top: -($indent-var);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a:not(.btn) {
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
|
||||
img {
|
||||
box-shadow: 0 0 10px rgba(#000, 0.25);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dt {
|
||||
margin-top: 1em;
|
||||
font-family: $sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 1em;
|
||||
font-family: $sans-serif;
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
|
||||
/* blockquote citations */
|
||||
blockquote + .small {
|
||||
margin-top: -1.5em;
|
||||
padding-left: 1.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
.page__hero {
|
||||
position: relative;
|
||||
margin-bottom: 2em;
|
||||
@include clearfix;
|
||||
-webkit-animation: $intro-transition;
|
||||
animation: $intro-transition;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
|
||||
&--overlay {
|
||||
position: relative;
|
||||
margin-bottom: 2em;
|
||||
padding: 3em 0;
|
||||
@include clearfix;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
-webkit-animation: $intro-transition;
|
||||
animation: $intro-transition;
|
||||
-webkit-animation-delay: 0.25s;
|
||||
animation-delay: 0.25s;
|
||||
|
||||
a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
max-width: $x-large;
|
||||
}
|
||||
}
|
||||
|
||||
.page__title,
|
||||
.page__meta,
|
||||
.page__lead,
|
||||
.btn {
|
||||
color: #fff;
|
||||
text-shadow: 1px 1px 4px rgba(#000, 0.5);
|
||||
}
|
||||
|
||||
.page__lead {
|
||||
max-width: $medium;
|
||||
}
|
||||
|
||||
.page__title {
|
||||
font-size: $type-size-2;
|
||||
|
||||
@include breakpoint($small) {
|
||||
font-size: $type-size-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page__hero-image {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
}
|
||||
|
||||
.page__hero-caption {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
padding: 2px 5px;
|
||||
color: #fff;
|
||||
font-family: $caption-font-family;
|
||||
font-size: $type-size-7;
|
||||
background: #000;
|
||||
text-align: right;
|
||||
z-index: 5;
|
||||
opacity: 0.5;
|
||||
border-radius: $border-radius 0 0 0;
|
||||
|
||||
@include breakpoint($large) {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Social sharing
|
||||
========================================================================== */
|
||||
|
||||
.page__share {
|
||||
margin-top: 2em;
|
||||
padding-top: 1em;
|
||||
border-top: 1px solid $border-color;
|
||||
|
||||
@include breakpoint(max-width $small) {
|
||||
.btn span {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page__share-title {
|
||||
margin-bottom: 10px;
|
||||
font-size: $type-size-6;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Page meta
|
||||
========================================================================== */
|
||||
|
||||
.page__meta {
|
||||
margin-top: 2em;
|
||||
color: $muted-text-color;
|
||||
font-family: $sans-serif;
|
||||
font-size: $type-size-6;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
.page__meta-title {
|
||||
margin-bottom: 10px;
|
||||
font-size: $type-size-6;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Page taxonomy
|
||||
========================================================================== */
|
||||
|
||||
.page__taxonomy {
|
||||
.sep {
|
||||
display: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.page__taxonomy-item {
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 8px;
|
||||
padding: 5px 10px;
|
||||
text-decoration: none;
|
||||
border: 1px solid mix(#000, $border-color, 25%);
|
||||
border-radius: $border-radius;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
color: $link-color-hover;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Comments
|
||||
========================================================================== */
|
||||
|
||||
.page__comments {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.page__comments-title {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 10px;
|
||||
padding-top: 2rem;
|
||||
font-size: $type-size-6;
|
||||
border-top: 1px solid $border-color;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.page__comments-form {
|
||||
-webkit-transition: $global-transition;
|
||||
transition: $global-transition;
|
||||
|
||||
&.disabled {
|
||||
input,
|
||||
button,
|
||||
textarea,
|
||||
label {
|
||||
pointer-events: none;
|
||||
cursor: not-allowed;
|
||||
filter: alpha(opacity=65);
|
||||
box-shadow: none;
|
||||
opacity: 0.65;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.comment {
|
||||
@include clearfix();
|
||||
margin: 1em 0;
|
||||
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px solid $border-color;
|
||||
}
|
||||
}
|
||||
|
||||
.comment__avatar-wrapper {
|
||||
float: left;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
|
||||
@include breakpoint($large) {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
.comment__avatar {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
|
||||
@include breakpoint($large) {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
padding: 5px;
|
||||
border: 1px solid $border-color;
|
||||
}
|
||||
}
|
||||
|
||||
.comment__content-wrapper {
|
||||
float: right;
|
||||
width: calc(100% - 60px);
|
||||
|
||||
@include breakpoint($large) {
|
||||
width: calc(100% - 100px);
|
||||
}
|
||||
}
|
||||
|
||||
.comment__author {
|
||||
margin: 0;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.comment__date {
|
||||
@extend .page__meta;
|
||||
margin: 0;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Related
|
||||
========================================================================== */
|
||||
|
||||
.page__related {
|
||||
@include clearfix();
|
||||
float: left;
|
||||
margin-top: 2em;
|
||||
padding-top: 1em;
|
||||
border-top: 1px solid $border-color;
|
||||
|
||||
@include breakpoint($large) {
|
||||
float: right;
|
||||
width: calc(100% - #{$right-sidebar-width-narrow});
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
width: calc(100% - #{$right-sidebar-width});
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.page__related-title {
|
||||
margin-bottom: 10px;
|
||||
font-size: $type-size-6;
|
||||
text-transform: uppercase;
|
||||
}
|
252
_sass/minimal-mistakes/_print.scss
Normal file
252
_sass/minimal-mistakes/_print.scss
Normal file
@ -0,0 +1,252 @@
|
||||
/* ==========================================================================
|
||||
PRINT STYLES
|
||||
========================================================================== */
|
||||
|
||||
@media print {
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
* {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
min-height: auto !important;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0 auto;
|
||||
background: #fff !important;
|
||||
color: #000 !important;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
color: #000;
|
||||
line-height: 1.2;
|
||||
margin-bottom: 0.75rem;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
a,
|
||||
a:visited {
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
thead {
|
||||
display: table-header-group;
|
||||
}
|
||||
|
||||
table,
|
||||
th,
|
||||
td {
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
display: block;
|
||||
max-width: 100% !important;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
border-bottom: 2px solid #bbb;
|
||||
height: 0;
|
||||
margin: 2.25rem 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin: 0;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
abbr[title],
|
||||
acronym[title] {
|
||||
border: 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
table,
|
||||
blockquote,
|
||||
pre,
|
||||
code,
|
||||
figure,
|
||||
li,
|
||||
hr,
|
||||
ul,
|
||||
ol,
|
||||
a,
|
||||
tr {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
p,
|
||||
a {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
page-break-after: avoid;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
h1 + p,
|
||||
h2 + p,
|
||||
h3 + p {
|
||||
page-break-before: avoid;
|
||||
}
|
||||
|
||||
img {
|
||||
page-break-after: auto;
|
||||
page-break-before: auto;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: pre-wrap !important;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
a[href^='http://']:after,
|
||||
a[href^='https://']:after,
|
||||
a[href^='ftp://']:after {
|
||||
content: " (" attr(href) ")";
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
abbr[title]:after,
|
||||
acronym[title]:after {
|
||||
content: " (" attr(title) ")";
|
||||
}
|
||||
|
||||
#main {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.page {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.page-break,
|
||||
.page-break-before {
|
||||
page-break-before: always;
|
||||
}
|
||||
|
||||
.page-break-after {
|
||||
page-break-after: always;
|
||||
}
|
||||
|
||||
.no-print {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a.no-reformat:after {
|
||||
content: '';
|
||||
}
|
||||
|
||||
abbr[title].no-reformat:after,
|
||||
acronym[title].no-reformat:after {
|
||||
content: '';
|
||||
}
|
||||
|
||||
.page__hero-caption {
|
||||
color: #000 !important;
|
||||
background: #fff !important;
|
||||
opacity: 1;
|
||||
|
||||
a {
|
||||
color: #000 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Hide the following elements on print
|
||||
========================================================================== */
|
||||
|
||||
.masthead,
|
||||
.toc,
|
||||
.page__share,
|
||||
.page__related,
|
||||
.pagination,
|
||||
.ads,
|
||||
.page__footer,
|
||||
.page__comments-form,
|
||||
.author__avatar,
|
||||
.author__content,
|
||||
.author__urls-wrapper,
|
||||
.nav__list,
|
||||
.sidebar,
|
||||
.adsbygoogle {
|
||||
display: none !important;
|
||||
height: 1px !important;
|
||||
}
|
||||
}
|
187
_sass/minimal-mistakes/_reset.scss
Normal file
187
_sass/minimal-mistakes/_reset.scss
Normal file
@ -0,0 +1,187 @@
|
||||
/* ==========================================================================
|
||||
STYLE RESETS
|
||||
========================================================================== */
|
||||
|
||||
* { box-sizing: border-box; }
|
||||
|
||||
html {
|
||||
/* apply a natural box layout model to all elements */
|
||||
box-sizing: border-box;
|
||||
background-color: $background-color;
|
||||
font-size: 16px;
|
||||
|
||||
@include breakpoint($medium) {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
@include breakpoint($large) {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
/* Remove margin */
|
||||
|
||||
body { margin: 0; }
|
||||
|
||||
/* Selected elements */
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
::selection {
|
||||
color: #fff;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
/* Display HTML5 elements in IE6-9 and FF3 */
|
||||
|
||||
article,
|
||||
aside,
|
||||
details,
|
||||
figcaption,
|
||||
figure,
|
||||
footer,
|
||||
header,
|
||||
hgroup,
|
||||
main,
|
||||
nav,
|
||||
section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Display block in IE6-9 and FF3 */
|
||||
|
||||
audio,
|
||||
canvas,
|
||||
video {
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
/* Prevents modern browsers from displaying 'audio' without controls */
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $link-color;
|
||||
}
|
||||
|
||||
/* Apply focus state */
|
||||
|
||||
a:focus {
|
||||
@extend %tab-focus;
|
||||
}
|
||||
|
||||
/* Remove outline from links */
|
||||
|
||||
a:hover,
|
||||
a:active {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
/* Prevent sub and sup affecting line-height in all browsers */
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
/* img border in anchor's and image quality */
|
||||
|
||||
img {
|
||||
/* Responsive images (ensure images don't scale beyond their parents) */
|
||||
max-width: 100%; /* part 1: Set a maximum relative to the parent*/
|
||||
width: auto\9; /* IE7-8 need help adjusting responsive images*/
|
||||
height: auto; /* part 2: Scale the height according to the width, otherwise you get stretching*/
|
||||
|
||||
vertical-align: middle;
|
||||
border: 0;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
}
|
||||
|
||||
/* Prevent max-width from affecting Google Maps */
|
||||
|
||||
#map_canvas img,
|
||||
.google-maps img {
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
/* Consistent form font size in all browsers, margin changes, misc */
|
||||
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
*overflow: visible; /* inner spacing ie IE6/7*/
|
||||
line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/
|
||||
}
|
||||
|
||||
button::-moz-focus-inner,
|
||||
input::-moz-focus-inner { /* inner padding and border oddities in FF3/4*/
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
button,
|
||||
html input[type="button"], // avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls
|
||||
input[type="reset"],
|
||||
input[type="submit"] {
|
||||
-webkit-appearance: button; /* corrects inability to style clickable `input` types in iOS*/
|
||||
cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/
|
||||
}
|
||||
|
||||
label,
|
||||
select,
|
||||
button,
|
||||
input[type="button"],
|
||||
input[type="reset"],
|
||||
input[type="submit"],
|
||||
input[type="radio"],
|
||||
input[type="checkbox"] {
|
||||
cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/
|
||||
}
|
||||
|
||||
input[type="search"] { /* Appearance in Safari/Chrome*/
|
||||
box-sizing: content-box;
|
||||
-webkit-appearance: textfield;
|
||||
}
|
||||
|
||||
input[type="search"]::-webkit-search-decoration,
|
||||
input[type="search"]::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none; /* inner-padding issues in Chrome OSX, Safari 5*/
|
||||
}
|
||||
|
||||
textarea {
|
||||
overflow: auto; /* remove vertical scrollbar in IE6-9*/
|
||||
vertical-align: top; /* readability and alignment cross-browser*/
|
||||
}
|
265
_sass/minimal-mistakes/_sidebar.scss
Normal file
265
_sass/minimal-mistakes/_sidebar.scss
Normal file
@ -0,0 +1,265 @@
|
||||
/* ==========================================================================
|
||||
SIDEBAR
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
Default
|
||||
========================================================================== */
|
||||
|
||||
.sidebar {
|
||||
@include clearfix();
|
||||
margin-bottom: 1em;
|
||||
-webkit-transform: translate3d(0, 0 , 0);
|
||||
transform: translate3d(0, 0 , 0);
|
||||
|
||||
@include breakpoint(max-width $large) {
|
||||
/* fix z-index order of follow links */
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@include breakpoint($large) {
|
||||
float: left;
|
||||
width: calc(#{$right-sidebar-width-narrow} - 1em);
|
||||
opacity: 1;
|
||||
-webkit-transition: opacity 0.2s ease-in-out;
|
||||
transition: opacity 0.2s ease-in-out;
|
||||
|
||||
a {
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
&.sticky {
|
||||
overflow-y: auto;
|
||||
/* calculate height of nav list */
|
||||
height: calc(100vh - 90px - 2em); // viewport height - approx. masthead height - main content top margin
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
width: calc(#{$right-sidebar-width} - 1em);
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
margin-bottom: 0;
|
||||
font-family: $sans-serif-narrow;
|
||||
}
|
||||
|
||||
p, li {
|
||||
font-family: $sans-serif;
|
||||
font-size: $type-size-6;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar__right {
|
||||
margin-bottom: 1em;
|
||||
|
||||
@include breakpoint($large) {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: $right-sidebar-width-narrow;
|
||||
margin-right: -1 * $right-sidebar-width-narrow;
|
||||
padding-left: 1em;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
width: $right-sidebar-width;
|
||||
margin-right: -1 * $right-sidebar-width;
|
||||
}
|
||||
}
|
||||
|
||||
.splash .sidebar__right {
|
||||
|
||||
@include breakpoint($large) {
|
||||
position: relative;
|
||||
float: right;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Author profile and links
|
||||
========================================================================== */
|
||||
|
||||
.author__avatar {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
|
||||
@include breakpoint($large) {
|
||||
display: block;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 110px;
|
||||
border-radius: 50%;
|
||||
|
||||
@include breakpoint($large) {
|
||||
padding: 5px;
|
||||
border: 1px solid $border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.author__content {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
padding-left: 15px;
|
||||
padding-right: 25px;
|
||||
line-height: 1;
|
||||
|
||||
@include breakpoint($large) {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.author__name {
|
||||
margin: 0;
|
||||
|
||||
@include breakpoint($large) {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
.sidebar .author__name {
|
||||
font-family: $sans-serif;
|
||||
font-size: $type-size-5;
|
||||
}
|
||||
|
||||
.author__bio {
|
||||
margin: 0;
|
||||
|
||||
@include breakpoint($large) {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.author__urls-wrapper {
|
||||
position: relative;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
font-family: $sans-serif;
|
||||
z-index: 10;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
li:last-child {
|
||||
a {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint($large) {
|
||||
display: block;
|
||||
}
|
||||
|
||||
button {
|
||||
margin-bottom: 0;
|
||||
|
||||
@include breakpoint($large) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.author__urls {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
margin-top: 15px;
|
||||
padding: 10px;
|
||||
list-style-type: none;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: $border-radius;
|
||||
background: $background-color;
|
||||
z-index: -1;
|
||||
box-shadow: 0 2px 4px 0 rgba(#000, 0.16), 0 2px 10px 0 rgba(#000, 0.12);
|
||||
cursor: default;
|
||||
|
||||
&.is--visible {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@include breakpoint($large) {
|
||||
display: block;
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
&:before {
|
||||
display: block;
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
left: calc(50% - 10px);
|
||||
width: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px;
|
||||
border-color: $border-color transparent;
|
||||
z-index: 0;
|
||||
|
||||
@include breakpoint($large) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&:after {
|
||||
display: block;
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: calc(50% - 10px);
|
||||
width: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px;
|
||||
border-color: $background-color transparent;
|
||||
z-index: 1;
|
||||
|
||||
@include breakpoint($large) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
a {
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
padding-right: 5px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
color: inherit;
|
||||
font-size: $type-size-5;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
146
_sass/minimal-mistakes/_syntax.scss
Normal file
146
_sass/minimal-mistakes/_syntax.scss
Normal file
@ -0,0 +1,146 @@
|
||||
/* ==========================================================================
|
||||
Syntax highlighting
|
||||
========================================================================== */
|
||||
|
||||
div.highlighter-rouge,
|
||||
figure.highlight {
|
||||
position: relative;
|
||||
margin-bottom: 1em;
|
||||
font-family: $monospace;
|
||||
font-size: $type-size-6;
|
||||
line-height: 1.8;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: $border-radius;
|
||||
background-color: $code-background-color;
|
||||
box-shadow: $box-shadow;
|
||||
|
||||
&:before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 0.5em;
|
||||
background-color: $border-color;
|
||||
content: "\f121";
|
||||
font-family: "fontawesome" !important;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
speak: none;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
margin: 0;
|
||||
padding: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
figure.highlight {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
.highlight table {
|
||||
font-size: 1em;
|
||||
border: 0;
|
||||
|
||||
td {
|
||||
padding: 5px;
|
||||
border: 0;
|
||||
|
||||
/* line numbers*/
|
||||
&.gutter {
|
||||
padding-right: 1em;
|
||||
color: rgba($muted-text-color, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.highlight pre { width: 100%; }
|
||||
|
||||
/*
|
||||
Solarized Light
|
||||
http://ethanschoonover.com/solarized
|
||||
|
||||
SOLARIZED HEX ROLE
|
||||
--------- -------- ------------------------------------------
|
||||
base01 #586e75 body text / default code / primary content
|
||||
base1 #93a1a1 comments / secondary content
|
||||
base3 #fdf6e3 background
|
||||
orange #cb4b16 constants
|
||||
red #dc322f regex, special keywords
|
||||
blue #22b3eb reserved keywords
|
||||
cyan #2aa198 strings, numbers
|
||||
green #859900 operators, other keywords
|
||||
========================================================================== */
|
||||
|
||||
.highlight .c { color: #93a1a1 } /* Comment */
|
||||
.highlight .err { color: #586e75 } /* Error */
|
||||
.highlight .g { color: #586e75 } /* Generic */
|
||||
.highlight .k { color: #859900 } /* Keyword */
|
||||
.highlight .l { color: #586e75 } /* Literal */
|
||||
.highlight .n { color: #586e75 } /* Name */
|
||||
.highlight .o { color: #859900 } /* Operator */
|
||||
.highlight .x { color: #cb4b16 } /* Other */
|
||||
.highlight .p { color: #586e75 } /* Punctuation */
|
||||
.highlight .cm { color: #93a1a1 } /* Comment.Multiline */
|
||||
.highlight .cp { color: #859900 } /* Comment.Preproc */
|
||||
.highlight .c1 { color: #93a1a1 } /* Comment.Single */
|
||||
.highlight .cs { color: #859900 } /* Comment.Special */
|
||||
.highlight .gd { color: #2aa198 } /* Generic.Deleted */
|
||||
.highlight .ge { color: #586e75; font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #dc322f } /* Generic.Error */
|
||||
.highlight .gh { color: #cb4b16 } /* Generic.Heading */
|
||||
.highlight .gi { color: #859900 } /* Generic.Inserted */
|
||||
.highlight .go { color: #586e75 } /* Generic.Output */
|
||||
.highlight .gp { color: #586e75 } /* Generic.Prompt */
|
||||
.highlight .gs { color: #586e75; font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #cb4b16 } /* Generic.Subheading */
|
||||
.highlight .gt { color: #586e75 } /* Generic.Traceback */
|
||||
.highlight .kc { color: #cb4b16 } /* Keyword.Constant */
|
||||
.highlight .kd { color: #22b3eb } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #859900 } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #859900 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #22b3eb } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #dc322f } /* Keyword.Type */
|
||||
.highlight .ld { color: #586e75 } /* Literal.Date */
|
||||
.highlight .m { color: #2aa198 } /* Literal.Number */
|
||||
.highlight .s { color: #2aa198 } /* Literal.String */
|
||||
.highlight .na { color: #586e75 } /* Name.Attribute */
|
||||
.highlight .nb { color: #B58900 } /* Name.Builtin */
|
||||
.highlight .nc { color: #22b3eb } /* Name.Class */
|
||||
.highlight .no { color: #cb4b16 } /* Name.Constant */
|
||||
.highlight .nd { color: #22b3eb } /* Name.Decorator */
|
||||
.highlight .ni { color: #cb4b16 } /* Name.Entity */
|
||||
.highlight .ne { color: #cb4b16 } /* Name.Exception */
|
||||
.highlight .nf { color: #22b3eb } /* Name.Function */
|
||||
.highlight .nl { color: #586e75 } /* Name.Label */
|
||||
.highlight .nn { color: #586e75 } /* Name.Namespace */
|
||||
.highlight .nx { color: #586e75 } /* Name.Other */
|
||||
.highlight .py { color: #586e75 } /* Name.Property */
|
||||
.highlight .nt { color: #22b3eb } /* Name.Tag */
|
||||
.highlight .nv { color: #22b3eb } /* Name.Variable */
|
||||
.highlight .ow { color: #859900 } /* Operator.Word */
|
||||
.highlight .w { color: #586e75 } /* Text.Whitespace */
|
||||
.highlight .mf { color: #2aa198 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #2aa198 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #2aa198 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #2aa198 } /* Literal.Number.Oct */
|
||||
.highlight .sb { color: #93a1a1 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #2aa198 } /* Literal.String.Char */
|
||||
.highlight .sd { color: #586e75 } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #2aa198 } /* Literal.String.Double */
|
||||
.highlight .se { color: #cb4b16 } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #586e75 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #2aa198 } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #2aa198 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #dc322f } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #2aa198 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #2aa198 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #22b3eb } /* Name.Builtin.Pseudo */
|
||||
.highlight .vc { color: #22b3eb } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #22b3eb } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #22b3eb } /* Name.Variable.Instance */
|
||||
.highlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */
|
39
_sass/minimal-mistakes/_tables.scss
Normal file
39
_sass/minimal-mistakes/_tables.scss
Normal file
@ -0,0 +1,39 @@
|
||||
/* ==========================================================================
|
||||
TABLES
|
||||
========================================================================== */
|
||||
|
||||
table {
|
||||
margin-bottom: 1em;
|
||||
width: 100%;
|
||||
font-family: $global-font-family;
|
||||
font-size: $type-size-6;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid $light-gray;
|
||||
|
||||
& + table {
|
||||
margin-top: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
thead {
|
||||
background-color: mix($background-color, $dark-gray, 45%);;
|
||||
border-bottom: 1px solid $light-gray;
|
||||
color: $primary-color;
|
||||
}
|
||||
|
||||
th {
|
||||
padding: 0.5em;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
border-right: 1px solid $light-gray;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0.5em;
|
||||
border-bottom: 1px solid $light-gray;
|
||||
border-right: 1px solid $light-gray;
|
||||
}
|
||||
|
||||
tr, td, th {
|
||||
vertical-align: middle;
|
||||
}
|
592
_sass/minimal-mistakes/_utilities.scss
Normal file
592
_sass/minimal-mistakes/_utilities.scss
Normal file
@ -0,0 +1,592 @@
|
||||
/* ==========================================================================
|
||||
UTILITY CLASSES
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
Visibility
|
||||
========================================================================== */
|
||||
|
||||
/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
/* for preloading images */
|
||||
|
||||
.load {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.transparent {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html */
|
||||
|
||||
.visually-hidden,
|
||||
.screen-reader-text,
|
||||
.screen-reader-text span,
|
||||
.screen-reader-shortcut {
|
||||
position: absolute !important;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
height: 1px !important;
|
||||
width: 1px !important;
|
||||
border: 0 !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body:hover .visually-hidden a,
|
||||
body:hover .visually-hidden input,
|
||||
body:hover .visually-hidden button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* screen readers */
|
||||
|
||||
.screen-reader-text:focus,
|
||||
.screen-reader-shortcut:focus {
|
||||
clip: auto !important;
|
||||
height: auto !important;
|
||||
width: auto !important;
|
||||
display: block;
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
padding: 15px 23px 14px;
|
||||
background: #fff;
|
||||
z-index: 100000;
|
||||
text-decoration: none;
|
||||
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Skip links
|
||||
========================================================================== */
|
||||
|
||||
.skip-link {
|
||||
position: fixed;
|
||||
z-index: 20;
|
||||
margin: 0;
|
||||
font-family: $sans-serif;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.skip-link li {
|
||||
height: 0;
|
||||
width: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Type
|
||||
========================================================================== */
|
||||
|
||||
.text-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.text-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.text-justify {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.text-nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Alignment
|
||||
========================================================================== */
|
||||
|
||||
/* clearfix */
|
||||
|
||||
.cf { clear: both; }
|
||||
|
||||
.wrapper {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Images
|
||||
========================================================================== */
|
||||
|
||||
/* image align left */
|
||||
|
||||
.align-left {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
/* image align right */
|
||||
|
||||
.align-right {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: right;
|
||||
margin-left: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
/* image align center */
|
||||
|
||||
.align-center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* file page content container */
|
||||
|
||||
.full {
|
||||
@include breakpoint($large){
|
||||
margin-right: -1 * span(2.5 of 12) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Icons
|
||||
========================================================================== */
|
||||
|
||||
.icon {
|
||||
display: inline-block;
|
||||
fill: currentColor;
|
||||
width: 1em;
|
||||
height: 1.1em;
|
||||
line-height: 1;
|
||||
position: relative;
|
||||
top: -0.1em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* social icons*/
|
||||
|
||||
.social-icons {
|
||||
.fa {
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
.fa-behance,
|
||||
.fa-behance-square {
|
||||
color: $behance-color;
|
||||
}
|
||||
|
||||
.fa-bitbucket,
|
||||
.fa-bitbucket-square {
|
||||
color: $bitbucket-color;
|
||||
}
|
||||
|
||||
.fa-dribbble {
|
||||
color: $dribbble-color;
|
||||
}
|
||||
|
||||
.fa-facebook,
|
||||
.fa-facebook-square {
|
||||
color: $facebook-color;
|
||||
}
|
||||
|
||||
.fa-flickr {
|
||||
color: $flickr-color;
|
||||
}
|
||||
|
||||
.fa-foursquare {
|
||||
color: $foursquare-color;
|
||||
}
|
||||
|
||||
.fa-github,
|
||||
.fa-github-alt,
|
||||
.fa-github-square {
|
||||
color: $github-color;
|
||||
}
|
||||
|
||||
.fa-google-plus,
|
||||
.fa-google-plus-square {
|
||||
color: $google-plus-color;
|
||||
}
|
||||
|
||||
.fa-instagram {
|
||||
color: $instagram-color;
|
||||
}
|
||||
|
||||
.fa-lastfm,
|
||||
.fa-lastfm-square {
|
||||
color: $lastfm-color;
|
||||
}
|
||||
|
||||
.fa-linkedin,
|
||||
.fa-linkedin-square {
|
||||
color: $linkedin-color;
|
||||
}
|
||||
|
||||
.fa-pinterest,
|
||||
.fa-pinterest-p,
|
||||
.fa-pinterest-square {
|
||||
color: $pinterest-color;
|
||||
}
|
||||
|
||||
.fa-rss,
|
||||
.fa-rss-square {
|
||||
color: $rss-color;
|
||||
}
|
||||
|
||||
.fa-soundcloud {
|
||||
color: $soundcloud-color;
|
||||
}
|
||||
|
||||
.fa-stack-exchange,
|
||||
.fa-stack-overflow {
|
||||
color: $stackoverflow-color;
|
||||
}
|
||||
|
||||
.fa-tumblr,
|
||||
.fa-tumblr-square {
|
||||
color: $tumblr-color;
|
||||
}
|
||||
|
||||
.fa-twitter,
|
||||
.fa-twitter-square {
|
||||
color: $twitter-color;
|
||||
}
|
||||
|
||||
.fa-vimeo,
|
||||
.fa-vimeo-square {
|
||||
color: $vimeo-color;
|
||||
}
|
||||
|
||||
.fa-vine {
|
||||
color: $vine-color;
|
||||
}
|
||||
|
||||
.fa-youtube,
|
||||
.fa-youtube-square,
|
||||
.fa-youtube-play {
|
||||
color: $youtube-color;
|
||||
}
|
||||
|
||||
.fa-xing,
|
||||
.fa-xing-square {
|
||||
color: $xing-color;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Navicons
|
||||
========================================================================== */
|
||||
|
||||
.navicon {
|
||||
position: relative;
|
||||
width: $navicon-width;
|
||||
height: $navicon-height;
|
||||
top: ($navicon-height / 2);
|
||||
background: $text-color;
|
||||
margin: auto;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: $navicon-width;
|
||||
height: $navicon-height;
|
||||
background: $text-color;
|
||||
}
|
||||
|
||||
&:before {
|
||||
top: (-2 * $navicon-height);
|
||||
}
|
||||
|
||||
&:after {
|
||||
bottom: (-2 * $navicon-height);
|
||||
}
|
||||
}
|
||||
|
||||
.close .navicon {
|
||||
background: transparent;
|
||||
|
||||
/* overlay the lines by setting both their top values to 0*/
|
||||
&:before, &:after{
|
||||
-webkit-transform-origin: 50% 50%;
|
||||
-ms-transform-origin: 50% 50%;
|
||||
transform-origin: 50% 50%;
|
||||
top: 0;
|
||||
width: $navicon-width;
|
||||
}
|
||||
|
||||
/* rotate the lines to form the x shape*/
|
||||
&:before{
|
||||
-webkit-transform: rotate3d(0,0,1,45deg);
|
||||
transform: rotate3d(0,0,1,45deg);
|
||||
}
|
||||
&:after{
|
||||
-webkit-transform: rotate3d(0,0,1,-45deg);
|
||||
transform: rotate3d(0,0,1,-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Langicons
|
||||
========================================================================== */
|
||||
|
||||
.langicon {
|
||||
position: relative;
|
||||
width: $navicon-width;
|
||||
display: inline-block;
|
||||
background: transparent;
|
||||
margin: auto;
|
||||
color: $text-color;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: $navicon-width;
|
||||
height: $navicon-height;
|
||||
background: $text-color;
|
||||
display: none;
|
||||
}
|
||||
|
||||
&:before {
|
||||
top: (-2 * $navicon-height);
|
||||
}
|
||||
|
||||
&:after {
|
||||
bottom: (-2 * $navicon-height);
|
||||
}
|
||||
}
|
||||
|
||||
.close .langicon {
|
||||
/* hide the middle line*/
|
||||
background: transparent;
|
||||
|
||||
.fa-language {
|
||||
display: none;
|
||||
-webkit-transition: 0.3s;
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
/* overlay the lines by setting both their top values to 0*/
|
||||
&:before, &:after{
|
||||
-webkit-transform-origin: 50% 50%;
|
||||
-ms-transform-origin: 50% 50%;
|
||||
transform-origin: 50% 50%;
|
||||
width: $navicon-width;
|
||||
display: inherit;
|
||||
}
|
||||
|
||||
/* rotate the lines to form the x shape*/
|
||||
&:before{
|
||||
-webkit-transform: rotate3d(0,0,1,45deg);
|
||||
transform: rotate3d(0,0,1,45deg);
|
||||
}
|
||||
&:after{
|
||||
top: (-2 * $navicon-height);
|
||||
-webkit-transform: rotate3d(0,0,1,-45deg);
|
||||
transform: rotate3d(0,0,1,-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Sticky, fixed to top content
|
||||
========================================================================== */
|
||||
|
||||
.sticky {
|
||||
@include breakpoint($large) {
|
||||
@include clearfix();
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: 2em;
|
||||
|
||||
> * {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Wells
|
||||
========================================================================== */
|
||||
|
||||
.well {
|
||||
min-height: 20px;
|
||||
padding: 19px;
|
||||
margin-bottom: 20px;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #e3e3e3;
|
||||
border-radius: $border-radius;
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Modals
|
||||
========================================================================== */
|
||||
|
||||
.show-modal {
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
&:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 999;
|
||||
background-color: rgba(255, 255, 255, 0.85);
|
||||
}
|
||||
|
||||
.modal {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.modal {
|
||||
display: none;
|
||||
position: fixed;
|
||||
width: 300px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -150px;
|
||||
margin-top: -150px;
|
||||
min-height: 0;
|
||||
z-index: 9999;
|
||||
background: #fff;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: $border-radius;
|
||||
box-shadow: $box-shadow;
|
||||
|
||||
&__title {
|
||||
margin: 0;
|
||||
padding: 0.5em 1em;
|
||||
}
|
||||
|
||||
&__supporting-text {
|
||||
padding: 0 1em 0.5em 1em;
|
||||
}
|
||||
|
||||
&__actions {
|
||||
padding: 0.5em 1em;
|
||||
border-top: 1px solid $border-color;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Footnotes
|
||||
========================================================================== */
|
||||
|
||||
.footnote {
|
||||
color: mix(#fff, $gray, 25%);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.footnotes {
|
||||
color: mix(#fff, $gray, 25%);
|
||||
|
||||
ol, li, p {
|
||||
margin-bottom: 0;
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
}
|
||||
|
||||
a.reversefootnote {
|
||||
color: $gray;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Required
|
||||
========================================================================== */
|
||||
|
||||
.required {
|
||||
color: $danger-color;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Google Custom Search Engine
|
||||
========================================================================== */
|
||||
|
||||
.gsc-control-cse {
|
||||
|
||||
table, tr, td {
|
||||
border: 0; /* remove table borders widget */
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Responsive Video Embed
|
||||
========================================================================== */
|
||||
|
||||
.responsive-video-container {
|
||||
position: relative;
|
||||
margin-bottom: 1em;
|
||||
padding-bottom: 56.25%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
max-width: 100%;
|
||||
|
||||
iframe,
|
||||
object,
|
||||
embed {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
// full screen video fixes
|
||||
:-webkit-full-screen-ancestor {
|
||||
.masthead,
|
||||
.page__footer {
|
||||
position: static;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Ads
|
||||
========================================================================== */
|
||||
|
||||
.adsbygoogle {
|
||||
border-bottom: none;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.adsbygoogle:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
137
_sass/minimal-mistakes/_variables.scss
Normal file
137
_sass/minimal-mistakes/_variables.scss
Normal file
@ -0,0 +1,137 @@
|
||||
/* ==========================================================================
|
||||
Variables
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
Typography
|
||||
========================================================================== */
|
||||
|
||||
$doc-font-size : 16 !default;
|
||||
|
||||
/* paragraph indention */
|
||||
$paragraph-indent : false !default; // true, false (default)
|
||||
$indent-var : 1.3em !default;
|
||||
|
||||
/* system typefaces */
|
||||
$serif : Georgia, Times, serif !default;
|
||||
$sans-serif : -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif !default;
|
||||
$monospace : Monaco, Consolas, "Lucida Console", monospace !default;
|
||||
|
||||
/* sans serif typefaces */
|
||||
$sans-serif-narrow : $sans-serif !default;
|
||||
$helvetica : Helvetica, "Helvetica Neue", Arial, sans-serif !default;
|
||||
|
||||
/* serif typefaces */
|
||||
$georgia : Georgia, serif !default;
|
||||
$times : Times, serif !default;
|
||||
$bodoni : "Bodoni MT", serif !default;
|
||||
$calisto : "Calisto MT", serif !default;
|
||||
$garamond : Garamond, serif !default;
|
||||
|
||||
$global-font-family : $sans-serif !default;
|
||||
$header-font-family : $sans-serif !default;
|
||||
$caption-font-family : $serif !default;
|
||||
|
||||
/* type scale */
|
||||
$type-size-1 : 2.441em !default; // ~39.056px
|
||||
$type-size-2 : 1.953em !default; // ~31.248px
|
||||
$type-size-3 : 1.563em !default; // ~25.008px
|
||||
$type-size-4 : 1.25em !default; // ~20px
|
||||
$type-size-5 : 1em !default;
|
||||
$type-size-6 : 0.75em !default; // ~12px
|
||||
$type-size-7 : 0.6875em !default; // ~11px
|
||||
$type-size-8 : 0.625em !default; // ~10px
|
||||
|
||||
|
||||
/*
|
||||
Colors
|
||||
========================================================================== */
|
||||
|
||||
$gray : #7a8288 !default;
|
||||
$dark-gray : mix(#000, $gray, 40%) !default;
|
||||
$darker-gray : mix(#000, $gray, 60%) !default;
|
||||
$light-gray : mix(#fff, $gray, 50%) !default;
|
||||
$lighter-gray : mix(#fff, $gray, 90%) !default;
|
||||
|
||||
$background-color : #fff !default;
|
||||
$code-background-color : #fafafa !default;
|
||||
$code-background-color-dark : $light-gray !default;
|
||||
$text-color : $dark-gray !default;
|
||||
$muted-text-color : mix(#fff, $text-color, 35%) !default;
|
||||
$border-color : $lighter-gray !default;
|
||||
$form-background-color : $lighter-gray !default;
|
||||
$footer-background-color : $lighter-gray !default;
|
||||
|
||||
$primary-color : #88C0D0 !default;
|
||||
$success-color : #A3BE8C !default;
|
||||
$warning-color : #D08770 !default;
|
||||
$danger-color : #BF616A !default;
|
||||
$info-color : #5E81AC !default;
|
||||
|
||||
/* YIQ color contrast */
|
||||
$yiq-contrasted-dark-default : $dark-gray !default;
|
||||
$yiq-contrasted-light-default : #fff !default;
|
||||
$yiq-contrasted-threshold : 175 !default;
|
||||
$yiq-debug : false !default;
|
||||
|
||||
/* brands */
|
||||
$behance-color : #1769FF !default;
|
||||
$bitbucket-color : #205081 !default;
|
||||
$dribbble-color : #ea4c89 !default;
|
||||
$facebook-color : #3b5998 !default;
|
||||
$flickr-color : #ff0084 !default;
|
||||
$foursquare-color : #0072b1 !default;
|
||||
$github-color : #171516 !default;
|
||||
$google-plus-color : #dd4b39 !default;
|
||||
$instagram-color : #517fa4 !default;
|
||||
$lastfm-color : #d51007 !default;
|
||||
$linkedin-color : #007bb6 !default;
|
||||
$pinterest-color : #cb2027 !default;
|
||||
$rss-color : #fa9b39 !default;
|
||||
$soundcloud-color : #ff3300 !default;
|
||||
$stackoverflow-color : #fe7a15 !default;
|
||||
$tumblr-color : #32506d !default;
|
||||
$twitter-color : #55acee !default;
|
||||
$vimeo-color : #1ab7ea !default;
|
||||
$vine-color : #00bf8f !default;
|
||||
$youtube-color : #bb0000 !default;
|
||||
$xing-color : #006567 !default;
|
||||
|
||||
/* links */
|
||||
$link-color : mix(#fff, $info-color, 15%) !default;
|
||||
$link-color-hover : mix(#fff, $link-color, 25%) !default;
|
||||
$link-color-visited : mix(#000, $link-color, 25%) !default;
|
||||
$masthead-link-color : $primary-color !default;
|
||||
$masthead-link-color-hover : mix(#fff, $primary-color, 25%) !default;
|
||||
$navicon-link-color-hover : mix(#fff, $primary-color, 75%) !default;
|
||||
|
||||
/*
|
||||
Breakpoints
|
||||
========================================================================== */
|
||||
|
||||
$small : 600px !default;
|
||||
$medium : 768px !default;
|
||||
$medium-wide : 900px !default;
|
||||
$large : 1024px !default;
|
||||
$x-large : 1280px !default;
|
||||
|
||||
|
||||
/*
|
||||
Grid
|
||||
========================================================================== */
|
||||
|
||||
$right-sidebar-width-narrow : 200px !default;
|
||||
$right-sidebar-width : 300px !default;
|
||||
$right-sidebar-width-wide : 400px !default;
|
||||
|
||||
|
||||
/*
|
||||
Other
|
||||
========================================================================== */
|
||||
|
||||
$border-radius : 4px !default;
|
||||
$box-shadow : 0 1px 1px rgba(0, 0, 0, 0.125) !default;
|
||||
$navicon-width : 1.3rem !default;
|
||||
$navicon-height : 0.22rem !default;
|
||||
$global-transition : all 0.2s ease-in-out !default;
|
||||
$intro-transition : intro 0.3s both !default;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user