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:
+ # _posts
+ - scope:
+ path: ""
+ type: posts
+ values:
+ layout: single
+ author_profile: true
+ read_time: true
+ comments: # true
+ share: true
+ related: true
diff --git a/_data/navigation.yml b/_data/navigation.yml
new file mode 100644
index 0000000..f077469
--- /dev/null
+++ b/_data/navigation.yml
@@ -0,0 +1,12 @@
+# main links
+main:
+ - title: "About"
+ url: /about/
+ - title: "News"
+ url: /post/
+ # - title: "Sample Posts"
+ # url: /year-archive/
+ # - title: "Sample Collections"
+ # url: /collection-archive/
+ # - title: "Sitemap"
+ # url: /sitemap/
diff --git a/_data/ui-text.yml b/_data/ui-text.yml
new file mode 100644
index 0000000..96aa415
--- /dev/null
+++ b/_data/ui-text.yml
@@ -0,0 +1,1525 @@
+# User interface text and labels
+
+# English (default)
+# -----------------
+en: &DEFAULT_EN
+ skip_links : "Skip links"
+ skip_primary_nav : "Skip to primary navigation"
+ skip_content : "Skip to content"
+ skip_footer : "Skip to footer"
+ page : "Page"
+ pagination_previous : "Previous"
+ pagination_next : "Next"
+ breadcrumb_home_label : "Home"
+ breadcrumb_separator : "/"
+ menu_label : "Toggle menu"
+ search_label : "Toggle search"
+ 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..."
+ search_placeholder_text : "Enter your search term..."
+ results_found : "Result(s) found"
+ back_to_top : "Back to top"
+en-US:
+ <<: *DEFAULT_EN
+en-CA:
+ <<: *DEFAULT_EN
+en-GB:
+ <<: *DEFAULT_EN
+en-AU:
+ <<: *DEFAULT_EN
+
+# Spanish
+# -------
+es: &DEFAULT_ES
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Página"
+ pagination_previous : "Anterior"
+ pagination_next : "Siguiente"
+ breadcrumb_home_label : "Inicio"
+ breadcrumb_separator : "/"
+ menu_label : "Alternar menú"
+ search_label : "Alternar búsqueda"
+ toc_label : "En esta página"
+ ext_link_label : "Enlace directo"
+ less_than : "menos de"
+ minute_read : "minuto(s) de lectura"
+ share_on_label : "Compartir en"
+ meta_label :
+ tags_label : "Etiquetas:"
+ categories_label : "Categorías:"
+ date_label : "Actualizado:"
+ comments_label : "Deja un comentario"
+ comments_title : "Comentarios"
+ more_label : "Ver más"
+ related_label : "Puede que también te interese"
+ follow_label : "Seguir:"
+ feed_label : "Feed"
+ powered_by : "Funciona con"
+ website_label : "Sitio web"
+ email_label : "Correo electrónico"
+ recent_posts : "Entradas recientes"
+ undefined_wpm : "El parámetro words_per_minute (palabras por minuto) no está definido en _config.yml"
+ comment_form_info : "Tu dirección de correo electrónico no se publicará. Los campos obligatorios están marcados"
+ comment_form_comment_label : "Comentario"
+ comment_form_md_info : "Puedes utilizar Markdown"
+ comment_form_name_label : "Nombre"
+ comment_form_email_label : "Dirección de correo electrónico"
+ comment_form_website_label : "Sitio web (opcional)"
+ comment_btn_submit : "Enviar comentario"
+ comment_btn_submitted : "Enviado"
+ comment_success_msg : "¡Gracias por tu comentario! Se publicará una vez sea aprobado."
+ comment_error_msg : "Ha ocurrido un error al enviar el comentario. Asegúrate de completar todos los campos obligatorios e inténtalo de nuevo."
+ loading_label : "Cargando..."
+ search_placeholder_text : "Términos de búsqueda..."
+ results_found : "resultado(s) encontrado(s)"
+ back_to_top : "Volver arriba"
+es-ES:
+ <<: *DEFAULT_ES
+es-CO:
+ <<: *DEFAULT_ES
+
+# French
+# ------
+fr: &DEFAULT_FR
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Page"
+ pagination_previous : "Précédent"
+ pagination_next : "Suivant"
+ breadcrumb_home_label : "Accueil"
+ breadcrumb_separator : "/"
+ menu_label : "Menu"
+ search_label :
+ toc_label : "Sur cette page"
+ ext_link_label : "Lien direct"
+ less_than : "moins de"
+ minute_read : "minute(s) 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 : "Commentaires"
+ more_label : "Lire plus"
+ related_label : "Vous pourriez aimer aussi"
+ follow_label : "Contact"
+ 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"
+ 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 commentaire, 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..."
+ search_placeholder_text : "Entrez votre recherche..."
+ results_found : "Résultat(s) trouvé(s)"
+ back_to_top : "Retour en haut"
+fr-FR:
+ <<: *DEFAULT_FR
+fr-BE:
+ <<: *DEFAULT_FR
+fr-CH:
+ <<: *DEFAULT_FR
+
+# Turkish
+# -------
+tr: &DEFAULT_TR
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Sayfa"
+ pagination_previous : "Önceki"
+ pagination_next : "Sonraki"
+ breadcrumb_home_label : "Ana Sayfa"
+ breadcrumb_separator : "/"
+ menu_label :
+ search_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
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Página"
+ pagination_previous : "Anterior"
+ pagination_next : "Seguinte"
+ breadcrumb_home_label : "Início"
+ breadcrumb_separator : "/"
+ menu_label :
+ search_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..."
+pt-PT:
+ <<: *DEFAULT_PT
+# Brazilian Portuguese
+pt-BR:
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Página"
+ pagination_previous : "Anterior"
+ pagination_next : "Próxima"
+ breadcrumb_home_label : "Home"
+ breadcrumb_separator : "/"
+ menu_label :
+ search_label : "Buscar"
+ toc_label : "Nesta página"
+ ext_link_label : "Link direto"
+ less_than : "menos que"
+ minute_read : "minuto(s) de leitura"
+ share_on_label : "Compartilhe"
+ meta_label :
+ tags_label : "Tags:"
+ categories_label : "Categorias:"
+ date_label : "Atualizado em:"
+ comments_label : "Deixe um comentário"
+ comments_title : "Comentários"
+ more_label : "Saiba mais"
+ related_label : "Talvez você também goste"
+ follow_label : "Acompanhe no"
+ feed_label : "Feed"
+ powered_by : "Desenvolvido com"
+ website_label : "Site"
+ email_label : "E-mail"
+ recent_posts : "Publicações recentes"
+ undefined_wpm : "Parâmetro words_per_minute indefinido no _config.yml"
+ comment_form_info : "Seu e-mail não será publicado. Os campos obrigatórios estão marcados"
+ comment_form_comment_label : "Comentário"
+ comment_form_md_info : "Você pode usar Markdown."
+ comment_form_name_label : "Nome"
+ comment_form_email_label : "E-mail"
+ comment_form_website_label : "Site (opcional)"
+ comment_btn_submit : "Enviar comentário"
+ comment_btn_submitted : "Enviado"
+ comment_success_msg : "Obrigado pelo seu comentário! Ele aparecerá no site assim que for aprovado."
+ comment_error_msg : "Desculpe, ocorreu um erro no envio. Verifique se todos os campos obrigatórios foram preenchidos e tente novamente."
+ loading_label : "Carregando..."
+ search_placeholder_text : "Pesquisar..."
+ results_found : "Resultado(s) encontrado(s)"
+ back_to_top : "Voltar para o topo"
+
+# Italian
+# -------
+it: &DEFAULT_IT
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Pagina"
+ pagination_previous : "Precedente"
+ pagination_next : "Prossima"
+ breadcrumb_home_label : "Home"
+ breadcrumb_separator : "/"
+ menu_label :
+ search_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..."
+ search_placeholder_text : "Inserisci termini di ricerca..."
+ results_found : "Risultati"
+ back_to_top : "Vai su"
+it-IT:
+ <<: *DEFAULT_IT
+
+# Chinese (zh-CN Chinese - China)
+# --------------------------------
+zh: &DEFAULT_ZH_HANS
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "页面"
+ pagination_previous : "向前"
+ pagination_next : "向后"
+ breadcrumb_home_label : "首页"
+ breadcrumb_separator : "/"
+ menu_label : "切换菜单"
+ search_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 : "技术来自于"
+ website_label : "网站"
+ email_label : "电子邮箱"
+ recent_posts : "最新文章"
+ undefined_wpm : "_config.yml配置中words_per_minute字段未定义"
+ comment_form_info : "您的电子邮箱地址并不会被展示。请填写标记为必须的字段。"
+ comment_form_comment_label : "评论"
+ comment_form_md_info : "Markdown语法已支持。"
+ 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 : "正在加载..."
+ search_placeholder_text : "输入您要搜索的关键词..."
+ results_found : "条记录匹配"
+ back_to_top : "返回顶部"
+zh-CN:
+ <<: *DEFAULT_ZH_HANS
+zh-SG:
+ <<: *DEFAULT_ZH_HANS
+# Taiwan (Traditional Chinese)
+zh-TW: &DEFAULT_ZH_HANT
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "頁面"
+ pagination_previous : "較舊"
+ pagination_next : "較新"
+ breadcrumb_home_label : "首頁"
+ breadcrumb_separator : "/"
+ menu_label : "切換選單"
+ search_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 : "RSS Feed"
+ powered_by : "Powered by"
+ website_label : "網站"
+ email_label : "電子信箱"
+ recent_posts : "最新文章"
+ undefined_wpm : "_config.yml 中未定義 words_per_minute"
+ comment_form_info : "您的電子信箱不會被公開. 必填部份已標記"
+ comment_form_comment_label : "留言內容"
+ comment_form_md_info : "支援Markdown語法。"
+ 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 : "載入中..."
+zh-HK:
+ <<: *DEFAULT_ZH_HANT
+
+# German / Deutsch
+# ----------------
+de: &DEFAULT_DE
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Seite"
+ pagination_previous : "Vorherige"
+ pagination_next : "Nächste"
+ breadcrumb_home_label : "Start"
+ breadcrumb_separator : "/"
+ menu_label : "Menü ein-/ausschalten"
+ search_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 : "Möglich durch"
+ 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..."
+ search_placeholder_text : "Suchbegriff eingeben..."
+ results_found : "Ergebnis(se) gefunden"
+de-DE:
+ <<: *DEFAULT_DE
+de-AT:
+ <<: *DEFAULT_DE
+de-CH:
+ <<: *DEFAULT_DE
+de-BE:
+ <<: *DEFAULT_DE
+de-LI:
+ <<: *DEFAULT_DE
+de-LU:
+ <<: *DEFAULT_DE
+
+# Nepali (Nepal)
+# --------------
+ne: &DEFAULT_NE
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "पृष्ठ"
+ pagination_previous : "अघिल्लो"
+ pagination_next : "अर्को"
+ breadcrumb_home_label : "गृह"
+ breadcrumb_separator : "/"
+ menu_label : "टगल मेनु"
+ search_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 : "फिड"
+ powered_by : "Powered by"
+ website_label : "वेबसाइट"
+ email_label : "इमेल"
+ recent_posts : "ताजा लेखहरु"
+ undefined_wpm : "अपरिभाषित प्यारामिटर शब्दहरू_प्रति_मिनेट at _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 : "लोड हुँदैछ ..."
+ne-NP:
+ <<: *DEFAULT_NE
+
+# Korean
+# ------
+ko: &DEFAULT_KO
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "페이지"
+ pagination_previous : "이전"
+ pagination_next : "다음"
+ breadcrumb_home_label : "Home"
+ breadcrumb_separator : "/"
+ menu_label : "토글 메뉴"
+ search_label :
+ toc_label : "On This Page"
+ 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 : "피드"
+ powered_by : "Powered by"
+ website_label : "웹사이트"
+ email_label : "이메일"
+ recent_posts : "최근 포스트"
+ undefined_wpm : "Undefined parameter words_per_minute at _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 : "로딩중..."
+ko-KR:
+ <<: *DEFAULT_KO
+
+# Russian / Русский
+# -----------------
+ru: &DEFAULT_RU
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Страница"
+ pagination_previous : "Предыдущая"
+ pagination_next : "Следующая"
+ breadcrumb_home_label : "Главная"
+ breadcrumb_separator : "/"
+ menu_label : "Выпадающее меню"
+ search_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 : "RSS-лента"
+ powered_by : "Сайт работает на"
+ website_label : "Сайт"
+ email_label : "Электронная почта"
+ recent_posts : "Свежие записи"
+ undefined_wpm : "Не определён параметр words_per_minute в _config.yml"
+ comment_form_info : "Ваш адрес электронной почты не будет опубликован. Обязательные поля помечены"
+ comment_form_comment_label : "Комментарий"
+ comment_form_md_info : "Поддерживается синтаксис Markdown."
+ 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 : "Отправка..."
+ search_placeholder_text : "Введите поисковый запрос..."
+ results_found : "Найдено"
+ru-RU:
+ <<: *DEFAULT_RU
+
+# Lithuanian / Lietuviškai
+# ------------------------
+lt: &DEFAULT_LT
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Puslapis"
+ pagination_previous : "Ankstesnis"
+ pagination_next : "Sekantis"
+ breadcrumb_home_label : "Pagrindinis"
+ breadcrumb_separator : "/"
+ menu_label : "Meniu rodymas"
+ search_label :
+ toc_label : "Turinys"
+ ext_link_label : "Tiesioginė nuoroda"
+ less_than : "mažiau nei"
+ minute_read : "min. skaitymo"
+ share_on_label : "Pasidalinti"
+ meta_label :
+ tags_label : "Žymės:"
+ categories_label : "Kategorijos:"
+ date_label : "Atnaujinta:"
+ comments_label : "Palikti komentarą"
+ comments_title : "Komentaras"
+ more_label : "Skaityti daugiau"
+ related_label : "Taip pat turėtų patikti"
+ follow_label : "Sekti:"
+ feed_label : "Šaltinis"
+ powered_by : "Sukurta su"
+ website_label : "Tinklapis"
+ email_label : "El. paštas"
+ recent_posts : "Naujausi įrašai"
+ undefined_wpm : "Nedeklaruotas parametras words_per_minute faile _config.yml"
+ comment_form_info : "El. pašto adresas nebus viešinamas. Būtini laukai pažymėti."
+ comment_form_comment_label : "Komentaras"
+ comment_form_md_info : "Markdown palaikomas."
+ comment_form_name_label : "Vardas"
+ comment_form_email_label : "El. paštas"
+ comment_form_website_label : "Tinklapis (nebūtina)"
+ comment_btn_submit : "Komentuoti"
+ comment_btn_submitted : "Įrašytas"
+ comment_success_msg : "Ačiū už komentarą! Jis bus parodytas kai bus patvirtintas."
+ comment_error_msg : "Atleiskite, įvyko netikėta klaida įrašant komentarą. Pasitikrinkite ar užpildėte visus būtinus laukus ir pamėginkite dar kartą."
+ loading_label : "Kraunama..."
+lt-LT:
+ <<: *DEFAULT_LT
+
+# Greek
+# -----
+gr: &DEFAULT_GR
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Σελίδα"
+ pagination_previous : "Προηγούμενo"
+ pagination_next : "Επόμενo"
+ breadcrumb_home_label : "Αρχική"
+ breadcrumb_separator : "/"
+ menu_label : "Μενού"
+ search_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 : "RSS Feed"
+ powered_by : "Δημιουργήθηκε με"
+ website_label : "Ιστοσελίδα"
+ email_label : "Email"
+ recent_posts : "Τελευταίες αναρτήσεις"
+ undefined_wpm : "Δεν έχει οριστεί η παράμετρος words_per_minute στο αρχείο _config.yml"
+ comment_form_info : "Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα απαιτούμενα πεδία εμφανίζονται με αστερίσκο"
+ comment_form_comment_label : "Σχόλιο"
+ comment_form_md_info : "Το πεδίο υποστηρίζει Markdown."
+ comment_form_name_label : "Όνομα"
+ comment_form_email_label : "Διεύθυνση email"
+ comment_form_website_label : "Ιστοσελίδα (προαιρετικό)"
+ comment_btn_submit : "Υπόβαλε ένα σχόλιο"
+ comment_btn_submitted : "Έχει υποβληθεί"
+ comment_success_msg : "Ευχαριστούμε για το σχόλιό σας! Θα εμφανιστεί στην ιστοσελίδα αφού εγκριθεί."
+ comment_error_msg : "Λυπούμαστε, παρουσιάστηκε σφάλμα με την υποβολή σας. Παρακαλούμε βεβαιωθείτε ότι έχετε όλα τα απαιτούμενα πεδία συμπληρωμένα και δοκιμάστε ξανά."
+ loading_label : "Φόρτωση..."
+ search_placeholder_text : "Εισάγετε όρο αναζήτησης..."
+ results_found : "Αποτελέσματα"
+gr-GR:
+ <<: *DEFAULT_GR
+
+# Swedish
+# -------
+sv: &DEFAULT_SV
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Sidan"
+ pagination_previous : "Föregående"
+ pagination_next : "Nästa"
+ breadcrumb_home_label : "Hem"
+ breadcrumb_separator : "/"
+ menu_label : "Växla menyläge"
+ search_label : "Växla sökläge"
+ toc_label : "På denna sida"
+ ext_link_label : "Direkt länk"
+ less_than : "mindre än"
+ minute_read : "minut läsning"
+ share_on_label : "Dela på"
+ meta_label :
+ tags_label : "Taggar:"
+ categories_label : "Kategorier:"
+ date_label : "Uppdaterades:"
+ comments_label : "Lämna en kommentar"
+ comments_title : "Kommentarer"
+ more_label : "Lär dig mer"
+ related_label : "Du kanske vill även läsa:"
+ follow_label : "Följ:"
+ feed_label : "Flöde"
+ powered_by : "Framställd med"
+ website_label : "Webbsida"
+ email_label : "E-post"
+ recent_posts : "Senaste inlägg"
+ undefined_wpm : "Odefinerade parametrar words_per_minute i _config.yml"
+ comment_form_info : "Din e-post adress kommer inte att publiceras. Obligatoriska fält är markerade."
+ comment_form_comment_label : "Kommentar"
+ comment_form_md_info : "Stöd för Markdown finns."
+ comment_form_name_label : "Namn"
+ comment_form_email_label : "E-post adress"
+ comment_form_website_label : "Webdsida (valfritt)"
+ comment_btn_submit : "Skicka en kommentar"
+ comment_btn_submitted : "Kommentaren har tagits emot"
+ comment_success_msg : "Tack för din kommentar! Den kommer att visas på sidan så fort den har godkännts."
+ comment_error_msg : "Tyvärr det har blivit något fel i ett av fälten, se till att du fyllt i alla obligatoriska fält och försök igen."
+ loading_label : "Laddar..."
+ search_placeholder_text : "Fyll i sökterm..."
+ results_found : "Resultat funna"
+ back_to_top : "Tillbaka till toppen"
+sv-SE:
+ <<: *DEFAULT_SV
+sv-FI:
+ <<: *DEFAULT_SV
+
+# Dutch
+# -----
+nl: &DEFAULT_NL
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Pagina"
+ pagination_previous : "Vorige"
+ pagination_next : "Volgende"
+ breadcrumb_home_label : "Home"
+ breadcrumb_separator : "/"
+ menu_label : "Wissel Menu"
+ search_label :
+ toc_label : "Op deze pagina"
+ ext_link_label : "Directe Link"
+ less_than : "minder dan"
+ minute_read : "minuut gelezen"
+ share_on_label : "Deel op"
+ meta_label :
+ tags_label : "Labels:"
+ categories_label : "Categorieën:"
+ date_label : "Bijgewerkt:"
+ comments_label : "Laat een reactie achter"
+ comments_title : "Commentaren"
+ more_label : "Meer informatie"
+ related_label : "Bekijk ook eens"
+ follow_label : "Volg:"
+ feed_label : "Feed"
+ powered_by : "Aangedreven door"
+ website_label : "Website"
+ email_label : "Email"
+ recent_posts : "Recente berichten"
+ undefined_wpm : "Niet gedefinieerde parameter words_per_minute bij _config.yml"
+ comment_form_info : "Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd"
+ comment_form_comment_label : "Commentaar"
+ comment_form_md_info : "Markdown wordt ondersteund."
+ comment_form_name_label : "Naam"
+ comment_form_email_label : "E-mailadres"
+ comment_form_website_label : "Website (optioneel)"
+ comment_btn_submit : "Commentaar toevoegen"
+ comment_btn_submitted : "Toegevoegd"
+ comment_success_msg : "Bedankt voor uw reactie! Het zal op de site worden weergegeven zodra het is goedgekeurd."
+ comment_error_msg : "Sorry, er is een fout opgetreden bij uw inzending. Zorg ervoor dat alle vereiste velden zijn voltooid en probeer het opnieuw."
+ loading_label : "Laden..."
+nl-BE:
+ <<: *DEFAULT_NL
+nl-NL:
+ <<: *DEFAULT_NL
+
+# Indonesian
+# ----------
+id: &DEFAULT_ID
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Halaman"
+ pagination_previous : "Kembali"
+ pagination_next : "Maju"
+ breadcrumb_home_label : "Home"
+ breadcrumb_separator : "/"
+ menu_label : "Menu Toggle"
+ search_label :
+ toc_label : "Pada Halaman Ini"
+ ext_link_label : "Link langsung"
+ less_than : "Kurang dari"
+ minute_read : "Waktu baca"
+ share_on_label : "Berbagi di"
+ meta_label :
+ tags_label : "Golongan:"
+ categories_label : "Kategori:"
+ date_label : "Diupdate:"
+ comments_label : "Tinggalkan komentar"
+ comments_title : "Komentar"
+ more_label : "Pelajari lagi"
+ related_label : "Anda juga akan suka"
+ follow_label : "Ikuti:"
+ feed_label : "Feed"
+ powered_by : "Didukung oleh"
+ website_label : "Website"
+ email_label : "Email"
+ recent_posts : "Posting terbaru"
+ undefined_wpm : "Parameter terdeskripsi words_per_minute di _config.yml"
+ comment_form_info : "Email Anda tidak akan dipublish. Kolom yang diperlukan ditandai"
+ comment_form_comment_label : "Komentar"
+ comment_form_md_info : "Markdown disupport."
+ comment_form_name_label : "Nama"
+ comment_form_email_label : "Alamat email"
+ comment_form_website_label : "Website (opsional)"
+ comment_btn_submit : "Submit Komentar"
+ comment_btn_submitted : "Telah disubmit"
+ comment_success_msg : "Terimakasih atas komentar Anda! Komentar ini akan tampil setelah disetujui."
+ comment_error_msg : "Maaf, ada kesalahan pada submisi Anda. Pastikan seluruh kolom sudah dilengkapi dan coba kembali."
+ loading_label : "Sedang meload..."
+id-ID:
+ <<: *DEFAULT_ID
+
+# Vietnamese
+# ----------
+vi: &DEFAULT_VI
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Trang"
+ pagination_previous : "Trước"
+ pagination_next : "Sau"
+ breadcrumb_home_label : "Trang chủ"
+ breadcrumb_separator : "/"
+ menu_label : "Menu"
+ search_label :
+ toc_label : "Tại trang này"
+ ext_link_label : "Đường dẫn trực tiếp"
+ less_than : "nhỏ hơn"
+ minute_read : "phút đọc"
+ share_on_label : "Chia sẻ tại"
+ meta_label :
+ tags_label : "Nhãn:"
+ categories_label : "Chủ đề:"
+ date_label : "Cập nhật:"
+ comments_label : "Để lại bình luận"
+ comments_title : "Bình luận"
+ more_label : "Mở rộng"
+ related_label : "Có thể bạn cũng thích"
+ follow_label : "Theo dõi:"
+ feed_label : "Feed"
+ powered_by : "Được hỗ trợ bởi"
+ website_label : "Website"
+ email_label : "Email"
+ recent_posts : "Bài viết mới"
+ undefined_wpm : "Chưa định nghĩa thông số words_per_minute tại _config.yml"
+ comment_form_info : "Email của bạn sẽ được giữ bí mật. Các phần bắt buộc được đánh dấu."
+ comment_form_comment_label : "Bình luận"
+ comment_form_md_info : "Hỗ trợ Markdown."
+ comment_form_name_label : "Tên"
+ comment_form_email_label : "Địa chỉ email"
+ comment_form_website_label : "Website (không bắt buộc)"
+ comment_btn_submit : "Gửi bình luận"
+ comment_btn_submitted : "Đã được gửi"
+ comment_success_msg : "Cảm ơn bạn đã bình luận! Bình luận sẽ xuất hiện sau khi được duyệt."
+ comment_error_msg : "Rất tiếc, có lỗi trong việc gửi bình luận. Hãy đảm bảo toàn bộ các phần bắt buộc đã được điền đầy đủ và thử lại."
+ loading_label : "Đang tải..."
+ search_placeholder_text : "Nhập từ khóa cần tìm..."
+ results_found : "Kết quả tìm được"
+ back_to_top : "Lên đầu trang"
+vi-VN:
+ <<: *DEFAULT_VI
+
+# Danish
+# ------
+da: &DEFAULT_DA
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Side"
+ pagination_previous : "Forrige"
+ pagination_next : "Næste"
+ breadcrumb_home_label : "Home"
+ breadcrumb_separator : "/"
+ menu_label : "Vis/skjul menu"
+ search_label :
+ toc_label : "På denne side"
+ ext_link_label : "Direkte link"
+ less_than : "mindre end"
+ minute_read : "minutters læsning"
+ share_on_label : "Del på"
+ meta_label :
+ tags_label : "Nøgleord:"
+ categories_label : "Kategorier:"
+ date_label : "Opdateret:"
+ comments_label : "Skriv en kommentar"
+ comments_title : "Kommentarer"
+ more_label : "Lær mere"
+ related_label : "Måske kan du også lide"
+ follow_label : "Følg:"
+ feed_label : "Feed"
+ powered_by : "Drives af"
+ website_label : "Website"
+ email_label : "E-mail"
+ recent_posts : "Seneste indlæg"
+ undefined_wpm : "Parameteren words_per_minute er ikke defineret i _config.yml"
+ comment_form_info : "Din e-mail bliver ikke offentliggjort. Obligatoriske felter er markeret"
+ comment_form_comment_label : "Kommentar"
+ comment_form_md_info : "Markdown er understøttet."
+ comment_form_name_label : "Navn"
+ comment_form_email_label : "E-mail"
+ comment_form_website_label : "Website (frivillig)"
+ comment_btn_submit : "Send kommentar"
+ comment_btn_submitted : "Sendt"
+ comment_success_msg : "Tak for din kommentar! Den bliver vist på siden, så snart den er godkendt."
+ comment_error_msg : "Desværre skete der en fejl. Prøv igen, mens du sørger for at alle obligatoriske felter er udfyldt."
+ loading_label : "Indlæser..."
+ search_placeholder_text : "Hvad leder du efter..."
+ results_found : "Resultat(er) fundet"
+ back_to_top : "Tilbage til toppen"
+da-DK:
+ <<: *DEFAULT_DA
+
+# Polish
+# ------
+pl: &DEFAULT_PL
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Strona"
+ pagination_previous : "Poprzednia"
+ pagination_next : "Następna"
+ breadcrumb_home_label : "Strona główna"
+ breadcrumb_separator : "/"
+ menu_label : "Przełącz menu"
+ search_label :
+ toc_label : "Spis treści"
+ ext_link_label : "Link bezpośredni"
+ less_than : "mniej niż"
+ minute_read : "minut(y)"
+ share_on_label : "Udostępnij"
+ meta_label :
+ tags_label : "Tagi:"
+ categories_label : "Kategorie:"
+ date_label : "Ostatnia aktualizacja:"
+ comments_label : "Zostaw komentarz"
+ comments_title : "Komentarze"
+ more_label : "Dowiedz się więcej"
+ related_label : "Także może Ci się spodobać"
+ follow_label : "Śledź:"
+ feed_label : "Feed"
+ powered_by : "Powstało dzięki"
+ website_label : "Strona"
+ email_label : "Email"
+ recent_posts : "Najnowsze wpisy"
+ undefined_wpm : "Parametr words_per_minute nie został zdefiniowany w _config.yml."
+ comment_form_info : "Twój adres email nie będzie udostępiony. Wymagane pola są oznaczone."
+ comment_form_comment_label : "Skomentuj"
+ comment_form_md_info : "Markdown jest wspierany"
+ comment_form_name_label : "Imię"
+ comment_form_email_label : "Adres email"
+ comment_form_website_label : "Strona www (opcjonalna)"
+ comment_btn_submit : "Skomentuj"
+ comment_btn_submitted : "Komentarz dodany"
+ comment_success_msg : "Dziękuję za Twój komentarz! Zostanie dodany po akceptacji."
+ comment_error_msg : "Niestety wystąpił błąd. Proszę upewnij się, że wszystkie wymagane pola zostały wypełnione i spróbuj ponownie."
+ loading_label : "Trwa ładowanie strony..."
+pl-PL:
+ <<: *DEFAULT_PL
+
+# Japanese
+# --------
+ja: &DEFAULT_JA
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "ページ"
+ pagination_previous : "前へ"
+ pagination_next : "次へ"
+ breadcrumb_home_label : "ホーム"
+ breadcrumb_separator : "/"
+ menu_label : "メニュー"
+ search_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 :
+ powered_by :
+ website_label :
+ email_label :
+ recent_posts : "最近の投稿"
+ undefined_wpm : "パラメータ words_per_minute が _config.yml で定義されていません"
+ comment_form_info : "メールアドレスが公開されることはありません。次の印のある項目は必ず入力してください:"
+ comment_form_comment_label : "コメント"
+ comment_form_md_info : "Markdown を使用できます"
+ comment_form_name_label : "名前"
+ comment_form_email_label : "メールアドレス"
+ comment_form_website_label : "URL (任意)"
+ comment_btn_submit : "コメントを送信する"
+ comment_btn_submitted : "送信しました"
+ comment_success_msg : "コメントありがとうございます! コメントは承認されるとページに表示されます。"
+ comment_error_msg : "送信エラーです。必須項目がすべて入力されていることを確認して再送信してください。"
+ loading_label : "読み込み中..."
+ search_placeholder_text : "検索キーワードを入力してください..."
+ results_found : "件"
+ja-JP:
+ <<: *DEFAULT_JA
+
+# Slovak
+# -----------------
+sk: &DEFAULT_SK
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Stránka"
+ pagination_previous : "Predošlá"
+ pagination_next : "Ďalšia"
+ breadcrumb_home_label : "Domov"
+ breadcrumb_separator : "/"
+ menu_label : "Menu"
+ search_label :
+ toc_label : "Obsah"
+ ext_link_label : "Priamy odkaz"
+ less_than : "menej ako"
+ minute_read : "minút"
+ share_on_label : "Zdieľaj na"
+ meta_label :
+ tags_label : "Tagy:"
+ categories_label : "Kategórie:"
+ date_label : "Aktualizované:"
+ comments_label : "Zanechaj odkaz"
+ comments_title : "Komentáre"
+ more_label : "Dozvedieť sa viac"
+ related_label : "Podobné články"
+ follow_label : "Sleduj:"
+ feed_label : "Zoznam"
+ powered_by : "Stránka vytvorená pomocou"
+ website_label : "Web stránka"
+ email_label : "Email"
+ recent_posts : "Najnovšie príspevky"
+ undefined_wpm : "Nedefinovaný parameter words_per_minute v _config.yml"
+ comment_form_info : "Tvoja emailová adresa nebude publikovaná. Požadované polia sú označené"
+ comment_form_comment_label : "Komentár"
+ comment_form_md_info : "Markdown je podporovaný."
+ comment_form_name_label : "Meno"
+ comment_form_email_label : "Emailová adresa"
+ comment_form_website_label : "Webstránka (voliteľné)"
+ comment_btn_submit : "Vlož komentár"
+ comment_btn_submitted : "Vložený"
+ comment_success_msg : "Ďakujem za tvoj komentár! Po schválení bude zobrazený na stránke."
+ comment_error_msg : "Prepáč, pri ukladaní nastala chyba. Ubezpeč sa prosím, že si vyplnil všetky požadované polia a skús znova."
+ loading_label : "Načítava sa..."
+ search_placeholder_text : "Zadaj hľadaný výraz..."
+ results_found : "Nájdených výsledkov"
+ back_to_top : "Na začiatok stránky"
+sk-SK:
+ <<: *DEFAULT_SK
+
+# Hungarian
+# -----------------
+hu: &DEFAULT_HU
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Oldal"
+ pagination_previous : "Előző"
+ pagination_next : "Következő"
+ breadcrumb_home_label : "Kezdőlap"
+ breadcrumb_separator : "/"
+ menu_label : "Menü nyit/zár"
+ search_label :
+ toc_label : "Ezen az oldalon"
+ ext_link_label : "Közvetlen Link"
+ less_than : "kevesebb mint"
+ minute_read : "eltöltött percek"
+ share_on_label : "Megosztás"
+ meta_label :
+ tags_label : "Tagek:"
+ categories_label : "Kategóriák:"
+ date_label : "Frissítve:"
+ comments_label : "Szólj hozzá!"
+ comments_title : "Hozzászólások"
+ more_label : "Tovább"
+ related_label : "Ajánlások"
+ follow_label : "Követés:"
+ feed_label : "Folyam"
+ powered_by : "Powered by"
+ website_label : "Honlap"
+ email_label : "Email"
+ recent_posts : "Friss cikkek"
+ undefined_wpm : "Ismeretlen paraméter words_per_minute : _config.yml"
+ comment_form_info : "Az e-mail címed nem lesz publikus. A csillagozott mezők kitöltése kötelező."
+ comment_form_comment_label : "Hozzászólás"
+ comment_form_md_info : "Támogatott formázási mód: Markdown"
+ comment_form_name_label : "Név"
+ comment_form_email_label : "Email cím"
+ comment_form_website_label : "Honlap (nem kötelező):"
+ comment_btn_submit : "Hozzászólás elküldése"
+ comment_btn_submitted : "Hozzászólás elküldve"
+ comment_success_msg : "Köszönjük a Hozzászólást! A Hozzászólások csak előzetes moderáció után lesznek publikusak."
+ comment_error_msg : "Hoppá, hiba történt a beküldés közben. Kérlek ellenőrizd hogy minden kötelező mező ki van-e töltve."
+ loading_label : "Betöltés..."
+ search_placeholder_text : "Keresendő szöveg..."
+ results_found : "Találatok:"
+ back_to_top : "Oldal tetejére"
+hu-HU:
+ <<: *DEFAULT_HU
+
+# Romanian
+# -----------------
+ro: &DEFAULT_RO
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "Pagina"
+ pagination_previous : "Anterior"
+ pagination_next : "Următor"
+ breadcrumb_home_label : "Acasă"
+ breadcrumb_separator : "/"
+ menu_label : "Comută meniul"
+ search_label :
+ toc_label : "Pe această pagină"
+ ext_link_label : "Link direct"
+ less_than : "mai puțin de"
+ minute_read : "minute de citit"
+ share_on_label : "Distribuie pe"
+ meta_label :
+ tags_label : "Etichete:"
+ categories_label : "Categorii:"
+ date_label : "Actualizat:"
+ comments_label : "Lasă un comentariu"
+ comments_title : "Comentarii"
+ more_label : "Citește mai departe"
+ related_label : "S-ar putea să-ți placă"
+ follow_label : "Urmărește:"
+ feed_label : "Feed RSS"
+ powered_by : "Cu sprijinul"
+ website_label : "Site"
+ email_label : "Email"
+ recent_posts : "Articole recente"
+ undefined_wpm : "Parametru words_per_minute nedefinit în _config.yml"
+ comment_form_info : "Adresa ta de email nu va fi făcută publică. Câmpurile marcate sunt obligatorii"
+ comment_form_comment_label : "Comentariu"
+ comment_form_md_info : "Markdown este suportat."
+ comment_form_name_label : "Nume"
+ comment_form_email_label : "Adresă de email"
+ comment_form_website_label : "Site (opțional)"
+ comment_btn_submit : "Trimite comentariul"
+ comment_btn_submitted : "Trimis"
+ comment_success_msg : "Mulțumesc pentru comentariu! Va apărea pe site în momentul în care va fi aprobat."
+ comment_error_msg : "Scuze, este o problemă cu comentariul tău. Asigură-te că toate câmpurile obligatorii au fost completate și încearcă din nou."
+ loading_label : "Se încarcă..."
+ search_placeholder_text : "Caută ceva..."
+ results_found : "Rezultate găsite"
+ back_to_top : "Înapoi în susul paginii"
+ro-RO:
+ <<: *DEFAULT_RO
+
+# Punjabi
+# -----------------
+pa: &DEFAULT_PA
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "ਸਫ਼ਾ"
+ pagination_previous : "ਪਿਛਲਾ"
+ pagination_next : "ਅਗਲਾ "
+ breadcrumb_home_label : "ਘਰ"
+ breadcrumb_separator : "/"
+ menu_label : "ਟੌਗਲ ਮੀਨੂ"
+ search_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 : "ਫੀਡ"
+ powered_by : "ਦੁਆਰਾ ਸੰਚਾਲਿਤ"
+ website_label : "ਵੈੱਬਸਾਇਟ"
+ email_label : "ਈਮੇਲ"
+ recent_posts : "ਹਾਲ ਹੀ ਦੇ ਪੋਸਟ"
+ undefined_wpm : "_config.yml ਤੇ ਅਣ-ਪ੍ਰਭਾਸ਼ਿਤ ਪੈਰਾਮੀਟਰ words_per_minute"
+ 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 : "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ..."
+ search_placeholder_text : "ਆਪਣੀ ਖੋਜ ਦੇ ਸ਼ਬਦ ਨੂੰ ਦਰਜ ਕਰੋ..."
+ results_found : "ਨਤੀਜਾ ਮਿਲਿਆ/ਮਿਲੇ"
+ back_to_top : "ਵਾਪਸ ਚੋਟੀ 'ਤੇ ਜਾਓ"
+pa-IN:
+ <<: *DEFAULT_PA
+
+# Persian (Farsi)
+# --------------
+fa: &DEFAULT_FA
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ 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 : "خوراک"
+ powered_by : "طراحی شده توسط"
+ website_label : "سایت اینترنتی"
+ email_label : "پست الکترونیک"
+ recent_posts : "آخرین مطالب"
+ undefined_wpm : ".(words_per_minute) _config.yml متغیر اشتباه در"
+ comment_form_info : ".آدرس ایمیل شما منتشر نخواهد شد. فیلدهای اجباری مشخص شده اند"
+ comment_form_comment_label : "دیدگاه"
+ comment_form_md_info : ".پشتیبانی می شود Markdown"
+ 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 : "...بارگذاری"
+ search_placeholder_text : "...عبارت جستجوی خود را وارد کنید"
+ results_found : "نتایج"
+ back_to_top : "بازگشت به بالا"
+fa-IR:
+ <<: *DEFAULT_FA
+
+
+# Malayalam
+# -----------------
+ml: &DEFAULT_ML
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "പേജ്"
+ pagination_previous : "തിരികെ"
+ pagination_next : "മുന്നോട്ട്"
+ breadcrumb_home_label : "ഹോം"
+ breadcrumb_separator : "/"
+ menu_label : "ടോഗിൾ മെനു"
+ search_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 : "ഫീഡ്"
+ powered_by : "പവേർഡ് ബൈ"
+ website_label : "വെബ്സൈറ്റ്"
+ email_label : "ഇ-മെയിൽ"
+ recent_posts : "സമീപകാല പോസ്റ്റുകൾ"
+ undefined_wpm : "Config.yml ലെ words_per_minute പരാമീറ്റർ നിർവചിച്ചിട്ടില്ല."
+ comment_form_info : "നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിക്കില്ല. ആവശ്യമായ ഫീൽഡുകൾ അടയാളപ്പെടുത്തി."
+ comment_form_comment_label : "കമന്റ്"
+ comment_form_md_info : "Markdown സപ്പോർട്ട് ചെയ്യുന്നതാണ്."
+ 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 : "ലോഡിംഗ്..."
+ search_placeholder_text : "നിങ്ങളുടെ തിരയൽ പദം നൽകുക..."
+ results_found : "ഫലം (കൾ) കണ്ടെത്തി"
+ back_to_top : "മുകളിലേയ്ക്ക്"
+ml-IN:
+ <<: *DEFAULT_ML
+
+# Thailand
+# --------------
+th: &DEFAULT_TH
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ page : "หน้า"
+ pagination_previous : "ก่อนหน้า"
+ pagination_next : "ถัดไป"
+ breadcrumb_home_label : "หน้าแรก"
+ breadcrumb_separator : "/"
+ menu_label : "พับเมนู"
+ search_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 : "ฟืดข่าว"
+ powered_by : "ขับเคลื่อนโดย"
+ website_label : "เว็บไซต์"
+ email_label : "อีเมล"
+ recent_posts : "โพสล่าสุด"
+ undefined_wpm : "ไม่สามารถระบุพารามิเตอร์ words_per_minute ได้ใน _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 : "กำลังโหลด..."
+ search_placeholder_text : "ใส่คำค้นหาของคุณ..."
+ results_found : "ผลการค้นหา พบ"
+ back_to_top : "กลับด้านบน"
+th-TH:
+ <<: *DEFAULT_TH
+
+# Hindi
+# -----------------
+hi: &DEFAULT_HI
+ skip_links :
+ skip_primary_nav :
+ skip_content :
+ skip_footer :
+ 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 : "फ़ीड"
+ powered_by : "द्वारा संचालित"
+ website_label : "वेबसाइट"
+ email_label : "ईमेल"
+ recent_posts : "हाल के पोस्ट"
+ undefined_wpm : "_config.yml पर अपरिभाषित पैरामीटर words_per_minute"
+ 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 : "लोड हो रहा है..."
+ search_placeholder_text : "अपना खोज शब्द दर्ज करें..."
+ results_found : "परिणाम मिला/मिले"
+ back_to_top : "शीर्ष पर वापस"
+hi-IN:
+ <<: *DEFAULT_HI
+
+# Another locale
+# --------------
+#
diff --git a/_includes/analytics-providers/custom.html b/_includes/analytics-providers/custom.html
new file mode 100644
index 0000000..c34b97a
--- /dev/null
+++ b/_includes/analytics-providers/custom.html
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/_includes/analytics-providers/google-gtag.html b/_includes/analytics-providers/google-gtag.html
new file mode 100644
index 0000000..16d0cf1
--- /dev/null
+++ b/_includes/analytics-providers/google-gtag.html
@@ -0,0 +1,9 @@
+
+
+
diff --git a/_includes/analytics-providers/google-universal.html b/_includes/analytics-providers/google-universal.html
new file mode 100644
index 0000000..68c2674
--- /dev/null
+++ b/_includes/analytics-providers/google-universal.html
@@ -0,0 +1,7 @@
+
+
diff --git a/_includes/analytics-providers/google.html b/_includes/analytics-providers/google.html
new file mode 100644
index 0000000..99412b0
--- /dev/null
+++ b/_includes/analytics-providers/google.html
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/_includes/analytics.html b/_includes/analytics.html
new file mode 100644
index 0000000..371469f
--- /dev/null
+++ b/_includes/analytics.html
@@ -0,0 +1,14 @@
+{% if jekyll.environment == 'production' and 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 "google-gtag" %}
+ {% include /analytics-providers/google-gtag.html %}
+{% when "custom" %}
+ {% include /analytics-providers/custom.html %}
+{% endcase %}
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/archive-single.html b/_includes/archive-single.html
new file mode 100644
index 0000000..489f000
--- /dev/null
+++ b/_includes/archive-single.html
@@ -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: "" | remove: "
" %}
+{% else %}
+ {% assign title = post.title %}
+{% endif %}
+
+
+
+ {% if include.type == "grid" and teaser %}
+
+
+
+ {% endif %}
+
+ {% if post.read_time %}
+ {% include read-time.html %}
+ {% endif %}
+ {% if post.excerpt %}{{ post.excerpt | markdownify | strip_html | truncate: 160 }}
{% endif %}
+
+
diff --git a/_includes/author-profile-custom-links.html b/_includes/author-profile-custom-links.html
new file mode 100644
index 0000000..b89ffcb
--- /dev/null
+++ b/_includes/author-profile-custom-links.html
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/_includes/author-profile.html b/_includes/author-profile.html
new file mode 100644
index 0000000..4f0c02c
--- /dev/null
+++ b/_includes/author-profile.html
@@ -0,0 +1,263 @@
+{% assign author = page.author | default: page.authors[0] | default: site.author %}
+{% assign author = site.data.authors[author] | default: author %}
+
+
+
+ {% if author.avatar %}
+
+ {% if author.avatar contains "://" %}
+ {% assign author_src = author.avatar %}
+ {% else %}
+ {% assign author_src = author.avatar | relative_url %}
+ {% endif %}
+
+ {% if author.home %}
+ {% if author.home contains "://" %}
+ {% assign author_link = author.home %}
+ {% else %}
+ {% assign author_link = author.home | relative_url %}
+ {% endif %}
+
+
+
+ {% else %}
+
+ {% endif %}
+
+ {% endif %}
+
+
+ {% if author.home %}
+
{{ author.name }}
+ {% else %}
+
{{ author.name }}
+ {% endif %}
+ {% if author.bio %}
+
+ {{ author.bio }}
+
+ {% endif %}
+
+
+
+
{{ site.data.ui-text[site.locale].follow_label | remove: ":" | default: "Follow" }}
+
+
+
diff --git a/_includes/breadcrumbs.html b/_includes/breadcrumbs.html
new file mode 100644
index 0000000..cba3d41
--- /dev/null
+++ b/_includes/breadcrumbs.html
@@ -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 %}
+
+
+
+ {% assign crumbs = page.url | split: '/' %}
+ {% assign i = 1 %}
+ {% for crumb in crumbs offset: 1 %}
+ {% if forloop.first %}
+
+ {{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}
+
+
+ {{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}
+ {% endif %}
+ {% if forloop.last %}
+ {{ page.title }}
+ {% else %}
+ {% assign i = i | plus: 1 %}
+
+ {{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}
+
+
+ {{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}
+ {% endif %}
+ {% endfor %}
+
+
diff --git a/_includes/browser-upgrade.html b/_includes/browser-upgrade.html
new file mode 100644
index 0000000..ec6ad0a
--- /dev/null
+++ b/_includes/browser-upgrade.html
@@ -0,0 +1,3 @@
+
diff --git a/_includes/category-list.html b/_includes/category-list.html
new file mode 100644
index 0000000..d684a28
--- /dev/null
+++ b/_includes/category-list.html
@@ -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 %}
+
+
+ {% 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 %}
+
+
+ {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }}
+
+ {% for hash in category_hashes %}
+ {% assign keyValue = hash | split: '|' %}
+ {% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
+ {{ category_word }} {% unless forloop.last %}, {% endunless %}
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/comment.html b/_includes/comment.html
new file mode 100644
index 0000000..cebedab
--- /dev/null
+++ b/_includes/comment.html
@@ -0,0 +1,22 @@
+
diff --git a/_includes/comments-providers/custom.html b/_includes/comments-providers/custom.html
new file mode 100644
index 0000000..9099369
--- /dev/null
+++ b/_includes/comments-providers/custom.html
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/_includes/comments-providers/discourse.html b/_includes/comments-providers/discourse.html
new file mode 100644
index 0000000..aca62cc
--- /dev/null
+++ b/_includes/comments-providers/discourse.html
@@ -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 %}
+
+Please enable JavaScript to view the comments powered by Discourse.
+{% endif %}
diff --git a/_includes/comments-providers/disqus.html b/_includes/comments-providers/disqus.html
new file mode 100644
index 0000000..8cf7aca
--- /dev/null
+++ b/_includes/comments-providers/disqus.html
@@ -0,0 +1,15 @@
+{% if site.comments.disqus.shortname %}
+
+Please enable JavaScript to view the comments powered by Disqus.
+{% endif %}
diff --git a/_includes/comments-providers/facebook.html b/_includes/comments-providers/facebook.html
new file mode 100644
index 0000000..009dc1c
--- /dev/null
+++ b/_includes/comments-providers/facebook.html
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/_includes/comments-providers/scripts.html b/_includes/comments-providers/scripts.html
new file mode 100644
index 0000000..4e3f585
--- /dev/null
+++ b/_includes/comments-providers/scripts.html
@@ -0,0 +1,18 @@
+{% 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 "staticman" %}
+ {% include /comments-providers/staticman.html %}
+ {% when "staticman_v2" %}
+ {% include /comments-providers/staticman_v2.html %}
+ {% when "utterances" %}
+ {% include /comments-providers/utterances.html %}
+ {% when "custom" %}
+ {% include /comments-providers/custom.html %}
+{% endcase %}
+{% endif %}
\ No newline at end of file
diff --git a/_includes/comments-providers/staticman.html b/_includes/comments-providers/staticman.html
new file mode 100644
index 0000000..ae3991d
--- /dev/null
+++ b/_includes/comments-providers/staticman.html
@@ -0,0 +1,40 @@
+{% if site.repository and site.staticman.branch %}
+
+{% endif %}
diff --git a/_includes/comments-providers/staticman_v2.html b/_includes/comments-providers/staticman_v2.html
new file mode 100644
index 0000000..ae3991d
--- /dev/null
+++ b/_includes/comments-providers/staticman_v2.html
@@ -0,0 +1,40 @@
+{% if site.repository and site.staticman.branch %}
+
+{% endif %}
diff --git a/_includes/comments-providers/utterances.html b/_includes/comments-providers/utterances.html
new file mode 100644
index 0000000..129ab77
--- /dev/null
+++ b/_includes/comments-providers/utterances.html
@@ -0,0 +1,20 @@
+
diff --git a/_includes/comments.html b/_includes/comments.html
new file mode 100644
index 0000000..40b0359
--- /dev/null
+++ b/_includes/comments.html
@@ -0,0 +1,159 @@
+
diff --git a/_includes/documents-collection.html b/_includes/documents-collection.html
new file mode 100644
index 0000000..13b4006
--- /dev/null
+++ b/_includes/documents-collection.html
@@ -0,0 +1,19 @@
+{% assign entries = site[include.collection] %}
+
+{% if include.sort_by == 'title' %}
+ {% if include.sort_order == 'reverse' %}
+ {% assign entries = entries | sort: 'title' | reverse %}
+ {% else %}
+ {% assign entries = entries | sort: 'title' %}
+ {% endif %}
+{% elsif include.sort_by == 'date' %}
+ {% if include.sort_order == 'reverse' %}
+ {% assign entries = entries | sort: 'date' | reverse %}
+ {% else %}
+ {% assign entries = entries | sort: 'date' %}
+ {% endif %}
+{% endif %}
+
+{%- for post in entries -%}
+ {% include archive-single.html %}
+{%- endfor -%}
diff --git a/_includes/feature_row b/_includes/feature_row
new file mode 100644
index 0000000..89dfc1b
--- /dev/null
+++ b/_includes/feature_row
@@ -0,0 +1,53 @@
+{% if include.id %}
+ {% assign feature_row = page[include.id] %}
+{% else %}
+ {% assign feature_row = page.feature_row %}
+{% endif %}
+
+
+
+ {% for f in feature_row %}
+
+ {% if f.url contains "://" %}
+ {% capture f_url %}{{ f.url }}{% endcapture %}
+ {% else %}
+ {% capture f_url %}{{ f.url | relative_url }}{% endcapture %}
+ {% endif %}
+
+
+ {% endfor %}
+
+
\ No newline at end of file
diff --git a/_includes/figure b/_includes/figure
new file mode 100644
index 0000000..8e9bdd5
--- /dev/null
+++ b/_includes/figure
@@ -0,0 +1,12 @@
+
+
+ {% if include.caption %}
+
+ {{ include.caption | markdownify | remove: "" | remove: "
" }}
+ {% endif %}
diff --git a/_includes/footer.html b/_includes/footer.html
new file mode 100644
index 0000000..2bc7896
--- /dev/null
+++ b/_includes/footer.html
@@ -0,0 +1,19 @@
+
+
+
diff --git a/_includes/footer/custom.html b/_includes/footer/custom.html
new file mode 100644
index 0000000..d512599
--- /dev/null
+++ b/_includes/footer/custom.html
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/_includes/gallery b/_includes/gallery
new file mode 100644
index 0000000..97022aa
--- /dev/null
+++ b/_includes/gallery
@@ -0,0 +1,51 @@
+{% if include.id %}
+ {% assign gallery = page[include.id] %}
+{% else %}
+ {% assign gallery = page.gallery %}
+{% endif %}
+
+{% if include.layout %}
+ {% assign gallery_layout = include.layout %}
+{% else %}
+ {% if gallery.size == 2 %}
+ {% assign gallery_layout = 'half' %}
+ {% elsif gallery.size >= 3 %}
+ {% assign gallery_layout = 'third' %}
+ {% else %}
+ {% assign gallery_layout = '' %}
+ {% endif %}
+{% endif %}
+
+
+ {% for img in gallery %}
+ {% if img.url %}
+
+
+
+ {% else %}
+
+ {% endif %}
+ {% endfor %}
+ {% if include.caption %}
+ {{ include.caption | markdownify | remove: "" | remove: "
" }}
+ {% endif %}
+
\ No newline at end of file
diff --git a/_includes/group-by-array b/_includes/group-by-array
new file mode 100644
index 0000000..708de41
--- /dev/null
+++ b/_includes/group-by-array
@@ -0,0 +1,47 @@
+
+
+
+{% assign __empty_array = '' | split: ',' %}
+{% assign group_names = __empty_array %}
+{% assign group_items = __empty_array %}
+
+
+{% assign __names = include.collection | map: include.field %}
+
+
+{% assign __names = __names | join: ',' | join: ',' | split: ',' %}
+
+
+{% assign __names = __names | sort %}
+{% for name in __names %}
+
+
+{% unless name == previous %}
+
+
+{% assign group_names = group_names | push: name %}
+{% endunless %}
+
+{% assign previous = name %}
+{% endfor %}
+
+
+
+{% for name in group_names %}
+
+
+{% assign __item = __empty_array %}
+{% for __element in include.collection %}
+{% if __element[include.field] contains name %}
+{% assign __item = __item | push: __element %}
+{% endif %}
+{% endfor %}
+
+
+{% assign group_items = group_items | push: __item %}
+{% endfor %}
\ No newline at end of file
diff --git a/_includes/head.html b/_includes/head.html
new file mode 100644
index 0000000..cb68465
--- /dev/null
+++ b/_includes/head.html
@@ -0,0 +1,41 @@
+
+
+{% include seo.html %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% if site.head_scripts %}
+ {% for script in site.head_scripts %}
+ {% if script contains "://" %}
+ {% capture script_path %}{{ script }}{% endcapture %}
+ {% else %}
+ {% capture script_path %}{{ script | relative_url }}{% endcapture %}
+ {% endif %}
+
+ {% endfor %}
+{% endif %}
diff --git a/_includes/head/custom.html b/_includes/head/custom.html
new file mode 100644
index 0000000..978d84f
--- /dev/null
+++ b/_includes/head/custom.html
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/_includes/masthead.html b/_includes/masthead.html
new file mode 100644
index 0000000..1c308f2
--- /dev/null
+++ b/_includes/masthead.html
@@ -0,0 +1,42 @@
+{% if site.logo contains "://" %}
+ {% capture logo_path %}{{ site.logo }}{% endcapture %}
+{% else %}
+ {% capture logo_path %}{{ site.logo }}{% endcapture %}
+{% endif %}
+
+
diff --git a/_includes/nav_list b/_includes/nav_list
new file mode 100644
index 0000000..b1d06c3
--- /dev/null
+++ b/_includes/nav_list
@@ -0,0 +1,47 @@
+{% assign navigation = site.data.navigation[include.nav] %}
+
+
+ {% if page.sidebar.title %}{{ page.sidebar.title }} {% endif %}
+
+ {{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}
+
+ {% for nav in navigation %}
+
+ {% if nav.url %}
+ {% comment %} internal/external URL check {% endcomment %}
+ {% if nav.url contains "://" %}
+ {% assign nav_url = nav.url %}
+ {% else %}
+ {% assign nav_url = nav.url | relative_url %}
+ {% endif %}
+
+ {{ nav.title }}
+ {% else %}
+ {{ nav.title }}
+ {% endif %}
+
+ {% if nav.children != null %}
+
+ {% for child in nav.children %}
+ {% comment %} internal/external URL check {% endcomment %}
+ {% if child.url contains "://" %}
+ {% assign child_url = child.url %}
+ {% else %}
+ {% assign child_url = child.url | relative_url %}
+ {% endif %}
+
+ {% comment %} set "active" class on current page {% endcomment %}
+ {% if child.url == page.url %}
+ {% assign active = "active" %}
+ {% else %}
+ {% assign active = "" %}
+ {% endif %}
+
+ {{ child.title }}
+ {% endfor %}
+
+ {% endif %}
+
+ {% endfor %}
+
+
\ No newline at end of file
diff --git a/_includes/page__hero.html b/_includes/page__hero.html
new file mode 100644
index 0000000..98bff72
--- /dev/null
+++ b/_includes/page__hero.html
@@ -0,0 +1,72 @@
+{% if page.header.image contains "://" %}
+ {% capture img_path %}{{ page.header.image }}{% endcapture %}
+{% else %}
+ {% capture img_path %}{{ page.header.image | relative_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 | relative_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 | relative_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 %}
+
+
diff --git a/_includes/page__hero_video.html b/_includes/page__hero_video.html
new file mode 100644
index 0000000..8586a95
--- /dev/null
+++ b/_includes/page__hero_video.html
@@ -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 %}
diff --git a/_includes/page__taxonomy.html b/_includes/page__taxonomy.html
new file mode 100644
index 0000000..75c76c8
--- /dev/null
+++ b/_includes/page__taxonomy.html
@@ -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 %}
\ No newline at end of file
diff --git a/_includes/paginator.html b/_includes/paginator.html
new file mode 100644
index 0000000..592a2cf
--- /dev/null
+++ b/_includes/paginator.html
@@ -0,0 +1,69 @@
+{% if paginator.total_pages > 1 %}
+
+{% endif %}
diff --git a/_includes/post_pagination.html b/_includes/post_pagination.html
new file mode 100644
index 0000000..a93c627
--- /dev/null
+++ b/_includes/post_pagination.html
@@ -0,0 +1,14 @@
+{% if page.previous or page.next %}
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/posts-category.html b/_includes/posts-category.html
new file mode 100644
index 0000000..98be3e9
--- /dev/null
+++ b/_includes/posts-category.html
@@ -0,0 +1,3 @@
+{%- for post in site.categories[include.taxonomy] -%}
+ {% include archive-single.html %}
+{%- endfor -%}
diff --git a/_includes/posts-tag.html b/_includes/posts-tag.html
new file mode 100644
index 0000000..180a2f3
--- /dev/null
+++ b/_includes/posts-tag.html
@@ -0,0 +1,3 @@
+{%- for post in site.tags[include.taxonomy] -%}
+ {% include archive-single.html %}
+{%- endfor -%}
diff --git a/_includes/read-time.html b/_includes/read-time.html
new file mode 100644
index 0000000..df88d52
--- /dev/null
+++ b/_includes/read-time.html
@@ -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 %}
\ No newline at end of file
diff --git a/_includes/scripts.html b/_includes/scripts.html
new file mode 100644
index 0000000..1a00fce
--- /dev/null
+++ b/_includes/scripts.html
@@ -0,0 +1,39 @@
+{% if site.footer_scripts %}
+ {% for script in site.footer_scripts %}
+ {% if script contains "://" %}
+ {% capture script_path %}{{ script }}{% endcapture %}
+ {% else %}
+ {% capture script_path %}{{ script | relative_url }}{% endcapture %}
+ {% endif %}
+
+ {% endfor %}
+{% else %}
+
+
+{% endif %}
+
+{% if site.search == true or page.layout == "search" %}
+ {%- assign search_provider = site.search_provider | default: "lunr" -%}
+ {%- case search_provider -%}
+ {%- when "lunr" -%}
+ {% include_cached search/lunr-search-scripts.html %}
+ {%- when "google" -%}
+ {% include_cached search/google-search-scripts.html %}
+ {%- when "algolia" -%}
+ {% include_cached search/algolia-search-scripts.html %}
+ {%- endcase -%}
+{% endif %}
+
+{% include analytics.html %}
+{% include /comments-providers/scripts.html %}
+
+{% if site.after_footer_scripts %}
+ {% for script in site.after_footer_scripts %}
+ {% if script contains "://" %}
+ {% capture script_path %}{{ script }}{% endcapture %}
+ {% else %}
+ {% capture script_path %}{{ script | relative_url }}{% endcapture %}
+ {% endif %}
+
+ {% endfor %}
+{% endif %}
diff --git a/_includes/search/algolia-search-scripts.html b/_includes/search/algolia-search-scripts.html
new file mode 100644
index 0000000..a6bc9d2
--- /dev/null
+++ b/_includes/search/algolia-search-scripts.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
diff --git a/_includes/search/google-search-scripts.html b/_includes/search/google-search-scripts.html
new file mode 100644
index 0000000..4af7423
--- /dev/null
+++ b/_includes/search/google-search-scripts.html
@@ -0,0 +1,30 @@
+
\ No newline at end of file
diff --git a/_includes/search/lunr-search-scripts.html b/_includes/search/lunr-search-scripts.html
new file mode 100644
index 0000000..574c390
--- /dev/null
+++ b/_includes/search/lunr-search-scripts.html
@@ -0,0 +1,10 @@
+{% assign lang = site.locale | slice: 0,2 | default: "en" %}
+{% case lang %}
+{% when "gr" %}
+ {% assign lang = "gr" %}
+{% else %}
+ {% assign lang = "en" %}
+{% endcase %}
+
+
+
\ No newline at end of file
diff --git a/_includes/search/search_form.html b/_includes/search/search_form.html
new file mode 100644
index 0000000..925f6cd
--- /dev/null
+++ b/_includes/search/search_form.html
@@ -0,0 +1,18 @@
+
+{%- assign search_provider = site.search_provider | default: "lunr" -%}
+{%- case search_provider -%}
+ {%- when "lunr" -%}
+
+
+ {%- when "google" -%}
+
+
+
+
+ {%- when "algolia" -%}
+
+
+{%- endcase -%}
+
diff --git a/_includes/seo.html b/_includes/seo.html
new file mode 100644
index 0000000..d4a762a
--- /dev/null
+++ b/_includes/seo.html
@@ -0,0 +1,168 @@
+
+{%- if site.url -%}
+ {%- assign seo_url = site.url | append: site.baseurl -%}
+{%- endif -%}
+{%- assign seo_url = seo_url | default: site.github.url -%}
+
+{% assign title_separator = site.title_separator | default: '-' | replace: '|', '|' %}
+
+{%- if page.title -%}
+ {%- assign seo_title = page.title | append: " " | append: title_separator | append: " " | append: site.title -%}
+{%- endif -%}
+
+{%- if seo_title -%}
+ {%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
+{%- endif -%}
+
+{% if page.canonical_url %}
+ {%- assign canonical_url = page.canonical_url %}
+{% else %}
+ {%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
+{% endif %}
+
+{%- 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 -%}
+
+{%- assign author = page.author | default: page.authors[0] | default: site:author -%}
+{%- assign author = site.data.authors[author] | default: author -%}
+
+{%- if author.twitter -%}
+ {%- assign author_twitter = author.twitter | replace: "@", "" -%}
+{%- endif -%}
+
+{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image -%}
+{%- unless page_large_image contains '://' -%}
+ {%- assign page_large_image = page_large_image | absolute_url -%}
+{%- endunless -%}
+{%- assign page_large_image = page_large_image | escape -%}
+
+{%- assign page_teaser_image = page.header.teaser | default: site.og_image -%}
+{%- unless page_teaser_image contains '://' -%}
+ {%- assign page_teaser_image = page_teaser_image | absolute_url -%}
+{%- endunless -%}
+{%- assign page_teaser_image = page_teaser_image | escape -%}
+
+{%- assign site_og_image = site.og_image -%}
+{%- unless site_og_image contains '://' -%}
+ {%- assign site_og_image = site_og_image | absolute_url -%}
+{%- endunless -%}
+{%- assign site_og_image = site_og_image | escape -%}
+
+{%- if page.date -%}
+ {%- assign og_type = "article" -%}
+{%- else -%}
+ {%- assign og_type = "website" -%}
+{%- endif -%}
+
+{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}
+
+
+{% if author.name %}
+
+{% endif %}
+
+
+
+
+
+
+
+{% if page.excerpt %}
+
+{% endif %}
+
+{% if page_large_image %}
+
+{% elsif page_teaser_image %}
+
+{% endif %}
+
+{% if site.twitter.username %}
+
+
+
+
+
+ {% if page_large_image %}
+
+
+ {% else %}
+
+ {% if page_teaser_image %}
+
+ {% endif %}
+ {% endif %}
+
+ {% if author_twitter %}
+
+ {% endif %}
+{% endif %}
+
+{% if page.date %}
+
+{% endif %}
+
+{% if og_type == "article" and page.last_modified_at %}
+
+{% endif %}
+
+{% if site.facebook %}
+ {% if site.facebook.publisher %}
+
+ {% endif %}
+
+ {% if site.facebook.app_id %}
+
+ {% endif %}
+{% endif %}
+
+
+
+{% if paginator.previous_page %}
+
+{% endif %}
+{% if paginator.next_page %}
+
+{% endif %}
+
+{% if site.og_image %}
+
+{% endif %}
+
+{% if site.social %}
+
+{% endif %}
+
+{% if site.google_site_verification %}
+
+{% endif %}
+{% if site.bing_site_verification %}
+
+{% endif %}
+{% if site.alexa_site_verification %}
+
+{% endif %}
+{% if site.yandex_site_verification %}
+
+{% endif %}
+{% if site.naver_site_verification %}
+
+{% endif %}
+
diff --git a/_includes/sidebar.html b/_includes/sidebar.html
new file mode 100644
index 0000000..2a1884e
--- /dev/null
+++ b/_includes/sidebar.html
@@ -0,0 +1,24 @@
+{% if page.author_profile or layout.author_profile or page.sidebar %}
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/skip-links.html b/_includes/skip-links.html
new file mode 100644
index 0000000..2cd9f17
--- /dev/null
+++ b/_includes/skip-links.html
@@ -0,0 +1,8 @@
+
+ {{ site.data.ui-text[site.locale].skip_links | default: 'Skip links' }}
+
+
diff --git a/_includes/social-share.html b/_includes/social-share.html
new file mode 100644
index 0000000..0b37798
--- /dev/null
+++ b/_includes/social-share.html
@@ -0,0 +1,11 @@
+
+ {% if site.data.ui-text[site.locale].share_on_label %}
+ {{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}
+ {% endif %}
+
+
+
+ Facebook
+
+ LinkedIn
+
diff --git a/_includes/tag-list.html b/_includes/tag-list.html
new file mode 100644
index 0000000..e0d02bf
--- /dev/null
+++ b/_includes/tag-list.html
@@ -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 %}
+
+
+ {% 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 %}
+
+
+ {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }}
+
+ {% for hash in tag_hashes %}
+ {% assign keyValue = hash | split: '|' %}
+ {% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
+ {{ tag_word }} {% unless forloop.last %}, {% endunless %}
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/toc b/_includes/toc
new file mode 100644
index 0000000..6423ccd
--- /dev/null
+++ b/_includes/toc
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/_includes/toc.html b/_includes/toc.html
new file mode 100644
index 0000000..54ab8b0
--- /dev/null
+++ b/_includes/toc.html
@@ -0,0 +1,85 @@
+{% capture tocWorkspace %}
+ {% comment %}
+ Version 1.0.5
+ https://github.com/allejo/jekyll-toc
+
+ "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
+
+ Usage:
+ {% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
+
+ Parameters:
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
+
+ Optional Parameters:
+ * sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
+ * class (string) : '' - a CSS class assigned to the TOC
+ * id (string) : '' - an ID to assigned to the TOC
+ * h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
+ * h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
+ * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
+ * item_class (string) : '' - add custom class for each list item; has support for '%level%' placeholder, which is the current heading level
+ * baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
+
+ Output:
+ An ordered or unordered list representing the table of contents of a markdown block. This snippet will only generate the table of contents and will NOT output the markdown given to it
+ {% endcomment %}
+
+ {% capture my_toc %}{% endcapture %}
+ {% assign orderedList = include.ordered | default: false %}
+ {% assign minHeader = include.h_min | default: 1 %}
+ {% assign maxHeader = include.h_max | default: 6 %}
+ {% assign nodes = include.html | split: ' maxHeader %}
+ {% continue %}
+ {% endif %}
+
+ {% if firstHeader %}
+ {% assign firstHeader = false %}
+ {% assign minHeader = headerLevel %}
+ {% endif %}
+
+ {% assign indentAmount = headerLevel | minus: minHeader | add: 1 %}
+ {% assign _workspace = node | split: ' ' | first }}>{% endcapture %}
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
+
+ {% assign space = '' %}
+ {% for i in (1..indentAmount) %}
+ {% assign space = space | prepend: ' ' %}
+ {% endfor %}
+
+ {% unless include.item_class == blank %}
+ {% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %}
+ {% endunless %}
+
+ {% capture my_toc %}{{ my_toc }}
+{{ space }}{{ listModifier }} {{ listItemClass }} [{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% endcapture %}
+ {% endfor %}
+
+ {% if include.class %}
+ {% capture my_toc %}{:.{{ include.class }}}
+{{ my_toc | lstrip }}{% endcapture %}
+ {% endif %}
+
+ {% if include.id %}
+ {% capture my_toc %}{: #{{ include.id }}}
+{{ my_toc | lstrip }}{% endcapture %}
+ {% endif %}
+{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }}
\ No newline at end of file
diff --git a/_includes/video b/_includes/video
new file mode 100644
index 0000000..8955c7c
--- /dev/null
+++ b/_includes/video
@@ -0,0 +1,13 @@
+{% capture video_id %}{{ include.id }}{% endcapture %}
+{% capture video_provider %}{{ include.provider }}{% endcapture %}
+
+
+
+{% if video_provider == "vimeo" %}
+
+{% elsif video_provider == "youtube" %}
+
+{% elsif video_provider == "google-drive" %}
+
+{% endif %}
+
diff --git a/_layouts/archive-taxonomy.html b/_layouts/archive-taxonomy.html
new file mode 100644
index 0000000..6939122
--- /dev/null
+++ b/_layouts/archive-taxonomy.html
@@ -0,0 +1,15 @@
+---
+layout: default
+author_profile: false
+---
+
+
+ {% include sidebar.html %}
+
+
+
{{ page.title }}
+ {% for post in page.posts %}
+ {% include archive-single.html %}
+ {% endfor %}
+
+
\ No newline at end of file
diff --git a/_layouts/archive.html b/_layouts/archive.html
new file mode 100644
index 0000000..08beb89
--- /dev/null
+++ b/_layouts/archive.html
@@ -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 %}
+
+
+ {% include sidebar.html %}
+
+
+ {% unless page.header.overlay_color or page.header.overlay_image %}
+
{{ page.title }}
+ {% endunless %}
+ {{ content }}
+
+
\ No newline at end of file
diff --git a/_layouts/categories.html b/_layouts/categories.html
new file mode 100644
index 0000000..aa2c6e8
--- /dev/null
+++ b/_layouts/categories.html
@@ -0,0 +1,42 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+{% assign categories_max = 0 %}
+{% for category in site.categories %}
+ {% if category[1].size > categories_max %}
+ {% assign categories_max = category[1].size %}
+ {% endif %}
+{% endfor %}
+
+
+ {% for i in (1..categories_max) reversed %}
+ {% for category in site.categories %}
+ {% if category[1].size == i %}
+
+
+ {{ category[0] }} {{ i }}
+
+
+ {% endif %}
+ {% endfor %}
+ {% endfor %}
+
+
+{% for i in (1..categories_max) reversed %}
+ {% for category in site.categories %}
+ {% if category[1].size == i %}
+
+ {% endif %}
+ {% endfor %}
+{% endfor %}
diff --git a/_layouts/category.html b/_layouts/category.html
new file mode 100644
index 0000000..79b81ce
--- /dev/null
+++ b/_layouts/category.html
@@ -0,0 +1,9 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+
+ {% include posts-category.html taxonomy=page.taxonomy type=page.entries_layout %}
+
diff --git a/_layouts/collection.html b/_layouts/collection.html
new file mode 100644
index 0000000..3bcd916
--- /dev/null
+++ b/_layouts/collection.html
@@ -0,0 +1,9 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+
+ {% include documents-collection.html collection=page.collection sort_by=page.sort_by sort_order=page.sort_order type=page.entries_layout %}
+
diff --git a/_layouts/compress.html b/_layouts/compress.html
new file mode 100644
index 0000000..bb34487
--- /dev/null
+++ b/_layouts/compress.html
@@ -0,0 +1,10 @@
+---
+# Jekyll layout that compresses HTML
+# v3.1.0
+# http://jch.penibelst.de/
+# © 2014–2015 Anatol Broder
+# MIT License
+---
+
+{% capture _LINE_FEED %}
+{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ 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 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: "" %}{% 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 " " %}{% endif %}{% unless _pre_before contains " " 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 = " ; ; ;" | 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 %} Step Bytes raw {{ content | size }}{% if _profile_endings %} endings {{ _profile_endings }}{% endif %}{% if _profile_startings %} startings {{ _profile_startings }}{% endif %}{% if _profile_comments %} comments {{ _profile_comments }}{% endif %}{% if _profile_collapse %} collapse {{ _profile_collapse }}{% endif %}{% if _profile_clippings %} clippings {{ _profile_clippings }}{% endif %}
{% endif %}{% endif %}
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 0000000..a3dfd70
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,42 @@
+---
+---
+
+
+
+
+
+ {% include head.html %}
+ {% include head/custom.html %}
+
+
+
+ {% include_cached skip-links.html %}
+ {% include_cached browser-upgrade.html %}
+ {% include_cached masthead.html %}
+
+
+ {{ content }}
+
+
+ {% if site.search == true %}
+
+ {% include_cached search/search_form.html %}
+
+ {% endif %}
+
+
+
+ {% include scripts.html %}
+
+
+
diff --git a/_layouts/home.html b/_layouts/home.html
new file mode 100644
index 0000000..d1428eb
--- /dev/null
+++ b/_layouts/home.html
@@ -0,0 +1,13 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+{{ site.data.ui-text[site.locale].recent_posts | default: "Recent Posts" }}
+
+{% for post in paginator.posts %}
+ {% include archive-single.html %}
+{% endfor %}
+
+{% include paginator.html %}
diff --git a/_layouts/posts.html b/_layouts/posts.html
new file mode 100644
index 0000000..76d25f9
--- /dev/null
+++ b/_layouts/posts.html
@@ -0,0 +1,29 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+
+
+{% assign postsByYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %}
+{% for year in postsByYear %}
+
+{% endfor %}
diff --git a/_layouts/search.html b/_layouts/search.html
new file mode 100644
index 0000000..d18f223
--- /dev/null
+++ b/_layouts/search.html
@@ -0,0 +1,42 @@
+---
+layout: default
+---
+
+{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
+ {% include page__hero.html %}
+{% endif %}
+
+{% if page.url != "/" and site.breadcrumbs %}
+ {% unless paginator %}
+ {% include breadcrumbs.html %}
+ {% endunless %}
+{% endif %}
+
+
+ {% include sidebar.html %}
+
+
+ {% unless page.header.overlay_color or page.header.overlay_image %}
+
{{ page.title }}
+ {% endunless %}
+
+ {{ content }}
+
+ {%- assign search_provider = site.search_provider | default: "lunr" -%}
+ {%- case search_provider -%}
+ {%- when "lunr" -%}
+
+
+ {%- when "google" -%}
+
+
+
+
+ {%- when "algolia" -%}
+
+
+ {%- endcase -%}
+
+
diff --git a/_layouts/single.html b/_layouts/single.html
new file mode 100644
index 0000000..37c7ec8
--- /dev/null
+++ b/_layouts/single.html
@@ -0,0 +1,95 @@
+---
+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 %}
+
+
+ {% include sidebar.html %}
+
+
+ {% if page.title %} {% endif %}
+ {% if page.excerpt %} {% endif %}
+ {% if page.date %} {% endif %}
+ {% if page.last_modified_at %} {% endif %}
+
+
+ {% unless page.header.overlay_color or page.header.overlay_image %}
+
+ {% endunless %}
+
+
+ {% if page.toc %}
+
+ {% endif %}
+ {{ content }}
+ {% if page.link %}{% endif %}
+
+
+
+ {% if site.data.ui-text[site.locale].meta_label %}
+ {{ site.data.ui-text[site.locale].meta_label }}
+ {% endif %}
+ {% include page__taxonomy.html %}
+ {% if page.last_modified_at %}
+ {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }} {{ page.last_modified_at | date: "%B %d, %Y" }}
+ {% elsif page.date %}
+ {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }} {{ page.date | date: "%B %d, %Y" }}
+ {% endif %}
+
+
+ {% if page.share %}{% include social-share.html %}{% endif %}
+
+ {% include post_pagination.html %}
+
+
+ {% if jekyll.environment == 'production' and site.comments.provider and page.comments %}
+ {% include comments.html %}
+ {% endif %}
+
+
+ {% comment %}{% endcomment %}
+ {% if page.id and page.related and site.related_posts.size > 0 %}
+
+
{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}
+
+ {% for post in site.related_posts limit:4 %}
+ {% include archive-single.html type="grid" %}
+ {% endfor %}
+
+
+ {% comment %}{% endcomment %}
+ {% elsif page.id and page.related %}
+
+
{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}
+
+ {% for post in site.posts limit:4 %}
+ {% if post.id == page.id %}
+ {% continue %}
+ {% endif %}
+ {% include archive-single.html type="grid" %}
+ {% endfor %}
+
+
+ {% endif %}
+
diff --git a/_layouts/splash.html b/_layouts/splash.html
new file mode 100644
index 0000000..b327607
--- /dev/null
+++ b/_layouts/splash.html
@@ -0,0 +1,22 @@
+---
+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.title %} {% endif %}
+ {% if page.excerpt %} {% endif %}
+ {% if page.date %} {% endif %}
+ {% if page.last_modified_at %} {% endif %}
+
+
+
+
diff --git a/_layouts/tag.html b/_layouts/tag.html
new file mode 100644
index 0000000..5f83c2a
--- /dev/null
+++ b/_layouts/tag.html
@@ -0,0 +1,9 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+
+ {% include posts-tag.html taxonomy=page.taxonomy type=page.entries_layout %}
+
diff --git a/_layouts/tags.html b/_layouts/tags.html
new file mode 100644
index 0000000..128e176
--- /dev/null
+++ b/_layouts/tags.html
@@ -0,0 +1,42 @@
+---
+layout: archive
+---
+
+{{ content }}
+
+{% assign tags_max = 0 %}
+{% for tag in site.tags %}
+ {% if tag[1].size > tags_max %}
+ {% assign tags_max = tag[1].size %}
+ {% endif %}
+{% endfor %}
+
+
+ {% for i in (1..tags_max) reversed %}
+ {% for tag in site.tags %}
+ {% if tag[1].size == i %}
+
+
+ {{ tag[0] }} {{ i }}
+
+
+ {% endif %}
+ {% endfor %}
+ {% endfor %}
+
+
+{% for i in (1..tags_max) reversed %}
+ {% for tag in site.tags %}
+ {% if tag[1].size == i %}
+
+ {% endif %}
+ {% endfor %}
+{% endfor %}
diff --git a/_sass/minimal-mistakes.scss b/_sass/minimal-mistakes.scss
new file mode 100644
index 0000000..708d189
--- /dev/null
+++ b/_sass/minimal-mistakes.scss
@@ -0,0 +1,40 @@
+/*!
+ * Minimal Mistakes Jekyll Theme 4.16.4 by Michael Rose
+ * Copyright 2013-2019 Michael Rose - mademistakes.com | @mmistakes
+ * Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE)
+*/
+
+/* Variables */
+@import "minimal-mistakes/variables";
+
+/* Mixins and functions */
+@import "minimal-mistakes/vendor/breakpoint/breakpoint";
+@include breakpoint-set("to ems", true);
+@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/search";
+@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";
diff --git a/_sass/minimal-mistakes/_animations.scss b/_sass/minimal-mistakes/_animations.scss
new file mode 100644
index 0000000..25ef77f
--- /dev/null
+++ b/_sass/minimal-mistakes/_animations.scss
@@ -0,0 +1,21 @@
+/* ==========================================================================
+ ANIMATIONS
+ ========================================================================== */
+
+@-webkit-keyframes intro {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes intro {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/_archive.scss b/_sass/minimal-mistakes/_archive.scss
new file mode 100644
index 0000000..7d06904
--- /dev/null
+++ b/_sass/minimal-mistakes/_archive.scss
@@ -0,0 +1,438 @@
+/* ==========================================================================
+ ARCHIVE
+ ========================================================================== */
+
+.archive {
+ margin-top: 1em;
+ 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;
+ }
+}
+
+.archive__item {
+ position: relative;
+}
+
+.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;
+ line-height: initial;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ a[rel="permalink"]::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ }
+
+ 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;
+ }
+
+ a {
+ position: relative;
+ }
+}
+
+.archive__item-teaser {
+ position: relative;
+ border-radius: $border-radius;
+ overflow: hidden;
+
+ img {
+ width: 100%;
+ }
+}
+
+.archive__item-caption {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ margin: 0 auto;
+ padding: 2px 5px;
+ color: #fff;
+ font-family: $caption-font-family;
+ font-size: $type-size-8;
+ 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;
+ }
+}
+
+/*
+ List view
+ ========================================================================== */
+
+.list__item {
+ .page__meta {
+ margin: 0 0 4px;
+ font-size: 0.6em;
+ }
+}
+
+/*
+ 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;
+ font-size: 0.6em;
+ }
+
+ .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;
+
+ .archive__item-title {
+ margin-bottom: 0;
+ }
+}
+
+.feature__item {
+ position: relative;
+ margin-bottom: 2em;
+ font-size: 1.125em;
+
+ @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;
+ }
+ }
+
+ .archive__item-body {
+ padding-left: gutter(1 of 12);
+ padding-right: gutter(1 of 12);
+ }
+
+ a.btn::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ }
+
+ &--left {
+ position: relative;
+ float: left;
+ margin-left: 0;
+ margin-right: 0;
+ width: 100%;
+ clear: both;
+ font-size: 1.125em;
+
+ .archive__item {
+ float: left;
+ }
+
+ .archive__item-teaser {
+ margin-bottom: 2em;
+ }
+
+ a.btn::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ }
+
+ @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 {
+ position: relative;
+ float: left;
+ margin-left: 0;
+ margin-right: 0;
+ width: 100%;
+ clear: both;
+ font-size: 1.125em;
+
+ .archive__item {
+ float: left;
+ }
+
+ .archive__item-teaser {
+ margin-bottom: 2em;
+ }
+
+ a.btn::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ }
+
+ @include breakpoint($small) {
+ text-align: right;
+
+ .archive__item-teaser {
+ float: right;
+ width: span(5 of 12);
+ }
+
+ .archive__item-body {
+ float: left;
+ width: span(7 of 12);
+ padding-left: gutter(0.5 of 12);
+ padding-right: gutter(1 of 12);
+ }
+ }
+ }
+
+ &--center {
+ position: relative;
+ float: left;
+ margin-left: 0;
+ margin-right: 0;
+ width: 100%;
+ clear: both;
+ font-size: 1.125em;
+
+ .archive__item {
+ float: left;
+ width: 100%;
+ }
+
+ .archive__item-teaser {
+ margin-bottom: 2em;
+ }
+
+ a.btn::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ }
+
+ @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);
+ }
+ }
+ }
+}
+
+/* Place inside an archive layout */
+
+.archive {
+ .feature__wrapper {
+ .archive__item-title {
+ margin-top: 0.25em;
+ font-size: 1em;
+ }
+ }
+
+ .feature__item,
+ .feature__item--left,
+ .feature__item--center,
+ .feature__item--right {
+ font-size: 1em;
+ }
+}
+
+/*
+ Wide Pages
+ ========================================================================== */
+
+ .wide {
+ .archive {
+ @include breakpoint($large) {
+ padding-right: 0;
+ }
+
+ @include breakpoint($x-large) {
+ padding-right: 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/_base.scss b/_sass/minimal-mistakes/_base.scss
new file mode 100644
index 0000000..dd94cda
--- /dev/null
+++ b/_sass/minimal-mistakes/_base.scss
@@ -0,0 +1,357 @@
+/* ==========================================================================
+ 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;
+ }
+
+ &:visited {
+ color: $link-color-visited;
+ }
+
+ &:hover {
+ color: $link-color-hover;
+ outline: 0;
+ }
+}
+
+/* buttons */
+
+button:focus {
+ @extend %tab-focus;
+}
+
+/* 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: 0.8em;
+ background: $code-background-color;
+ border-radius: $border-radius;
+
+ &: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 {
+ 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;
+}
diff --git a/_sass/minimal-mistakes/_buttons.scss b/_sass/minimal-mistakes/_buttons.scss
new file mode 100644
index 0000000..9ef60a8
--- /dev/null
+++ b/_sass/minimal-mistakes/_buttons.scss
@@ -0,0 +1,97 @@
+/* ==========================================================================
+ 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),
+ (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;
+ }
+
+ &:visited {
+ @include yiq-contrasted($color);
+ }
+
+ &:hover {
+ @include yiq-contrasted(mix(#000, $color, 20%));
+ }
+ }
+ }
+
+ /* 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;
+ }
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/_footer.scss b/_sass/minimal-mistakes/_footer.scss
new file mode 100644
index 0000000..766c6c7
--- /dev/null
+++ b/_sass/minimal-mistakes/_footer.scss
@@ -0,0 +1,91 @@
+/* ==========================================================================
+ 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;
+ }
+ }
+
+ .fas,
+ .fab,
+ .far,
+ .fal {
+ 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;
+ }
+
+ .social-icons {
+ a {
+ white-space: nowrap;
+ }
+ }
+}
diff --git a/_sass/minimal-mistakes/_forms.scss b/_sass/minimal-mistakes/_forms.scss
new file mode 100644
index 0000000..146b379
--- /dev/null
+++ b/_sass/minimal-mistakes/_forms.scss
@@ -0,0 +1,393 @@
+/* ==========================================================================
+ 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-group
+ ========================================================================== */
+
+.form-group {
+ margin-bottom: 5px;
+ padding: 0;
+ border-width: 0;
+}
+
+/*
+ .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;
+}
diff --git a/_sass/minimal-mistakes/_masthead.scss b/_sass/minimal-mistakes/_masthead.scss
new file mode 100644
index 0000000..ff3d2b9
--- /dev/null
+++ b/_sass/minimal-mistakes/_masthead.scss
@@ -0,0 +1,88 @@
+/* ==========================================================================
+ 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: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ font-family: $sans-serif-narrow;
+
+ @include breakpoint($x-large) {
+ max-width: $max-width;
+ }
+
+ nav {
+ z-index: 10;
+ }
+
+ a {
+ text-decoration: none;
+ }
+ }
+}
+
+.site-logo img {
+ max-height: 2rem;
+}
+
+.site-title {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-item-align: center;
+ align-self: 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;
+ }
+}
diff --git a/_sass/minimal-mistakes/_mixins.scss b/_sass/minimal-mistakes/_mixins.scss
new file mode 100644
index 0000000..4aa9eb0
--- /dev/null
+++ b/_sass/minimal-mistakes/_mixins.scss
@@ -0,0 +1,92 @@
+/* ==========================================================================
+ MIXINS
+ ========================================================================== */
+
+%tab-focus {
+ /* Default*/
+ outline: thin dotted $focus-color;
+ /* Webkit*/
+ outline: 5px auto $focus-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);
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/_navigation.scss b/_sass/minimal-mistakes/_navigation.scss
new file mode 100644
index 0000000..ef73777
--- /dev/null
+++ b/_sass/minimal-mistakes/_navigation.scss
@@ -0,0 +1,566 @@
+/* ==========================================================================
+ NAVIGATION
+ ========================================================================== */
+
+/*
+ Breadcrumb navigation links
+ ========================================================================== */
+
+.breadcrumbs {
+ @include clearfix;
+ margin: 0 auto;
+ max-width: 100%;
+ padding-left: 1em;
+ padding-right: 1em;
+ font-family: $sans-serif;
+ -webkit-animation: $intro-transition;
+ animation: $intro-transition;
+ -webkit-animation-delay: 0.3s;
+ animation-delay: 0.3s;
+
+ @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: calc(100% - #{$right-sidebar-width-narrow});
+ }
+
+ @include breakpoint($x-large) {
+ width: calc(100% - #{$right-sidebar-width});
+ }
+ }
+
+ 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: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ min-height: $nav-height;
+ background: $background-color;
+
+ a {
+ display: block;
+ margin: 0 1rem;
+ color: $masthead-link-color;
+ text-decoration: none;
+
+ &:hover {
+ color: $masthead-link-color-hover;
+ }
+
+ &.site-logo {
+ margin-left: 0;
+ margin-right: 0.5rem;
+ }
+
+ &.site-title {
+ margin-left: 0;
+ }
+ }
+
+ &__toggle {
+ -ms-flex-item-align: center;
+ align-self: center;
+ height: $nav-toggle-height;
+ border: 0;
+ outline: none;
+ background-color: transparent;
+ cursor: pointer;
+ }
+
+ .visible-links {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ overflow: hidden;
+
+ li {
+ -webkit-box-flex: 0;
+ -ms-flex: none;
+ flex: none;
+ }
+
+ 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
+ }
+ }
+ }
+
+ .hidden-links {
+ position: absolute;
+ top: 100%;
+ right: 0;
+ margin-top: 15px;
+ padding: 5px;
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+ background: $background-color;
+ -webkit-box-shadow: 0 2px 4px 0 rgba(#000, 0.16),
+ 0 2px 10px 0 rgba(#000, 0.12);
+ 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: 10px;
+ 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: 10px;
+ 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;
+ }
+ }
+ }
+}
+
+.no-js {
+ .greedy-nav {
+ .visible-links {
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ overflow: visible;
+ }
+ }
+}
+
+/*
+ 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;
+ color: $gray;
+ 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.25rem;
+
+ a {
+ color: inherit;
+ }
+
+ .active {
+ margin-left: -0.5em;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ font-weight: bold;
+ }
+
+ @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 0.75rem;
+ font-family: $sans-serif-narrow;
+ font-size: $type-size-5;
+ font-weight: bold;
+}
+
+.nav__sub-title {
+ display: block;
+ margin: 0.5rem 0;
+ padding: 0.25rem 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;
+ background-color: $background-color;
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+ -webkit-box-shadow: $box-shadow;
+ 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;
+ }
+
+ // Scrollspy marks toc items as .active when they are in focus
+ .active a {
+ @include yiq-contrasted($active-color);
+ }
+}
+
+.toc__menu {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ list-style: none;
+ font-size: $type-size-6;
+
+ @include breakpoint($large) {
+ font-size: $type-size-7;
+ }
+
+ a {
+ display: block;
+ padding: 0.25rem 0.75rem;
+ color: $muted-text-color;
+ font-weight: bold;
+ line-height: 1.5;
+ border-bottom: 1px solid $border-color;
+
+ &:hover {
+ color: $text-color;
+ }
+ }
+
+ li ul > li a {
+ padding-left: 1.25rem;
+ font-weight: normal;
+ }
+
+ li ul li ul > li a {
+ padding-left: 1.75rem;
+ }
+
+ li ul li ul li ul > li a {
+ padding-left: 2.25rem;
+ }
+
+ li ul li ul li ul li ul > li a {
+ padding-left: 2.75rem;
+ }
+
+ li ul li ul li ul li ul li ul > li a {
+ padding-left: 3.25rem
+ }
+}
diff --git a/_sass/minimal-mistakes/_notices.scss b/_sass/minimal-mistakes/_notices.scss
new file mode 100644
index 0000000..7f9b733
--- /dev/null
+++ b/_sass/minimal-mistakes/_notices.scss
@@ -0,0 +1,100 @@
+/* ==========================================================================
+ NOTICE TEXT BLOCKS
+ ========================================================================== */
+
+/**
+ * Default Kramdown usage (no indents!):
+ *
+ * #### Headline for the Notice
+ * Text for the notice
+ *
+ */
+
+@mixin notice($notice-color) {
+ margin: 2em 0 !important; /* override*/
+ padding: 1em;
+ color: $dark-gray;
+ font-family: $global-font-family;
+ font-size: $type-size-6 !important;
+ text-indent: initial; /* override*/
+ background-color: mix(#fff, $notice-color, 90%);
+ 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: $notice-color;
+
+ &:hover {
+ color: mix(#000, $notice-color, 40%);
+ }
+ }
+
+ code {
+ background-color: mix(#fff, $notice-color, 95%)
+ }
+
+ 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);
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/_page.scss b/_sass/minimal-mistakes/_page.scss
new file mode 100644
index 0000000..c5dd864
--- /dev/null
+++ b/_sass/minimal-mistakes/_page.scss
@@ -0,0 +1,520 @@
+/* ==========================================================================
+ SINGLE PAGE/POST
+ ========================================================================== */
+
+#main {
+ @include clearfix;
+ margin-left: auto;
+ margin-right: auto;
+ padding-left: 1em;
+ padding-right: 1em;
+ -webkit-animation: $intro-transition;
+ animation: $intro-transition;
+ max-width: 100%;
+ -webkit-animation-delay: 0.15s;
+ animation-delay: 0.15s;
+
+ @include breakpoint($x-large) {
+ max-width: $max-width;
+ }
+}
+
+.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-top: 1em;
+ 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: 1em;
+ }
+
+ /* 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;
+ }
+}
+
+.taxonomy__section {
+ margin-bottom: 2em;
+ padding-bottom: 1em;
+
+ &:not(:last-child) {
+ border-bottom: solid 1px $border-color;
+ }
+
+ .archive__item-title {
+ margin-top: 0;
+ }
+
+ .archive__subtitle {
+ clear: both;
+ border: 0;
+ }
+
+ + .taxonomy__section {
+ margin-top: 2em;
+ }
+}
+
+.taxonomy__title {
+ margin-bottom: 0.5em;
+ color: lighten($text-color, 60%);
+}
+
+.taxonomy__count {
+ color: lighten($text-color, 50%);
+}
+
+.taxonomy__index {
+ display: grid;
+ grid-column-gap: 2em;
+ grid-template-columns: repeat(2, 1fr);
+ margin: 1.414em 0;
+ padding: 0;
+ font-size: 0.75em;
+ list-style: none;
+
+ @include breakpoint($large) {
+ grid-template-columns: repeat(3, 1fr);
+ }
+
+ a {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 0.25em 0;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ color: inherit;
+ text-decoration: none;
+ border-bottom: 1px solid $border-color;
+ }
+}
+
+.back-to-top {
+ display: block;
+ clear: both;
+ color: lighten($text-color, 50%);
+ font-size: 0.6em;
+ text-transform: uppercase;
+ text-align: right;
+ text-decoration: none;
+}
+
+/*
+ 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;
+}
+
+/*
+ Wide Pages
+ ========================================================================== */
+
+.wide {
+ .page {
+ @include breakpoint($large) {
+ padding-right: 0;
+ }
+
+ @include breakpoint($x-large) {
+ padding-right: 0;
+ }
+ }
+
+ .page__related {
+ @include breakpoint($large) {
+ padding-right: 0;
+ }
+
+ @include breakpoint($x-large) {
+ padding-right: 0;
+ }
+ }
+}
diff --git a/_sass/minimal-mistakes/_print.scss b/_sass/minimal-mistakes/_print.scss
new file mode 100644
index 0000000..b93f1d4
--- /dev/null
+++ b/_sass/minimal-mistakes/_print.scss
@@ -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;
+ }
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/_reset.scss b/_sass/minimal-mistakes/_reset.scss
new file mode 100644
index 0000000..2259fd0
--- /dev/null
+++ b/_sass/minimal-mistakes/_reset.scss
@@ -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: border-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*/
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/_search.scss b/_sass/minimal-mistakes/_search.scss
new file mode 100644
index 0000000..85bf311
--- /dev/null
+++ b/_sass/minimal-mistakes/_search.scss
@@ -0,0 +1,126 @@
+/* ==========================================================================
+ SEARCH
+ ========================================================================== */
+
+.layout--search {
+ .archive__item-teaser {
+ margin-bottom: 0.25em;
+ }
+}
+
+.search__toggle {
+ margin-left: 1rem;
+ margin-right: 1rem;
+ height: $nav-toggle-height;
+ border: 0;
+ outline: none;
+ color: $primary-color;
+ background-color: transparent;
+ cursor: pointer;
+ -webkit-transition: 0.2s;
+ transition: 0.2s;
+
+ &:hover {
+ color: mix(#000, $primary-color, 25%);
+ }
+}
+
+.search-icon {
+ width: 100%;
+ height: 100%;
+}
+
+.search-content {
+ display: none;
+ visibility: hidden;
+ padding-top: 1em;
+ padding-bottom: 1em;
+
+ &__inner-wrap {
+ width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+ padding-left: 1em;
+ padding-right: 1em;
+ -webkit-animation: $intro-transition;
+ animation: $intro-transition;
+ -webkit-animation-delay: 0.15s;
+ animation-delay: 0.15s;
+
+ @include breakpoint($x-large) {
+ max-width: $max-width;
+ }
+ }
+
+ .search-input {
+ display: block;
+ margin-bottom: 0;
+ padding: 0;
+ border: none;
+ outline: none;
+ box-shadow: none;
+ background-color: transparent;
+ font-size: $type-size-3;
+
+ @include breakpoint($large) {
+ font-size: $type-size-2;
+ }
+
+ @include breakpoint($x-large) {
+ font-size: $type-size-1;
+ }
+ }
+
+ &.is--visible {
+ display: block;
+ visibility: visible;
+
+ &::after {
+ content: "";
+ display: block;
+ }
+ }
+
+ .results__found {
+ margin-top: 0.5em;
+ font-size: $type-size-6;
+ }
+
+ .archive__item {
+ margin-bottom: 2em;
+
+ @include breakpoint($large) {
+ width: 75%;
+ }
+
+ @include breakpoint($x-large) {
+ width: 50%;
+ }
+ }
+
+ .archive__item-title {
+ margin-top: 0;
+ }
+
+ .archive__item-excerpt {
+ margin-bottom: 0;
+ }
+}
+
+/* Algolia search */
+
+.ais-search-box {
+ max-width: 100% !important;
+ margin-bottom: 2em;
+}
+
+.archive__item-title .ais-Highlight {
+ color: $primary-color;
+ font-style: normal;
+ text-decoration: underline;
+}
+.archive__item-excerpt .ais-Highlight {
+ color: $primary-color;
+ font-style: normal;
+ font-weight: bold;
+}
diff --git a/_sass/minimal-mistakes/_sidebar.scss b/_sass/minimal-mistakes/_sidebar.scss
new file mode 100644
index 0000000..f7fc72d
--- /dev/null
+++ b/_sass/minimal-mistakes/_sidebar.scss
@@ -0,0 +1,318 @@
+/* ==========================================================================
+ SIDEBAR
+ ========================================================================== */
+
+/*
+ Default
+ ========================================================================== */
+
+.sidebar {
+ @include clearfix();
+ @include breakpoint(max-width $large) {
+ /* fix z-index order of follow links */
+ position: relative;
+ z-index: 10;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ @include breakpoint($large) {
+ float: left;
+ width: calc(#{$right-sidebar-width-narrow} - 1em);
+ opacity: 0.75;
+ -webkit-transition: opacity 0.2s ease-in-out;
+ transition: opacity 0.2s ease-in-out;
+
+ &:hover {
+ opacity: 1;
+ }
+
+ &.sticky {
+ overflow-y: auto;
+ /* calculate height of nav list
+ viewport height - nav height - masthead x-padding
+ */
+ height: calc(100vh - #{$nav-height} - 2em);
+ }
+ }
+
+ @include breakpoint($x-large) {
+ width: calc(#{$right-sidebar-width} - 1em);
+ }
+
+ > * {
+ margin-top: 1em;
+ margin-bottom: 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%;
+
+ &.emoji {
+ width: 20px;
+ height: 20px;
+ }
+ }
+}
+
+.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;
+
+ &.sticky {
+ @include clearfix();
+ position: -webkit-sticky;
+ position: sticky;
+ top: 2em;
+ float: right;
+ }
+ }
+
+ @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;
+ }
+
+ a {
+ color: inherit;
+ text-decoration: none;
+ }
+}
+
+.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;
+ }
+ }
+}
+
+/*
+ Wide Pages
+ ========================================================================== */
+
+.wide .sidebar__right {
+ margin-bottom: 1em;
+
+ @include breakpoint($large) {
+ position: initial;
+ top: initial;
+ right: initial;
+ width: initial;
+ margin-right: initial;
+ padding-left: initial;
+ z-index: initial;
+
+ &.sticky {
+ float: none;
+ }
+ }
+
+ @include breakpoint($x-large) {
+ width: initial;
+ margin-right: initial;
+ }
+}
+
diff --git a/_sass/minimal-mistakes/_syntax.scss b/_sass/minimal-mistakes/_syntax.scss
new file mode 100644
index 0000000..7265202
--- /dev/null
+++ b/_sass/minimal-mistakes/_syntax.scss
@@ -0,0 +1,324 @@
+/* ==========================================================================
+ Syntax highlighting
+ ========================================================================== */
+
+div.highlighter-rouge,
+figure.highlight {
+ position: relative;
+ margin-bottom: 1em;
+ background: $base00;
+ color: $base05;
+ font-family: $monospace;
+ font-size: $type-size-6;
+ line-height: 1.8;
+ border-radius: $border-radius;
+
+ > pre,
+ pre.highlight {
+ margin: 0;
+ padding: 1em;
+ }
+}
+
+.highlight table {
+ margin-bottom: 0;
+ font-size: 1em;
+ border: 0;
+
+ td {
+ padding: 0;
+ width: calc(100% - 1em);
+ border: 0;
+
+ /* line numbers*/
+ &.gutter,
+ &.rouge-gutter {
+ padding-right: 1em;
+ width: 1em;
+ color: $base04;
+ border-right: 1px solid $base04;
+ text-align: right;
+ }
+
+ /* code */
+ &.code,
+ &.rouge-code {
+ padding-left: 1em;
+ }
+ }
+
+ pre {
+ margin: 0;
+ }
+}
+
+.highlight pre {
+ width: 100%;
+}
+
+.highlight .hll {
+ background-color: $base06;
+}
+.highlight {
+ .c {
+ /* Comment */
+ color: $base04;
+ }
+ .err {
+ /* Error */
+ color: $base08;
+ }
+ .k {
+ /* Keyword */
+ color: $base0e;
+ }
+ .l {
+ /* Literal */
+ color: $base09;
+ }
+ .n {
+ /* Name */
+ color: $base05;
+ }
+ .o {
+ /* Operator */
+ color: $base0c;
+ }
+ .p {
+ /* Punctuation */
+ color: $base05;
+ }
+ .cm {
+ /* Comment.Multiline */
+ color: $base04;
+ }
+ .cp {
+ /* Comment.Preproc */
+ color: $base04;
+ }
+ .c1 {
+ /* Comment.Single */
+ color: $base04;
+ }
+ .cs {
+ /* Comment.Special */
+ color: $base04;
+ }
+ .gd {
+ /* Generic.Deleted */
+ color: $base08;
+ }
+ .ge {
+ /* Generic.Emph */
+ font-style: italic;
+ }
+ .gh {
+ /* Generic.Heading */
+ color: $base05;
+ font-weight: bold;
+ }
+ .gi {
+ /* Generic.Inserted */
+ color: $base0b;
+ }
+ .gp {
+ /* Generic.Prompt */
+ color: $base04;
+ font-weight: bold;
+ }
+ .gs {
+ /* Generic.Strong */
+ font-weight: bold;
+ }
+ .gu {
+ /* Generic.Subheading */
+ color: $base0c;
+ font-weight: bold;
+ }
+ .kc {
+ /* Keyword.Constant */
+ color: $base0e;
+ }
+ .kd {
+ /* Keyword.Declaration */
+ color: $base0e;
+ }
+ .kn {
+ /* Keyword.Namespace */
+ color: $base0c;
+ }
+ .kp {
+ /* Keyword.Pseudo */
+ color: $base0e;
+ }
+ .kr {
+ /* Keyword.Reserved */
+ color: $base0e;
+ }
+ .kt {
+ /* Keyword.Type */
+ color: $base0a;
+ }
+ .ld {
+ /* Literal.Date */
+ color: $base0b;
+ }
+ .m {
+ /* Literal.Number */
+ color: $base09;
+ }
+ .s {
+ /* Literal.String */
+ color: $base0b;
+ }
+ .na {
+ /* Name.Attribute */
+ color: $base0d;
+ }
+ .nb {
+ /* Name.Builtin */
+ color: $base05;
+ }
+ .nc {
+ /* Name.Class */
+ color: $base0a;
+ }
+ .no {
+ /* Name.Constant */
+ color: $base08;
+ }
+ .nd {
+ /* Name.Decorator */
+ color: $base0c;
+ }
+ .ni {
+ /* Name.Entity */
+ color: $base05;
+ }
+ .ne {
+ /* Name.Exception */
+ color: $base08;
+ }
+ .nf {
+ /* Name.Function */
+ color: $base0d;
+ }
+ .nl {
+ /* Name.Label */
+ color: $base05;
+ }
+ .nn {
+ /* Name.Namespace */
+ color: $base0a;
+ }
+ .nx {
+ /* Name.Other */
+ color: $base0d;
+ }
+ .py {
+ /* Name.Property */
+ color: $base05;
+ }
+ .nt {
+ /* Name.Tag */
+ color: $base0c;
+ }
+ .nv {
+ /* Name.Variable */
+ color: $base08;
+ }
+ .ow {
+ /* Operator.Word */
+ color: $base0c;
+ }
+ .w {
+ /* Text.Whitespace */
+ color: $base05;
+ }
+ .mf {
+ /* Literal.Number.Float */
+ color: $base09;
+ }
+ .mh {
+ /* Literal.Number.Hex */
+ color: $base09;
+ }
+ .mi {
+ /* Literal.Number.Integer */
+ color: $base09;
+ }
+ .mo {
+ /* Literal.Number.Oct */
+ color: $base09;
+ }
+ .sb {
+ /* Literal.String.Backtick */
+ color: $base0b;
+ }
+ .sc {
+ /* Literal.String.Char */
+ color: $base05;
+ }
+ .sd {
+ /* Literal.String.Doc */
+ color: $base04;
+ }
+ .s2 {
+ /* Literal.String.Double */
+ color: $base0b;
+ }
+ .se {
+ /* Literal.String.Escape */
+ color: $base09;
+ }
+ .sh {
+ /* Literal.String.Heredoc */
+ color: $base0b;
+ }
+ .si {
+ /* Literal.String.Interpol */
+ color: $base09;
+ }
+ .sx {
+ /* Literal.String.Other */
+ color: $base0b;
+ }
+ .sr {
+ /* Literal.String.Regex */
+ color: $base0b;
+ }
+ .s1 {
+ /* Literal.String.Single */
+ color: $base0b;
+ }
+ .ss {
+ /* Literal.String.Symbol */
+ color: $base0b;
+ }
+ .bp {
+ /* Name.Builtin.Pseudo */
+ color: $base05;
+ }
+ .vc {
+ /* Name.Variable.Class */
+ color: $base08;
+ }
+ .vg {
+ /* Name.Variable.Global */
+ color: $base08;
+ }
+ .vi {
+ /* Name.Variable.Instance */
+ color: $base08;
+ }
+ .il {
+ /* Literal.Number.Integer.Long */
+ color: $base09;
+ }
+}
+
+.gist {
+ th, td {
+ border-bottom: 0;
+ }
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/_tables.scss b/_sass/minimal-mistakes/_tables.scss
new file mode 100644
index 0000000..c270a77
--- /dev/null
+++ b/_sass/minimal-mistakes/_tables.scss
@@ -0,0 +1,39 @@
+/* ==========================================================================
+ TABLES
+ ========================================================================== */
+
+table {
+ display: block;
+ margin-bottom: 1em;
+ width: 100%;
+ font-family: $global-font-family;
+ font-size: $type-size-6;
+ border-collapse: collapse;
+ overflow-x: auto;
+
+ & + table {
+ margin-top: 1em;
+ }
+}
+
+thead {
+ background-color: $border-color;
+ border-bottom: 2px solid mix(#000, $border-color, 25%);
+}
+
+th {
+ padding: 0.5em;
+ font-weight: bold;
+ text-align: left;
+}
+
+td {
+ padding: 0.5em;
+ border-bottom: 1px solid mix(#000, $border-color, 25%);
+}
+
+tr,
+td,
+th {
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/_utilities.scss b/_sass/minimal-mistakes/_utilities.scss
new file mode 100644
index 0000000..a2f4b1c
--- /dev/null
+++ b/_sass/minimal-mistakes/_utilities.scss
@@ -0,0 +1,558 @@
+/* ==========================================================================
+ UTILITY CLASSES
+ ========================================================================== */
+
+/*
+ Visibility
+ ========================================================================== */
+
+/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */
+
+.hidden,
+.is--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;
+}
+
+/*
+ Task lists
+ ========================================================================== */
+
+.task-list {
+ padding:0;
+
+ li {
+ list-style-type: none;
+ }
+
+ .task-list-item-checkbox {
+ margin-right: 0.5em;
+ opacity: 1;
+ }
+}
+
+/*
+ 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 {
+ .fas,
+ .fab,
+ .far,
+ .fal {
+ color: $text-color;
+ }
+
+ .fa-behance,
+ .fa-behance-square {
+ color: $behance-color;
+ }
+
+ .fa-bitbucket {
+ color: $bitbucket-color;
+ }
+
+ .fa-dribbble,
+ .fa-dribble-square {
+ color: $dribbble-color;
+ }
+
+ .fa-facebook,
+ .fa-facebook-square,
+ .fa-facebook-f {
+ 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-gitlab {
+ color: $gitlab-color;
+ }
+
+ .fa-instagram {
+ color: $instagram-color;
+ }
+
+ .fa-lastfm,
+ .fa-lastfm-square {
+ color: $lastfm-color;
+ }
+
+ .fa-linkedin,
+ .fa-linkedin-in {
+ color: $linkedin-color;
+ }
+
+ .fa-mastodon,
+ .fa-mastodon-square {
+ color: $mastodon-color;
+ }
+
+ .fa-pinterest,
+ .fa-pinterest-p,
+ .fa-pinterest-square {
+ color: $pinterest-color;
+ }
+
+ .fa-reddit {
+ color: $reddit-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,
+ .fa-vimeo-v {
+ color: $vimeo-color;
+ }
+
+ .fa-vine {
+ color: $vine-color;
+ }
+
+ .fa-youtube {
+ color: $youtube-color;
+ }
+
+ .fa-xing,
+ .fa-xing-square {
+ color: $xing-color;
+ }
+}
+
+/*
+ Navicons
+ ========================================================================== */
+
+.navicon {
+ position: relative;
+ width: $navicon-width;
+ height: $navicon-height;
+ background: $primary-color;
+ margin: auto;
+ -webkit-transition: 0.3s;
+ transition: 0.3s;
+
+ &:before,
+ &:after {
+ content: "";
+ position: absolute;
+ left: 0;
+ width: $navicon-width;
+ height: $navicon-height;
+ background: $primary-color;
+ -webkit-transition: 0.3s;
+ transition: 0.3s;
+ }
+
+ &:before {
+ top: (-2 * $navicon-height);
+ }
+
+ &:after {
+ bottom: (-2 * $navicon-height);
+ }
+}
+
+.close .navicon {
+ /* hide the middle line*/
+ 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);
+ }
+}
+
+.greedy-nav__toggle:hover {
+ .navicon,
+ .navicon:before,
+ .navicon:after {
+ background: mix(#000, $primary-color, 25%);
+ }
+
+ &.close {
+ .navicon {
+ background: transparent;
+ }
+ }
+}
+
+/*
+ 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;
+ }
+}
diff --git a/_sass/minimal-mistakes/_variables.scss b/_sass/minimal-mistakes/_variables.scss
new file mode 100644
index 0000000..9dd3a38
--- /dev/null
+++ b/_sass/minimal-mistakes/_variables.scss
@@ -0,0 +1,160 @@
+/* ==========================================================================
+ 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, BlinkMacSystemFont, "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; // ~16px
+$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: #6f777d !default;
+$success-color: #3fa63f !default;
+$warning-color: #d67f05 !default;
+$danger-color: #ee5f5b !default;
+$info-color: #3b9cba !default;
+$focus-color: $primary-color !default;
+$active-color: mix(#fff, $primary-color, 80%) !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;
+$gitlab-color: #e24329 !default;
+$instagram-color: #517fa4 !default;
+$lastfm-color: #d51007 !default;
+$linkedin-color: #007bb6 !default;
+$mastodon-color: #2b90d9 !default;
+$pinterest-color: #cb2027 !default;
+$reddit-color: #ff4500 !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(#000, $info-color, 15%) !default;
+$link-color-hover: mix(#000, $link-color, 25%) !default;
+$link-color-visited: mix(#fff, $link-color, 15%) !default;
+$masthead-link-color: $primary-color !default;
+$masthead-link-color-hover: mix(#000, $primary-color, 25%) !default;
+$navicon-link-color-hover: mix(#fff, $primary-color, 75%) !default;
+
+/* syntax highlighting (base16) */
+$base00: #263238 !default;
+$base01: #2e3c43 !default;
+$base02: #314549 !default;
+$base03: #546e7a !default;
+$base04: #b2ccd6 !default;
+$base05: #eeffff !default;
+$base06: #eeffff !default;
+$base07: #ffffff !default;
+$base08: #f07178 !default;
+$base09: #f78c6c !default;
+$base0a: #ffcb6b !default;
+$base0b: #c3e88d !default;
+$base0c: #89ddff !default;
+$base0d: #82aaff !default;
+$base0e: #c792ea !default;
+$base0f: #ff5370 !default;
+
+/*
+ Breakpoints
+ ========================================================================== */
+
+$small: 600px !default;
+$medium: 768px !default;
+$medium-wide: 900px !default;
+$large: 1024px !default;
+$x-large: 1280px !default;
+$max-width: $x-large !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;
+$nav-height: 2em !default;
+$nav-toggle-height: 2rem !default;
+$navicon-width: 1.5rem !default;
+$navicon-height: 0.25rem !default;
+$global-transition: all 0.2s ease-in-out !default;
+$intro-transition: intro 0.3s both !default;
diff --git a/_sass/minimal-mistakes/skins/_air.scss b/_sass/minimal-mistakes/skins/_air.scss
new file mode 100644
index 0000000..0e5360c
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_air.scss
@@ -0,0 +1,23 @@
+/* ==========================================================================
+ Air skin
+ ========================================================================== */
+
+/* Colors */
+$background-color: #eeeeee !default;
+$text-color: #222831 !default;
+$muted-text-color: #393e46 !default;
+$primary-color: #0092ca !default;
+$border-color: mix(#fff, #393e46, 75%) !default;
+$footer-background-color: $primary-color !default;
+$link-color: #393e46 !default;
+$masthead-link-color: $text-color !default;
+$masthead-link-color-hover: $text-color !default;
+$navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
+
+.page__footer {
+ color: #fff !important; // override
+}
+
+.page__footer-follow .social-icons .svg-inline--fa {
+ color: inherit;
+}
diff --git a/_sass/minimal-mistakes/skins/_aqua.scss b/_sass/minimal-mistakes/skins/_aqua.scss
new file mode 100644
index 0000000..f5a69af
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_aqua.scss
@@ -0,0 +1,30 @@
+/* ==========================================================================
+ Aqua skin
+ ========================================================================== */
+
+/* Colors */
+$gray : #1976d2 !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;
+
+$body-color : #fff !default;
+$background-color : #f0fff0 !default;
+$code-background-color : $lighter-gray !default;
+$code-background-color-dark : $light-gray !default;
+$text-color : $dark-gray !default;
+$border-color : $lighter-gray !default;
+
+$primary-color : $gray !default;
+$success-color : #27ae60 !default;
+$warning-color : #e67e22 !default;
+$danger-color : #c0392b !default;
+$info-color : #03a9f4 !default;
+
+/* links */
+$link-color : $info-color !default;
+$link-color-hover : mix(#000, $link-color, 25%) !default;
+$link-color-visited : mix(#fff, $link-color, 25%) !default;
+$masthead-link-color : $primary-color !default;
+$masthead-link-color-hover : mix(#000, $primary-color, 25%) !default;
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/skins/_contrast.scss b/_sass/minimal-mistakes/skins/_contrast.scss
new file mode 100644
index 0000000..4635e53
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_contrast.scss
@@ -0,0 +1,51 @@
+/* ==========================================================================
+ Contrast skin
+ ========================================================================== */
+
+/* Colors */
+$text-color: #000 !default;
+$muted-text-color: $text-color !default;
+$primary-color: #ff0000 !default;
+$border-color: mix(#fff, $text-color, 75%) !default;
+$footer-background-color: #000 !default;
+$link-color: #0000ff !default;
+$masthead-link-color: $text-color !default;
+$masthead-link-color-hover: $text-color !default;
+$navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
+
+/* contrast syntax highlighting (base16) */
+$base00: #000000 !default;
+$base01: #242422 !default;
+$base02: #484844 !default;
+$base03: #6c6c66 !default;
+$base04: #918f88 !default;
+$base05: #b5b3aa !default;
+$base06: #d9d7cc !default;
+$base07: #fdfbee !default;
+$base08: #ff6c60 !default;
+$base09: #e9c062 !default;
+$base0a: #ffffb6 !default;
+$base0b: #a8ff60 !default;
+$base0c: #c6c5fe !default;
+$base0d: #96cbfe !default;
+$base0e: #ff73fd !default;
+$base0f: #b18a3d !default;
+
+.page__content {
+ .notice,
+ .notice--primary,
+ .notice--info,
+ .notice--warning,
+ .notice--success,
+ .notice--danger {
+ color: $text-color;
+ }
+}
+
+.page__footer {
+ color: #fff !important; // override
+}
+
+.page__footer-follow .social-icons .svg-inline--fa {
+ color: inherit;
+}
diff --git a/_sass/minimal-mistakes/skins/_dark.scss b/_sass/minimal-mistakes/skins/_dark.scss
new file mode 100644
index 0000000..44f1bda
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_dark.scss
@@ -0,0 +1,28 @@
+/* ==========================================================================
+ Dark skin
+ ========================================================================== */
+
+/* Colors */
+$background-color: #252a34 !default;
+$text-color: #eaeaea !default;
+$primary-color: #00adb5 !default;
+$border-color: mix(#fff, $background-color, 20%) !default;
+$code-background-color: mix(#000, $background-color, 15%) !default;
+$code-background-color-dark: mix(#000, $background-color, 20%) !default;
+$form-background-color: mix(#000, $background-color, 15%) !default;
+$footer-background-color: mix(#000, $background-color, 30%) !default;
+$link-color: mix($primary-color, $text-color, 40%) !default;
+$link-color-hover: mix(#fff, $link-color, 25%) !default;
+$link-color-visited: mix(#000, $link-color, 25%) !default;
+$masthead-link-color: $text-color !default;
+$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
+$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
+
+.author__urls.social-icons .svg-inline--fa,
+.page__footer-follow .social-icons .svg-inline--fa {
+ color: inherit;
+}
+
+.ais-search-box .ais-search-box--input {
+ background-color: $form-background-color;
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/skins/_default.scss b/_sass/minimal-mistakes/skins/_default.scss
new file mode 100644
index 0000000..7489b58
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_default.scss
@@ -0,0 +1,5 @@
+/* ==========================================================================
+ Default skin
+ ========================================================================== */
+
+// Intentionally left blank
diff --git a/_sass/minimal-mistakes/skins/_dirt.scss b/_sass/minimal-mistakes/skins/_dirt.scss
new file mode 100644
index 0000000..5090f55
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_dirt.scss
@@ -0,0 +1,33 @@
+/* ==========================================================================
+ Dirt skin
+ ========================================================================== */
+
+/* Colors */
+$background-color: #f3f3f3 !default;
+$text-color: #343434 !default;
+$muted-text-color: #8e8b82 !default;
+$primary-color: #343434 !default;
+$border-color: #e9dcbe !default;
+$footer-background-color: #e9dcbe !default;
+$link-color: #343434 !default;
+$masthead-link-color: $text-color !default;
+$masthead-link-color-hover: $text-color !default;
+$navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
+
+/* dirt syntax highlighting (base16) */
+$base00: #231e18 !default;
+$base01: #302b25 !default;
+$base02: #48413a !default;
+$base03: #9d8b70 !default;
+$base04: #b4a490 !default;
+$base05: #cabcb1 !default;
+$base06: #d7c8bc !default;
+$base07: #e4d4c8 !default;
+$base08: #d35c5c !default;
+$base09: #ca7f32 !default;
+$base0a: #e0ac16 !default;
+$base0b: #b7ba53 !default;
+$base0c: #6eb958 !default;
+$base0d: #88a4d3 !default;
+$base0e: #bb90e2 !default;
+$base0f: #b49368 !default;
diff --git a/_sass/minimal-mistakes/skins/_mint.scss b/_sass/minimal-mistakes/skins/_mint.scss
new file mode 100644
index 0000000..575e977
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_mint.scss
@@ -0,0 +1,23 @@
+/* ==========================================================================
+ Mint skin
+ ========================================================================== */
+
+/* Colors */
+$background-color: #f3f6f6 !default;
+$text-color: #40514e !default;
+$muted-text-color: #40514e !default;
+$primary-color: #11999e !default;
+$border-color: mix(#fff, #40514e, 75%) !default;
+$footer-background-color: #30e3ca !default;
+$link-color: #11999e !default;
+$masthead-link-color: $text-color !default;
+$masthead-link-color-hover: $text-color !default;
+$navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
+
+.page__footer {
+ color: #fff !important; // override
+}
+
+.page__footer-follow .social-icons .svg-inline--fa {
+ color: inherit;
+}
diff --git a/_sass/minimal-mistakes/skins/_neon.scss b/_sass/minimal-mistakes/skins/_neon.scss
new file mode 100644
index 0000000..649cbff
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_neon.scss
@@ -0,0 +1,57 @@
+/* ==========================================================================
+ Neon skin
+ ========================================================================== */
+
+/* Colors */
+$background-color: #141010 !default;
+$text-color: #fff6fb !default;
+$primary-color: #f21368 !default;
+$border-color: mix(#fff, $background-color, 20%) !default;
+$code-background-color: mix(#000, $background-color, 15%) !default;
+$code-background-color-dark: mix(#000, $background-color, 20%) !default;
+$form-background-color: mix(#000, $background-color, 15%) !default;
+$footer-background-color: mix($primary-color, #000, 10%) !default;
+$link-color: $primary-color !default;
+$link-color-hover: mix(#fff, $link-color, 25%) !default;
+$link-color-visited: mix(#000, $link-color, 25%) !default;
+$masthead-link-color: $text-color !default;
+$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
+$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
+
+/* neon syntax highlighting (base16) */
+$base00: #ffffff !default;
+$base01: #e0e0e0 !default;
+$base02: #d0d0d0 !default;
+$base03: #b0b0b0 !default;
+$base04: #000000 !default;
+$base05: #101010 !default;
+$base06: #151515 !default;
+$base07: #202020 !default;
+$base08: #ff0086 !default;
+$base09: #fd8900 !default;
+$base0a: #aba800 !default;
+$base0b: #00c918 !default;
+$base0c: #1faaaa !default;
+$base0d: #3777e6 !default;
+$base0e: #ad00a1 !default;
+$base0f: #cc6633 !default;
+
+.author__urls.social-icons .svg-inline--fa,
+.page__footer-follow .social-icons .svg-inline--fa {
+ color: inherit;
+}
+
+/* next/previous buttons */
+.pagination--pager {
+ color: $text-color;
+ background-color: $primary-color;
+ border-color: transparent;
+
+ &:visited {
+ color: $text-color;
+ }
+}
+
+.ais-search-box .ais-search-box--input {
+ background-color: $form-background-color;
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/skins/_plum.scss b/_sass/minimal-mistakes/skins/_plum.scss
new file mode 100644
index 0000000..67975d5
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_plum.scss
@@ -0,0 +1,64 @@
+/* ==========================================================================
+ Plum skin
+ ========================================================================== */
+
+/* Colors */
+$background-color: #521477 !default;
+$text-color: #fffd86 !default;
+$primary-color: #c327ab !default;
+$border-color: mix(#fff, $background-color, 20%) !default;
+$code-background-color: mix(#000, $background-color, 15%) !default;
+$code-background-color-dark: mix(#000, $background-color, 20%) !default;
+$form-background-color: mix(#000, $background-color, 15%) !default;
+$footer-background-color: mix(#000, $background-color, 25%) !default;
+$link-color: $primary-color !default;
+$link-color-hover: mix(#fff, $link-color, 25%) !default;
+$link-color-visited: mix(#000, $link-color, 25%) !default;
+$masthead-link-color: $text-color !default;
+$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
+$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
+
+/* plum syntax highlighting (base16) */
+$base00: #ffffff !default;
+$base01: #e0e0e0 !default;
+$base02: #d0d0d0 !default;
+$base03: #b0b0b0 !default;
+$base04: #000000 !default;
+$base05: #101010 !default;
+$base06: #151515 !default;
+$base07: #202020 !default;
+$base08: #ff0086 !default;
+$base09: #fd8900 !default;
+$base0a: #aba800 !default;
+$base0b: #00c918 !default;
+$base0c: #1faaaa !default;
+$base0d: #3777e6 !default;
+$base0e: #ad00a1 !default;
+$base0f: #cc6633 !default;
+
+.author__urls.social-icons .svg-inline--fa,
+.page__footer-follow .social-icons .svg-inline--fa {
+ color: inherit;
+}
+
+.page__content {
+ a,
+ a:visited {
+ color: inherit;
+ }
+}
+
+/* next/previous buttons */
+.pagination--pager {
+ color: $text-color;
+ background-color: $primary-color;
+ border-color: transparent;
+
+ &:visited {
+ color: $text-color;
+ }
+}
+
+.ais-search-box .ais-search-box--input {
+ background-color: $form-background-color;
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/skins/_sunrise.scss b/_sass/minimal-mistakes/skins/_sunrise.scss
new file mode 100644
index 0000000..1f0dca3
--- /dev/null
+++ b/_sass/minimal-mistakes/skins/_sunrise.scss
@@ -0,0 +1,44 @@
+/* ==========================================================================
+ Sunrise skin
+ ========================================================================== */
+
+/* Colors */
+$dark-gray: #0e2431 !default;
+$background-color: #e8d5b7 !default;
+$text-color: #000 !default;
+$muted-text-color: $dark-gray !default;
+$primary-color: #fc3a52 !default;
+$border-color: mix(#000, $background-color, 20%) !default;
+$code-background-color: mix(#fff, $background-color, 20%) !default;
+$code-background-color-dark: mix(#000, $background-color, 10%) !default;
+$form-background-color: mix(#fff, $background-color, 15%) !default;
+$footer-background-color: #f9b248 !default;
+$link-color: mix(#000, $primary-color, 10%) !default;
+$link-color-hover: mix(#fff, $link-color, 25%) !default;
+$link-color-visited: mix(#000, $link-color, 25%) !default;
+$masthead-link-color: $text-color !default;
+$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
+$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
+
+/* sunrise syntax highlighting (base16) */
+$base00: #1d1f21 !default;
+$base01: #282a2e !default;
+$base02: #373b41 !default;
+$base03: #969896 !default;
+$base04: #b4b7b4 !default;
+$base05: #c5c8c6 !default;
+$base06: #e0e0e0 !default;
+$base07: #ffffff !default;
+$base08: #cc6666 !default;
+$base09: #de935f !default;
+$base0a: #f0c674 !default;
+$base0b: #b5bd68 !default;
+$base0c: #8abeb7 !default;
+$base0d: #81a2be !default;
+$base0e: #b294bb !default;
+$base0f: #a3685a !default;
+
+.author__urls.social-icons .fa,
+.page__footer-follow .social-icons .svg-inline--fa {
+ color: inherit;
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss b/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss
new file mode 100644
index 0000000..a0528eb
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss
@@ -0,0 +1,114 @@
+//////////////////////////////
+// Default Variables
+//////////////////////////////
+$Breakpoint-Settings: (
+ 'default media': all,
+ 'default feature': min-width,
+ 'default pair': width,
+
+ 'force all media type': false,
+ 'to ems': false,
+ 'transform resolutions': true,
+
+ 'no queries': false,
+ 'no query fallbacks': false,
+
+ 'base font size': 16px,
+
+ 'legacy syntax': false
+);
+
+$breakpoint: () !default;
+
+//////////////////////////////
+// Imports
+//////////////////////////////
+@import "settings";
+@import "context";
+@import "helpers";
+@import "parsers";
+@import "no-query";
+
+@import "respond-to";
+
+@import "legacy-settings";
+
+//////////////////////////////
+// Breakpoint Mixin
+//////////////////////////////
+
+@mixin breakpoint($query, $no-query: false) {
+ @include legacy-settings-warning;
+
+ // Reset contexts
+ @include private-breakpoint-reset-contexts();
+
+ $breakpoint: breakpoint($query, false);
+
+ $query-string: map-get($breakpoint, 'query');
+ $query-fallback: map-get($breakpoint, 'fallback');
+
+ $private-breakpoint-context-holder: map-get($breakpoint, 'context holder') !global;
+ $private-breakpoint-query-count: map-get($breakpoint, 'query count') !global;
+
+ // Allow for an as-needed override or usage of no query fallback.
+ @if $no-query != false {
+ $query-fallback: $no-query;
+ }
+
+ @if $query-fallback != false {
+ $context-setter: private-breakpoint-set-context('no-query', $query-fallback);
+ }
+
+ // Print Out Query String
+ @if not breakpoint-get('no queries') {
+ @media #{$query-string} {
+ @content;
+ }
+ }
+
+ @if breakpoint-get('no query fallbacks') != false or breakpoint-get('no queries') == true {
+
+ $type: type-of(breakpoint-get('no query fallbacks'));
+ $print: false;
+
+ @if ($type == 'bool') {
+ $print: true;
+ }
+ @else if ($type == 'string') {
+ @if $query-fallback == breakpoint-get('no query fallbacks') {
+ $print: true;
+ }
+ }
+ @else if ($type == 'list') {
+ @each $wrapper in breakpoint-get('no query fallbacks') {
+ @if $query-fallback == $wrapper {
+ $print: true;
+ }
+ }
+ }
+
+ // Write Fallback
+ @if ($query-fallback != false) and ($print == true) {
+ $type-fallback: type-of($query-fallback);
+
+ @if ($type-fallback != 'bool') {
+ #{$query-fallback} & {
+ @content;
+ }
+ }
+ @else {
+ @content;
+ }
+ }
+ }
+
+ @include private-breakpoint-reset-contexts();
+}
+
+
+@mixin mq($query, $no-query: false) {
+ @include breakpoint($query, $no-query) {
+ @content;
+ }
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/_context.scss b/_sass/minimal-mistakes/vendor/breakpoint/_context.scss
new file mode 100644
index 0000000..57947f5
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/_context.scss
@@ -0,0 +1,95 @@
+//////////////////////////////
+// Private Breakpoint Variables
+//////////////////////////////
+$private-breakpoint-context-holder: ();
+$private-breakpoint-query-count: 0 !default;
+
+//////////////////////////////
+// Breakpoint Has Context
+// Returns whether or not you are inside a Breakpoint query
+//////////////////////////////
+@function breakpoint-has-context() {
+ @if length($private-breakpoint-query-count) {
+ @return true;
+ }
+ @else {
+ @return false;
+ }
+}
+
+//////////////////////////////
+// Breakpoint Get Context
+// $feature: Input feature to get it's current MQ context. Returns false if no context
+//////////////////////////////
+@function breakpoint-get-context($feature) {
+ @if map-has-key($private-breakpoint-context-holder, $feature) {
+ $get: map-get($private-breakpoint-context-holder, $feature);
+ // Special handling of no-query from get side so /false/ prepends aren't returned
+ @if $feature == 'no-query' {
+ @if type-of($get) == 'list' and length($get) > 1 and nth($get, 1) == false {
+ $get: nth($get, length($get));
+ }
+ }
+ @return $get;
+ }
+ @else {
+ @if breakpoint-has-context() and $feature == 'media' {
+ @return breakpoint-get('default media');
+ }
+ @else {
+ @return false;
+ }
+ }
+}
+
+//////////////////////////////
+// Private function to set context
+//////////////////////////////
+@function private-breakpoint-set-context($feature, $value) {
+ @if $value == 'monochrome' {
+ $feature: 'monochrome';
+ }
+
+ $current: map-get($private-breakpoint-context-holder, $feature);
+ @if $current and length($current) == $private-breakpoint-query-count {
+ @warn "You have already queried against `#{$feature}`. Unexpected things may happen if you query against the same feature more than once in the same `and` query. Breakpoint is overwriting the current context with `#{$value}`";
+ }
+
+ @if not map-has-key($private-breakpoint-context-holder, $feature) {
+ $v-holder: ();
+ @for $i from 1 to $private-breakpoint-query-count {
+ @if $feature == 'media' {
+ $v-holder: append($v-holder, breakpoint-get('default media'));
+ }
+ @else {
+ $v-holder: append($v-holder, false);
+ }
+ }
+ $v-holder: append($v-holder, $value);
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
+ }
+ @else {
+ $v-holder: map-get($private-breakpoint-context-holder, $feature);
+ $length: length($v-holder);
+ @for $i from $length to $private-breakpoint-query-count - 1 {
+ @if $feature == 'media' {
+ $v-holder: append($v-holder, breakpoint-get('default media'));
+ }
+ @else {
+ $v-holder: append($v-holder, false);
+ }
+ }
+ $v-holder: append($v-holder, $value);
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
+ }
+
+ @return true;
+}
+
+//////////////////////////////
+// Private function to reset context
+//////////////////////////////
+@mixin private-breakpoint-reset-contexts {
+ $private-breakpoint-context-holder: () !global;
+ $private-breakpoint-query-count: 0 !global;
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss b/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss
new file mode 100644
index 0000000..97e522d
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss
@@ -0,0 +1,151 @@
+//////////////////////////////
+// Converts the input value to Base EMs
+//////////////////////////////
+@function breakpoint-to-base-em($value) {
+ $value-unit: unit($value);
+
+ // Will convert relative EMs into root EMs.
+ @if breakpoint-get('base font size') and type-of(breakpoint-get('base font size')) == 'number' and $value-unit == 'em' {
+ $base-unit: unit(breakpoint-get('base font size'));
+
+ @if $base-unit == 'px' or $base-unit == '%' or $base-unit == 'em' or $base-unit == 'pt' {
+ @return base-conversion($value) / base-conversion(breakpoint-get('base font size')) * 1em;
+ }
+ @else {
+ @warn '#{breakpoint-get(\'base font size\')} is not set in valid units for font size!';
+ @return false;
+ }
+ }
+ @else {
+ @return base-conversion($value);
+ }
+}
+
+@function base-conversion($value) {
+ $unit: unit($value);
+
+ @if $unit == 'px' {
+ @return $value / 16px * 1em;
+ }
+ @else if $unit == '%' {
+ @return $value / 100% * 1em;
+ }
+ @else if $unit == 'em' {
+ @return $value;
+ }
+ @else if $unit == 'pt' {
+ @return $value / 12pt * 1em;
+ }
+ @else {
+ @return $value;
+// @warn 'Everything is terrible! What have you done?!';
+ }
+}
+
+//////////////////////////////
+// Returns whether the feature can have a min/max pair
+//////////////////////////////
+$breakpoint-min-max-features: 'color',
+ 'color-index',
+ 'aspect-ratio',
+ 'device-aspect-ratio',
+ 'device-height',
+ 'device-width',
+ 'height',
+ 'monochrome',
+ 'resolution',
+ 'width';
+
+@function breakpoint-min-max($feature) {
+ @each $item in $breakpoint-min-max-features {
+ @if $feature == $item {
+ @return true;
+ }
+ }
+ @return false;
+}
+
+//////////////////////////////
+// Returns whether the feature can have a string value
+//////////////////////////////
+$breakpoint-string-features: 'orientation',
+ 'scan',
+ 'color',
+ 'aspect-ratio',
+ 'device-aspect-ratio',
+ 'pointer',
+ 'luminosity';
+
+@function breakpoint-string-value($feature) {
+ @each $item in $breakpoint-string-features {
+ @if breakpoint-min-max($item) {
+ @if $feature == 'min-#{$item}' or $feature == 'max-#{$item}' {
+ @return true;
+ }
+ }
+ @else if $feature == $item {
+ @return true;
+ }
+ }
+ @return false;
+}
+
+//////////////////////////////
+// Returns whether the feature is a media type
+//////////////////////////////
+$breakpoint-media-types: 'all',
+ 'braille',
+ 'embossed',
+ 'handheld',
+ 'print',
+ 'projection',
+ 'screen',
+ 'speech',
+ 'tty',
+ 'tv';
+
+@function breakpoint-is-media($feature) {
+ @each $media in $breakpoint-media-types {
+ @if ($feature == $media) or ($feature == 'not #{$media}') or ($feature == 'only #{$media}') {
+ @return true;
+ }
+ }
+
+ @return false;
+}
+
+//////////////////////////////
+// Returns whether the feature can stand alone
+//////////////////////////////
+$breakpoint-single-string-features: 'color',
+ 'color-index',
+ 'grid',
+ 'monochrome';
+
+@function breakpoint-single-string($feature) {
+ @each $item in $breakpoint-single-string-features {
+ @if $feature == $item {
+ @return true;
+ }
+ }
+ @return false;
+}
+
+//////////////////////////////
+// Returns whether the feature
+//////////////////////////////
+@function breakpoint-is-resolution($feature) {
+ $resolutions: 'device-pixel-ratio', 'dpr';
+
+ @if breakpoint-get('transform resolutions') {
+ $resolutions: append($resolutions, 'resolution');
+ }
+
+ @each $reso in $resolutions {
+ @if index($feature, $reso) or index($feature, 'min-#{$reso}') or index($feature, 'max-#{$reso}') {
+ @return true;
+ }
+ }
+
+ @return false;
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss b/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss
new file mode 100644
index 0000000..e060ebe
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss
@@ -0,0 +1,50 @@
+@mixin legacy-settings-warning {
+ $legacyVars: (
+ 'default-media': 'default media',
+ 'default-feature': 'default feature',
+ 'force-media-all': 'force all media type',
+ 'to-ems': 'to ems',
+ 'resolutions': 'transform resolutions',
+ 'no-queries': 'no queries',
+ 'no-query-fallbacks': 'no query fallbacks',
+ 'base-font-size': 'base font size',
+ 'legacy-syntax': 'legacy syntax'
+ );
+
+ @each $legacy, $new in $legacyVars {
+ @if global-variable-exists('breakpoint-' + $legacy) {
+ @warn "In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release."
+ }
+ };
+
+ //////////////////////////////
+ // Hand correct each setting
+ //////////////////////////////
+ @if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') {
+ @include breakpoint-set('default media', $breakpoint-default-media);
+ }
+ @if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') {
+ @include breakpoint-set('default feature', $breakpoint-default-feature);
+ }
+ @if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') {
+ @include breakpoint-set('force all media type', $breakpoint-force-media-all);
+ }
+ @if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') {
+ @include breakpoint-set('to ems', $breakpoint-to-ems);
+ }
+ @if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') {
+ @include breakpoint-set('transform resolutions', $breakpoint-resolutions);
+ }
+ @if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') {
+ @include breakpoint-set('no queries', $breakpoint-no-queries);
+ }
+ @if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') {
+ @include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks);
+ }
+ @if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') {
+ @include breakpoint-set('base font size', $breakpoint-base-font-size);
+ }
+ @if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') {
+ @include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax);
+ }
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss b/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss
new file mode 100644
index 0000000..0b5a81f
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss
@@ -0,0 +1,15 @@
+@function breakpoint-no-query($query) {
+ @if type-of($query) == 'list' {
+ $keyword: nth($query, 1);
+
+ @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') {
+ @return nth($query, 2);
+ }
+ @else {
+ @return false;
+ }
+ }
+ @else {
+ @return false;
+ }
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss b/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss
new file mode 100644
index 0000000..f0b053f
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss
@@ -0,0 +1,215 @@
+//////////////////////////////
+// Import Parser Pieces
+//////////////////////////////
+@import "parsers/query";
+@import "parsers/single";
+@import "parsers/double";
+@import "parsers/triple";
+@import "parsers/resolution";
+
+$Memo-Exists: function-exists(memo-get) and function-exists(memo-set);
+
+//////////////////////////////
+// Breakpoint Function
+//////////////////////////////
+@function breakpoint($query, $contexts...) {
+ $run: true;
+ $return: ();
+
+ // Grab the Memo Output if Memoization can be a thing
+ @if $Memo-Exists {
+ $return: memo-get(breakpoint, breakpoint $query $contexts);
+
+ @if $return != null {
+ $run: false;
+ }
+ }
+
+ @if not $Memo-Exists or $run {
+ // Internal Variables
+ $query-string: '';
+ $query-fallback: false;
+ $return: ();
+
+ // Reserve Global Private Breakpoint Context
+ $holder-context: $private-breakpoint-context-holder;
+ $holder-query-count: $private-breakpoint-query-count;
+
+ // Reset Global Private Breakpoint Context
+ $private-breakpoint-context-holder: () !global;
+ $private-breakpoint-query-count: 0 !global;
+
+
+ // Test to see if it's a comma-separated list
+ $or-list: if(list-separator($query) == 'comma', true, false);
+
+
+ @if ($or-list == false and breakpoint-get('legacy syntax') == false) {
+ $query-string: breakpoint-parse($query);
+ }
+ @else {
+ $length: length($query);
+
+ $last: nth($query, $length);
+ $query-fallback: breakpoint-no-query($last);
+
+ @if ($query-fallback != false) {
+ $length: $length - 1;
+ }
+
+ @if (breakpoint-get('legacy syntax') == true) {
+ $mq: ();
+
+ @for $i from 1 through $length {
+ $mq: append($mq, nth($query, $i), comma);
+ }
+
+ $query-string: breakpoint-parse($mq);
+ }
+ @else {
+ $query-string: '';
+ @for $i from 1 through $length {
+ $query-string: $query-string + if($i == 1, '', ', ') + breakpoint-parse(nth($query, $i));
+ }
+ }
+ }
+
+ $return: ('query': $query-string,
+ 'fallback': $query-fallback,
+ 'context holder': $private-breakpoint-context-holder,
+ 'query count': $private-breakpoint-query-count
+ );
+ @if length($contexts) > 0 and nth($contexts, 1) != false {
+ @if $query-fallback != false {
+ $context-setter: private-breakpoint-set-context('no-query', $query-fallback);
+ }
+ $context-map: ();
+ @each $context in $contexts {
+ $context-map: map-merge($context-map, ($context: breakpoint-get-context($context)));
+ }
+ $return: map-merge($return, (context: $context-map));
+ }
+
+ // Reset Global Private Breakpoint Context
+ $private-breakpoint-context-holder: () !global;
+ $private-breakpoint-query-count: 0 !global;
+
+ @if $Memo-Exists {
+ $holder: memo-set(breakpoint, breakpoint $query $contexts, $return);
+ }
+ }
+
+ @return $return;
+}
+
+//////////////////////////////
+// General Breakpoint Parser
+//////////////////////////////
+@function breakpoint-parse($query) {
+ // Increase number of 'and' queries
+ $private-breakpoint-query-count: $private-breakpoint-query-count + 1 !global;
+
+ // Set up Media Type
+ $query-print: '';
+
+ $force-all: ((breakpoint-get('force all media type') == true) and (breakpoint-get('default media') == 'all'));
+ $empty-media: true;
+ @if ($force-all == true) or (breakpoint-get('default media') != 'all') {
+ // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
+ $query-print: breakpoint-get('default media');
+ $empty-media: false;
+ }
+
+
+ $query-resolution: false;
+
+ $query-holder: breakpoint-parse-query($query);
+
+
+
+ // Loop over each parsed out query and write it to $query-print
+ $first: true;
+
+ @each $feature in $query-holder {
+ $length: length($feature);
+
+ // Parse a single feature
+ @if ($length == 1) {
+ // Feature is currently a list, grab the actual value
+ $feature: nth($feature, 1);
+
+ // Media Type must by convention be the first item, so it's safe to flat override $query-print, which right now should only be the default media type
+ @if (breakpoint-is-media($feature)) {
+ @if ($force-all == true) or ($feature != 'all') {
+ // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
+ $query-print: $feature;
+ $empty-media: false;
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context(media, $query-print);
+ }
+ }
+ @else {
+ $parsed: breakpoint-parse-single($feature, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ $first: false;
+ }
+ }
+ // Parse a double feature
+ @else if ($length == 2) {
+ @if (breakpoint-is-resolution($feature) != false) {
+ $query-resolution: $feature;
+ }
+ @else {
+ $parsed: null;
+ // If it's a string/number pair,
+ // we check to see if one is a single-string value,
+ // then we parse it as a normal double
+ $alpha: nth($feature, 1);
+ $beta: nth($feature, 2);
+ @if breakpoint-single-string($alpha) or breakpoint-single-string($beta) {
+ $parsed: breakpoint-parse-single($alpha, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ $first: false;
+ $parsed: breakpoint-parse-single($beta, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ }
+ @else {
+ $parsed: breakpoint-parse-double($feature, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ $first: false;
+ }
+ }
+ }
+ // Parse a triple feature
+ @else if ($length == 3) {
+ $parsed: breakpoint-parse-triple($feature, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ $first: false;
+ }
+
+ }
+
+ @if ($query-resolution != false) {
+ $query-print: breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first);
+ }
+
+ // Loop through each feature that's been detected so far and append 'false' to the the value list to increment their counters
+ @each $f, $v in $private-breakpoint-context-holder {
+ $v-holder: $v;
+ $length: length($v-holder);
+ @if length($v-holder) < $private-breakpoint-query-count {
+ @for $i from $length to $private-breakpoint-query-count {
+ @if $f == 'media' {
+ $v-holder: append($v-holder, breakpoint-get('default media'));
+ }
+ @else {
+ $v-holder: append($v-holder, false);
+ }
+ }
+ }
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($f: $v-holder)) !global;
+ }
+
+ @return $query-print;
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss b/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss
new file mode 100644
index 0000000..e2462c5
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss
@@ -0,0 +1,82 @@
+////////////////////////
+// Default the Breakpoints variable
+////////////////////////
+$breakpoints: () !default;
+$BREAKPOINTS: () !default;
+
+////////////////////////
+// Respond-to API Mixin
+////////////////////////
+@mixin respond-to($context, $no-query: false) {
+ @if length($breakpoints) > 0 and length($BREAKPOINTS) == 0 {
+ @warn "In order to avoid variable namespace collisions, we have updated the way to add breakpoints for respond-to. Please change all instances of `$breakpoints: add-breakpoint()` to `@include add-breakpoint()`. The `add-breakpoint()` function will be deprecated in a future release.";
+ $BREAKPOINTS: $breakpoints !global;
+ $breakpoints: () !global;
+ }
+
+ @if type-of($BREAKPOINTS) != 'map' {
+ // Just in case someone writes gibberish to the $breakpoints variable.
+ @warn "Your breakpoints aren't a map! `respond-to` expects a map. Please check the value of $BREAKPOINTS variable.";
+ @content;
+ }
+ @else if map-has-key($BREAKPOINTS, $context) {
+ @include breakpoint(map-get($BREAKPOINTS, $context), $no-query) {
+ @content;
+ }
+ }
+ @else if not map-has-key($BREAKPOINTS, $context) {
+ @warn "`#{$context}` isn't a defined breakpoint! Please add it using `$breakpoints: add-breakpoint(`#{$context}`, $value);`";
+ @content;
+ }
+ @else {
+ @warn "You haven't created any breakpoints yet! Make some already! `@include add-breakpoint($name, $bkpt)`";
+ @content;
+ }
+}
+
+//////////////////////////////
+// Add Breakpoint to Breakpoints
+// TODO: Remove function in next release
+//////////////////////////////
+@function add-breakpoint($name, $bkpt, $overwrite: false) {
+ $output: ($name: $bkpt);
+
+ @if length($breakpoints) == 0 {
+ @return $output;
+ }
+ @else {
+ @if map-has-key($breakpoints, $name) and $overwrite != true {
+ @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.";
+ @return $breakpoints;
+ }
+ @else if not map-has-key($breakpoints, $name) or $overwrite == true {
+ @return map-merge($breakpoints, $output);
+ }
+ }
+}
+
+@mixin add-breakpoint($name, $bkpt, $overwrite: false) {
+ $output: ($name: $bkpt);
+
+ @if length($BREAKPOINTS) == 0 {
+ $BREAKPOINTS: $output !global;
+ }
+ @else {
+ @if map-has-key($BREAKPOINTS, $name) and $overwrite != true {
+ @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.";
+ $BREAKPOINTS: $BREAKPOINTS !global;
+ }
+ @else if not map-has-key($BREAKPOINTS, $name) or $overwrite == true {
+ $BREAKPOINTS: map-merge($BREAKPOINTS, $output) !global;
+ }
+ }
+}
+
+@function get-breakpoint($name: false) {
+ @if $name == false {
+ @return $BREAKPOINTS;
+ }
+ @else {
+ @return map-get($BREAKPOINTS, $name);
+ }
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss b/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss
new file mode 100644
index 0000000..05ee689
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss
@@ -0,0 +1,71 @@
+//////////////////////////////
+// Has Setting
+//////////////////////////////
+@function breakpoint-has($setting) {
+ @if map-has-key($breakpoint, $setting) {
+ @return true;
+ }
+ @else {
+ @return false;
+ }
+}
+
+//////////////////////////////
+// Get Settings
+//////////////////////////////
+@function breakpoint-get($setting) {
+ @if breakpoint-has($setting) {
+ @return map-get($breakpoint, $setting);
+ }
+ @else {
+ @return map-get($Breakpoint-Settings, $setting);
+ }
+}
+
+//////////////////////////////
+// Set Settings
+//////////////////////////////
+@function breakpoint-set($setting, $value) {
+ @if (str-index($setting, '-') or str-index($setting, '_')) and str-index($setting, ' ') == null {
+ @warn "Words in Breakpoint settings should be separated by spaces, not dashes or underscores. Please replace dashes and underscores between words with spaces. Settings will not work as expected until changed.";
+ }
+ $breakpoint: map-merge($breakpoint, ($setting: $value)) !global;
+ @return true;
+}
+
+@mixin breakpoint-change($setting, $value) {
+ $breakpoint-change: breakpoint-set($setting, $value);
+}
+
+@mixin breakpoint-set($setting, $value) {
+ @include breakpoint-change($setting, $value);
+}
+
+@mixin bkpt-change($setting, $value) {
+ @include breakpoint-change($setting, $value);
+}
+@mixin bkpt-set($setting, $value) {
+ @include breakpoint-change($setting, $value);
+}
+
+//////////////////////////////
+// Remove Setting
+//////////////////////////////
+@function breakpoint-reset($settings...) {
+ @if length($settings) == 1 {
+ $settings: nth($settings, 1);
+ }
+
+ @each $setting in $settings {
+ $breakpoint: map-remove($breakpoint, $setting) !global;
+ }
+ @return true;
+}
+
+@mixin breakpoint-reset($settings...) {
+ $breakpoint-reset: breakpoint-reset($settings);
+}
+
+@mixin bkpt-reset($settings...) {
+ $breakpoint-reset: breakpoint-reset($settings);
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss
new file mode 100644
index 0000000..24580c1
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss
@@ -0,0 +1,33 @@
+//////////////////////////////
+// Import Pieces
+//////////////////////////////
+@import "double/default-pair";
+@import "double/double-string";
+@import "double/default";
+
+@function breakpoint-parse-double($feature, $empty-media, $first) {
+ $parsed: '';
+ $leader: '';
+ // If we're forcing
+ @if not ($empty-media) or not ($first) {
+ $leader: 'and ';
+ }
+
+ $first: nth($feature, 1);
+ $second: nth($feature, 2);
+
+ // If we've got two numbers, we know we need to use the default pair because there are no media queries that has a media feature that is a number
+ @if type-of($first) == 'number' and type-of($second) == 'number' {
+ $parsed: breakpoint-parse-default-pair($first, $second);
+ }
+ // If they are both strings, we send it through the string parser
+ @else if type-of($first) == 'string' and type-of($second) == 'string' {
+ $parsed: breakpoint-parse-double-string($first, $second);
+ }
+ // If it's a string/number pair, we parse it as a normal double
+ @else {
+ $parsed: breakpoint-parse-double-default($first, $second);
+ }
+
+ @return $leader + $parsed;
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss
new file mode 100644
index 0000000..b138b39
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss
@@ -0,0 +1,82 @@
+@function breakpoint-parse-query($query) {
+ // Parse features out of an individual query
+ $feature-holder: ();
+ $query-holder: ();
+ $length: length($query);
+
+ @if $length == 2 {
+ // If we've got a string/number, number/string, check to see if it's a valid string/number pair or two singles
+ @if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'number') or (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'string') {
+
+ $number: '';
+ $value: '';
+
+ @if type-of(nth($query, 1)) == 'string' {
+ $number: nth($query, 2);
+ $value: nth($query, 1);
+ }
+ @else {
+ $number: nth($query, 1);
+ $value: nth($query, 2);
+ }
+
+ // If the string value can be a single value, check to see if the number passed in is a valid input for said single value. Fortunately, all current single-value options only accept unitless numbers, so this check is easy.
+ @if breakpoint-single-string($value) {
+ @if unitless($number) {
+ $feature-holder: append($value, $number, space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+ }
+ // If the string is a media type, split the query
+ @if breakpoint-is-media($value) {
+ $query-holder: append($query-holder, nth($query, 1));
+ $query-holder: append($query-holder, nth($query, 2));
+ @return $query-holder;
+ }
+ // If it's not a single feature, we're just going to assume it's a proper string/value pair, and roll with it.
+ @else {
+ $feature-holder: append($value, $number, space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+
+ }
+ // If they're both numbers, we assume it's a double and roll with that
+ @else if (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'number') {
+ $feature-holder: append(nth($query, 1), nth($query, 2), space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+ // If they're both strings and neither are singles, we roll with that.
+ @else if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'string') {
+ @if not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) {
+ $feature-holder: append(nth($query, 1), nth($query, 2), space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+ }
+ }
+ @else if $length == 3 {
+ // If we've got three items and none is a list, we check to see
+ @if type-of(nth($query, 1)) != 'list' and type-of(nth($query, 2)) != 'list' and type-of(nth($query, 3)) != 'list' {
+ // If none of the items are single string values and none of the values are media values, we're good.
+ @if (not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) and not breakpoint-single-string(nth($query, 3))) and ((not breakpoint-is-media(nth($query, 1)) and not breakpoint-is-media(nth($query, 2)) and not breakpoint-is-media(nth($query, 3)))) {
+ $feature-holder: append(nth($query, 1), nth($query, 2), space);
+ $feature-holder: append($feature-holder, nth($query, 3), space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+ // let's check to see if the first item is a media type
+ @else if breakpoint-is-media(nth($query, 1)) {
+ $query-holder: append($query-holder, nth($query, 1));
+ $feature-holder: append(nth($query, 2), nth($query, 3), space);
+ $query-holder: append($query-holder, $feature-holder);
+ @return $query-holder;
+ }
+ }
+ }
+
+ // If it's a single item, or if it's not a special case double or triple, we can simply return the query.
+ @return $query;
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss
new file mode 100644
index 0000000..19769ad
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss
@@ -0,0 +1,31 @@
+@import "resolution/resolution";
+
+@function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first) {
+ $leader: '';
+ // If we're forcing
+ @if not ($empty-media) or not ($first) {
+ $leader: 'and ';
+ }
+
+ @if breakpoint-get('transform resolutions') and $query-resolution {
+ $resolutions: breakpoint-make-resolutions($query-resolution);
+ $length: length($resolutions);
+ $query-holder: '';
+
+ @for $i from 1 through $length {
+ $query: '#{$query-print} #{$leader}#{nth($resolutions, $i)}';
+ @if $i == 1 {
+ $query-holder: $query;
+ }
+ @else {
+ $query-holder: '#{$query-holder}, #{$query}';
+ }
+ }
+
+ @return $query-holder;
+ }
+ @else {
+ // Return with attached resolution
+ @return $query-print;
+ }
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss
new file mode 100644
index 0000000..d9fd764
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss
@@ -0,0 +1,26 @@
+//////////////////////////////
+// Import Pieces
+//////////////////////////////
+@import "single/default";
+
+@function breakpoint-parse-single($feature, $empty-media, $first) {
+ $parsed: '';
+ $leader: '';
+ // If we're forcing
+ @if not ($empty-media) or not ($first) {
+ $leader: 'and ';
+ }
+
+ // If it's a single feature that can stand alone, we let it
+ @if (breakpoint-single-string($feature)) {
+ $parsed: $feature;
+ // Set Context
+ $context-setter: private-breakpoint-set-context($feature, $feature);
+ }
+ // If it's not a stand alone feature, we pass it off to the default handler.
+ @else {
+ $parsed: breakpoint-parse-default($feature);
+ }
+
+ @return $leader + '(' + $parsed + ')';
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss
new file mode 100644
index 0000000..e273206
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss
@@ -0,0 +1,36 @@
+//////////////////////////////
+// Import Pieces
+//////////////////////////////
+@import "triple/default";
+
+@function breakpoint-parse-triple($feature, $empty-media, $first) {
+ $parsed: '';
+ $leader: '';
+
+ // If we're forcing
+ @if not ($empty-media) or not ($first) {
+ $leader: 'and ';
+ }
+
+ // separate the string features from the value numbers
+ $string: null;
+ $numbers: null;
+ @each $val in $feature {
+ @if type-of($val) == string {
+ $string: $val;
+ }
+ @else {
+ @if type-of($numbers) == 'null' {
+ $numbers: $val;
+ }
+ @else {
+ $numbers: append($numbers, $val);
+ }
+ }
+ }
+
+ $parsed: breakpoint-parse-triple-default($string, nth($numbers, 1), nth($numbers, 2));
+
+ @return $leader + $parsed;
+
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss
new file mode 100644
index 0000000..f88432c
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss
@@ -0,0 +1,21 @@
+@function breakpoint-parse-default-pair($first, $second) {
+ $default: breakpoint-get('default pair');
+ $min: '';
+ $max: '';
+
+ // Sort into min and max
+ $min: min($first, $second);
+ $max: max($first, $second);
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context(min-#{$default}, $min);
+ $context-setter: private-breakpoint-set-context(max-#{$default}, $max);
+
+ // Make them EMs if need be
+ @if (breakpoint-get('to ems') == true) {
+ $min: breakpoint-to-base-em($min);
+ $max: breakpoint-to-base-em($max);
+ }
+
+ @return '(min-#{$default}: #{$min}) and (max-#{$default}: #{$max})';
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss
new file mode 100644
index 0000000..73190ed
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss
@@ -0,0 +1,22 @@
+@function breakpoint-parse-double-default($first, $second) {
+ $feature: '';
+ $value: '';
+
+ @if type-of($first) == 'string' {
+ $feature: $first;
+ $value: $second;
+ }
+ @else {
+ $feature: $second;
+ $value: $first;
+ }
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context($feature, $value);
+
+ @if (breakpoint-get('to ems') == true) {
+ $value: breakpoint-to-base-em($value);
+ }
+
+ @return '(#{$feature}: #{$value})'
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss
new file mode 100644
index 0000000..c6fd0cb
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss
@@ -0,0 +1,22 @@
+@function breakpoint-parse-double-string($first, $second) {
+ $feature: '';
+ $value: '';
+
+ // Test to see which is the feature and which is the value
+ @if (breakpoint-string-value($first) == true) {
+ $feature: $first;
+ $value: $second;
+ }
+ @else if (breakpoint-string-value($second) == true) {
+ $feature: $second;
+ $value: $first;
+ }
+ @else {
+ @warn "Neither #{$first} nor #{$second} is a valid media query name.";
+ }
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context($feature, $value);
+
+ @return '(#{$feature}: #{$value})';
+}
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss
new file mode 100644
index 0000000..3680421
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss
@@ -0,0 +1,60 @@
+@function breakpoint-make-resolutions($resolution) {
+ $length: length($resolution);
+
+ $output: ();
+
+ @if $length == 2 {
+ $feature: '';
+ $value: '';
+
+ // Find which is number
+ @if type-of(nth($resolution, 1)) == 'number' {
+ $value: nth($resolution, 1);
+ }
+ @else {
+ $value: nth($resolution, 2);
+ }
+
+ // Determine min/max/standard
+ @if index($resolution, 'min-resolution') {
+ $feature: 'min-';
+ }
+ @else if index($resolution, 'max-resolution') {
+ $feature: 'max-';
+ }
+
+ $standard: '(#{$feature}resolution: #{$value})';
+
+ // If we're not dealing with dppx,
+ @if unit($value) != 'dppx' {
+ $base: 96dpi;
+ @if unit($value) == 'dpcm' {
+ $base: 243.84dpcm;
+ }
+ // Write out feature tests
+ $webkit: '';
+ $moz: '';
+ $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})';
+ $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})';
+ // Append to output
+ $output: append($output, $standard, space);
+ $output: append($output, $webkit, space);
+ $output: append($output, $moz, space);
+ }
+ @else {
+ $webkit: '';
+ $moz: '';
+ $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})';
+ $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})';
+ $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})';
+ // Append to output
+ $output: append($output, $standard, space);
+ $output: append($output, $webkit, space);
+ $output: append($output, $moz, space);
+ $output: append($output, $fallback, space);
+ }
+
+ }
+
+ @return $output;
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss
new file mode 100644
index 0000000..503ef42
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss
@@ -0,0 +1,13 @@
+@function breakpoint-parse-default($feature) {
+ $default: breakpoint-get('default feature');
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context($default, $feature);
+
+ @if (breakpoint-get('to ems') == true) and (type-of($feature) == 'number') {
+ @return '#{$default}: #{breakpoint-to-base-em($feature)}';
+ }
+ @else {
+ @return '#{$default}: #{$feature}';
+ }
+}
diff --git a/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss
new file mode 100644
index 0000000..7fa418d
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss
@@ -0,0 +1,18 @@
+@function breakpoint-parse-triple-default($feature, $first, $second) {
+
+ // Sort into min and max
+ $min: min($first, $second);
+ $max: max($first, $second);
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context(min-#{$feature}, $min);
+ $context-setter: private-breakpoint-set-context(max-#{$feature}, $max);
+
+ // Make them EMs if need be
+ @if (breakpoint-get('to ems') == true) {
+ $min: breakpoint-to-base-em($min);
+ $max: breakpoint-to-base-em($max);
+ }
+
+ @return '(min-#{$feature}: #{$min}) and (max-#{$feature}: #{$max})';
+}
diff --git a/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss b/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss
new file mode 100644
index 0000000..27b27bc
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss
@@ -0,0 +1,649 @@
+/* Magnific Popup CSS */
+
+@import "settings";
+
+////////////////////////
+//
+// Contents:
+//
+// 1. Default Settings
+// 2. General styles
+// - Transluscent overlay
+// - Containers, wrappers
+// - Cursors
+// - Helper classes
+// 3. Appearance
+// - Preloader & text that displays error messages
+// - CSS reset for buttons
+// - Close icon
+// - "1 of X" counter
+// - Navigation (left/right) arrows
+// - Iframe content type styles
+// - Image content type styles
+// - Media query where size of arrows is reduced
+// - IE7 support
+//
+////////////////////////
+
+
+
+////////////////////////
+// 1. Default Settings
+////////////////////////
+
+$mfp-overlay-color: #0b0b0b !default;
+$mfp-overlay-opacity: 0.8 !default;
+$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // shadow on image or iframe
+$mfp-popup-padding-left: 8px !default; // Padding from left and from right side
+$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px
+
+$mfp-z-index-base: 1040 !default; // Base z-index of popup
+$mfp-include-arrows: true !default; // include styles for nav arrows
+$mfp-controls-opacity: 0.65 !default;
+$mfp-controls-color: #FFF !default;
+$mfp-controls-border-color: #3F3F3F !default;
+$mfp-inner-close-icon-color: #333 !default;
+$mfp-controls-text-color: #CCC !default; // Color of preloader and "1 of X" indicator
+$mfp-controls-text-color-hover: #FFF !default;
+$mfp-IE7support: true !default; // Very basic IE7 support
+
+// Iframe-type options
+$mfp-include-iframe-type: true !default;
+$mfp-iframe-padding-top: 40px !default;
+$mfp-iframe-background: #000 !default;
+$mfp-iframe-max-width: 900px !default;
+$mfp-iframe-ratio: 9/16 !default;
+
+// Image-type options
+$mfp-include-image-type: true !default;
+$mfp-image-background: #444 !default;
+$mfp-image-padding-top: 40px !default;
+$mfp-image-padding-bottom: 40px !default;
+$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom
+
+// Image caption options
+$mfp-caption-title-color: #F3F3F3 !default;
+$mfp-caption-subtitle-color: #BDBDBD !default;
+
+// A11y
+$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers
+
+
+
+////////////////////////
+// 2. General styles
+////////////////////////
+
+// Transluscent overlay
+.mfp-bg {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: $mfp-z-index-base + 2;
+ overflow: hidden;
+ position: fixed;
+
+ background: $mfp-overlay-color;
+ opacity: $mfp-overlay-opacity;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{$mfp-overlay-opacity*100})");
+ }
+}
+
+// Wrapper for popup
+.mfp-wrap {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: $mfp-z-index-base + 3;
+ position: fixed;
+ outline: none !important;
+ -webkit-backface-visibility: hidden; // fixes webkit bug that can cause "false" scrollbar
+}
+
+// Root container
+.mfp-container {
+ text-align: center;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ padding: 0 $mfp-popup-padding-left;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+// Vertical centerer helper
+.mfp-container {
+ &:before {
+ content: '';
+ display: inline-block;
+ height: 100%;
+ vertical-align: middle;
+ }
+}
+
+// Remove vertical centering when popup has class `mfp-align-top`
+.mfp-align-top {
+ .mfp-container {
+ &:before {
+ display: none;
+ }
+ }
+}
+
+// Popup content holder
+.mfp-content {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 auto;
+ text-align: left;
+ z-index: $mfp-z-index-base + 5;
+}
+.mfp-inline-holder,
+.mfp-ajax-holder {
+ .mfp-content {
+ width: 100%;
+ cursor: auto;
+ }
+}
+
+// Cursors
+.mfp-ajax-cur {
+ cursor: progress;
+}
+.mfp-zoom-out-cur {
+ &, .mfp-image-holder .mfp-close {
+ cursor: -moz-zoom-out;
+ cursor: -webkit-zoom-out;
+ cursor: zoom-out;
+ }
+}
+.mfp-zoom {
+ cursor: pointer;
+ cursor: -webkit-zoom-in;
+ cursor: -moz-zoom-in;
+ cursor: zoom-in;
+}
+.mfp-auto-cursor {
+ .mfp-content {
+ cursor: auto;
+ }
+}
+
+.mfp-close,
+.mfp-arrow,
+.mfp-preloader,
+.mfp-counter {
+ -webkit-user-select:none;
+ -moz-user-select: none;
+ user-select: none;
+}
+
+// Hide the image during the loading
+.mfp-loading {
+ &.mfp-figure {
+ display: none;
+ }
+}
+
+// Helper class that hides stuff
+@if $mfp-use-visuallyhidden {
+ // From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden
+ .mfp-hide {
+ border: 0 !important;
+ clip: rect(0 0 0 0) !important;
+ height: 1px !important;
+ margin: -1px !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ width: 1px !important;
+ }
+} @else {
+ .mfp-hide {
+ display: none !important;
+ }
+}
+
+
+////////////////////////
+// 3. Appearance
+////////////////////////
+
+// Preloader and text that displays error messages
+.mfp-preloader {
+ color: $mfp-controls-text-color;
+ position: absolute;
+ top: 50%;
+ width: auto;
+ text-align: center;
+ margin-top: -0.8em;
+ left: 8px;
+ right: 8px;
+ z-index: $mfp-z-index-base + 4;
+ a {
+ color: $mfp-controls-text-color;
+ &:hover {
+ color: $mfp-controls-text-color-hover;
+ }
+ }
+}
+
+// Hide preloader when content successfully loaded
+.mfp-s-ready {
+ .mfp-preloader {
+ display: none;
+ }
+}
+
+// Hide content when it was not loaded
+.mfp-s-error {
+ .mfp-content {
+ display: none;
+ }
+}
+
+// CSS-reset for buttons
+button {
+ &.mfp-close,
+ &.mfp-arrow {
+ overflow: visible;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+ display: block;
+ outline: none;
+ padding: 0;
+ z-index: $mfp-z-index-base + 6;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ &::-moz-focus-inner {
+ padding: 0;
+ border: 0
+ }
+}
+
+
+// Close icon
+.mfp-close {
+ width: 44px;
+ height: 44px;
+ line-height: 44px;
+
+ position: absolute;
+ right: 0;
+ top: 0;
+ text-decoration: none;
+ text-align: center;
+ opacity: $mfp-controls-opacity;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{$mfp-controls-opacity*100})");
+ }
+ padding: 0 0 18px 10px;
+ color: $mfp-controls-color;
+
+ font-style: normal;
+ font-size: 28px;
+ font-family: $serif;
+
+ &:hover,
+ &:focus {
+ opacity: 1;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{1*100})");
+ }
+ }
+
+ &:active {
+ top: 1px;
+ }
+}
+.mfp-close-btn-in {
+ .mfp-close {
+ color: $mfp-inner-close-icon-color;
+ }
+}
+.mfp-image-holder,
+.mfp-iframe-holder {
+ .mfp-close {
+ color: $mfp-controls-color;
+ right: -6px;
+ text-align: right;
+ padding-right: 6px;
+ width: 100%;
+ }
+}
+
+// "1 of X" counter
+.mfp-counter {
+ position: absolute;
+ top: 0;
+ right: 0;
+ color: $mfp-controls-text-color;
+ font-size: 12px;
+ line-height: 18px;
+}
+
+// Navigation arrows
+@if $mfp-include-arrows {
+ .mfp-arrow {
+ position: absolute;
+ opacity: $mfp-controls-opacity;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{$mfp-controls-opacity*100})");
+ }
+ margin: 0;
+ top: 50%;
+ margin-top: -55px;
+ padding: 0;
+ width: 90px;
+ height: 110px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ &:active {
+ margin-top: -54px;
+ }
+ &:hover,
+ &:focus {
+ opacity: 1;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{1*100})");
+ }
+ }
+ &:before,
+ &:after,
+ .mfp-b,
+ .mfp-a {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ position: absolute;
+ left: 0;
+ top: 0;
+ margin-top: 35px;
+ margin-left: 35px;
+ border: medium inset transparent;
+ }
+
+ &:after,
+ .mfp-a {
+
+ border-top-width: 13px;
+ border-bottom-width: 13px;
+ top:8px;
+ }
+
+ &:before,
+ .mfp-b {
+ border-top-width: 21px;
+ border-bottom-width: 21px;
+ opacity: 0.7;
+ }
+
+ }
+
+ .mfp-arrow-left {
+ left: 0;
+
+ &:after,
+ .mfp-a {
+ border-right: 17px solid $mfp-controls-color;
+ margin-left: 31px;
+ }
+ &:before,
+ .mfp-b {
+ margin-left: 25px;
+ border-right: 27px solid $mfp-controls-border-color;
+ }
+ }
+
+ .mfp-arrow-right {
+ right: 0;
+ &:after,
+ .mfp-a {
+ border-left: 17px solid $mfp-controls-color;
+ margin-left: 39px
+ }
+ &:before,
+ .mfp-b {
+ border-left: 27px solid $mfp-controls-border-color;
+ }
+ }
+}
+
+
+
+// Iframe content type
+@if $mfp-include-iframe-type {
+ .mfp-iframe-holder {
+ padding-top: $mfp-iframe-padding-top;
+ padding-bottom: $mfp-iframe-padding-top;
+ .mfp-content {
+ line-height: 0;
+ width: 100%;
+ max-width: $mfp-iframe-max-width;
+ }
+ .mfp-close {
+ top: -40px;
+ }
+ }
+ .mfp-iframe-scaler {
+ width: 100%;
+ height: 0;
+ overflow: hidden;
+ padding-top: $mfp-iframe-ratio * 100%;
+ iframe {
+ position: absolute;
+ display: block;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ box-shadow: $mfp-shadow;
+ background: $mfp-iframe-background;
+ }
+ }
+}
+
+
+
+// Image content type
+@if $mfp-include-image-type {
+
+ /* Main image in popup */
+ img {
+ &.mfp-img {
+ width: auto;
+ max-width: 100%;
+ height: auto;
+ display: block;
+ line-height: 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom;
+ margin: 0 auto;
+ }
+ }
+
+ /* The shadow behind the image */
+ .mfp-figure {
+ line-height: 0;
+ &:after {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: $mfp-image-padding-top;
+ bottom: $mfp-image-padding-bottom;
+ display: block;
+ right: 0;
+ width: auto;
+ height: auto;
+ z-index: -1;
+ box-shadow: $mfp-shadow;
+ background: $mfp-image-background;
+ }
+ small {
+ color: $mfp-caption-subtitle-color;
+ display: block;
+ font-size: 12px;
+ line-height: 14px;
+ }
+ figure {
+ margin: 0;
+ }
+ figcaption {
+ margin-top: 0;
+ margin-bottom: 0; // reset for bottom spacing
+ }
+ }
+ .mfp-bottom-bar {
+ margin-top: -$mfp-image-padding-bottom + 4;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ width: 100%;
+ cursor: auto;
+ }
+ .mfp-title {
+ text-align: left;
+ line-height: 18px;
+ color: $mfp-caption-title-color;
+ word-wrap: break-word;
+ padding-right: 36px; // leave some space for counter at right side
+ }
+
+ .mfp-image-holder {
+ .mfp-content {
+ max-width: 100%;
+ }
+ }
+
+ .mfp-gallery {
+ .mfp-image-holder {
+ .mfp-figure {
+ cursor: pointer;
+ }
+ }
+ }
+
+
+ @if $mfp-include-mobile-layout-for-image {
+ @media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) {
+ /**
+ * Remove all paddings around the image on small screen
+ */
+ .mfp-img-mobile {
+ .mfp-image-holder {
+ padding-left: 0;
+ padding-right: 0;
+ }
+ img {
+ &.mfp-img {
+ padding: 0;
+ }
+ }
+ .mfp-figure {
+ // The shadow behind the image
+ &:after {
+ top: 0;
+ bottom: 0;
+ }
+ small {
+ display: inline;
+ margin-left: 5px;
+ }
+ }
+ .mfp-bottom-bar {
+ background: rgba(0,0,0,0.6);
+ bottom: 0;
+ margin: 0;
+ top: auto;
+ padding: 3px 5px;
+ position: fixed;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ &:empty {
+ padding: 0;
+ }
+ }
+ .mfp-counter {
+ right: 5px;
+ top: 3px;
+ }
+ .mfp-close {
+ top: 0;
+ right: 0;
+ width: 35px;
+ height: 35px;
+ line-height: 35px;
+ background: rgba(0, 0, 0, 0.6);
+ position: fixed;
+ text-align: center;
+ padding: 0;
+ }
+ }
+ }
+ }
+}
+
+
+
+// Scale navigation arrows and reduce padding from sides
+@media all and (max-width: 900px) {
+ .mfp-arrow {
+ -webkit-transform: scale(0.75);
+ transform: scale(0.75);
+ }
+ .mfp-arrow-left {
+ -webkit-transform-origin: 0;
+ transform-origin: 0;
+ }
+ .mfp-arrow-right {
+ -webkit-transform-origin: 100%;
+ transform-origin: 100%;
+ }
+ .mfp-container {
+ padding-left: $mfp-popup-padding-left-mobile;
+ padding-right: $mfp-popup-padding-left-mobile;
+ }
+}
+
+
+
+// IE7 support
+// Styles that make popup look nicier in old IE
+@if $mfp-IE7support {
+ .mfp-ie7 {
+ .mfp-img {
+ padding: 0;
+ }
+ .mfp-bottom-bar {
+ width: 600px;
+ left: 50%;
+ margin-left: -300px;
+ margin-top: 5px;
+ padding-bottom: 5px;
+ }
+ .mfp-container {
+ padding: 0;
+ }
+ .mfp-content {
+ padding-top: 44px;
+ }
+ .mfp-close {
+ top: 0;
+ right: 0;
+ padding-top: 0;
+ }
+ }
+}
diff --git a/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss b/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss
new file mode 100644
index 0000000..e7866b3
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss
@@ -0,0 +1,46 @@
+////////////////////////
+// Settings //
+////////////////////////
+
+// overlay
+$mfp-overlay-color: #000; // Color of overlay screen
+$mfp-overlay-opacity: 0.8; // Opacity of overlay screen
+$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6); // Shadow on image or iframe
+
+// spacing
+$mfp-popup-padding-left: 8px; // Padding from left and from right side
+$mfp-popup-padding-left-mobile: 6px; // Same as above, but is applied when width of window is less than 800px
+
+$mfp-z-index-base: 1040; // Base z-index of popup
+
+// controls
+$mfp-include-arrows: true; // Include styles for nav arrows
+$mfp-controls-opacity: 1; // Opacity of controls
+$mfp-controls-color: #fff; // Color of controls
+$mfp-controls-border-color: #fff; // Border color of controls
+$mfp-inner-close-icon-color: #fff; // Color of close button when inside
+$mfp-controls-text-color: #ccc; // Color of preloader and "1 of X" indicator
+$mfp-controls-text-color-hover: #fff; // Hover color of preloader and "1 of X" indicator
+$mfp-IE7support: true; // Very basic IE7 support
+
+// Iframe-type options
+$mfp-include-iframe-type: true; // Enable Iframe-type popups
+$mfp-iframe-padding-top: 40px; // Iframe padding top
+$mfp-iframe-background: #000; // Background color of iframes
+$mfp-iframe-max-width: 900px; // Maximum width of iframes
+$mfp-iframe-ratio: 9/16; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)
+
+// Image-type options
+$mfp-include-image-type: true; // Enable Image-type popups
+$mfp-image-background: #444 !default;
+$mfp-image-padding-top: 40px; // Image padding top
+$mfp-image-padding-bottom: 40px; // Image padding bottom
+$mfp-include-mobile-layout-for-image: true; // Removes paddings from top and bottom
+
+// Image caption options
+$mfp-caption-title-color: #f3f3f3; // Caption title color
+$mfp-caption-subtitle-color: #bdbdbd; // Caption subtitle color
+.mfp-counter { font-family: $serif; } // Caption font family
+
+// A11y
+$mfp-use-visuallyhidden: false;
\ No newline at end of file
diff --git a/_sass/minimal-mistakes/vendor/susy/_su.scss b/_sass/minimal-mistakes/vendor/susy/_su.scss
new file mode 100644
index 0000000..83386ad
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/_su.scss
@@ -0,0 +1,4 @@
+// Su
+// ==
+
+@import 'susy/su';
diff --git a/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss b/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss
new file mode 100644
index 0000000..185b356
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss
@@ -0,0 +1,13 @@
+// Susy (Prefixed)
+// ===============
+
+$susy-version: 3;
+
+@import 'susy/utilities';
+@import 'susy/su-validate';
+@import 'susy/su-math';
+@import 'susy/settings';
+@import 'susy/normalize';
+@import 'susy/parse';
+@import 'susy/syntax-helpers';
+@import 'susy/api';
diff --git a/_sass/minimal-mistakes/vendor/susy/_susy.scss b/_sass/minimal-mistakes/vendor/susy/_susy.scss
new file mode 100644
index 0000000..bfda3d0
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/_susy.scss
@@ -0,0 +1,5 @@
+// Susy (Un-Prefixed)
+// ==================
+
+@import 'susy-prefix';
+@import 'susy/unprefix';
diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss b/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss
new file mode 100644
index 0000000..99db8d1
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss
@@ -0,0 +1,5 @@
+// SVG Grid Background
+// ===================
+
+@import 'svg-grid/prefix';
+@import 'svg-grid/svg-unprefix';
diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss
new file mode 100644
index 0000000..21fb45f
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss
@@ -0,0 +1,7 @@
+// Prefixed SVG Plugin
+// ===================
+
+@import 'svg-settings';
+@import 'svg-utilities';
+@import 'svg-grid-math';
+@import 'svg-api';
diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss
new file mode 100644
index 0000000..7d880e3
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss
@@ -0,0 +1,114 @@
+/// Plugin: SVG Grid Image
+/// ======================
+/// @group plugin_svg-grid
+/// @see susy-svg-grid
+
+
+
+/// ## Overview
+/// If you want to generate svg-backgrounds
+/// for help visualizing and debugging your grids,
+/// import the SVG Grid Plugin.
+///
+/// The plugin adds `svg-grid-colors` setting
+/// to your global defaults,
+/// which you can override in `$susy`.
+/// It also provides you with a new function,
+/// `susy-svg-grid()`,
+/// which will return inline svg for use in
+/// backgrounds or generated content.
+///
+/// This function come with an unprefixed alias by default,
+/// using the `svg-grid` import.
+/// If you only only want prefixed versions of the API,
+/// import the `svg-grid/prefix` partial instead.
+///
+/// @group plugin_svg-grid
+///
+/// @example scss - importing the plugin
+/// // The full path to import Susy will depend on your setup…
+///
+/// // unprefixed
+/// @import 'plugins/svg-grid';
+///
+/// // prefixed
+/// @import 'plugins/svg-grid/prefix';
+///
+/// @example scss - generating background grids
+/// .grid {
+/// background: susy-svg-grid() no-repeat scroll;
+/// }
+
+
+
+// SVG Grid
+// --------
+/// Return inline svg-data in to display the grid.
+///
+/// @group plugin_svg-grid
+///
+/// @param {Map | List} $grid [$susy] -
+/// Map or shorthand defining the current grid
+/// @param {Color | List | null} $colors [null] -
+/// Column color, or list of colors for column-gradient,
+/// used to override the global `svg-grid-colors` setting
+/// @param {Length | null} $offset [null] -
+/// Manually override the default grid-image offset,
+/// to account for grid edges
+///
+/// @return {String} -
+/// CSS inline-data SVG string, in `url()` format,
+/// for use in image or content properties
+/// @example scss
+/// .grid {
+/// background: susy-svg-grid() no-repeat scroll;
+/// }
+@function susy-svg-grid(
+ $grid: $susy,
+ $colors: null,
+ $offset: null
+) {
+ // Grid parsing & normalizing
+ $grid: susy-compile($grid, $context-only: true);
+
+ // Color and gradient handling
+ $gradient: '';
+
+ @if (not $colors) {
+ $colors: susy-get('svg-grid-colors');
+ }
+
+ @if length($colors) > 1 {
+ $gradient: _susy-svg-gradient($colors);
+ $colors: 'url(%23susy-svg-gradient)';
+ } @else {
+ $colors: _susy-svg-color($colors);
+ }
+
+ // Get a default image-width
+ $span: (
+ 'span': map-get($grid, 'columns'),
+ 'spread': map-get($grid, 'container-spread'),
+ );
+ $span: map-merge($grid, $span);
+ $image-width: su-call('su-span', $span);
+ $image-width: if((type-of($image-width) == 'number'), $image-width, 100%);
+
+ // SVG construction
+ $columns: map-get($grid, 'columns');
+ $offset: $offset or _susy-svg-offset($grid);
+
+ $attrs: 'fill="#{$colors}" width="#{$image-width}"';
+ $svg: 'data:image/svg+xml,';
+ $svg: $svg + '%3Csvg xmlns="http://www.w3.org/2000/svg" #{$attrs} %3E';
+ $svg: $svg + $gradient;
+
+ @for $column from 1 through length($columns) {
+ $width: susy-span(1 narrow at $column, $grid);
+ $x: _susy-svg-column-position($column, $grid);
+
+ $svg: $svg + _susy-svg-rect($x, $width, $offset);
+ }
+
+ @return url('#{$svg}%3C/svg%3E');
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss
new file mode 100644
index 0000000..044801a
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss
@@ -0,0 +1,67 @@
+// SVG Grid Math
+// =============
+
+
+
+// SVG Column Position
+// -------------------
+/// Determine the proper horizontal position
+/// for a column rectangle
+///
+/// @access private
+///
+/// @param {Integer} $column -
+/// 1-indexed column location on the grid
+/// @param {Map} $grid -
+/// Normalized settings map representing the current grid
+///
+/// @return {Length} -
+/// Horizontal position of svg column rectangle,
+/// as distance from the grid edge
+@function _susy-svg-column-position(
+ $column,
+ $grid
+) {
+ $x: $column - 1;
+
+ @if ($x > 0) {
+ $x: susy-span(first $x wide, $grid);
+ }
+
+ @return $x;
+}
+
+
+
+// SVG Offset
+// ----------
+/// Determine if a grid image needs to be offset,
+/// to account for edge gutters.
+///
+/// @access private
+///
+/// @param {Map} $grid -
+/// Normalized settings map representing the current grid
+///
+/// @return {Length | null} -
+/// Expected distance from container edge to first column,
+/// based on spread values and gutter-widths
+@function _susy-svg-offset(
+ $grid
+) {
+ $columns: su-valid-columns(map-get($grid, 'columns'));
+ $gutters: su-valid-gutters(map-get($grid, 'gutters'));
+ $container: su-valid-spread(map-get($grid, 'container-spread')) + 1;
+
+ @if ($container == 0) {
+ @return null;
+ }
+
+ $gutter: su-call('su-gutter', $grid);
+
+ @if (type-of($gutter) == 'string') {
+ @return 'calc(#{$container} * #{$gutter} / 2)';
+ }
+
+ @return $container * $gutter / 2;
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss
new file mode 100644
index 0000000..3fcc91f
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss
@@ -0,0 +1,14 @@
+// SVG Settings
+// ============
+
+
+// Susy SVG Defaults
+// =================
+/// This plugin adds the `svg-grid-colors` property
+/// and default value to `$_susy-defaults` —
+/// you can override that value in `$susy`
+/// or any other grid settings map.
+/// @group plugin_svg-grid
+$_susy-defaults: map-merge((
+ 'svg-grid-colors': hsla(120, 50%, 50%, 0.5) hsla(120, 50%, 75%, 0.5),
+ ), $_susy-defaults);
diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss
new file mode 100644
index 0000000..187157c
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss
@@ -0,0 +1,18 @@
+// Unprefix Susy SVG Grid
+// ======================
+
+
+
+// SVG Grid
+// --------
+/// Un-prefixed alias for `susy-svg-grid`
+///
+/// @group plugin_svg-grid
+/// @alias susy-svg-grid
+@function svg-grid(
+ $grid: $susy,
+ $colors: susy-get('svg-grid-colors'),
+ $offset: null
+) {
+ @return susy-svg-grid($grid, $colors, $offset);
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss
new file mode 100644
index 0000000..e4bf18f
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss
@@ -0,0 +1,133 @@
+// SVG Utilities
+// =============
+
+
+
+// SVG Validate Units
+// ------------------
+/// Make sure a length is supported in svg
+///
+/// @access private
+///
+/// @param {Length} $length -
+/// The length to validate
+/// @param {String} $name [null] -
+/// Optional name of length origin,
+/// for error reporting
+///
+/// @return {Length} -
+/// An svg-validated length, or comparable valid length
+@function _susy-svg-validate-units(
+ $length,
+ $name: null
+) {
+ $_svg-units: ('em', 'ex', 'px', 'pt', 'pc', 'cm', 'mm', 'in', '%');
+ $string: type-of($length) == 'string';
+
+ @if ($length == 0) or ($string) or index($_svg-units, unit($length)) {
+ @return $length;
+ }
+
+ @return _susy-error(
+ '`#{unit($length)}` #{$name} units are not supported in SVG',
+ '_susy-svg-validate-units');
+}
+
+
+
+// SVG Rect
+// --------
+/// Build a single svg rectangle
+///
+/// @access private
+///
+/// @param {Length} $x -
+/// Horizontal position for the rectangle
+/// @param {Length} $width -
+/// Width of the rectangle
+/// @param {Length} $offset [null] -
+/// Offset the rectangle, to account for edge gutters
+///
+/// @return {String} -
+/// Escaped string representing one svg rectangle
+@function _susy-svg-rect(
+ $x,
+ $width,
+ $offset: null
+) {
+ $x: _susy-svg-validate-units($x);
+ $width: _susy-svg-validate-units($width);
+ $offset: if($offset == 0, null, $offset);
+
+ @if (type-of($offset) == 'number') and (type-of($x) == 'number') {
+ @if comparable($x, $offset) {
+ $x: $x + $offset;
+ } @else {
+ $x: 'calc(#{$x} + #{$offset})';
+ }
+ } @else if $offset and ($x != 0) {
+ $x: 'calc(#{$x} + #{$offset})';
+ } @else if $offset {
+ $x: $offset;
+ }
+
+ @return '%3Crect x="#{$x}" width="#{$width}" height="100%"/%3E';
+}
+
+
+
+// SVG Color
+// ---------
+/// Stringify colors, and escape hex symbol
+///
+/// @access private
+///
+/// @param {Color} $color -
+/// Color to stringify and escape
+///
+/// @return {String} -
+/// Escaped string value of color
+@function _susy-svg-color(
+ $color
+) {
+ $color: inspect($color); // convert to string
+
+ @if (str-index($color, '#') == 1) {
+ $color: '%23' + str-slice($color, 2);
+ }
+
+ @return $color;
+}
+
+
+
+// SVG Gradient
+// ------------
+/// Create a multi-color svg gradient
+///
+/// @access private
+///
+/// @param {List} $colors -
+/// List of colors to be equally spaced from `0%` to `100%`
+/// in each column rectangle
+///
+/// @return {String} -
+/// Escaped string representing one svg gradient
+/// (`id="susy-svg-gradient"`)
+@function _susy-svg-gradient(
+ $colors
+) {
+ $gradient: '%3Cdefs%3E%3ClinearGradient spreadMethod="pad"';
+ $gradient: '#{$gradient} id="susy-svg-gradient"';
+ $gradient: '#{$gradient} x1="0%" y1="0%" x2="100%" y2="0%"%3E';
+
+ @for $i from 1 through length($colors) {
+ $color: _susy-svg-color(nth($colors, $i));
+ $offset: percentage(($i - 1) / (length($colors) - 1));
+ $stop: '%3Cstop offset="#{$offset}" style="stop-color:#{$color};" /%3E';
+
+ $gradient: $gradient + $stop;
+ }
+
+ @return $gradient + '%3C/linearGradient%3E%3C/defs%3E';
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_api.scss b/_sass/minimal-mistakes/vendor/susy/susy/_api.scss
new file mode 100644
index 0000000..de8c9bd
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/susy/_api.scss
@@ -0,0 +1,318 @@
+/// Susy3 API Functions
+/// ===================
+/// These three functions form the core of Susy's
+/// layout-building grid API.
+///
+/// - Use `span()` and `gutter()` to return any grid-width,
+/// and apply the results wherever you need them:
+/// CSS `width`, `margin`, `padding`, `flex-basis`, `transform`, etc.
+/// - For asymmetrical-fluid grids,
+/// `slice()` can help manage your nesting context.
+///
+/// All three functions come with an unprefixed alias by default,
+/// using the `susy` import.
+/// Import the `susy-prefix` partial instead,
+/// if you only only want prefixed versions of the API.
+///
+/// This is a thin syntax-sugar shell around
+/// the "Su" core-math functions: `su-span`, `su-gutter`, and `su-slice`.
+/// If you prefer the more constrained syntax of the math engine,
+/// you are welcome to use those functions instead.
+///
+/// @group b-api
+/// @see susy-span
+/// @see susy-gutter
+/// @see susy-slice
+/// @see su-span
+/// @see su-gutter
+/// @see su-slice
+
+
+
+/// ## Shorthand
+///
+/// All functions draw on the same shorthand syntax in two parts,
+/// seperated by the word `of`.
+///
+/// ### Span Syntax: `` [`` ``]
+/// The first part describes the
+/// **span** width, location, and spread in any order.
+/// Only the width is required:
+///
+/// - `span(2)` will return the width of 2 columns.
+/// - `span(3 wide)` will return 3-columns, with an additional gutter.
+/// - location is only needed with asymmetrical grids,
+/// where `span(3 at 2)` will return the width of
+/// specific columns on the grid.
+/// Since these are functions, they will not handle placement for you.
+///
+/// ### Context Syntax: `[of ]`
+/// The second half of Susy's shorthand
+/// describes the grid-**context** –
+/// available columns, container-spread, and optional gutter override –
+/// in any order.
+/// All of these settings have globally-defined defaults:
+///
+/// - `span(2 of 6)` will set the context to
+/// a slice of 6 columns from the global grid.
+/// More details below.
+/// - `span(2 of 12 wide)` changes the container-spread
+/// as well as the column-context.
+/// - `span(2 of 12 set-gutters 0.5em)`
+/// will override the global gutters setting
+/// for this one calculation.
+///
+/// A single unitless number for `columns`
+/// will be treated as a slice of the parent grid.
+/// On a grid with `columns: susy-repeat(12, 120px)`,
+/// the shorthand `of 4` will use the parent `120px` column-width.
+/// You can also be more explicit,
+/// and say `of susy-repeat(4, 100px)`.
+/// If you are using asymmetrical grids,
+/// like `columns: (1 1 2 3 5 8)`,
+/// Susy can't slice it for you without knowing which columns you want.
+/// The `slice` function accepts exactly the same syntax as `span`,
+/// but returns a list of columns rather than a width.
+/// Use it in your context like `of slice(first 3)`.
+///
+/// @group b-api
+
+
+
+// Susy Span
+// ---------
+/// This is the primary function in Susy —
+/// used to return the width of a span across one or more columns,
+/// and any relevant gutters along the way.
+/// With the default settings,
+/// `span(3)` will return the width of 3 columns,
+/// and the 2 intermediate gutters.
+/// This can be used to set the `width` property of grid elements,
+/// or `margin` and `padding`
+/// to push, pull, and pad your elements.
+///
+/// - This is a thin syntax-sugar shell around
+/// the core-math `su-span()` function.
+/// - The un-prefixed alias `span()` is available by default.
+///
+/// @group b-api
+/// @see su-span
+/// @see $susy
+///
+/// @param {list} $span -
+/// Shorthand expression to define the width of the span,
+/// optionally containing:
+/// - a count, length, or column-list span.
+/// - `at $n`, `first`, or `last` location on asymmetrical grids,
+/// where `at 1 == first`,
+/// and `last` will calculate the proper location
+/// based on columns and span.
+/// - `narrow`, `wide`, or `wider` for optionally spreading
+/// across adjacent gutters.
+/// - `of $n ` for available grid columns
+/// and spread of the container.
+/// Span counts like `of 6` are valid
+/// in the context of symmetrical grids,
+/// where Susy can safely infer a slice of the parent columns.
+/// - and `set-gutters $n` to override global gutter settings.
+///
+/// @param {map} $config [()] -
+/// Optional map of Susy grid configuration settings.
+/// See `$susy` documentation for details.
+///
+/// @return {length} -
+/// Calculated length value, using the units given,
+/// or converting to `%` for fraction-based grids,
+/// or a full `calc` function when units/fractions
+/// are not comparable outside the browser.
+///
+/// @example scss - span half the grid
+/// .foo {
+/// // the result is a bit under 50% to account for gutters
+/// width: susy-span(6 of 12);
+/// }
+///
+/// @example scss - span a specific segment of asymmetrical grid
+/// .foo {
+/// width: susy-span(3 at 3 of (1 2 3 5 8));
+/// }
+@function susy-span(
+ $span,
+ $config: ()
+) {
+ $output: susy-compile($span, $config);
+
+ @if map-get($output, 'span') {
+ @return su-call('su-span', $output);
+ }
+
+ $actual: '[#{type-of($span)}] `#{inspect($span)}`';
+ @return _susy-error(
+ 'Unable to determine span value from #{$actual}.',
+ 'susy-span');
+}
+
+
+
+// Susy Gutter
+// -----------
+/// The gutter function returns
+/// the width of a single gutter on your grid,
+/// to be applied where you see fit –
+/// on `margins`, `padding`, `transform`, or element `width`.
+///
+/// - This is a thin syntax-sugar shell around
+/// the core-math `su-gutter()` function.
+/// - The un-prefixed alias `gutter()` is available by default.
+///
+/// @group b-api
+/// @see su-gutter
+/// @see $susy
+///
+/// @param {list | number} $context [null] -
+/// Optional context for nested gutters,
+/// including shorthand for
+/// `columns`, `gutters`, and `container-spread`
+/// (additional shorthand will be ignored)
+///
+/// @param {map} $config [()] -
+/// Optional map of Susy grid configuration settings.
+/// See `$susy` documentation for details.
+///
+/// @return {length} -
+/// Width of a gutter as `%` of current context,
+/// or in the units defined by `column-width` when available
+///
+/// @example scss - add gutters before or after an element
+/// .floats {
+/// float: left;
+/// width: span(3 of 6);
+/// margin-left: gutter(of 6);
+/// }
+///
+/// @example scss - add gutters to padding
+/// .flexbox {
+/// flex: 1 1 span(3 wide of 6 wide);
+/// padding: gutter(of 6) / 2;
+/// }
+///
+@function susy-gutter(
+ $context: susy-get('columns'),
+ $config: ()
+) {
+ $context: susy-compile($context, $config, 'context-only');
+
+ @return su-call('su-gutter', $context);
+}
+
+
+
+// Susy Slice
+// ----------
+/// Working with asymmetrical grids (un-equal column widths)
+/// can be challenging –
+/// expecially when they involve fluid/fractional elements.
+/// Describing a context `of (15em 6em 6em 6em 15em)` is a lot
+/// to put inside the span or gutter function shorthand.
+/// This slice function returns a sub-slice of asymmetrical columns to use
+/// for a nested context.
+/// `slice(3 at 2)` will give you a subset of the global grid,
+/// spanning 3 columns, starting with the second.
+///
+/// - This is a thin syntax-sugar shell around
+/// the core-math `su-slice()` function.
+/// - The un-prefixed alias `slice()` is available by default.
+///
+/// @group b-api
+/// @see su-slice
+/// @see $susy
+///
+/// @param {list} $span -
+/// Shorthand expression to define the subset span, optionally containing:
+/// - `at $n`, `first`, or `last` location on asymmetrical grids;
+/// - `of $n ` for available grid columns
+/// and spread of the container
+/// - Span-counts like `of 6` are only valid
+/// in the context of symmetrical grids
+/// - Valid spreads include `narrow`, `wide`, or `wider`
+///
+/// @param {map} $config [()] -
+/// Optional map of Susy grid configuration settings.
+/// See `$susy` documentation for details.
+///
+/// @return {list} -
+/// Subset list of columns for use for a nested context
+///
+/// @example scss - Return a nested segment of asymmetrical grid
+/// $context: susy-slice(3 at 3 of (1 2 3 5 8));
+/// /* $context: #{$context}; */
+@function susy-slice(
+ $span,
+ $config: ()
+) {
+ $span: susy-compile($span, $config);
+
+ @return su-call('su-slice', $span);
+}
+
+
+
+/// ## Building Grids
+/// The web has come a long way
+/// since the days of double-margin-hacks
+/// and inconsistent subpixel rounding.
+/// In addition to floats and tables,
+/// we can now use much more powerful tools,
+/// like flexbox and CSS grid,
+/// to build more interesting and responsive layouts.
+///
+/// With Susy3, we hope you'll start moving in that direction.
+/// You can still build classic 12-column Grid Systems,
+/// and we'll help you get there,
+/// but Susy3 is primarily designed for a grid-math-on-demand
+/// approach to layout:
+/// applying our functions only where you really need grid math.
+/// Read the [intro article by OddBird][welcome] for more details.
+///
+/// [welcome]: http://oddbird.net/2017/06/28/susy3/
+///
+/// @group b-api
+/// @link http://oddbird.net/2017/06/28/susy3/ Article: Welcome to Susy3
+///
+/// @example scss - floats
+/// .float {
+/// width: span(3);
+/// margin-right: gutter();
+/// }
+///
+/// @example scss - flexbox
+/// .flexbox {
+/// flex: 1 1 span(3);
+/// // half a gutter on either side…
+/// padding: 0 gutter() / 2;
+/// }
+///
+/// @example scss - pushing and pulling
+/// .push-3 {
+/// margin-left: span(3 wide);
+/// }
+///
+/// .pull-3 {
+/// margin-left: 0 - span(3 wide);
+/// }
+///
+/// @example scss - building an attribute system
+/// // markup example:
+/// [data-span] {
+/// float: left;
+///
+/// &:not([data-span*='last']) {
+/// margin-right: gutter();
+/// }
+/// }
+///
+/// @for $span from 1 through length(susy-get('columns')) {
+/// [data-span*='#{$span}'] {
+/// width: span($span);
+/// }
+/// }
diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss b/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss
new file mode 100644
index 0000000..a988504
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss
@@ -0,0 +1,261 @@
+/// Syntax Normalization
+/// ====================
+/// Susy is divided into two layers:
+/// "Su" provides the core math functions with a stripped-down syntax,
+/// while "Susy" adds global settings, shorthand syntax,
+/// and other helpers.
+/// Each setting (e.g. span, location, columns, spread, etc.)
+/// has a single canonical syntax in Su.
+///
+/// This normalization module helps translate between those layers,
+/// transforming parsed Susy input into
+/// values that Su will understand.
+///
+/// @group x-normal
+///
+/// @see susy-normalize
+/// @see susy-normalize-span
+/// @see susy-normalize-columns
+/// @see susy-normalize-spread
+/// @see susy-normalize-location
+
+
+
+// Susy Normalize
+// --------------
+/// Normalize the values in a configuration map.
+/// In addition to the global `$susy` properties,
+/// this map can include local span-related imformation,
+/// like `span` and `location`.
+///
+/// Normalization does not check that values are valid,
+/// which will happen in the Su math layer.
+/// These functions merely look for known Susy syntax –
+/// returning a map with those shorthand values
+/// converted into low-level data for Su.
+/// For example `span: all` and `location: first`
+/// will be converted into specific numbers.
+///
+/// @group x-normal
+/// @see $susy
+/// @see susy-parse
+///
+/// @param {map} $config -
+/// Map of Susy configuration settings to normalize.
+/// See `$susy` and `susy-parse()` documentation for details.
+/// @param {map | null} $context [null] -
+/// Map of Susy configuration settings to use as global reference,
+/// or `null` to use global settings.
+///
+/// @return {map} -
+/// Map of Susy configuration settings,
+/// with all values normalized for Su math functions.
+@function susy-normalize(
+ $config,
+ $context: null
+) {
+ // Spread
+ @each $setting in ('spread', 'container-spread') {
+ $value: map-get($config, $setting);
+
+ @if $value {
+ $value: susy-normalize-spread($value);
+ $config: map-merge($config, ($setting: $value));
+ }
+ }
+
+ // Columns
+ $columns: map-get($config, 'columns');
+
+ @if $columns {
+ $columns: susy-normalize-columns($columns, $context);
+ $config: map-merge($config, ('columns': $columns));
+ }
+
+ @if not $columns {
+ $map: type-of($context) == 'map';
+ $columns: if($map, map-get($context, 'columns'), null);
+ $columns: $columns or susy-get('columns');
+ }
+
+ // Span
+ $span: map-get($config, 'span');
+
+ @if $span {
+ $span: susy-normalize-span($span, $columns);
+ $config: map-merge($config, ('span': $span));
+ }
+
+ // Location
+ $location: map-get($config, 'location');
+
+ @if $location {
+ $location: susy-normalize-location($span, $location, $columns);
+ $config: map-merge($config, ('location': $location));
+ }
+
+ @return $config;
+}
+
+
+
+// Normalize Span
+// --------------
+/// Normalize `span` shorthand for Su.
+/// Su span syntax allows an explicit length (e.g. `3em`),
+/// unitless column-span number (e.g. `3` columns),
+/// or an explicit list of columns (e.g. `(3 5 8)`).
+///
+/// Susy span syntax also allows the `all` keyword,
+/// which will be converted to a slice of the context
+/// in normalization.
+///
+/// @group x-normal
+///
+/// @param {number | list | 'all'} $span -
+/// Span value to normalize.
+/// @param {list} $columns -
+/// Normalized list of columns in the grid
+///
+/// @return {number | list} -
+/// Number or list value for `$span`
+@function susy-normalize-span(
+ $span,
+ $columns: susy-get('columns')
+) {
+ @if ($span == 'all') {
+ @return length($columns);
+ }
+
+ @return $span;
+}
+
+
+
+// Normalize Columns
+// -----------------
+/// Normalize `column` shorthand for Su.
+/// Su column syntax only allows column lists (e.g. `120px 1 1 1 120px`).
+///
+/// Susy span syntax also allows a unitless `slice` number (e.g `of 5`),
+/// which will be converted to a slice of the context
+/// in normalization.
+///
+/// @group x-normal
+///
+/// @param {list | integer} $columns -
+/// List of available columns,
+/// or unitless integer representing a slice of
+/// the available context.
+/// @param {map | null} $context [null] -
+/// Map of Susy configuration settings to use as global reference,
+/// or `null` to access global settings.
+///
+/// @return {list} -
+/// Columns list value, normalized for Su input.
+///
+/// @throws
+/// when attempting to access a slice of asymmetrical context
+@function susy-normalize-columns(
+ $columns,
+ $context: null
+) {
+ $context: $context or susy-settings();
+
+ @if type-of($columns) == 'list' {
+ @return _susy-flatten($columns);
+ }
+
+ @if (type-of($columns) == 'number') and (unitless($columns)) {
+ $span: $columns;
+ $context: map-get($context, 'columns');
+ $symmetrical: susy-repeat(length($context), nth($context, 1));
+
+ @if ($context == $symmetrical) {
+ @return susy-repeat($span, nth($context, 1));
+ } @else {
+ $actual: 'of `#{$span}`';
+ $columns: 'grid-columns `#{$context}`';
+ @return _susy-error(
+ 'context-slice #{$actual} can not be determined based on #{$columns}.',
+ 'susy-normalize-columns');
+ }
+ }
+
+ @return $columns;
+}
+
+
+
+// Normalize Spread
+// ----------------
+/// Normalize `spread` shorthand for Su.
+/// Su spread syntax only allows the numbers `-1`, `0`, or `1` –
+/// representing the number of gutters covered
+/// in relation to columns spanned.
+///
+/// Susy spread syntax also allows keywords for each value –
+/// `narrow` for `-1`, `wide` for `0`, or `wider` for `1` –
+/// which will be converted to their respective integers
+/// in normalization.
+///
+/// @group x-normal
+///
+/// @param {0 | 1 | -1 | 'narrow' | 'wide' | 'wider'} $spread -
+/// Spread across adjacent gutters, relative to a column-count —
+/// either `narrow` (-1), `wide` (0), or `wider` (1)
+///
+/// @return {number} -
+/// Numeric value for `$spread`
+@function susy-normalize-spread(
+ $spread
+) {
+ $normal-spread: (
+ 'narrow': -1,
+ 'wide': 0,
+ 'wider': 1,
+ );
+
+ @return map-get($normal-spread, $spread) or $spread;
+}
+
+
+
+// Normalize Location
+// ------------------
+/// Normalize `location` shorthand for Su.
+/// Su location syntax requires the (1-indexed) number for a column.
+///
+/// Susy also allows the `first` and `last` keywords,
+/// where `first` is always `1`,
+/// and `last` is calculated based on span and column values.
+/// Both keywords are normalized into an integer index
+/// in normalization.
+///
+/// @group x-normal
+///
+/// @param {number} $span -
+/// Number of grid-columns to be spanned
+/// @param {integer | 'first' | 'last'} $location -
+/// Starting (1-indexed) column position of a span,
+/// or a named location keyword.
+/// @param {list} $columns -
+/// Already-normalized list of columns in the grid.
+///
+/// @return {integer} -
+/// Numeric value for `$location`
+@function susy-normalize-location(
+ $span,
+ $location,
+ $columns
+) {
+ $count: length($columns);
+ $normal-locations: (
+ 'first': 1,
+ 'alpha': 1,
+ 'last': $count - $span + 1,
+ 'omega': $count - $span + 1,
+ );
+
+ @return map-get($normal-locations, $location) or $location;
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss b/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss
new file mode 100644
index 0000000..98aa40a
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss
@@ -0,0 +1,163 @@
+/// Shorthand Syntax Parser
+/// =======================
+/// The syntax parser converts [shorthand syntax][short]
+/// into a map of settings that can be compared/merged with
+/// other config maps and global setting.
+///
+/// [short]: b-api.html
+///
+/// @group x-parser
+
+
+
+// Parse
+// -----
+/// The `parse` function provides all the syntax-sugar in Susy,
+/// converting user shorthand
+/// into a usable map of keys and values
+/// that can be normalized and passed to Su.
+///
+/// @group x-parser
+/// @see $susy
+///
+/// @param {list} $shorthand -
+/// Shorthand expression to define the width of the span,
+/// optionally containing:
+/// - a count, length, or column-list span;
+/// - `at $n`, `first`, or `last` location on asymmetrical grids;
+/// - `narrow`, `wide`, or `wider` for optionally spreading
+/// across adjacent gutters;
+/// - `of $n ` for available grid columns
+/// and spread of the container
+/// (span counts like `of 6` are only valid
+/// in the context of symmetrical grids);
+/// - and `set-gutters $n` to override global gutter settings
+/// @param {bool} $context-only [false] -
+/// Allow the parser to ignore span and span-spread values,
+/// only parsing context and container-spread.
+/// This makes it possible to accept spanless values,
+/// like the `gutters()` syntax.
+/// When parsing context-only,
+/// the `of` indicator is optional.
+///
+/// @return {map} -
+/// Map of span and grid settings
+/// parsed from shorthand input –
+/// including all the properties available globally –
+/// `columns`, `gutters`, `spread`, `container-spread` –
+/// along with the span-specific properties
+/// `span`, and `location`.
+///
+/// @throw
+/// when a shorthand value is not recognized
+@function susy-parse(
+ $shorthand,
+ $context-only: false
+) {
+ $parse-error: 'Unknown shorthand property:';
+ $options: (
+ 'first': 'location',
+ 'last': 'location',
+ 'alpha': 'location',
+ 'omega': 'location',
+ 'narrow': 'spread',
+ 'wide': 'spread',
+ 'wider': 'spread',
+ );
+
+ $return: ();
+ $span: null;
+ $columns: null;
+
+ $of: null;
+ $next: false;
+
+ // Allow context-only shorthand, without span
+ @if ($context-only) and (not index($shorthand, 'of')) {
+ @if su-valid-columns($shorthand, 'fail-silent') {
+ $shorthand: 'of' $shorthand;
+ } @else {
+ $shorthand: join('of', $shorthand);
+ }
+ }
+
+ // loop through the shorthand list
+ @for $i from 1 through length($shorthand) {
+ $item: nth($shorthand, $i);
+ $type: type-of($item);
+ $error: false;
+ $details: '[#{$type}] `#{$item}`';
+
+ // if we know what's supposed to be coming next…
+ @if $next {
+
+ // Add to the return map
+ $return: map-merge($return, ($next: $item));
+
+ // Reset next to `false`
+ $next: false;
+
+ } @else { // If we don't know what's supposed to be coming…
+
+ // Keywords…
+ @if ($type == 'string') {
+ // Check the map for keywords…
+ @if map-has-key($options, $item) {
+ $setting: map-get($options, $item);
+
+ // Spread could be on the span or the container…
+ @if ($setting == 'spread') and ($of) {
+ $return: map-merge($return, ('container-spread': $item));
+ } @else {
+ $return: map-merge($return, ($setting: $item));
+ }
+
+ } @else if ($item == 'all') {
+ // `All` is a span shortcut
+ $span: 'all';
+ } @else if ($item == 'at') {
+ // Some keywords setup what's next…
+ $next: 'location';
+ } @else if ($item == 'set-gutters') {
+ $next: 'gutters';
+ } @else if ($item == 'of') {
+ $of: true;
+ } @else {
+ $error: true;
+ }
+
+ } @else if ($type == 'number') or ($type == 'list') { // Numbers & lists…
+
+ @if not ($span or $of) {
+ // We don't have a span, and we're not expecting context…
+ $span: $item;
+ } @else if ($of) and (not $columns) {
+ // We are expecting context…
+ $columns: $item;
+ } @else {
+ $error: true;
+ }
+
+ } @else {
+ $error: true;
+ }
+ }
+
+ @if $error {
+ @return _susy-error('#{$parse-error} #{$details}', 'susy-parse');
+ }
+ }
+
+ // If we have span, merge it in
+ @if $span {
+ $return: map-merge($return, ('span': $span));
+ }
+
+ // If we have columns, merge them in
+ @if $columns {
+ $return: map-merge($return, ('columns': $columns));
+ }
+
+ // Return the map of settings…
+ @return $return;
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss b/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss
new file mode 100644
index 0000000..b824477
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss
@@ -0,0 +1,329 @@
+/// Susy3 Configuration
+/// ===================
+/// Susy3 has 4 core settings, in a single settings map.
+/// You'll notice a few differences from Susy2:
+///
+/// **Columns** no longer accept a single number, like `12`,
+/// but use a syntax more similar to the new
+/// CSS [grid-template-columns][columns] –
+/// a list of relative sizes for each column on the grid.
+/// Unitless numbers in Susy act very similar to `fr` units in CSS,
+/// and the `susy-repeat()` function (similar to the css `repeat()`)
+/// helps quickly establish equal-width columns.
+///
+/// [columns]: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns
+///
+/// - `susy-repeat(12)` will create 12 fluid, equal-width columns
+/// - `susy-repeat(6, 120px)` will create 6 equal `120px`-wide columns
+/// - `120px susy-repeat(4) 120px` will create 6 columns,
+/// the first and last are `120px`,
+/// while the middle 4 are equal fractions of the remainder.
+/// Susy will output `calc()` values in order to achieve this.
+///
+/// **Gutters** haven't changed –
+/// a single fraction or explicit width –
+/// but the `calc()` output feature
+/// means you can now use any combination of units and fractions
+/// to create static-gutters on a fluid grid, etc.
+///
+/// **Spread** existed in the Susy2 API as a span option,
+/// and was otherwise handled behind the scenes.
+/// Now we're giving you full control over all spread issues.
+/// You can find a more [detailed explanation of spread on the blog][spread].
+///
+/// [spread]: http://oddbird.net/2017/06/13/susy-spread/
+///
+/// You can access your global settings at any time
+/// with the `susy-settings()` function,
+/// or grab a single setting from the global scope
+/// with `susy-get('columns')`, `susy-get('gutters')` etc.
+///
+/// @group a-config
+/// @link http://oddbird.net/2017/06/13/susy-spread/
+/// Article: Understanding Spread in Susy3
+///
+/// @see $susy
+/// @see susy-settings
+/// @see susy-get
+
+
+
+// Susy
+// ----
+/// The grid is defined in a single map variable,
+/// with four initial properties:
+/// `columns`, `gutters`, `spread` and `container-spread`.
+/// Anything you put in the root `$susy` variable map
+/// will be treated as a global project default.
+/// You can create similar configuration maps
+/// under different variable names,
+/// to override the defaults as-needed.
+///
+/// @group a-config
+/// @type Map
+///
+/// @see $_susy-defaults
+/// @see {function} susy-repeat
+/// @link
+/// https://codepen.io/mirisuzanne/pen/EgmJJp?editors=1100
+/// Spread examples on CodePen
+///
+/// @prop {list} columns -
+/// Columns are described by a list of numbers,
+/// representing the relative width of each column.
+/// The syntax is a simplified version of CSS native
+/// `grid-template-columns`,
+/// expecting a list of grid-column widths.
+/// Unitless numbers create fractional fluid columns
+/// (similar to the CSS-native `fr` unit),
+/// while length values (united numbers)
+/// are used to define static columns.
+/// You can mix-and match units and fractions,
+/// to create a mixed grid.
+/// Susy will generate `calc()` values when necessary,
+/// to make all your units work together.
+///
+/// Use the `susy-repeat($count, $value)` function
+/// to more easily repetative columns,
+/// similar to the CSS-native `repeat()`.
+///
+/// - `susy-repeat(8)`:
+/// an 8-column, symmetrical, fluid grid.
+/// Identical to `(1 1 1 1 1 1 1 1)`.
+/// - `susy-repeat(6, 8em)`:
+/// a 6-column, symmetrical, em-based grid.
+/// Identical to `(8em 8em 8em 8em 8em 8em)`.
+/// - `(300px susy-repeat(4) 300px)`:
+/// a 6-column, asymmetrical, mixed fluid/static grid
+/// using `calc()` output.
+/// Identical to `(300px 1 1 1 1 300px)`.
+///
+/// **NOTE** that `12` is no longer a valid 12-column grid definition,
+/// and you must list all the columns individually
+/// (or by using the `susy-repeat()` function).
+///
+/// @prop {number} gutters -
+/// Gutters are defined as a single width,
+/// or fluid ratio, similar to the native-CSS
+/// `grid-column-gap` syntax.
+/// Similar to columns,
+/// gutters can use any valid CSS length unit,
+/// or unitless numbers to define a relative fraction.
+///
+/// - `0.5`:
+/// a fluid gutter, half the size of a single-fraction column.
+/// - `1em`:
+/// a static gutter, `1em` wide.
+///
+/// Mix static gutters with fluid columns, or vice versa,
+/// and Susy will generate the required `calc()` to make it work.
+///
+/// @prop {string} spread [narrow] -
+/// Spread of an element across adjacent gutters:
+/// either `narrow` (none), `wide` (one), or `wider` (two)
+///
+/// - Both spread settings default to `narrow`,
+/// the most common use-case.
+/// A `narrow` spread only has gutters *between* columns
+/// (one less gutter than columns).
+/// This is how all css-native grids work,
+/// and most margin-based grid systems.
+/// - A `wide` spread includes the same number of gutters as columns,
+/// spanning across a single side-gutter.
+/// This is how most padding-based grid systems often work,
+/// and is also useful for pushing and pulling elements into place.
+/// - The rare `wider` spread includes gutters
+/// on both sides of the column-span
+/// (one more gutters than columns).
+///
+/// @prop {string} container-spread [narrow] -
+/// Spread of a container around adjacent gutters:
+/// either `narrow` (none), `wide` (one), or `wider` (two).
+/// See `spread` property for details.
+///
+/// @since 3.0.0-beta.1 -
+/// `columns` setting no longer accepts numbers
+/// (e.g. `12`) for symmetrical fluid grids,
+/// or the initial `12 x 120px` syntax for
+/// symmetrical fixed-unit grids.
+/// Use `susy-repeat(12)` or `susy-repeat(12, 120px)` instead.
+///
+/// @example scss - default values
+/// // 4 symmetrical, fluid columns
+/// // gutters are 1/4 the size of a column
+/// // elements span 1 less gutter than columns
+/// // containers span 1 less gutter as well
+/// $susy: (
+/// 'columns': susy-repeat(4),
+/// 'gutters': 0.25,
+/// 'spread': 'narrow',
+/// 'container-spread': 'narrow',
+/// );
+///
+/// @example scss - inside-static gutters
+/// // 6 symmetrical, fluid columns…
+/// // gutters are static, triggering calc()…
+/// // elements span equal columns & gutters…
+/// // containers span equal columns & gutters…
+/// $susy: (
+/// 'columns': susy-repeat(6),
+/// 'gutters': 0.5em,
+/// 'spread': 'wide',
+/// 'container-spread': 'wide',
+/// );
+$susy: () !default;
+
+
+
+// Susy Repeat
+// -----------
+/// Similar to the `repeat(, )` function
+/// that is available in native CSS Grid templates,
+/// the `susy-repeat()` function helps generate repetative layouts
+/// by repeating any value a given number of times.
+/// Where Susy previously allowed `8` as a column definition
+/// for 8 equal columns, you should now use `susy-repeat(8)`.
+///
+/// @group a-config
+///
+/// @param {integer} $count -
+/// The number of repetitions, e.g. `12` for a 12-column grid.
+/// @param {*} $value [1] -
+/// The value to be repeated.
+/// Technically any value can be repeated here,
+/// but the function exists to repeat column-width descriptions:
+/// e.g. the default `1` for single-fraction fluid columns,
+/// `5em` for a static column,
+/// or even `5em 120px` if you are alternating column widths.
+///
+/// @return {list} -
+/// List of repeated values
+///
+/// @example scss
+/// // 12 column grid, with 5em columns
+/// $susy: (
+/// columns: susy-repeat(12, 5em),
+/// );
+///
+/// @example scss
+/// // asymmetrical 5-column grid
+/// $susy: (
+/// columns: 20px susy-repeat(3, 100px) 20px,
+/// );
+///
+/// /* result: #{susy-get('columns')} */
+@function susy-repeat(
+ $count,
+ $value: 1
+) {
+ $return: ();
+
+ @for $i from 1 through $count {
+ $return: join($return, $value);
+ }
+
+ @return $return;
+}
+
+
+
+// Susy Defaults
+// -------------
+/// Configuration map of Susy factory defaults.
+/// Do not override this map directly –
+/// use `$susy` for user and project setting overrides.
+///
+/// @access private
+/// @type Map
+///
+/// @see $susy
+///
+/// @prop {number | list} columns [susy-repeat(4)]
+/// @prop {number} gutters [0.25]
+/// @prop {string} spread ['narrow']
+/// @prop {string} container-spread ['narrow']
+$_susy-defaults: (
+ 'columns': susy-repeat(4),
+ 'gutters': 0.25,
+ 'spread': 'narrow',
+ 'container-spread': 'narrow',
+);
+
+
+
+// Susy Settings
+// -------------
+/// Return a combined map of Susy settings,
+/// based on the factory defaults (`$_susy-defaults`),
+/// user-defined project configuration (`$susy`),
+/// and any local overrides required –
+/// such as a configuration map passed into a function.
+///
+/// @group a-config
+///
+/// @param {maps} $overrides… -
+/// Optional map override of global configuration settings.
+/// See `$susy` above for properties.
+///
+/// @return {map} -
+/// Combined map of Susy configuration settings,
+/// in order of specificity:
+/// any `$overrides...`,
+/// then `$susy` project settings,
+/// and finally the `$_susy-defaults`
+///
+/// @example scss - global settings
+/// @each $key, $value in susy-settings() {
+/// /* #{$key}: #{$value} */
+/// }
+///
+/// @example scss - local settings
+/// $local: ('columns': 1 2 3 5 8);
+///
+/// @each $key, $value in susy-settings($local) {
+/// /* #{$key}: #{$value} */
+/// }
+@function susy-settings(
+ $overrides...
+) {
+ $settings: map-merge($_susy-defaults, $susy);
+
+ @each $config in $overrides {
+ $settings: map-merge($settings, $config);
+ }
+
+ @return $settings;
+}
+
+
+
+// Susy Get
+// --------
+/// Return the current global value of any Susy setting
+///
+/// @group a-config
+///
+/// @param {string} $key -
+/// Setting to retrieve from the configuration.
+///
+/// @return {*} -
+/// Value mapped to `$key` in the configuration maps,
+/// in order of specificity:
+/// `$susy`, then `$_susy-defaults`
+///
+/// @example scss -
+/// /* columns: #{susy-get('columns')} */
+/// /* gutters: #{susy-get('gutters')} */
+@function susy-get(
+ $key
+) {
+ $settings: susy-settings();
+
+ @if not map-has-key($settings, $key) {
+ @return _susy-error(
+ 'There is no Susy setting called `#{$key}`',
+ 'susy-get');
+ }
+
+ @return map-get($settings, $key);
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss b/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss
new file mode 100644
index 0000000..1e88528
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss
@@ -0,0 +1,441 @@
+/// Grid Math Engine
+/// ================
+/// The `su` functions give you direct access to the math layer,
+/// without any syntax-sugar like shorthand parsing, and normalization.
+/// If you prefer named arguments, and stripped-down syntax,
+/// you can use these functions directly in your code –
+/// replacing `span`, `gutter`, and `slice`.
+///
+/// These functions are also useful
+/// for building mixins or other extensions to Susy.
+/// Apply the Susy syntax to new mixins and functions,
+/// using our "Plugin Helpers",
+/// or write your own syntax and pass the normalized results along
+/// to `su` for compilation.
+///
+/// @group su-math
+///
+/// @see su-span
+/// @see su-gutter
+/// @see su-slice
+/// @ignore _su-sum
+/// @ignore _su-calc-span
+/// @ignore _su-calc-sum
+/// @ignore _su-needs-calc-output
+
+
+
+// Su Span
+// -------
+/// Calculates and returns a CSS-ready span width,
+/// based on normalized span and context data –
+/// a low-level version of `susy-span`,
+/// with all of the logic and none of the syntax sugar.
+///
+/// - Grids defined with unitless numbers will return `%` values.
+/// - Grids defined with comparable units
+/// will return a value in the units provided.
+/// - Grids defined with a mix of units,
+/// or a combination of untiless numbers and unit-lengths,
+/// will return a `calc()` string.
+///
+/// @group su-math
+/// @see susy-span
+///
+/// @param {number | list} $span -
+/// Number or list of grid columns to span
+/// @param {list} $columns -
+/// List of columns available
+/// @param {number} $gutters -
+/// Width of a gutter in column-comparable units
+/// @param {0 | 1 | -1} $spread -
+/// Number of gutters spanned,
+/// relative to `span` count
+/// @param {0 | 1 | -1} $container-spread [$spread] -
+/// Number of gutters spanned,
+/// relative to `columns` count
+/// @param {integer} $location [1] -
+/// Optional position of sub-span among full set of columns
+///
+/// @return {length} -
+/// Relative or static length of a span on the grid
+@function su-span(
+ $span,
+ $columns,
+ $gutters,
+ $spread,
+ $container-spread: $spread,
+ $location: 1
+) {
+ $span: su-valid-span($span);
+ $columns: su-valid-columns($columns);
+ $gutters: su-valid-gutters($gutters);
+ $spread: su-valid-spread($spread);
+
+ @if (type-of($span) == 'number') {
+ @if (not unitless($span)) {
+ @return $span;
+ }
+
+ $location: su-valid-location($span, $location, $columns);
+ $span: su-slice($span, $columns, $location, $validate: false);
+ }
+
+ @if _su-needs-calc-output($span, $columns, $gutters, $spread, not 'validate') {
+ @return _su-calc-span($span, $columns, $gutters, $spread, $container-spread, not 'validate');
+ }
+
+ $span-width: _su-sum($span, $gutters, $spread, $validate: false);
+
+ @if unitless($span-width) {
+ $container-spread: su-valid-spread($container-spread);
+ $container: _su-sum($columns, $gutters, $container-spread, $validate: false);
+ @return percentage($span-width / $container);
+ }
+
+ @return $span-width;
+}
+
+
+
+// Su Gutter
+// ---------
+/// Calculates and returns a CSS-ready gutter width,
+/// based on normalized grid data –
+/// a low-level version of `susy-gutter`,
+/// with all of the logic and none of the syntax sugar.
+///
+/// - Grids defined with unitless numbers will return `%` values.
+/// - Grids defined with comparable units
+/// will return a value in the units provided.
+/// - Grids defined with a mix of units,
+/// or a combination of untiless numbers and unit-lengths,
+/// will return a `calc()` string.
+///
+/// @group su-math
+/// @see susy-gutter
+///
+/// @param {list} $columns -
+/// List of columns in the grid
+/// @param {number} $gutters -
+/// Width of a gutter in column-comparable units
+/// @param {0 | 1 | -1} $container-spread -
+/// Number of gutters spanned,
+/// relative to `columns` count
+///
+/// @return {length} -
+/// Relative or static length of one gutter in a grid
+@function su-gutter(
+ $columns,
+ $gutters,
+ $container-spread
+) {
+ @if (type-of($gutters) == 'number') {
+ @if ($gutters == 0) or (not unitless($gutters)) {
+ @return $gutters;
+ }
+ }
+
+ @if _su-needs-calc-output($gutters, $columns, $gutters, -1, not 'validate') {
+ @return _su-calc-span($gutters, $columns, $gutters, -1, $container-spread, not 'validate');
+ }
+
+ $container: _su-sum($columns, $gutters, $container-spread);
+ @return percentage($gutters / $container);
+}
+
+
+
+// Su Slice
+// --------
+/// Returns a list of columns
+/// based on a given span/location slice of the grid –
+/// a low-level version of `susy-slice`,
+/// with all of the logic and none of the syntax sugar.
+///
+/// @group su-math
+/// @see susy-slice
+///
+/// @param {number} $span -
+/// Number of grid columns to span
+/// @param {list} $columns -
+/// List of columns in the grid
+/// @param {number} $location [1] -
+/// Starting index of a span in the list of columns
+/// @param {bool} $validate [true] -
+/// Check that arguments are valid before proceeding
+///
+/// @return {list} -
+/// Subset list of grid columns, based on span and location
+@function su-slice(
+ $span,
+ $columns,
+ $location: 1,
+ $validate: true
+) {
+ @if $validate {
+ $columns: su-valid-columns($columns);
+ $location: su-valid-location($span, $location, $columns);
+ }
+
+ $floor: floor($span);
+ $sub-columns: ();
+
+ @for $i from $location to ($location + $floor) {
+ $sub-columns: append($sub-columns, nth($columns, $i));
+ }
+
+ @if $floor != $span {
+ $remainder: $span - $floor;
+ $column: $location + $floor;
+ $sub-columns: append($sub-columns, nth($columns, $column) * $remainder);
+ }
+
+ @return $sub-columns;
+}
+
+
+
+// Su Sum
+// ------
+/// Get the total sum of column-units in a layout.
+///
+/// @group su-math
+/// @access private
+///
+/// @param {list} $columns -
+/// List of columns in the grid
+/// @param {number} $gutters -
+/// Width of a gutter in column-comparable units
+/// @param {0 | 1 | -1} $spread -
+/// Number of gutters spanned,
+/// relative to `columns` count
+/// @param {bool} $validate [true] -
+/// Check that arguments are valid before proceeding
+///
+/// @return {number} -
+/// Total sum of column-units in a grid
+@function _su-sum(
+ $columns,
+ $gutters,
+ $spread,
+ $validate: true
+) {
+ @if $validate {
+ $columns: su-valid-span($columns);
+ $gutters: su-valid-gutters($gutters);
+ $spread: su-valid-spread($spread);
+ }
+
+ // Calculate column-sum
+ $column-sum: 0;
+ @each $column in $columns {
+ $column-sum: $column-sum + $column;
+ }
+
+ $gutter-sum: (ceil(length($columns)) + $spread) * $gutters;
+ $total: if(($gutter-sum > 0), $column-sum + $gutter-sum, $column-sum);
+
+ @return $total;
+}
+
+
+
+// Su Calc
+// -------
+/// Return a usable span width as a `calc()` function,
+/// in order to create mixed-unit grids.
+///
+/// @group su-math
+/// @access private
+///
+/// @param {number | list} $span -
+/// Pre-sliced list of grid columns to span
+/// @param {list} $columns -
+/// List of columns available
+/// @param {number} $gutters -
+/// Width of a gutter in column-comparable units
+/// @param {0 | 1 | -1} $spread -
+/// Number of gutters spanned,
+/// relative to `span` count
+/// @param {0 | 1 | -1} $container-spread [$spread] -
+/// Number of gutters spanned,
+/// relative to `columns` count
+/// @param {bool} $validate [true] -
+/// Check that arguments are valid before proceeding
+///
+/// @return {length} -
+/// Relative or static length of a span on the grid
+@function _su-calc-span(
+ $span,
+ $columns,
+ $gutters,
+ $spread,
+ $container-spread: $spread,
+ $validate: true
+) {
+ @if $validate {
+ $span: su-valid-span($span);
+ $columns: su-valid-columns($columns);
+ $gutters: su-valid-gutters($gutters);
+ $spread: su-valid-spread($spread);
+ $container-spread: su-valid-spread($container-spread);
+ }
+
+ // Span and context
+ $span: _su-calc-sum($span, $gutters, $spread, not 'validate');
+ $context: _su-calc-sum($columns, $gutters, $container-spread, not 'validate');
+
+ // Fixed and fluid
+ $fixed-span: map-get($span, 'fixed');
+ $fluid-span: map-get($span, 'fluid');
+ $fixed-context: map-get($context, 'fixed');
+ $fluid-context: map-get($context, 'fluid');
+
+ $calc: '#{$fixed-span}';
+ $fluid-calc: '(100% - #{$fixed-context})';
+
+ // Fluid-values
+ @if (not $fluid-span) {
+ $fluid-calc: null;
+ } @else if ($fluid-span != $fluid-context) {
+ $fluid-span: '* #{$fluid-span}';
+ $fluid-context: if($fluid-context, '/ #{$fluid-context}', '');
+ $fluid-calc: '(#{$fluid-calc $fluid-context $fluid-span})';
+ }
+
+ @if $fluid-calc {
+ $calc: if(($calc != ''), '#{$calc} + ', '');
+ $calc: '#{$calc + $fluid-calc}';
+ }
+
+ @return calc(#{unquote($calc)});
+}
+
+
+
+// Su Calc-Sum
+// -----------
+/// Get the total sum of fixed and fluid column-units
+/// for creating a mixed-unit layout with `calc()` values.
+///
+/// @group su-math
+/// @access private
+///
+/// @param {list} $columns -
+/// List of columns available
+/// @param {number} $gutters -
+/// Width of a gutter in column-comparable units
+/// @param {0 | 1 | -1} $spread -
+/// Number of gutters spanned,
+/// relative to `span` count
+/// @param {bool} $validate [true] -
+/// Check that arguments are valid before proceeding
+///
+/// @return {map} -
+/// Map with `fixed` and `fluid` keys
+/// containing the proper math as strings
+@function _su-calc-sum(
+ $columns,
+ $gutters,
+ $spread,
+ $validate: true
+) {
+ @if $validate {
+ $columns: su-valid-span($columns);
+ $gutters: su-valid-gutters($gutters);
+ $spread: su-valid-spread($spread);
+ }
+
+ $fluid: 0;
+ $fixed: ();
+ $calc: null;
+
+ // Gutters
+ $gutters: $gutters * (length($columns) + $spread);
+
+ // Columns
+ @each $col in append($columns, $gutters) {
+ @if unitless($col) {
+ $fluid: $fluid + $col;
+ } @else {
+ $fixed: _su-map-add-units($fixed, $col);
+ }
+ }
+
+ // Compile Fixed Units
+ @each $unit, $total in $fixed {
+ @if ($total != (0 * $total)) {
+ $calc: if($calc, '#{$calc} + #{$total}', '#{$total}');
+ }
+ }
+
+ // Calc null or string
+ @if $calc {
+ $calc: if(str-index($calc, '+'), '(#{$calc})', '#{$calc}');
+ }
+
+ // Fluid 0 => null
+ $fluid: if(($fluid == 0), null, $fluid);
+
+
+ // Return map
+ $return: (
+ 'fixed': $calc,
+ 'fluid': $fluid,
+ );
+
+ @return $return;
+}
+
+
+
+// Needs Calc
+// ----------
+/// Check if `calc()` will be needed in defining a span,
+/// if the necessary units in a grid are not comparable.
+///
+/// @group su-math
+/// @access private
+///
+/// @param {list} $span -
+/// Slice of columns to span
+/// @param {list} $columns -
+/// List of available columns in the grid
+/// @param {number} $gutters -
+/// Width of a gutter
+/// @param {0 | 1 | -1} $spread -
+/// Number of gutters spanned,
+/// relative to `span` count
+/// @param {bool} $validate [true] -
+/// Check that arguments are valid before proceeding
+///
+/// @return {bool} -
+/// `True` when units do not match, and `calc()` will be required
+@function _su-needs-calc-output(
+ $span,
+ $columns,
+ $gutters,
+ $spread,
+ $validate: true
+) {
+ @if $validate {
+ $span: su-valid-span($span);
+ $columns: su-valid-columns($columns);
+ $gutters: su-valid-gutters($gutters);
+ }
+
+ $has-gutter: if((length($span) > 1) or ($spread >= 0), true, false);
+ $check: if($has-gutter, append($span, $gutters), $span);
+ $safe-span: _su-is-comparable($check...);
+
+ @if ($safe-span == 'static') {
+ @return false;
+ } @else if (not $safe-span) {
+ @return true;
+ }
+
+ $safe-fluid: _su-is-comparable($gutters, $columns...);
+
+ @return not $safe-fluid;
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss b/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss
new file mode 100644
index 0000000..5befad3
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss
@@ -0,0 +1,213 @@
+/// Validation
+/// ==========
+/// Each argument to Su has a single canonical syntax.
+/// These validation functions check to ensure
+/// that each argument is valid,
+/// in order to provide useful errors
+/// before attempting to calculate the results/
+///
+/// @group x-validation
+///
+/// @see su-valid-columns
+/// @see su-valid-gutters
+/// @see su-valid-spread
+/// @see su-valid-location
+
+
+
+// Valid Span
+// ----------
+/// Check that the `span` argument
+/// is a number, length, or column-list
+///
+/// @group x-validation
+///
+/// @param {number | list} $span -
+/// Number of columns, or length of span
+///
+/// @return {number | list} -
+/// Validated `$span` number, length, or columns list
+///
+/// @throw
+/// when span value is not a number, or valid column list
+@function su-valid-span(
+ $span
+) {
+ $type: type-of($span);
+ @if ($type == 'number') {
+ @return $span;
+ } @else if ($type == 'list') and su-valid-columns($span, 'silent-failure') {
+ @return $span;
+ }
+
+ $actual: '[#{type-of($span)}] `#{inspect($span)}`';
+ @return _susy-error(
+ '#{$actual} is not a valid number, length, or column-list for $span.',
+ 'su-valid-span');
+}
+
+
+
+// Valid Columns
+// -------------
+/// Check that the `columns` argument is a valid
+/// list of column-lengths
+///
+/// @group x-validation
+///
+/// @param {list} $columns -
+/// List of column-lengths
+/// @param {bool} $silent-failure [true] -
+/// Set false to return null on failure
+///
+/// @return {list} -
+/// Validated `$columns` list
+///
+/// @throw
+/// when column value is not a valid list of numbers
+@function su-valid-columns(
+ $columns,
+ $silent-failure: false
+) {
+ @if (type-of($columns) == 'list') {
+ $fail: false;
+
+ @each $col in $columns {
+ @if (type-of($col) != 'number') {
+ $fail: true;
+ }
+ }
+
+ @if not $fail {
+ @return $columns;
+ }
+ }
+
+ // Silent Failure
+ @if $silent-failure {
+ @return null;
+ }
+
+ // Error Message
+ $actual: '[#{type-of($columns)}] `#{inspect($columns)}`';
+
+ @return _susy-error(
+ '#{$actual} is not a valid list of numbers for $columns.',
+ 'su-valid-columns');
+}
+
+
+
+// Valid Gutters
+// -------------
+/// Check that the `gutters` argument is a valid number
+///
+/// @group x-validation
+///
+/// @param {number} $gutters -
+/// Width of a gutter
+///
+/// @return {number} -
+/// Validated `$gutters` number
+///
+/// @throw
+/// when gutter value is not a number
+@function su-valid-gutters(
+ $gutters
+) {
+ $type: type-of($gutters);
+
+ @if ($type == 'number') {
+ @return $gutters;
+ }
+
+ $actual: '[#{$type}] `#{inspect($gutters)}`';
+ @return _susy-error(
+ '#{$actual} is not a number or length for $gutters.',
+ 'su-valid-gutters');
+}
+
+
+
+// Valid Spread
+// ------------
+/// Check that the `spread` argument is a valid
+/// intiger between `-1` and `1`
+///
+/// @group x-validation
+///
+/// @param {0 | 1 | -1} $spread -
+/// Number of gutters to include in a span,
+/// relative to the number columns
+///
+/// @return {0 | 1 | -1} -
+/// Validated `$spread` number
+///
+/// @throw
+/// when spread value is not a valid spread
+@function su-valid-spread(
+ $spread
+) {
+ @if index(0 1 -1, $spread) {
+ @return $spread;
+ }
+
+ $actual: '[#{type-of($spread)}] `#{inspect($spread)}`';
+ @return _susy-error(
+ '#{$actual} is not a normalized [0 | 1 | -1] value for `$spread`.',
+ 'su-valid-spread');
+}
+
+
+
+// Valid Location
+// --------------
+/// Check that the `location` argument is a valid number,
+/// within the scope of available columns
+///
+/// @group x-validation
+///
+/// @param {number} $span -
+/// Number of grid-columns to be spanned
+/// @param {integer | string} $location -
+/// Starting (1-indexed) column-position of that span
+/// @param {list} $columns -
+/// List of available columns in the grid
+///
+/// @return {integer} -
+/// Validated `$location` intiger
+///
+/// @throw
+/// when location value is not a valid index,
+/// given the context and span.
+@function su-valid-location(
+ $span,
+ $location,
+ $columns
+) {
+ $count: length($columns);
+
+ @if $location {
+ @if (type-of($location) != 'number') or (not unitless($location)) {
+ $actual: '[#{type-of($location)}] `#{$location}`';
+ @return _susy-error(
+ '#{$actual} is not a unitless number for $location.',
+ 'su-valid-location');
+ } @else if (round($location) != $location) {
+ @return _susy-error(
+ 'Location (`#{$location}`) must be a 1-indexed intiger position.',
+ 'su-valid-location');
+ } @else if ($location > $count) or ($location < 1) {
+ @return _susy-error(
+ 'Position `#{$location}` does not exist in grid `#{$columns}`.',
+ 'su-valid-location');
+ } @else if ($location + $span - 1 > $count) {
+ $details: 'grid `#{$columns}` for span `#{$span}` at `#{$location}`';
+ @return _susy-error(
+ 'There are not enough columns in #{$details}.',
+ 'su-valid-location');
+ }
+ }
+
+ @return $location;
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss b/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss
new file mode 100644
index 0000000..f6043ea
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss
@@ -0,0 +1,191 @@
+/// Syntax Utilities for Extending Susy
+/// ===================================
+/// There are many steps involved
+/// when translating between the Susy syntax layer,
+/// and the Su core math.
+/// That entire process can be condensed with these two functions.
+/// For anyone that wants to access the full power of Susy,
+/// and build their own plugins, functions, or mixins –
+/// this is the primary API for compiling user input,
+/// and accessing the core math.
+///
+/// This is the same technique we use internally,
+/// to keep our API layer simple and light-weight.
+/// Every function accepts two arguments,
+/// a "shorthand" description of the span or context,
+/// and an optional settings-map to override global defaults.
+///
+/// - Use `susy-compile()` to parse, merge, and normalize
+/// all the user settings into a single map.
+/// - Then use `su-call()` to call one of the core math functions,
+/// with whatever data is needed for that function.
+///
+/// @group plugin-utils
+/// @see susy-compile
+/// @see su-call
+///
+/// @example scss - Susy API `gutter` function
+/// @function susy-gutter(
+/// $context: susy-get('columns'),
+/// $config: ()
+/// ) {
+/// // compile and normalize all user arguments and global settings
+/// $context: susy-compile($context, $config, 'context-only');
+/// // call `su-gutter` with the appropriate data
+/// @return su-call('su-gutter', $context);
+/// }
+///
+/// @example scss - Sample `span` mixin for floated grids
+/// @mixin span(
+/// $span,
+/// $config: ()
+/// ) {
+/// $context: susy-compile($span, $config);
+/// width: su-call('su-span', $context);
+///
+/// @if index($span, 'last') {
+/// float: right;
+/// } @else {
+/// float: left;
+/// margin-right: su-call('su-gutter', $context);
+/// }
+/// }
+
+
+
+// Compile
+// -------
+/// Susy's syntax layer has various moving parts,
+/// with syntax-parsing for the grid/span shorthand,
+/// and normalization for each of the resulting values.
+/// The compile function rolls this all together
+/// in a single call –
+/// for quick access from our internal API functions,
+/// or any additional functions and mixins you add to your project.
+/// Pass user input and configuration maps to the compiler,
+/// and it will hand back a map of values ready for Su.
+/// Combine this with the `su-call` function
+/// to quickly parse, normalize, and process grid calculations.
+///
+/// @group plugin-utils
+/// @see su-call
+///
+/// @param {list | map} $shorthand -
+/// Shorthand expression to define the width of the span,
+/// optionally containing:
+/// - a count, length, or column-list span;
+/// - `at $n`, `first`, or `last` location on asymmetrical grids;
+/// - `narrow`, `wide`, or `wider` for optionally spreading
+/// across adjacent gutters;
+/// - `of $n ` for available grid columns
+/// and spread of the container
+/// (span counts like `of 6` are only valid
+/// in the context of symmetrical grids);
+/// - and `set-gutters $n` to override global gutter settings
+/// @param {map} $config [null] -
+/// Optional map of Susy grid configuration settings
+/// @param {bool} $context-only [false] -
+/// Allow the parser to ignore span and span-spread values,
+/// only parsing context and container-spread
+///
+/// @return {map} -
+/// Parsed and normalized map of settings,
+/// based on global and local configuration,
+/// alongwith shorthad adjustments.
+///
+/// @example scss -
+/// $user-input: 3 wide of susy-repeat(6, 120px) set-gutters 10px;
+/// $grid-data: susy-compile($user-input, $susy);
+///
+/// @each $key, $value in $grid-data {
+/// /* #{$key}: #{$value}, */
+/// }
+@function susy-compile(
+ $short,
+ $config: null,
+ $context-only: false
+) {
+ // Get and normalize config
+ $config: if($config, susy-settings($config), susy-settings());
+ $normal-config: susy-normalize($config);
+
+ // Parse and normalize shorthand
+ @if (type-of($short) != 'map') and (length($short) > 0) {
+ $short: susy-parse($short, $context-only);
+ }
+
+ $normal-short: susy-normalize($short, $normal-config);
+
+ // Merge and return
+ @return map-merge($normal-config, $normal-short);
+}
+
+
+
+// Call
+// ----
+/// The Susy parsing and normalization process
+/// results in a map of configuration settings,
+/// much like the global `$susy` settings map.
+/// In order to pass that information along to Su math functions,
+/// the proper values have to be picked out,
+/// and converted to arguments.
+///
+/// The `su-call` function streamlines that process,
+/// weeding out the unnecessary data,
+/// and passing the rest along to Su in the proper format.
+/// Combine this with `susy-compile` to quickly parse,
+/// normalize, and process grid calculations.
+///
+/// @group plugin-utils
+///
+/// @require su-span
+/// @require su-gutter
+/// @require su-slice
+/// @see susy-compile
+///
+/// @param {'su-span' | 'su-gutter' | 'su-slice'} $name -
+/// Name of the Su math function to call.
+/// @param {map} $config -
+/// Parsed and normalized map of Susy configuration settings
+/// to use for math-function arguments.
+///
+/// @return {*} -
+/// Results of the function being called.
+///
+/// @example scss -
+/// $user-input: 3 wide of susy-repeat(6, 120px) set-gutters 10px;
+/// $grid-data: susy-compile($user-input, $susy);
+///
+/// .su-span {
+/// width: su-call('su-span', $grid-data);
+/// }
+@function su-call(
+ $name,
+ $config
+) {
+ $grid-function-args: (
+ 'su-span': ('span', 'columns', 'gutters', 'spread', 'container-spread', 'location'),
+ 'su-gutter': ('columns', 'gutters', 'container-spread'),
+ 'su-slice': ('span', 'columns', 'location'),
+ );
+
+ $args: map-get($grid-function-args, $name);
+
+ @if not $args {
+ $options: 'Try one of these: #{map-keys($grid-function-args)}';
+ @return _susy-error(
+ '#{$name} is not a public Su function. #{$options}',
+ 'su-call');
+ }
+
+ $call: if(function-exists('get-function'), get-function($name), $name);
+ $output: ();
+
+ @each $arg in $args {
+ $value: map-get($config, $arg);
+ $output: if($value, map-merge($output, ($arg: $value)), $output);
+ }
+
+ @return call($call, $output...);
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss b/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss
new file mode 100644
index 0000000..2cfd1b8
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss
@@ -0,0 +1,56 @@
+// Unprefix Susy
+// =============
+
+
+// Span
+// ----
+/// Un-prefixed alias for `susy-span`
+/// (available by default)
+///
+/// @group api
+/// @alias susy-span
+///
+/// @param {list} $span
+/// @param {map} $config [()]
+@function span(
+ $span,
+ $config: ()
+) {
+ @return susy-span($span, $config);
+}
+
+
+// Gutter
+// ------
+/// Un-prefixed alias for `susy-gutter`
+/// (available by default)
+///
+/// @group api
+/// @alias susy-gutter
+///
+/// @param {integer | list} $context [null] -
+/// @param {map} $config [()]
+@function gutter(
+ $context: susy-get('columns'),
+ $config: ()
+) {
+ @return susy-gutter($context, $config);
+}
+
+
+// Slice
+// -----
+/// Un-prefixed alias for `susy-slice`
+/// (available by default)
+///
+/// @group api
+/// @alias susy-slice
+///
+/// @param {list} $span
+/// @param {map} $config [()]
+@function slice(
+ $span,
+ $config: ()
+) {
+ @return susy-slice($span, $config);
+}
diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss b/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss
new file mode 100644
index 0000000..3c62de2
--- /dev/null
+++ b/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss
@@ -0,0 +1,167 @@
+// Sass Utilities
+// ==============
+// - Susy Error Output Override [variable]
+// - Susy Error [function]
+
+
+
+// Susy Error Output Override
+// --------------------------
+/// Turn off error output for testing
+/// @group x-utility
+/// @access private
+$_susy-error-output-override: false !default;
+
+
+
+// Susy Error
+// ----------
+/// Optionally return error messages without failing,
+/// as a way to test error cases
+///
+/// @group x-utility
+/// @access private
+///
+/// @param {string} $message -
+/// A useful error message, explaining the problem
+/// @param {string} $source -
+/// The original source of the error for debugging
+/// @param {bool} $override [$_susy-error-output-override] -
+/// Optionally return the error rather than failing
+/// @return {string} -
+/// Combined error with source and message
+/// @throws When `$override == true`
+@function _susy-error(
+ $message,
+ $source,
+ $override: $_susy-error-output-override
+) {
+ @if $override {
+ @return 'ERROR [#{$source}] #{$message}';
+ }
+
+ @error '[#{$source}] #{$message}';
+}
+
+
+// Su Is Comparable
+// ----------------
+/// Check that the units in a grid are comparable
+///
+/// @group x-validation
+/// @access private
+///
+/// @param {numbers} $lengths… -
+/// Arglist of all the number values to compare
+/// (columns, gutters, span, etc)
+///
+/// @return {'fluid' | 'static' | false} -
+/// The type of span (fluid or static) when units match,
+/// or `false` for mismatched units
+@function _su-is-comparable(
+ $lengths...
+) {
+ $first: nth($lengths, 1);
+
+ @if (length($lengths) == 1) {
+ @return if(unitless($first), 'fluid', 'static');
+ }
+
+ @for $i from 2 through length($lengths) {
+ $comp: nth($lengths, $i);
+
+ $fail: not comparable($first, $comp);
+ $fail: $fail or (unitless($first) and not unitless($comp));
+ $fail: $fail or (unitless($comp) and not unitless($first));
+
+ @if $fail {
+ @return false;
+ }
+ }
+
+ @return if(unitless($first), 'fluid', 'static');
+}
+
+
+// Su Map Add Units
+// ----------------
+/// The calc features use a map of units and values
+/// to compile the proper algorythm.
+/// This function adds a new value to any comparable existing unit/value,
+/// or adds a new unit/value pair to the map
+///
+/// @group x-utility
+/// @access private
+///
+/// @param {map} $map -
+/// A map of unit/value pairs, e.g. ('px': 120px)
+/// @param {length} $value -
+/// A new length to be added to the map
+/// @return {map} -
+/// The updated map, with new value added
+///
+/// @example scss -
+/// $map: (0px: 120px);
+/// $map: _su-map-add-units($map, 1in); // add a comparable unit
+/// $map: _su-map-add-units($map, 3vw); // add a new unit
+///
+/// @each $units, $value in $map {
+/// /* #{$units}: #{$value} */
+/// }
+@function _su-map-add-units(
+ $map,
+ $value
+) {
+ $unit: $value * 0;
+ $has: map-get($map, $unit) or 0;
+
+ @if ($has == 0) {
+ @each $try, $could in $map {
+ $match: comparable($try, $value);
+ $unit: if($match, $try, $unit);
+ $has: if($match, $could, $has);
+ }
+ }
+
+ @return map-merge($map, ($unit: $has + $value));
+}
+
+
+// Susy Flatten
+// ------------
+/// Flatten a multidimensional list
+///
+/// @group x-utility
+/// @access private
+///
+/// @param {list} $list -
+/// The list to be flattened
+/// @return {list} -
+/// The flattened list
+///
+/// @example scss -
+/// $list: 120px (30em 30em) 120px;
+/// /* #{_susy-flatten($list)} */
+@function _susy-flatten(
+ $list
+) {
+ $flat: ();
+
+ // Don't iterate over maps
+ @if (type-of($list) == 'map') {
+ @return $list;
+ }
+
+ // Iterate over lists (or single items)
+ @each $item in $list {
+ @if (type-of($item) == 'list') {
+ $item: _susy-flatten($item);
+ $flat: join($flat, $item);
+ } @else {
+ $flat: append($flat, $item);
+ }
+ }
+
+ // Return flattened list
+ @return $flat;
+}
diff --git a/about.md b/about.md
new file mode 100644
index 0000000..ea0f614
--- /dev/null
+++ b/about.md
@@ -0,0 +1,10 @@
+---
+title: About
+layout: splash
+author_profile: false
+---
+
+# About
+
+# Who
+
diff --git a/assets/css/main.scss b/assets/css/main.scss
new file mode 100644
index 0000000..23346e7
--- /dev/null
+++ b/assets/css/main.scss
@@ -0,0 +1,8 @@
+---
+# Only the main Sass file needs front matter (the dashes are enough)
+---
+
+@charset "utf-8";
+
+@import "minimal-mistakes/skins/{{ site.minimal_mistakes_skin | default: 'default' }}"; // skin
+@import "minimal-mistakes"; // main partials
\ No newline at end of file
diff --git a/assets/images/misp-long.png b/assets/images/misp-long.png
new file mode 100644
index 0000000000000000000000000000000000000000..192138d3b6d4643bae760d4dad46bfedcfda2fdb
GIT binary patch
literal 546886
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