From 57a4324fa04086ee8c035a6969d3c415f250e556 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Thu, 3 Nov 2016 11:52:04 -0400 Subject: [PATCH] Move `gh-pages` branch files into `/docs` and add test files - Jekyll ignore `/docs` and `/test` folders when using from root - Update Staticman config to point to correct branch and data file location - Replace `{{ base_path }}` references with `absolute_url` filter - Update documentation --- README.md | 20 +- _config.yml | 6 +- _data/navigation.yml | 18 +- docs/Gemfile | 14 + docs/_config.dev.yml | 13 + docs/_config.yml | 307 +++ {example => docs}/_data/authors.yml | 0 .../comment-1473870213530.yml | 6 + .../layout-comments/comment-1470944006665.yml | 6 + .../layout-comments/comment-1470944162041.yml | 6 + .../layout-comments/comment-1472308473018.yml | 6 + .../comment-1474306861206.yml | 6 + .../comment-1472040323579.yml | 6 + .../comment-1472146638519.yml | 6 + .../comment-1470969665387.yml | 6 + .../comment-1472064560364.yml | 6 + .../comment-1472786137736.yml | 6 + .../comment-1470942205700.yml | 6 + .../comment-1470942247755.yml | 6 + .../comment-1470942265819.yml | 6 + .../comment-1470942493518.yml | 6 + .../comment-1471823346931.yml | 6 + .../comment-1471834988411.yml | 6 + .../comment-1472786599470.yml | 6 + .../comment-1474328950155.yml | 6 + docs/_data/navigation.yml | 99 + {example => docs}/_data/ui-text.yml | 52 - docs/_docs/01-quick-start-guide.md | 153 ++ docs/_docs/02-structure.md | 54 + docs/_docs/03-installation.md | 107 + docs/_docs/04-upgrading.md | 48 + docs/_docs/05-configuration.md | 624 +++++ docs/_docs/06-overriding-theme-defaults.md | 24 + docs/_docs/07-navigation.md | 68 + docs/_docs/08-ui-text.md | 29 + docs/_docs/09-authors.md | 39 + docs/_docs/10-layouts.md | 566 +++++ docs/_docs/11-posts.md | 37 + docs/_docs/12-pages.md | 43 + docs/_docs/13-collections.md | 46 + docs/_docs/14-helpers.md | 256 ++ docs/_docs/15-utility-classes.md | 175 ++ docs/_docs/16-stylesheets.md | 133 ++ docs/_docs/17-javascript.md | 48 + docs/_docs/18-history.md | 611 +++++ docs/_docs/19-contributing.md | 18 + docs/_docs/20-docs-2-2.md | 301 +++ docs/_docs/21-license.md | 28 + docs/_drafts/post-draft.md | 19 + .../_includes/analytics-providers/custom.html | 3 + .../analytics-providers/google-universal.html | 9 + .../_includes/analytics-providers/google.html | 11 + docs/_includes/analytics.html | 12 + docs/_includes/archive-single.html | 38 + docs/_includes/author-profile.html | 102 + docs/_includes/base_path | 5 + docs/_includes/breadcrumbs.html | 39 + docs/_includes/browser-upgrade.html | 3 + docs/_includes/category-list.html | 26 + docs/_includes/comment.html | 22 + docs/_includes/comments-providers/custom.html | 3 + .../comments-providers/discourse.html | 14 + docs/_includes/comments-providers/disqus.html | 22 + .../comments-providers/facebook.html | 8 + .../comments-providers/google-plus.html | 2 + .../_includes/comments-providers/scripts.html | 18 + .../comments-providers/staticman.html | 42 + docs/_includes/comments.html | 80 + docs/_includes/feature_row | 50 + docs/_includes/footer.html | 22 + docs/_includes/footer/custom.html | 3 + docs/_includes/gallery | 47 + docs/_includes/group-by-array | 47 + docs/_includes/head.html | 19 + docs/_includes/head/custom.html | 5 + docs/_includes/masthead.html | 21 + docs/_includes/nav_list | 45 + docs/_includes/page__hero.html | 53 + docs/_includes/page__taxonomy.html | 7 + docs/_includes/paginator.html | 68 + docs/_includes/post_pagination.html | 14 + docs/_includes/read-time.html | 17 + docs/_includes/scripts.html | 4 + docs/_includes/seo.html | 143 ++ docs/_includes/sidebar.html | 23 + docs/_includes/social-share.html | 13 + docs/_includes/tag-list.html | 26 + docs/_includes/toc | 7 + docs/_layouts/archive-taxonomy.html | 15 + docs/_layouts/archive.html | 24 + docs/_layouts/compress.html | 10 + docs/_layouts/default.html | 28 + docs/_layouts/home.html | 13 + docs/_layouts/single.html | 74 + docs/_layouts/splash.html | 20 + {example => docs}/_pages/404.md | 0 docs/_pages/about.md | 84 + .../_pages/archive-layout-with-content.md | 0 .../_pages/category-archive.html | 0 .../_pages/collection-archive.html | 0 docs/_pages/home.md | 38 + {example => docs}/_pages/lorem-ipsum.md | 0 {example => docs}/_pages/page-a.md | 0 {example => docs}/_pages/page-archive.html | 0 {example => docs}/_pages/page-b.md | 0 .../_pages/portfolio-archive.html | 0 {example => docs}/_pages/recipes-archive.html | 0 {example => docs}/_pages/sample-page.md | 0 {example => docs}/_pages/sitemap.md | 0 {example => docs}/_pages/splash-page.md | 0 {example => docs}/_pages/tag-archive.html | 0 {example => docs}/_pages/terms.md | 0 {example => docs}/_pages/year-archive.html | 0 {example => docs}/_pets/lhasa-apso.md | 0 {example => docs}/_pets/tabby.md | 0 .../_portfolio/foo-bar-website.md | 0 ...-05-15-edge-case-nested-and-mixed-lists.md | 0 .../_posts/2009-06-01-edge-case-many-tags.md | 0 .../2009-07-02-edge-case-many-categories.md | 0 .../2009-08-06-edge-case-no-body-content.md | 0 .../2009-09-05-edge-case-no-yaml-title.md | 0 ...le-should-not-overflow-the-content-area.md | 0 .../2009-10-05-edge-case-very-long-title.md | 0 .../_posts/2010-01-07-post-modified.md | 0 .../_posts/2010-01-07-post-standard.md | 0 .../_posts/2010-01-08-post-chat.md | 0 .../_posts/2010-02-05-post-notice.md | 0 .../_posts/2010-02-05-post-quote.md | 0 .../_posts/2010-03-07-post-link.md | 0 .../_posts/2010-06-02-post-video-youtube.md | 0 .../_posts/2010-08-05-post-image-linked.md | 0 .../_posts/2010-08-05-post-image-standard.md | 0 .../2010-08-06-post-image-linked-caption.md | 0 .../_posts/2010-08-07-post-image-caption.md | 0 .../_posts/2010-09-09-post-gallery.md | 0 .../_posts/2010-09-10-post-twitter-embeds.md | 0 .../_posts/2010-10-25-post-future-date.md | 0 .../2012-01-02-layout-comments-disabled.md | 0 .../_posts/2012-01-02-layout-comments.md | 0 .../2012-01-02-layout-read-time-disabled.md | 0 .../_posts/2012-01-02-layout-read-time.md | 0 ...012-01-02-layout-related-posts-disabled.md | 0 .../_posts/2012-01-02-layout-related-posts.md | 0 .../2012-01-02-layout-sharing-disabled.md | 0 .../_posts/2012-01-02-layout-sharing.md | 0 ...comments-sharing-related-posts-disabled.md | 0 ...012-01-03-layout-table-of-contents-post.md | 0 ...012-03-14-layout-code-excerpt-generated.md | 0 .../2012-03-14-layout-excerpt-defined.md | 0 .../2012-03-14-layout-excerpt-generated.md | 0 .../2012-03-15-layout-author-override.md | 0 ...12-03-15-layout-author-sidebar-disabled.md | 0 ...2012-03-15-layout-header-image-external.md | 0 ...12-03-15-layout-header-image-horizontal.md | 0 ...15-layout-header-image-text-readability.md | 0 ...2012-03-15-layout-header-image-vertical.md | 0 .../2012-03-15-layout-header-overlay-color.md | 0 .../2012-03-15-layout-header-overlay-image.md | 51 + .../_posts/2012-03-15-layout-more-tag.md | 0 .../2012-03-15-layout-sidebar-custom.md | 0 .../2012-05-22-markup-text-readability.md | 0 .../2013-01-05-markup-title-with-markup.md | 0 ...05-markup-title-with-special-characters.md | 0 .../2013-01-09-markup-text-alignment.md | 0 .../2013-01-10-markup-image-alignment.md | 0 ...3-01-11-markup-html-tags-and-formatting.md | 222 ++ .../_posts/2013-05-22-markup-more-images.md | 0 .../2013-08-16-markup-syntax-highlighting.md | 0 .../_posts/2016-02-24-welcome-to-jekyll.md | 0 .../_posts/2016-09-21-gemified-theme-alpha.md | 95 + docs/_posts/2016-10-06-gemified-theme-beta.md | 79 + .../_recipes/chocolate-chip-cookies.md | 0 {example => docs}/_recipes/oatmeal-cookies.md | 0 .../_recipes/peanut-butter-cookies.md | 0 docs/_sass/_animations.scss | 21 + docs/_sass/_archive.scss | 238 ++ docs/_sass/_base.scss | 315 +++ docs/_sass/_buttons.scss | 153 ++ docs/_sass/_footer.scss | 80 + docs/_sass/_forms.scss | 391 ++++ docs/_sass/_masthead.scss | 53 + docs/_sass/_mixins.scss | 53 + docs/_sass/_navigation.scss | 432 ++++ docs/_sass/_notices.scss | 99 + docs/_sass/_page.scss | 401 ++++ docs/_sass/_print.scss | 18 + docs/_sass/_reset.scss | 187 ++ docs/_sass/_sidebar.scss | 232 ++ docs/_sass/_syntax.scss | 146 ++ docs/_sass/_tables.scss | 38 + docs/_sass/_utilities.scss | 470 ++++ docs/_sass/_variables.scss | 147 ++ docs/_sass/vendor/breakpoint/_breakpoint.scss | 114 + docs/_sass/vendor/breakpoint/_context.scss | 95 + docs/_sass/vendor/breakpoint/_helpers.scss | 151 ++ .../vendor/breakpoint/_legacy-settings.scss | 50 + docs/_sass/vendor/breakpoint/_no-query.scss | 15 + docs/_sass/vendor/breakpoint/_parsers.scss | 215 ++ docs/_sass/vendor/breakpoint/_respond-to.scss | 82 + docs/_sass/vendor/breakpoint/_settings.scss | 71 + .../vendor/breakpoint/parsers/_double.scss | 33 + .../vendor/breakpoint/parsers/_query.scss | 82 + .../breakpoint/parsers/_resolution.scss | 31 + .../vendor/breakpoint/parsers/_single.scss | 26 + .../vendor/breakpoint/parsers/_triple.scss | 36 + .../parsers/double/_default-pair.scss | 21 + .../breakpoint/parsers/double/_default.scss | 22 + .../parsers/double/_double-string.scss | 22 + .../parsers/resolution/_resolution.scss | 60 + .../breakpoint/parsers/single/_default.scss | 13 + .../breakpoint/parsers/triple/_default.scss | 18 + docs/_sass/vendor/font-awesome/_animated.scss | 34 + .../vendor/font-awesome/_bordered-pulled.scss | 25 + docs/_sass/vendor/font-awesome/_core.scss | 12 + .../vendor/font-awesome/_fixed-width.scss | 6 + .../vendor/font-awesome/_font-awesome.scss | 18 + docs/_sass/vendor/font-awesome/_icons.scss | 733 ++++++ docs/_sass/vendor/font-awesome/_larger.scss | 13 + docs/_sass/vendor/font-awesome/_list.scss | 19 + docs/_sass/vendor/font-awesome/_mixins.scss | 60 + docs/_sass/vendor/font-awesome/_path.scss | 15 + .../vendor/font-awesome/_rotated-flipped.scss | 20 + .../vendor/font-awesome/_screen-reader.scss | 5 + docs/_sass/vendor/font-awesome/_stacked.scss | 20 + .../_sass/vendor/font-awesome/_variables.scss | 744 ++++++ .../magnific-popup/_magnific-popup.scss | 649 ++++++ .../vendor/magnific-popup/_settings.scss | 46 + docs/_sass/vendor/susy/_su.scss | 4 + docs/_sass/vendor/susy/_susy.scss | 4 + docs/_sass/vendor/susy/_susyone.scss | 4 + docs/_sass/vendor/susy/susy/_su.scss | 7 + .../vendor/susy/susy/language/_susy.scss | 24 + .../vendor/susy/susy/language/_susyone.scss | 13 + .../susy/susy/language/susy/_background.scss | 385 ++++ .../susy/susy/language/susy/_bleed.scss | 200 ++ .../susy/susy/language/susy/_box-sizing.scss | 47 + .../language/susy/_breakpoint-plugin.scss | 185 ++ .../susy/susy/language/susy/_container.scss | 81 + .../susy/susy/language/susy/_context.scss | 36 + .../susy/susy/language/susy/_gallery.scss | 94 + .../susy/susy/language/susy/_grids.scss | 64 + .../susy/susy/language/susy/_gutters.scss | 154 ++ .../susy/susy/language/susy/_isolate.scss | 77 + .../susy/susy/language/susy/_margins.scss | 94 + .../susy/susy/language/susy/_padding.scss | 74 + .../vendor/susy/susy/language/susy/_rows.scss | 138 ++ .../susy/susy/language/susy/_settings.scss | 216 ++ .../vendor/susy/susy/language/susy/_span.scss | 163 ++ .../susy/susy/language/susy/_validation.scss | 16 + .../susy/language/susyone/_background.scss | 18 + .../susy/language/susyone/_functions.scss | 377 +++ .../susy/susy/language/susyone/_grid.scss | 312 +++ .../susy/language/susyone/_isolation.scss | 51 + .../susy/susy/language/susyone/_margin.scss | 93 + .../susy/susy/language/susyone/_media.scss | 105 + .../susy/susy/language/susyone/_padding.scss | 92 + .../susy/susy/language/susyone/_settings.scss | 60 + .../_sass/vendor/susy/susy/output/_float.scss | 9 + .../vendor/susy/susy/output/_shared.scss | 15 + .../vendor/susy/susy/output/_support.scss | 9 + .../susy/susy/output/float/_container.scss | 16 + .../vendor/susy/susy/output/float/_end.scss | 40 + .../susy/susy/output/float/_isolate.scss | 22 + .../vendor/susy/susy/output/float/_span.scss | 35 + .../susy/susy/output/shared/_background.scss | 26 + .../susy/susy/output/shared/_container.scss | 21 + .../susy/susy/output/shared/_direction.scss | 42 + .../susy/susy/output/shared/_inspect.scss | 25 + .../susy/susy/output/shared/_margins.scss | 23 + .../susy/susy/output/shared/_output.scss | 14 + .../susy/susy/output/shared/_padding.scss | 23 + .../susy/susy/output/support/_background.scss | 58 + .../susy/susy/output/support/_box-sizing.scss | 19 + .../susy/susy/output/support/_clearfix.scss | 18 + .../susy/susy/output/support/_prefix.scss | 19 + .../vendor/susy/susy/output/support/_rem.scss | 22 + .../susy/susy/output/support/_support.scss | 85 + docs/_sass/vendor/susy/susy/su/_grid.scss | 103 + docs/_sass/vendor/susy/susy/su/_settings.scss | 73 + .../_sass/vendor/susy/susy/su/_utilities.scss | 111 + .../vendor/susy/susy/su/_validation.scss | 57 + docs/assets/css/main.scss | 39 + docs/assets/fonts/FontAwesome.otf | Bin 0 -> 124988 bytes docs/assets/fonts/fontawesome-webfont.eot | Bin 0 -> 76518 bytes docs/assets/fonts/fontawesome-webfont.svg | 685 ++++++ docs/assets/fonts/fontawesome-webfont.ttf | Bin 0 -> 152796 bytes docs/assets/fonts/fontawesome-webfont.woff | Bin 0 -> 90412 bytes docs/assets/fonts/fontawesome-webfont.woff2 | Bin 0 -> 71896 bytes .../assets/images/3953273590_704e3899d5_m.jpg | Bin {example => docs}/assets/images/500x300.png | Bin docs/assets/images/android-chrome-144x144.png | Bin 0 -> 1164 bytes docs/assets/images/android-chrome-192x192.png | Bin 0 -> 1673 bytes docs/assets/images/android-chrome-36x36.png | Bin 0 -> 459 bytes docs/assets/images/android-chrome-48x48.png | Bin 0 -> 544 bytes docs/assets/images/android-chrome-72x72.png | Bin 0 -> 670 bytes docs/assets/images/android-chrome-96x96.png | Bin 0 -> 745 bytes .../images/apple-touch-icon-114x114.png | Bin 0 -> 876 bytes .../images/apple-touch-icon-120x120.png | Bin 0 -> 935 bytes .../images/apple-touch-icon-144x144.png | Bin 0 -> 1164 bytes .../images/apple-touch-icon-152x152.png | Bin 0 -> 1229 bytes .../images/apple-touch-icon-180x180.png | Bin 0 -> 1464 bytes docs/assets/images/apple-touch-icon-57x57.png | Bin 0 -> 595 bytes docs/assets/images/apple-touch-icon-60x60.png | Bin 0 -> 593 bytes docs/assets/images/apple-touch-icon-72x72.png | Bin 0 -> 670 bytes docs/assets/images/apple-touch-icon-76x76.png | Bin 0 -> 721 bytes .../images/apple-touch-icon-precomposed.png | Bin 0 -> 2777 bytes docs/assets/images/apple-touch-icon.png | Bin 0 -> 1464 bytes .../assets/images/bio-photo-2.jpg | Bin {example => docs}/assets/images/bio-photo.jpg | Bin docs/assets/images/browserconfig.xml | 12 + .../assets/images/facebook-share-example.jpg | Bin docs/assets/images/favicon-16x16.png | Bin 0 -> 414 bytes docs/assets/images/favicon-32x32.png | Bin 0 -> 436 bytes docs/assets/images/favicon-96x96.png | Bin 0 -> 745 bytes docs/assets/images/favicon.ico | Bin 0 -> 4846 bytes .../assets/images/foo-bar-identity-th.jpg | Bin .../assets/images/foo-bar-identity.jpg | Bin .../images/image-alignment-1200x4002.jpg | Bin .../assets/images/image-alignment-150x150.jpg | Bin .../assets/images/image-alignment-300x200.jpg | Bin .../assets/images/image-alignment-580x300.jpg | Bin docs/assets/images/manifest.json | 41 + .../markup-syntax-highlighting-teaser.jpg | Bin docs/assets/images/michael-rose.jpg | Bin 0 -> 9176 bytes .../images/mm-archive-grid-view-example.jpg | Bin .../images/mm-author-profile-reddit-color.png | Bin .../images/mm-author-profile-reddit-gs.png | Bin .../images/mm-author-sidebar-example.jpg | Bin .../assets/images/mm-breadcrumbs-example.jpg | Bin .../assets/images/mm-browser-mockups.png | Bin .../assets/images/mm-bundle-install.gif | Bin .../images/mm-custom-sidebar-example.jpg | Bin .../assets/images/mm-custom-sidebar-nav.jpg | Bin .../assets/images/mm-customizable-feature.png | Bin .../assets/images/mm-free-feature.png | Bin .../assets/images/mm-gh-pages.gif | Bin .../assets/images/mm-github-copy-repo-url.jpg | Bin .../assets/images/mm-github-edit-config.gif | Bin .../images/mm-header-overlay-black-filter.jpg | Bin .../images/mm-header-overlay-red-filter.jpg | Bin .../assets/images/mm-home-page-feature.jpg | Bin .../mm-home-post-pagination-example.jpg | Bin .../images/mm-layout-archive-taxonomy.png | Bin .../assets/images/mm-layout-archive.png | Bin .../assets/images/mm-layout-examples.png | Bin .../assets/images/mm-layout-single-header.png | Bin .../assets/images/mm-layout-single-meta.png | Bin .../assets/images/mm-layout-single.png | Bin .../assets/images/mm-layout-splash.png | Bin .../images/mm-paragraph-indent-example.jpg | Bin .../mm-portfolio-collection-example.jpg | Bin .../images/mm-priority-plus-masthead.gif | Bin .../assets/images/mm-read-time-example.jpg | Bin .../assets/images/mm-responsive-feature.png | Bin .../images/mm-single-header-example.jpg | Bin .../mm-single-header-overlay-example.jpg | Bin .../mm-single-header-overlay-fill-example.jpg | Bin .../images/mm-social-share-links-default.png | Bin .../mm-social-share-links-reddit-color.png | Bin .../mm-social-share-links-reddit-gs.png | Bin .../assets/images/mm-staticman-pr-webhook.jpg | Bin .../assets/images/mm-susy-grid-overlay.jpg | Bin .../images/mm-teaser-images-example.jpg | Bin .../assets/images/mm-theme-fork-repo.png | Bin .../assets/images/mm-theme-post-600.jpg | Bin .../assets/images/mm-theme-post-750.jpg | Bin .../assets/images/mm-toc-helper-example.jpg | Bin .../images/mm-twitter-card-summary-image.jpg | Bin .../images/mm-twitter-card-summary-large.jpg | Bin .../assets/images/mm-ui-text-labels.jpg | Bin docs/assets/images/mstile-144x144.png | Bin 0 -> 1164 bytes docs/assets/images/mstile-150x150.png | Bin 0 -> 1926 bytes docs/assets/images/mstile-310x150.png | Bin 0 -> 2063 bytes docs/assets/images/mstile-310x310.png | Bin 0 -> 4718 bytes docs/assets/images/mstile-70x70.png | Bin 0 -> 1115 bytes .../assets/images/paragraph-indent.png | Bin .../assets/images/paragraph-no-indent.png | Bin .../assets/images/safari-pinned-tab.svg | 0 docs/assets/images/site-logo.png | Bin 0 -> 4653 bytes .../images/unsplash-gallery-image-1-th.jpg | Bin .../images/unsplash-gallery-image-1.jpg | Bin .../images/unsplash-gallery-image-2-th.jpg | Bin .../images/unsplash-gallery-image-2.jpg | Bin .../images/unsplash-gallery-image-3-th.jpg | Bin .../images/unsplash-gallery-image-3.jpg | Bin .../images/unsplash-gallery-image-4-th.jpg | Bin .../images/unsplash-gallery-image-4.jpg | Bin .../assets/images/unsplash-image-1.jpg | Bin .../assets/images/unsplash-image-10.jpg | Bin .../assets/images/unsplash-image-11.jpg | Bin .../assets/images/unsplash-image-2.jpg | Bin .../assets/images/unsplash-image-3.jpg | Bin .../assets/images/unsplash-image-4.jpg | Bin .../assets/images/unsplash-image-5.jpg | Bin .../assets/images/unsplash-image-6.jpg | Bin .../assets/images/unsplash-image-7.jpg | Bin .../assets/images/unsplash-image-8.jpg | Bin .../assets/images/unsplash-image-9.jpg | Bin docs/assets/js/_main.js | 100 + docs/assets/js/main.min.js | 5 + docs/assets/js/plugins/jquery.fitvids.js | 82 + .../js/plugins/jquery.greedy-navigation.js | 72 + .../js/plugins/jquery.magnific-popup.js | 2049 +++++++++++++++++ .../js/plugins/jquery.smooth-scroll.min.js | 8 + docs/assets/js/plugins/stickyfill.min.js | 8 + .../js/vendor/jquery/jquery-1.12.4.min.js | 5 + docs/screenshot-layouts.png | Bin 0 -> 124853 bytes docs/screenshot.png | Bin 0 -> 210879 bytes example/Gemfile | 10 - test/Gemfile | 6 + {example => test}/_config.yml | 4 +- test/_data/authors.yml | 18 + {example => test}/_data/navigation.yml | 0 test/_data/ui-text.yml | 43 + test/_pages/404.md | 16 + test/_pages/archive-layout-with-content.md | 219 ++ test/_pages/category-archive.html | 17 + test/_pages/collection-archive.html | 24 + test/_pages/lorem-ipsum.md | 52 + test/_pages/page-a.md | 7 + test/_pages/page-archive.html | 11 + test/_pages/page-b.md | 7 + test/_pages/portfolio-archive.html | 14 + test/_pages/recipes-archive.html | 12 + test/_pages/sample-page.md | 15 + test/_pages/sitemap.md | 37 + test/_pages/splash-page.md | 65 + test/_pages/tag-archive.html | 17 + test/_pages/terms.md | 58 + test/_pages/year-archive.html | 17 + test/_pets/lhasa-apso.md | 8 + test/_pets/tabby.md | 8 + test/_portfolio/foo-bar-website.md | 30 + ...-05-15-edge-case-nested-and-mixed-lists.md | 60 + test/_posts/2009-06-01-edge-case-many-tags.md | 49 + .../2009-07-02-edge-case-many-categories.md | 22 + .../2009-08-06-edge-case-no-body-content.md | 9 + .../2009-09-05-edge-case-no-yaml-title.md | 10 + ...le-should-not-overflow-the-content-area.md | 27 + .../2009-10-05-edge-case-very-long-title.md | 14 + test/_posts/2010-01-07-post-modified.md | 14 + test/_posts/2010-01-07-post-standard.md | 32 + test/_posts/2010-01-08-post-chat.md | 134 ++ test/_posts/2010-02-05-post-notice.md | 68 + test/_posts/2010-02-05-post-quote.md | 12 + test/_posts/2010-03-07-post-link.md | 15 + test/_posts/2010-06-02-post-video-youtube.md | 11 + test/_posts/2010-08-05-post-image-linked.md | 10 + test/_posts/2010-08-05-post-image-standard.md | 44 + .../2010-08-06-post-image-linked-caption.md | 21 + test/_posts/2010-08-07-post-image-caption.md | 19 + test/_posts/2010-09-09-post-gallery.md | 134 ++ test/_posts/2010-09-10-post-twitter-embeds.md | 15 + test/_posts/2010-10-25-post-future-date.md | 8 + .../2012-01-02-layout-comments-disabled.md | 14 + test/_posts/2012-01-02-layout-comments.md | 12 + .../2012-01-02-layout-read-time-disabled.md | 18 + test/_posts/2012-01-02-layout-read-time.md | 18 + ...012-01-02-layout-related-posts-disabled.md | 14 + .../_posts/2012-01-02-layout-related-posts.md | 12 + .../2012-01-02-layout-sharing-disabled.md | 14 + test/_posts/2012-01-02-layout-sharing.md | 12 + ...comments-sharing-related-posts-disabled.md | 19 + ...012-01-03-layout-table-of-contents-post.md | 100 + ...012-03-14-layout-code-excerpt-generated.md | 14 + .../2012-03-14-layout-excerpt-defined.md | 15 + .../2012-03-14-layout-excerpt-generated.md | 17 + .../2012-03-15-layout-author-override.md | 38 + ...12-03-15-layout-author-sidebar-disabled.md | 9 + ...2012-03-15-layout-header-image-external.md | 17 + ...12-03-15-layout-header-image-horizontal.md | 20 + ...15-layout-header-image-text-readability.md | 49 + ...2012-03-15-layout-header-image-vertical.md | 20 + .../2012-03-15-layout-header-overlay-color.md | 18 + .../2012-03-15-layout-header-overlay-image.md | 0 test/_posts/2012-03-15-layout-more-tag.md | 18 + .../2012-03-15-layout-sidebar-custom.md | 26 + .../2012-05-22-markup-text-readability.md | 45 + .../2013-01-05-markup-title-with-markup.md | 14 + ...05-markup-title-with-special-characters.md | 432 ++++ .../2013-01-09-markup-text-alignment.md | 34 + .../2013-01-10-markup-image-alignment.md | 72 + ...3-01-11-markup-html-tags-and-formatting.md | 0 test/_posts/2013-05-22-markup-more-images.md | 65 + .../2013-08-16-markup-syntax-highlighting.md | 101 + test/_posts/2016-02-24-welcome-to-jekyll.md | 29 + test/_recipes/chocolate-chip-cookies.md | 31 + test/_recipes/oatmeal-cookies.md | 23 + test/_recipes/peanut-butter-cookies.md | 23 + .../assets/images/3953273590_704e3899d5_m.jpg | Bin 0 -> 14037 bytes test/assets/images/500x300.png | Bin 0 -> 1662 bytes test/assets/images/bio-photo-2.jpg | Bin 0 -> 1806 bytes test/assets/images/bio-photo.jpg | Bin 0 -> 1661 bytes test/assets/images/facebook-share-example.jpg | Bin 0 -> 74978 bytes test/assets/images/foo-bar-identity-th.jpg | Bin 0 -> 75014 bytes test/assets/images/foo-bar-identity.jpg | Bin 0 -> 61076 bytes .../images/image-alignment-1200x4002.jpg | Bin 0 -> 35514 bytes .../assets/images/image-alignment-150x150.jpg | Bin 0 -> 2844 bytes .../assets/images/image-alignment-300x200.jpg | Bin 0 -> 6446 bytes .../assets/images/image-alignment-580x300.jpg | Bin 0 -> 9082 bytes .../markup-syntax-highlighting-teaser.jpg | Bin 0 -> 93588 bytes .../images/mm-archive-grid-view-example.jpg | Bin 0 -> 110665 bytes .../images/mm-author-profile-reddit-color.png | Bin 0 -> 16893 bytes .../images/mm-author-profile-reddit-gs.png | Bin 0 -> 24002 bytes .../images/mm-author-sidebar-example.jpg | Bin 0 -> 130748 bytes test/assets/images/mm-breadcrumbs-example.jpg | Bin 0 -> 47649 bytes test/assets/images/mm-browser-mockups.png | Bin 0 -> 210879 bytes test/assets/images/mm-bundle-install.gif | Bin 0 -> 78255 bytes .../images/mm-custom-sidebar-example.jpg | Bin 0 -> 54015 bytes test/assets/images/mm-custom-sidebar-nav.jpg | Bin 0 -> 51465 bytes .../assets/images/mm-customizable-feature.png | Bin 0 -> 12547 bytes test/assets/images/mm-free-feature.png | Bin 0 -> 16852 bytes test/assets/images/mm-gh-pages.gif | Bin 0 -> 49321 bytes .../assets/images/mm-github-copy-repo-url.jpg | Bin 0 -> 59515 bytes test/assets/images/mm-github-edit-config.gif | Bin 0 -> 1194924 bytes .../images/mm-header-overlay-black-filter.jpg | Bin 0 -> 33462 bytes .../images/mm-header-overlay-red-filter.jpg | Bin 0 -> 40863 bytes test/assets/images/mm-home-page-feature.jpg | Bin 0 -> 31487 bytes .../mm-home-post-pagination-example.jpg | Bin 0 -> 48921 bytes .../images/mm-layout-archive-taxonomy.png | Bin 0 -> 31010 bytes test/assets/images/mm-layout-archive.png | Bin 0 -> 35579 bytes test/assets/images/mm-layout-examples.png | Bin 0 -> 124853 bytes .../assets/images/mm-layout-single-header.png | Bin 0 -> 110610 bytes test/assets/images/mm-layout-single-meta.png | Bin 0 -> 189813 bytes test/assets/images/mm-layout-single.png | Bin 0 -> 266317 bytes test/assets/images/mm-layout-splash.png | Bin 0 -> 95286 bytes .../images/mm-paragraph-indent-example.jpg | Bin 0 -> 76275 bytes .../mm-portfolio-collection-example.jpg | Bin 0 -> 141578 bytes .../images/mm-priority-plus-masthead.gif | Bin 0 -> 3204605 bytes test/assets/images/mm-read-time-example.jpg | Bin 0 -> 29668 bytes test/assets/images/mm-responsive-feature.png | Bin 0 -> 10565 bytes .../images/mm-single-header-example.jpg | Bin 0 -> 141145 bytes .../mm-single-header-overlay-example.jpg | Bin 0 -> 45722 bytes .../mm-single-header-overlay-fill-example.jpg | Bin 0 -> 23917 bytes .../images/mm-social-share-links-default.png | Bin 0 -> 21378 bytes .../mm-social-share-links-reddit-color.png | Bin 0 -> 20782 bytes .../mm-social-share-links-reddit-gs.png | Bin 0 -> 20976 bytes .../assets/images/mm-staticman-pr-webhook.jpg | Bin 0 -> 56728 bytes test/assets/images/mm-susy-grid-overlay.jpg | Bin 0 -> 76447 bytes .../images/mm-teaser-images-example.jpg | Bin 0 -> 87378 bytes test/assets/images/mm-theme-fork-repo.png | Bin 0 -> 22684 bytes test/assets/images/mm-theme-post-600.jpg | Bin 0 -> 31087 bytes test/assets/images/mm-theme-post-750.jpg | Bin 0 -> 74410 bytes test/assets/images/mm-toc-helper-example.jpg | Bin 0 -> 79940 bytes .../images/mm-twitter-card-summary-image.jpg | Bin 0 -> 79618 bytes .../images/mm-twitter-card-summary-large.jpg | Bin 0 -> 105376 bytes test/assets/images/mm-ui-text-labels.jpg | Bin 0 -> 63677 bytes test/assets/images/paragraph-indent.png | Bin 0 -> 32911 bytes test/assets/images/paragraph-no-indent.png | Bin 0 -> 33539 bytes test/assets/images/safari-pinned-tab.svg | 34 + .../images/unsplash-gallery-image-1-th.jpg | Bin 0 -> 9939 bytes .../images/unsplash-gallery-image-1.jpg | Bin 0 -> 46235 bytes .../images/unsplash-gallery-image-2-th.jpg | Bin 0 -> 28664 bytes .../images/unsplash-gallery-image-2.jpg | Bin 0 -> 135803 bytes .../images/unsplash-gallery-image-3-th.jpg | Bin 0 -> 47560 bytes .../images/unsplash-gallery-image-3.jpg | Bin 0 -> 239277 bytes .../images/unsplash-gallery-image-4-th.jpg | Bin 0 -> 17908 bytes .../images/unsplash-gallery-image-4.jpg | Bin 0 -> 110478 bytes test/assets/images/unsplash-image-1.jpg | Bin 0 -> 53685 bytes test/assets/images/unsplash-image-10.jpg | Bin 0 -> 69413 bytes test/assets/images/unsplash-image-11.jpg | Bin 0 -> 90279 bytes test/assets/images/unsplash-image-2.jpg | Bin 0 -> 117741 bytes test/assets/images/unsplash-image-3.jpg | Bin 0 -> 66594 bytes test/assets/images/unsplash-image-4.jpg | Bin 0 -> 158263 bytes test/assets/images/unsplash-image-5.jpg | Bin 0 -> 26645 bytes test/assets/images/unsplash-image-6.jpg | Bin 0 -> 192223 bytes test/assets/images/unsplash-image-7.jpg | Bin 0 -> 38801 bytes test/assets/images/unsplash-image-8.jpg | Bin 0 -> 110788 bytes test/assets/images/unsplash-image-9.jpg | Bin 0 -> 59729 bytes {example => test}/index.html | 0 570 files changed, 22895 insertions(+), 84 deletions(-) create mode 100644 docs/Gemfile create mode 100644 docs/_config.dev.yml create mode 100644 docs/_config.yml rename {example => docs}/_data/authors.yml (100%) mode change 100755 => 100644 create mode 100644 docs/_data/comments/chocolate-chip-cookies/comment-1473870213530.yml create mode 100644 docs/_data/comments/layout-comments/comment-1470944006665.yml create mode 100644 docs/_data/comments/layout-comments/comment-1470944162041.yml create mode 100644 docs/_data/comments/layout-comments/comment-1472308473018.yml create mode 100644 docs/_data/comments/layout-header-image-text-readability/comment-1474306861206.yml create mode 100644 docs/_data/comments/markup-more-images/comment-1472040323579.yml create mode 100644 docs/_data/comments/markup-more-images/comment-1472146638519.yml create mode 100644 docs/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml create mode 100644 docs/_data/comments/post-future-date/comment-1472064560364.yml create mode 100644 docs/_data/comments/post-future-date/comment-1472786137736.yml create mode 100644 docs/_data/comments/welcome-to-jekyll/comment-1470942205700.yml create mode 100644 docs/_data/comments/welcome-to-jekyll/comment-1470942247755.yml create mode 100644 docs/_data/comments/welcome-to-jekyll/comment-1470942265819.yml create mode 100644 docs/_data/comments/welcome-to-jekyll/comment-1470942493518.yml create mode 100644 docs/_data/comments/welcome-to-jekyll/comment-1471823346931.yml create mode 100644 docs/_data/comments/welcome-to-jekyll/comment-1471834988411.yml create mode 100644 docs/_data/comments/welcome-to-jekyll/comment-1472786599470.yml create mode 100644 docs/_data/comments/welcome-to-jekyll/comment-1474328950155.yml create mode 100644 docs/_data/navigation.yml rename {example => docs}/_data/ui-text.yml (87%) create mode 100644 docs/_docs/01-quick-start-guide.md create mode 100644 docs/_docs/02-structure.md create mode 100644 docs/_docs/03-installation.md create mode 100644 docs/_docs/04-upgrading.md create mode 100644 docs/_docs/05-configuration.md create mode 100644 docs/_docs/06-overriding-theme-defaults.md create mode 100644 docs/_docs/07-navigation.md create mode 100644 docs/_docs/08-ui-text.md create mode 100644 docs/_docs/09-authors.md create mode 100644 docs/_docs/10-layouts.md create mode 100644 docs/_docs/11-posts.md create mode 100644 docs/_docs/12-pages.md create mode 100644 docs/_docs/13-collections.md create mode 100644 docs/_docs/14-helpers.md create mode 100644 docs/_docs/15-utility-classes.md create mode 100644 docs/_docs/16-stylesheets.md create mode 100644 docs/_docs/17-javascript.md create mode 100644 docs/_docs/18-history.md create mode 100644 docs/_docs/19-contributing.md create mode 100644 docs/_docs/20-docs-2-2.md create mode 100644 docs/_docs/21-license.md create mode 100644 docs/_drafts/post-draft.md create mode 100644 docs/_includes/analytics-providers/custom.html create mode 100644 docs/_includes/analytics-providers/google-universal.html create mode 100644 docs/_includes/analytics-providers/google.html create mode 100644 docs/_includes/analytics.html create mode 100644 docs/_includes/archive-single.html create mode 100644 docs/_includes/author-profile.html create mode 100644 docs/_includes/base_path create mode 100644 docs/_includes/breadcrumbs.html create mode 100644 docs/_includes/browser-upgrade.html create mode 100644 docs/_includes/category-list.html create mode 100644 docs/_includes/comment.html create mode 100644 docs/_includes/comments-providers/custom.html create mode 100644 docs/_includes/comments-providers/discourse.html create mode 100644 docs/_includes/comments-providers/disqus.html create mode 100644 docs/_includes/comments-providers/facebook.html create mode 100644 docs/_includes/comments-providers/google-plus.html create mode 100644 docs/_includes/comments-providers/scripts.html create mode 100644 docs/_includes/comments-providers/staticman.html create mode 100644 docs/_includes/comments.html create mode 100644 docs/_includes/feature_row create mode 100644 docs/_includes/footer.html create mode 100644 docs/_includes/footer/custom.html create mode 100644 docs/_includes/gallery create mode 100644 docs/_includes/group-by-array create mode 100644 docs/_includes/head.html create mode 100644 docs/_includes/head/custom.html create mode 100644 docs/_includes/masthead.html create mode 100644 docs/_includes/nav_list create mode 100644 docs/_includes/page__hero.html create mode 100644 docs/_includes/page__taxonomy.html create mode 100644 docs/_includes/paginator.html create mode 100644 docs/_includes/post_pagination.html create mode 100644 docs/_includes/read-time.html create mode 100644 docs/_includes/scripts.html create mode 100644 docs/_includes/seo.html create mode 100644 docs/_includes/sidebar.html create mode 100644 docs/_includes/social-share.html create mode 100644 docs/_includes/tag-list.html create mode 100644 docs/_includes/toc create mode 100644 docs/_layouts/archive-taxonomy.html create mode 100644 docs/_layouts/archive.html create mode 100644 docs/_layouts/compress.html create mode 100644 docs/_layouts/default.html create mode 100644 docs/_layouts/home.html create mode 100644 docs/_layouts/single.html create mode 100644 docs/_layouts/splash.html rename {example => docs}/_pages/404.md (100%) mode change 100755 => 100644 create mode 100644 docs/_pages/about.md rename {example => docs}/_pages/archive-layout-with-content.md (100%) mode change 100755 => 100644 rename {example => docs}/_pages/category-archive.html (100%) mode change 100755 => 100644 rename {example => docs}/_pages/collection-archive.html (100%) mode change 100755 => 100644 create mode 100644 docs/_pages/home.md rename {example => docs}/_pages/lorem-ipsum.md (100%) mode change 100755 => 100644 rename {example => docs}/_pages/page-a.md (100%) mode change 100755 => 100644 rename {example => docs}/_pages/page-archive.html (100%) mode change 100755 => 100644 rename {example => docs}/_pages/page-b.md (100%) mode change 100755 => 100644 rename {example => docs}/_pages/portfolio-archive.html (100%) mode change 100755 => 100644 rename {example => docs}/_pages/recipes-archive.html (100%) mode change 100755 => 100644 rename {example => docs}/_pages/sample-page.md (100%) mode change 100755 => 100644 rename {example => docs}/_pages/sitemap.md (100%) mode change 100755 => 100644 rename {example => docs}/_pages/splash-page.md (100%) mode change 100755 => 100644 rename {example => docs}/_pages/tag-archive.html (100%) mode change 100755 => 100644 rename {example => docs}/_pages/terms.md (100%) mode change 100755 => 100644 rename {example => docs}/_pages/year-archive.html (100%) mode change 100755 => 100644 rename {example => docs}/_pets/lhasa-apso.md (100%) mode change 100755 => 100644 rename {example => docs}/_pets/tabby.md (100%) mode change 100755 => 100644 rename {example => docs}/_portfolio/foo-bar-website.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2009-05-15-edge-case-nested-and-mixed-lists.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2009-06-01-edge-case-many-tags.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2009-07-02-edge-case-many-categories.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2009-08-06-edge-case-no-body-content.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2009-09-05-edge-case-no-yaml-title.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2009-10-05-edge-case-title-should-not-overflow-the-content-area.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2009-10-05-edge-case-very-long-title.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-01-07-post-modified.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-01-07-post-standard.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-01-08-post-chat.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-02-05-post-notice.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-02-05-post-quote.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-03-07-post-link.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-06-02-post-video-youtube.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-08-05-post-image-linked.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-08-05-post-image-standard.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-08-06-post-image-linked-caption.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-08-07-post-image-caption.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-09-09-post-gallery.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-09-10-post-twitter-embeds.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2010-10-25-post-future-date.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-02-layout-comments-disabled.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-02-layout-comments.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-02-layout-read-time-disabled.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-02-layout-read-time.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-02-layout-related-posts-disabled.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-02-layout-related-posts.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-02-layout-sharing-disabled.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-02-layout-sharing.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-03-layout-read-time-comments-sharing-related-posts-disabled.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-01-03-layout-table-of-contents-post.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-14-layout-code-excerpt-generated.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-14-layout-excerpt-defined.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-14-layout-excerpt-generated.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-15-layout-author-override.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-15-layout-author-sidebar-disabled.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-15-layout-header-image-external.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-15-layout-header-image-horizontal.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-15-layout-header-image-text-readability.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-15-layout-header-image-vertical.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-15-layout-header-overlay-color.md (100%) mode change 100755 => 100644 create mode 100644 docs/_posts/2012-03-15-layout-header-overlay-image.md rename {example => docs}/_posts/2012-03-15-layout-more-tag.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-03-15-layout-sidebar-custom.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2012-05-22-markup-text-readability.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2013-01-05-markup-title-with-markup.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2013-01-05-markup-title-with-special-characters.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2013-01-09-markup-text-alignment.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2013-01-10-markup-image-alignment.md (100%) mode change 100755 => 100644 create mode 100644 docs/_posts/2013-01-11-markup-html-tags-and-formatting.md rename {example => docs}/_posts/2013-05-22-markup-more-images.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2013-08-16-markup-syntax-highlighting.md (100%) mode change 100755 => 100644 rename {example => docs}/_posts/2016-02-24-welcome-to-jekyll.md (100%) mode change 100755 => 100644 create mode 100644 docs/_posts/2016-09-21-gemified-theme-alpha.md create mode 100644 docs/_posts/2016-10-06-gemified-theme-beta.md rename {example => docs}/_recipes/chocolate-chip-cookies.md (100%) mode change 100755 => 100644 rename {example => docs}/_recipes/oatmeal-cookies.md (100%) mode change 100755 => 100644 rename {example => docs}/_recipes/peanut-butter-cookies.md (100%) mode change 100755 => 100644 create mode 100644 docs/_sass/_animations.scss create mode 100644 docs/_sass/_archive.scss create mode 100644 docs/_sass/_base.scss create mode 100644 docs/_sass/_buttons.scss create mode 100644 docs/_sass/_footer.scss create mode 100644 docs/_sass/_forms.scss create mode 100644 docs/_sass/_masthead.scss create mode 100644 docs/_sass/_mixins.scss create mode 100644 docs/_sass/_navigation.scss create mode 100644 docs/_sass/_notices.scss create mode 100644 docs/_sass/_page.scss create mode 100644 docs/_sass/_print.scss create mode 100644 docs/_sass/_reset.scss create mode 100644 docs/_sass/_sidebar.scss create mode 100644 docs/_sass/_syntax.scss create mode 100644 docs/_sass/_tables.scss create mode 100644 docs/_sass/_utilities.scss create mode 100644 docs/_sass/_variables.scss create mode 100644 docs/_sass/vendor/breakpoint/_breakpoint.scss create mode 100644 docs/_sass/vendor/breakpoint/_context.scss create mode 100644 docs/_sass/vendor/breakpoint/_helpers.scss create mode 100644 docs/_sass/vendor/breakpoint/_legacy-settings.scss create mode 100644 docs/_sass/vendor/breakpoint/_no-query.scss create mode 100644 docs/_sass/vendor/breakpoint/_parsers.scss create mode 100644 docs/_sass/vendor/breakpoint/_respond-to.scss create mode 100644 docs/_sass/vendor/breakpoint/_settings.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/_double.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/_query.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/_resolution.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/_single.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/_triple.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/double/_default-pair.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/double/_default.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/double/_double-string.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/single/_default.scss create mode 100644 docs/_sass/vendor/breakpoint/parsers/triple/_default.scss create mode 100644 docs/_sass/vendor/font-awesome/_animated.scss create mode 100644 docs/_sass/vendor/font-awesome/_bordered-pulled.scss create mode 100644 docs/_sass/vendor/font-awesome/_core.scss create mode 100644 docs/_sass/vendor/font-awesome/_fixed-width.scss create mode 100644 docs/_sass/vendor/font-awesome/_font-awesome.scss create mode 100644 docs/_sass/vendor/font-awesome/_icons.scss create mode 100644 docs/_sass/vendor/font-awesome/_larger.scss create mode 100644 docs/_sass/vendor/font-awesome/_list.scss create mode 100644 docs/_sass/vendor/font-awesome/_mixins.scss create mode 100644 docs/_sass/vendor/font-awesome/_path.scss create mode 100644 docs/_sass/vendor/font-awesome/_rotated-flipped.scss create mode 100644 docs/_sass/vendor/font-awesome/_screen-reader.scss create mode 100644 docs/_sass/vendor/font-awesome/_stacked.scss create mode 100644 docs/_sass/vendor/font-awesome/_variables.scss create mode 100644 docs/_sass/vendor/magnific-popup/_magnific-popup.scss create mode 100644 docs/_sass/vendor/magnific-popup/_settings.scss create mode 100644 docs/_sass/vendor/susy/_su.scss create mode 100644 docs/_sass/vendor/susy/_susy.scss create mode 100644 docs/_sass/vendor/susy/_susyone.scss create mode 100644 docs/_sass/vendor/susy/susy/_su.scss create mode 100644 docs/_sass/vendor/susy/susy/language/_susy.scss create mode 100644 docs/_sass/vendor/susy/susy/language/_susyone.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_background.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_bleed.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_box-sizing.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_container.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_context.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_gallery.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_grids.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_gutters.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_isolate.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_margins.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_padding.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_rows.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_settings.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_span.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susy/_validation.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susyone/_background.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susyone/_functions.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susyone/_grid.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susyone/_isolation.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susyone/_margin.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susyone/_media.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susyone/_padding.scss create mode 100644 docs/_sass/vendor/susy/susy/language/susyone/_settings.scss create mode 100644 docs/_sass/vendor/susy/susy/output/_float.scss create mode 100644 docs/_sass/vendor/susy/susy/output/_shared.scss create mode 100644 docs/_sass/vendor/susy/susy/output/_support.scss create mode 100644 docs/_sass/vendor/susy/susy/output/float/_container.scss create mode 100644 docs/_sass/vendor/susy/susy/output/float/_end.scss create mode 100644 docs/_sass/vendor/susy/susy/output/float/_isolate.scss create mode 100644 docs/_sass/vendor/susy/susy/output/float/_span.scss create mode 100644 docs/_sass/vendor/susy/susy/output/shared/_background.scss create mode 100644 docs/_sass/vendor/susy/susy/output/shared/_container.scss create mode 100644 docs/_sass/vendor/susy/susy/output/shared/_direction.scss create mode 100644 docs/_sass/vendor/susy/susy/output/shared/_inspect.scss create mode 100644 docs/_sass/vendor/susy/susy/output/shared/_margins.scss create mode 100644 docs/_sass/vendor/susy/susy/output/shared/_output.scss create mode 100644 docs/_sass/vendor/susy/susy/output/shared/_padding.scss create mode 100644 docs/_sass/vendor/susy/susy/output/support/_background.scss create mode 100644 docs/_sass/vendor/susy/susy/output/support/_box-sizing.scss create mode 100644 docs/_sass/vendor/susy/susy/output/support/_clearfix.scss create mode 100644 docs/_sass/vendor/susy/susy/output/support/_prefix.scss create mode 100644 docs/_sass/vendor/susy/susy/output/support/_rem.scss create mode 100644 docs/_sass/vendor/susy/susy/output/support/_support.scss create mode 100644 docs/_sass/vendor/susy/susy/su/_grid.scss create mode 100644 docs/_sass/vendor/susy/susy/su/_settings.scss create mode 100644 docs/_sass/vendor/susy/susy/su/_utilities.scss create mode 100644 docs/_sass/vendor/susy/susy/su/_validation.scss create mode 100644 docs/assets/css/main.scss create mode 100644 docs/assets/fonts/FontAwesome.otf create mode 100644 docs/assets/fonts/fontawesome-webfont.eot create mode 100644 docs/assets/fonts/fontawesome-webfont.svg create mode 100644 docs/assets/fonts/fontawesome-webfont.ttf create mode 100644 docs/assets/fonts/fontawesome-webfont.woff create mode 100644 docs/assets/fonts/fontawesome-webfont.woff2 rename {example => docs}/assets/images/3953273590_704e3899d5_m.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/500x300.png (100%) mode change 100755 => 100644 create mode 100644 docs/assets/images/android-chrome-144x144.png create mode 100644 docs/assets/images/android-chrome-192x192.png create mode 100644 docs/assets/images/android-chrome-36x36.png create mode 100644 docs/assets/images/android-chrome-48x48.png create mode 100644 docs/assets/images/android-chrome-72x72.png create mode 100644 docs/assets/images/android-chrome-96x96.png create mode 100644 docs/assets/images/apple-touch-icon-114x114.png create mode 100644 docs/assets/images/apple-touch-icon-120x120.png create mode 100644 docs/assets/images/apple-touch-icon-144x144.png create mode 100644 docs/assets/images/apple-touch-icon-152x152.png create mode 100644 docs/assets/images/apple-touch-icon-180x180.png create mode 100644 docs/assets/images/apple-touch-icon-57x57.png create mode 100644 docs/assets/images/apple-touch-icon-60x60.png create mode 100644 docs/assets/images/apple-touch-icon-72x72.png create mode 100644 docs/assets/images/apple-touch-icon-76x76.png create mode 100644 docs/assets/images/apple-touch-icon-precomposed.png create mode 100644 docs/assets/images/apple-touch-icon.png rename {example => docs}/assets/images/bio-photo-2.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/bio-photo.jpg (100%) create mode 100644 docs/assets/images/browserconfig.xml rename {example => docs}/assets/images/facebook-share-example.jpg (100%) mode change 100755 => 100644 create mode 100644 docs/assets/images/favicon-16x16.png create mode 100644 docs/assets/images/favicon-32x32.png create mode 100644 docs/assets/images/favicon-96x96.png create mode 100644 docs/assets/images/favicon.ico rename {example => docs}/assets/images/foo-bar-identity-th.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/foo-bar-identity.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/image-alignment-1200x4002.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/image-alignment-150x150.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/image-alignment-300x200.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/image-alignment-580x300.jpg (100%) mode change 100755 => 100644 create mode 100644 docs/assets/images/manifest.json rename {example => docs}/assets/images/markup-syntax-highlighting-teaser.jpg (100%) mode change 100755 => 100644 create mode 100644 docs/assets/images/michael-rose.jpg rename {example => docs}/assets/images/mm-archive-grid-view-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-author-profile-reddit-color.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-author-profile-reddit-gs.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-author-sidebar-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-breadcrumbs-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-browser-mockups.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-bundle-install.gif (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-custom-sidebar-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-custom-sidebar-nav.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-customizable-feature.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-free-feature.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-gh-pages.gif (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-github-copy-repo-url.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-github-edit-config.gif (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-header-overlay-black-filter.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-header-overlay-red-filter.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-home-page-feature.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-home-post-pagination-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-layout-archive-taxonomy.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-layout-archive.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-layout-examples.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-layout-single-header.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-layout-single-meta.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-layout-single.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-layout-splash.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-paragraph-indent-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-portfolio-collection-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-priority-plus-masthead.gif (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-read-time-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-responsive-feature.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-single-header-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-single-header-overlay-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-single-header-overlay-fill-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-social-share-links-default.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-social-share-links-reddit-color.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-social-share-links-reddit-gs.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-staticman-pr-webhook.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-susy-grid-overlay.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-teaser-images-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-theme-fork-repo.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-theme-post-600.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-theme-post-750.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-toc-helper-example.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-twitter-card-summary-image.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-twitter-card-summary-large.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/mm-ui-text-labels.jpg (100%) mode change 100755 => 100644 create mode 100644 docs/assets/images/mstile-144x144.png create mode 100644 docs/assets/images/mstile-150x150.png create mode 100644 docs/assets/images/mstile-310x150.png create mode 100644 docs/assets/images/mstile-310x310.png create mode 100644 docs/assets/images/mstile-70x70.png rename {example => docs}/assets/images/paragraph-indent.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/paragraph-no-indent.png (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/safari-pinned-tab.svg (100%) mode change 100755 => 100644 create mode 100644 docs/assets/images/site-logo.png rename {example => docs}/assets/images/unsplash-gallery-image-1-th.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-gallery-image-1.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-gallery-image-2-th.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-gallery-image-2.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-gallery-image-3-th.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-gallery-image-3.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-gallery-image-4-th.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-gallery-image-4.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-1.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-10.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-11.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-2.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-3.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-4.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-5.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-6.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-7.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-8.jpg (100%) mode change 100755 => 100644 rename {example => docs}/assets/images/unsplash-image-9.jpg (100%) mode change 100755 => 100644 create mode 100644 docs/assets/js/_main.js create mode 100644 docs/assets/js/main.min.js create mode 100644 docs/assets/js/plugins/jquery.fitvids.js create mode 100644 docs/assets/js/plugins/jquery.greedy-navigation.js create mode 100644 docs/assets/js/plugins/jquery.magnific-popup.js create mode 100644 docs/assets/js/plugins/jquery.smooth-scroll.min.js create mode 100644 docs/assets/js/plugins/stickyfill.min.js create mode 100644 docs/assets/js/vendor/jquery/jquery-1.12.4.min.js create mode 100644 docs/screenshot-layouts.png create mode 100644 docs/screenshot.png delete mode 100644 example/Gemfile create mode 100644 test/Gemfile rename {example => test}/_config.yml (98%) create mode 100644 test/_data/authors.yml rename {example => test}/_data/navigation.yml (100%) mode change 100755 => 100644 create mode 100644 test/_data/ui-text.yml create mode 100644 test/_pages/404.md create mode 100644 test/_pages/archive-layout-with-content.md create mode 100644 test/_pages/category-archive.html create mode 100644 test/_pages/collection-archive.html create mode 100644 test/_pages/lorem-ipsum.md create mode 100644 test/_pages/page-a.md create mode 100644 test/_pages/page-archive.html create mode 100644 test/_pages/page-b.md create mode 100644 test/_pages/portfolio-archive.html create mode 100644 test/_pages/recipes-archive.html create mode 100644 test/_pages/sample-page.md create mode 100644 test/_pages/sitemap.md create mode 100644 test/_pages/splash-page.md create mode 100644 test/_pages/tag-archive.html create mode 100644 test/_pages/terms.md create mode 100644 test/_pages/year-archive.html create mode 100644 test/_pets/lhasa-apso.md create mode 100644 test/_pets/tabby.md create mode 100644 test/_portfolio/foo-bar-website.md create mode 100644 test/_posts/2009-05-15-edge-case-nested-and-mixed-lists.md create mode 100644 test/_posts/2009-06-01-edge-case-many-tags.md create mode 100644 test/_posts/2009-07-02-edge-case-many-categories.md create mode 100644 test/_posts/2009-08-06-edge-case-no-body-content.md create mode 100644 test/_posts/2009-09-05-edge-case-no-yaml-title.md create mode 100644 test/_posts/2009-10-05-edge-case-title-should-not-overflow-the-content-area.md create mode 100644 test/_posts/2009-10-05-edge-case-very-long-title.md create mode 100644 test/_posts/2010-01-07-post-modified.md create mode 100644 test/_posts/2010-01-07-post-standard.md create mode 100644 test/_posts/2010-01-08-post-chat.md create mode 100644 test/_posts/2010-02-05-post-notice.md create mode 100644 test/_posts/2010-02-05-post-quote.md create mode 100644 test/_posts/2010-03-07-post-link.md create mode 100644 test/_posts/2010-06-02-post-video-youtube.md create mode 100644 test/_posts/2010-08-05-post-image-linked.md create mode 100644 test/_posts/2010-08-05-post-image-standard.md create mode 100644 test/_posts/2010-08-06-post-image-linked-caption.md create mode 100644 test/_posts/2010-08-07-post-image-caption.md create mode 100644 test/_posts/2010-09-09-post-gallery.md create mode 100644 test/_posts/2010-09-10-post-twitter-embeds.md create mode 100644 test/_posts/2010-10-25-post-future-date.md create mode 100644 test/_posts/2012-01-02-layout-comments-disabled.md create mode 100644 test/_posts/2012-01-02-layout-comments.md create mode 100644 test/_posts/2012-01-02-layout-read-time-disabled.md create mode 100644 test/_posts/2012-01-02-layout-read-time.md create mode 100644 test/_posts/2012-01-02-layout-related-posts-disabled.md create mode 100644 test/_posts/2012-01-02-layout-related-posts.md create mode 100644 test/_posts/2012-01-02-layout-sharing-disabled.md create mode 100644 test/_posts/2012-01-02-layout-sharing.md create mode 100644 test/_posts/2012-01-03-layout-read-time-comments-sharing-related-posts-disabled.md create mode 100644 test/_posts/2012-01-03-layout-table-of-contents-post.md create mode 100644 test/_posts/2012-03-14-layout-code-excerpt-generated.md create mode 100644 test/_posts/2012-03-14-layout-excerpt-defined.md create mode 100644 test/_posts/2012-03-14-layout-excerpt-generated.md create mode 100644 test/_posts/2012-03-15-layout-author-override.md create mode 100644 test/_posts/2012-03-15-layout-author-sidebar-disabled.md create mode 100644 test/_posts/2012-03-15-layout-header-image-external.md create mode 100644 test/_posts/2012-03-15-layout-header-image-horizontal.md create mode 100644 test/_posts/2012-03-15-layout-header-image-text-readability.md create mode 100644 test/_posts/2012-03-15-layout-header-image-vertical.md create mode 100644 test/_posts/2012-03-15-layout-header-overlay-color.md rename {example => test}/_posts/2012-03-15-layout-header-overlay-image.md (100%) mode change 100755 => 100644 create mode 100644 test/_posts/2012-03-15-layout-more-tag.md create mode 100644 test/_posts/2012-03-15-layout-sidebar-custom.md create mode 100644 test/_posts/2012-05-22-markup-text-readability.md create mode 100644 test/_posts/2013-01-05-markup-title-with-markup.md create mode 100644 test/_posts/2013-01-05-markup-title-with-special-characters.md create mode 100644 test/_posts/2013-01-09-markup-text-alignment.md create mode 100644 test/_posts/2013-01-10-markup-image-alignment.md rename {example => test}/_posts/2013-01-11-markup-html-tags-and-formatting.md (100%) mode change 100755 => 100644 create mode 100644 test/_posts/2013-05-22-markup-more-images.md create mode 100644 test/_posts/2013-08-16-markup-syntax-highlighting.md create mode 100644 test/_posts/2016-02-24-welcome-to-jekyll.md create mode 100644 test/_recipes/chocolate-chip-cookies.md create mode 100644 test/_recipes/oatmeal-cookies.md create mode 100644 test/_recipes/peanut-butter-cookies.md create mode 100644 test/assets/images/3953273590_704e3899d5_m.jpg create mode 100644 test/assets/images/500x300.png create mode 100644 test/assets/images/bio-photo-2.jpg create mode 100644 test/assets/images/bio-photo.jpg create mode 100644 test/assets/images/facebook-share-example.jpg create mode 100644 test/assets/images/foo-bar-identity-th.jpg create mode 100644 test/assets/images/foo-bar-identity.jpg create mode 100644 test/assets/images/image-alignment-1200x4002.jpg create mode 100644 test/assets/images/image-alignment-150x150.jpg create mode 100644 test/assets/images/image-alignment-300x200.jpg create mode 100644 test/assets/images/image-alignment-580x300.jpg create mode 100644 test/assets/images/markup-syntax-highlighting-teaser.jpg create mode 100644 test/assets/images/mm-archive-grid-view-example.jpg create mode 100644 test/assets/images/mm-author-profile-reddit-color.png create mode 100644 test/assets/images/mm-author-profile-reddit-gs.png create mode 100644 test/assets/images/mm-author-sidebar-example.jpg create mode 100644 test/assets/images/mm-breadcrumbs-example.jpg create mode 100644 test/assets/images/mm-browser-mockups.png create mode 100644 test/assets/images/mm-bundle-install.gif create mode 100644 test/assets/images/mm-custom-sidebar-example.jpg create mode 100644 test/assets/images/mm-custom-sidebar-nav.jpg create mode 100644 test/assets/images/mm-customizable-feature.png create mode 100644 test/assets/images/mm-free-feature.png create mode 100644 test/assets/images/mm-gh-pages.gif create mode 100644 test/assets/images/mm-github-copy-repo-url.jpg create mode 100644 test/assets/images/mm-github-edit-config.gif create mode 100644 test/assets/images/mm-header-overlay-black-filter.jpg create mode 100644 test/assets/images/mm-header-overlay-red-filter.jpg create mode 100644 test/assets/images/mm-home-page-feature.jpg create mode 100644 test/assets/images/mm-home-post-pagination-example.jpg create mode 100644 test/assets/images/mm-layout-archive-taxonomy.png create mode 100644 test/assets/images/mm-layout-archive.png create mode 100644 test/assets/images/mm-layout-examples.png create mode 100644 test/assets/images/mm-layout-single-header.png create mode 100644 test/assets/images/mm-layout-single-meta.png create mode 100644 test/assets/images/mm-layout-single.png create mode 100644 test/assets/images/mm-layout-splash.png create mode 100644 test/assets/images/mm-paragraph-indent-example.jpg create mode 100644 test/assets/images/mm-portfolio-collection-example.jpg create mode 100644 test/assets/images/mm-priority-plus-masthead.gif create mode 100644 test/assets/images/mm-read-time-example.jpg create mode 100644 test/assets/images/mm-responsive-feature.png create mode 100644 test/assets/images/mm-single-header-example.jpg create mode 100644 test/assets/images/mm-single-header-overlay-example.jpg create mode 100644 test/assets/images/mm-single-header-overlay-fill-example.jpg create mode 100644 test/assets/images/mm-social-share-links-default.png create mode 100644 test/assets/images/mm-social-share-links-reddit-color.png create mode 100644 test/assets/images/mm-social-share-links-reddit-gs.png create mode 100644 test/assets/images/mm-staticman-pr-webhook.jpg create mode 100644 test/assets/images/mm-susy-grid-overlay.jpg create mode 100644 test/assets/images/mm-teaser-images-example.jpg create mode 100644 test/assets/images/mm-theme-fork-repo.png create mode 100644 test/assets/images/mm-theme-post-600.jpg create mode 100644 test/assets/images/mm-theme-post-750.jpg create mode 100644 test/assets/images/mm-toc-helper-example.jpg create mode 100644 test/assets/images/mm-twitter-card-summary-image.jpg create mode 100644 test/assets/images/mm-twitter-card-summary-large.jpg create mode 100644 test/assets/images/mm-ui-text-labels.jpg create mode 100644 test/assets/images/paragraph-indent.png create mode 100644 test/assets/images/paragraph-no-indent.png create mode 100644 test/assets/images/safari-pinned-tab.svg create mode 100644 test/assets/images/unsplash-gallery-image-1-th.jpg create mode 100644 test/assets/images/unsplash-gallery-image-1.jpg create mode 100644 test/assets/images/unsplash-gallery-image-2-th.jpg create mode 100644 test/assets/images/unsplash-gallery-image-2.jpg create mode 100644 test/assets/images/unsplash-gallery-image-3-th.jpg create mode 100644 test/assets/images/unsplash-gallery-image-3.jpg create mode 100644 test/assets/images/unsplash-gallery-image-4-th.jpg create mode 100644 test/assets/images/unsplash-gallery-image-4.jpg create mode 100644 test/assets/images/unsplash-image-1.jpg create mode 100644 test/assets/images/unsplash-image-10.jpg create mode 100644 test/assets/images/unsplash-image-11.jpg create mode 100644 test/assets/images/unsplash-image-2.jpg create mode 100644 test/assets/images/unsplash-image-3.jpg create mode 100644 test/assets/images/unsplash-image-4.jpg create mode 100644 test/assets/images/unsplash-image-5.jpg create mode 100644 test/assets/images/unsplash-image-6.jpg create mode 100644 test/assets/images/unsplash-image-7.jpg create mode 100644 test/assets/images/unsplash-image-8.jpg create mode 100644 test/assets/images/unsplash-image-9.jpg rename {example => test}/index.html (100%) diff --git a/README.md b/README.md index 9dee0f81..d070a9d2 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ See what's new in the [CHANGELOG](CHANGELOG.md). - Optional [header images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#headers), [custom sidebars](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#sidebars), [table of contents](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#table-of-contents), [galleries](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery), related posts, [breadcrumb links](https://mmistakes.github.io/minimal-mistakes/docs/configuration/#breadcrumb-navigation-beta), [navigation lists](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list), and more. - Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), Google+, [Discourse](https://www.discourse.org/), static-based via [Staticman](https://staticman.net/), and custom). - [Google Analytics](https://www.google.com/analytics/) support. -- UI localized text in English (default), Brazilian Portguese, Chinese, French, German, Italian, Spanish, and Turkish +- UI localized text in English (default), Brazilian Portuguese, Chinese, French, German, Italian, Spanish, and Turkish ## Demo Pages @@ -39,7 +39,7 @@ See what's new in the [CHANGELOG](CHANGELOG.md). | [Categories Archive][categories-archive] | Posts grouped by category. | | [Tags Archive][tags-archive] | Posts grouped by tags. | -For even more demo pages check the [posts archive][year-archive] on the demo site. Looking for the source code to peep the YAML Front Matter and Markdown used? Check the [`gh-pages`](https://github.com/mmistakes/minimal-mistakes/tree/gh-pages) branch. +Additional sample posts are available under [posts archive][year-archive] on the demo site. Source files for these (and the entire demo site) can be found in [`/docs`](docs). [header-image-post]: https://mmistakes.github.io/minimal-mistakes/layout-header-image-text-readability/ [gallery-post]: https://mmistakes.github.io/minimal-mistakes/post%20formats/post-gallery/ @@ -50,6 +50,12 @@ For even more demo pages check the [posts archive][year-archive] on the demo sit [tags-archive]: https://mmistakes.github.io/minimal-mistakes/tags/ [year-archive]: https://mmistakes.github.io/minimal-mistakes/year-archive/ +## Usage + +For detailed instructions on how to configure, customize, add content, and more read the [theme's documentation](https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/). + +**Note:** Gem version of the theme requires Jekyll v3.3+ and is not currently supported on [GitHub Pages](https://pages.github.com/). You can still use the theme with GitHub Pages, you'll just need to install using the old "[repo fork method](https://mmistakes.github.io/minimal-mistakes/docs/installation/)". + ## Quick Start Add this line to your Jekyll site's `Gemfile`: @@ -64,17 +70,13 @@ Add this line to your Jekyll site's `_config.yml` file: theme: minimal-mistakes-jekyll ``` -Run Bundler: +Then run Bundler to install the theme gem and dependencies: ```bash bundle install ``` -## Usage - -For detailed instructions on how to configure, customize, add content, and more read the [theme's documentation](https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/). - -**Note:** Gem version of the theme requires Jekyll v3.3+ and is not supported with sites hosted with [GitHub Pages](https://pages.github.com/). You can still use the theme on GitHub Pages, you'll just need to install using the old "[repo fork method](https://mmistakes.github.io/minimal-mistakes/docs/installation/)". +To update the theme run `bundle update`. --- @@ -90,7 +92,7 @@ This goes for author sidebar links and "share button" additions -- I have no int To help me out try to avoid creating pull requests on `master` and instead branch off of `develop`. It's much easier for me to test, merge, and roll them into new releases this way. -Theme documentation and demo pages can be found in the `gh-pages` branch, please submit pull requests against that branch. +Theme documentation and demo pages can be found in the [`/docs`](docs) if submitting improvements, typo corrections, etc. --- diff --git a/_config.yml b/_config.yml index 51bb6cab..1921a0cb 100644 --- a/_config.yml +++ b/_config.yml @@ -30,12 +30,12 @@ comments: colorscheme : # "light" (default), "dark" staticman: allowedFields : ['name', 'email', 'url', 'message'] - branch : # "master", "gh-pages" + branch : "master" commitMessage : "New comment." filename : comment-{@timestamp} format : "yml" moderation : true - path : "_data/comments/{options.slug}" + path : "docs/_data/comments/{options.slug}" requiredFields : ['name', 'email', 'message'] transforms: email : "md5" @@ -135,6 +135,8 @@ exclude: - Rakefile - README - tmp + - /docs # ignore Minimal Mistakes /docs + - /test # ignore Minimal Mistakes /test keep_files: - .git - .svn diff --git a/_data/navigation.yml b/_data/navigation.yml index e61d43bd..6f30866f 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -1,12 +1,12 @@ -# main links links +# main links main: - title: "Quick-Start Guide" url: https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/ - - title: "About" - url: https://mmistakes.github.io/minimal-mistakes/about/ - - title: "Sample Posts" - url: /year-archive/ - - title: "Sample Collections" - url: /collection-archive/ - - title: "Sitemap" - url: /sitemap/ \ No newline at end of file + # - title: "About" + # url: https://mmistakes.github.io/minimal-mistakes/about/ + # - title: "Sample Posts" + # url: /year-archive/ + # - title: "Sample Collections" + # url: /collection-archive/ + # - title: "Sitemap" + # url: /sitemap/ \ No newline at end of file diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 00000000..ecbd3fec --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,14 @@ +source "https://rubygems.org" + +gem "github-pages", group: :jekyll_plugins + +gem "wdm", "~> 0.1.0" if Gem.win_platform? + +# If you have any plugins, put them here! +# group :jekyll_plugins do + # gem "jekyll-paginate" + # gem "jekyll-sitemap" + # gem "jekyll-gist" + # gem "jekyll-feed" + # gem "jemoji" +# end diff --git a/docs/_config.dev.yml b/docs/_config.dev.yml new file mode 100644 index 00000000..45df3dfe --- /dev/null +++ b/docs/_config.dev.yml @@ -0,0 +1,13 @@ +# Develop override settings + +url: http://localhost:4000 + +analytics: + provider: false + +comments: + disqus: + shortname : "mmistakes-dev" + +sass: + style: expanded \ No newline at end of file diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 00000000..9d038e62 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,307 @@ +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your entire site, values +# which you are expected to set up once and rarely need to edit after that. +# For technical reasons, this file is *NOT* reloaded automatically when you use +# `jekyll serve`. If you change this file, please restart the server process. + +# Site Settings +locale : "en-US" +title : "Minimal Mistakes" +title_separator : "-" +name : &name "Michael Rose" +description : &description "A flexible Jekyll theme for your blog or site with a minimalist aesthetic." +url : https://mmistakes.github.io # the base hostname & protocol for your site e.g. "https://mmistakes.github.io" +baseurl : "/minimal-mistakes" # the subpath of your site, e.g. "/blog" +repository : "mmistakes/minimal-mistakes" +teaser : # path of fallback teaser image, e.g. "/assets/images/500x300.png" +# breadcrumbs : false # true, false (default) +words_per_minute : 200 +comments: + provider : "staticman" # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom" + disqus: + shortname : + discourse: + server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org + facebook: + # https://developers.facebook.com/docs/plugins/comments + appid : + num_posts : # 5 (default) + colorscheme : # "light" (default), "dark" +staticman: + allowedFields : ['name', 'email', 'url', 'message'] + branch : "master" + commitMessage : "New comment." + filename : comment-{@timestamp} + format : "yml" + moderation : true + path : "_data/comments/{options.slug}" + requiredFields : ['name', 'email', 'message'] + transforms: + email : "md5" + generatedFields: + date: + type : "date" + options: + format : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds" +atom_feed: + path : # blank (default) uses feed.xml + +# SEO Related +google_site_verification : "UQj93ERU9zgECodaaXgVpkjrFn9UrDMEzVamacSoQ8Y" +bing_site_verification : +alexa_site_verification : +yandex_site_verification : + +# Social Sharing +twitter: + username : &twitter "mmistakes" +facebook: + username : &facebook "michaelrose" + app_id : + publisher : +og_image : "/assets/images/site-logo.png" # Open Graph/Twitter default site image +# For specifying social profiles +# - https://developers.google.com/structured-data/customize/social-profiles +social: + type : # Person or Organization (defaults to Person) + name : # If the user or organization name differs from the site's name + links: # An array of links to social media profiles + - "https://twitter.com/mmistakes" + - "https://facebook.com/michaelrose" + +# Analytics +analytics: + provider : "google-universal" # false (default), "google", "google-universal", "custom" + google: + tracking_id : "UA-2011187-3" + + +# Site Author +author: + name : *name + avatar : "/assets/images/michael-rose.jpg" + bio : "Just another boring, tattooed, time traveling, designer." + location : "Buffalo, NY" + email : + uri : "https://mademistakes.com" + bitbucket : + codepen : + dribbble : + flickr : + facebook : *facebook + foursquare : + github : "mmistakes" + google_plus : + keybase : + instagram : "mmistakes" + lastfm : + linkedin : + pinterest : + soundcloud : + stackoverflow : # http://stackoverflow.com/users/123456/username + steam : + tumblr : + twitter : *twitter + vine : + weibo : + xing : + youtube : + + +# Reading Files +include: + - .htaccess + - _pages +exclude: + - "*.sublime-project" + - "*.sublime-workspace" + - vendor + - .asset-cache + - .bundle + - .jekyll-assets-cache + - .sass-cache + - assets/js/plugins + - assets/js/_main.js + - assets/js/vendor + - Capfile + - CHANGELOG + - config + - Gemfile + - Gruntfile.js + - gulpfile.js + - LICENSE + - log + - node_modules + - package.json + - Rakefile + - README + - tmp +keep_files: + - .git + - .svn +encoding: "utf-8" +markdown_ext: "markdown,mkdown,mkdn,mkd,md" + + +# Conversion +markdown: kramdown +highlighter: rouge +lsi: false +excerpt_separator: "\n\n" +incremental: false + + +# Markdown Processing +kramdown: + input: GFM + hard_wrap: false + auto_ids: true + footnote_nr: 1 + entity_output: as_char + toc_levels: 1..6 + smart_quotes: lsquo,rsquo,ldquo,rdquo + enable_coderay: false + + +# Collections +collections: + docs: + output: true + permalink: /:collection/:path/ + recipes: + output: true + permalink: /:collection/:path/ + pets: + output: true + permalink: /:collection/:path/ + portfolio: + output: true + permalink: /:collection/:path/ + + +# Defaults +defaults: + # _posts + - scope: + path: "" + type: posts + values: + layout: single + author_profile: true + read_time: true + comments: true + share: true + related: true + # _pages + - scope: + path: "" + type: pages + values: + layout: single + author_profile: true + # _docs + - scope: + path: "" + type: docs + values: + layout: single + read_time: false + author_profile: false + share: false + comments: false + sidebar: + nav: "docs" + # _recipes + - scope: + path: "" + type: recipes + values: + layout: single + author_profile: true + share: true + comments: true + # _pets + - scope: + path: "" + type: pets + values: + layout: single + author_profile: true + share: true + comment: true + # _portfolio + - scope: + path: "" + type: portfolio + values: + layout: single + author_profile: false + share: true + + +# Sass/SCSS +sass: + sass_dir: _sass + style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style + + +# Outputting +permalink: /:categories/:title/ +# paginate: 5 # amount of posts to show +# paginate_path: /page:num/ +timezone: America/New_York # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones + + +# Plugins +gems: + - jekyll-paginate + - jekyll-sitemap + - jekyll-gist + - jekyll-feed + - jemoji + +# mimic GitHub Pages with --safe +whitelist: + - jekyll-paginate + - jekyll-sitemap + - jekyll-gist + - jekyll-feed + - jemoji + + +# Archives +# Type +# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default) +# - Jekyll Archives plugin archive pages ~> type: jekyll-archives +# Path (examples) +# - Archive page should exist at path when using Liquid method or you can +# expect broken links (especially with breadcrumbs enabled) +# - /tags/my-awesome-tag/index.html ~> path: /tags/ +# - path: /categories/ +# - 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 diff --git a/example/_data/authors.yml b/docs/_data/authors.yml old mode 100755 new mode 100644 similarity index 100% rename from example/_data/authors.yml rename to docs/_data/authors.yml diff --git a/docs/_data/comments/chocolate-chip-cookies/comment-1473870213530.yml b/docs/_data/comments/chocolate-chip-cookies/comment-1473870213530.yml new file mode 100644 index 00000000..7eeb3fc0 --- /dev/null +++ b/docs/_data/comments/chocolate-chip-cookies/comment-1473870213530.yml @@ -0,0 +1,6 @@ +message: Cooooookies! Yum! (Thanks for this awesome them.. and... recipe..) +name: Markus +email: f6f9be6ae6e174661ea7c87a520ffef8 +url: 'http://www.markusgiesen.com' +hidden: '' +date: '2016-09-14T16:23:32.840Z' diff --git a/docs/_data/comments/layout-comments/comment-1470944006665.yml b/docs/_data/comments/layout-comments/comment-1470944006665.yml new file mode 100644 index 00000000..fd4e1a79 --- /dev/null +++ b/docs/_data/comments/layout-comments/comment-1470944006665.yml @@ -0,0 +1,6 @@ +message: "![Bill Murray](http://www.fillmurray.com/400/300)\r\n\r\n“It's hard to be an artist. It's hard to be anything. It's hard to be.”" +name: Bill Murray +email: b0caa2a71f5066b3d90711c224578c21 +url: '' +hidden: '' +date: '2016-08-11T19:33:25.928Z' diff --git a/docs/_data/comments/layout-comments/comment-1470944162041.yml b/docs/_data/comments/layout-comments/comment-1470944162041.yml new file mode 100644 index 00000000..fb9b55e3 --- /dev/null +++ b/docs/_data/comments/layout-comments/comment-1470944162041.yml @@ -0,0 +1,6 @@ +message: "> “I never had seen Seinfeld, and they said, ‘Oh, it’s the last episode.’ And I said, ‘Oh, I’ll watch Seinfeld.’ And it was terrible.”\r\n>\r\n> *— From a 2014 interview with Howard Stern*" +name: Anonymous +email: 8c7e898f1b570760f834ecc03edf6b35 +url: '' +hidden: '' +date: '2016-08-11T19:36:01.033Z' diff --git a/docs/_data/comments/layout-comments/comment-1472308473018.yml b/docs/_data/comments/layout-comments/comment-1472308473018.yml new file mode 100644 index 00000000..52f7d6e6 --- /dev/null +++ b/docs/_data/comments/layout-comments/comment-1472308473018.yml @@ -0,0 +1,6 @@ +message: test +name: test +email: c028c75814332d38e088e43a252b7092 +url: '' +hidden: '' +date: '2016-08-27T14:34:32.281Z' diff --git a/docs/_data/comments/layout-header-image-text-readability/comment-1474306861206.yml b/docs/_data/comments/layout-header-image-text-readability/comment-1474306861206.yml new file mode 100644 index 00000000..0191bbb7 --- /dev/null +++ b/docs/_data/comments/layout-header-image-text-readability/comment-1474306861206.yml @@ -0,0 +1,6 @@ +message: Test message +name: Artur +email: 1cbebf1e64617de54d7858ffc6d96935 +url: '' +hidden: '' +date: '2016-09-19T17:41:00.416Z' diff --git a/docs/_data/comments/markup-more-images/comment-1472040323579.yml b/docs/_data/comments/markup-more-images/comment-1472040323579.yml new file mode 100644 index 00000000..72c3c4b0 --- /dev/null +++ b/docs/_data/comments/markup-more-images/comment-1472040323579.yml @@ -0,0 +1,6 @@ +message: test +name: test +email: 01540d5a1cdb4d03edb23805df684762 +url: '' +hidden: '' +date: '2016-08-24T12:05:22.844Z' diff --git a/docs/_data/comments/markup-more-images/comment-1472146638519.yml b/docs/_data/comments/markup-more-images/comment-1472146638519.yml new file mode 100644 index 00000000..9ddc5fa1 --- /dev/null +++ b/docs/_data/comments/markup-more-images/comment-1472146638519.yml @@ -0,0 +1,6 @@ +message: test +name: ppmeng +email: b9c981f67166172c8804b5f9066a404a +url: '' +hidden: '' +date: '2016-08-25T17:37:17.780Z' diff --git a/docs/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml b/docs/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml new file mode 100644 index 00000000..bc7a53fc --- /dev/null +++ b/docs/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml @@ -0,0 +1,6 @@ +message: "Here's a test comment with a Markdown code block:\r\n\r\n```scss\r\nh1, h2, h3, h4, h5, h6 {\r\n margin: 2em 0 0.5em;\r\n line-height: 1.2;\r\n font-family: $header-font-family;\r\n font-weight: bold;\r\n}\r\n```" +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-08-12T02:41:04.706Z' diff --git a/docs/_data/comments/post-future-date/comment-1472064560364.yml b/docs/_data/comments/post-future-date/comment-1472064560364.yml new file mode 100644 index 00000000..0b7464ca --- /dev/null +++ b/docs/_data/comments/post-future-date/comment-1472064560364.yml @@ -0,0 +1,6 @@ +message: mm +name: mm +email: 9d0057d30e7a5e44f6378ea2c9c11f5d +url: '' +hidden: '' +date: '2016-08-24T18:49:19.649Z' diff --git a/docs/_data/comments/post-future-date/comment-1472786137736.yml b/docs/_data/comments/post-future-date/comment-1472786137736.yml new file mode 100644 index 00000000..ac4bafb8 --- /dev/null +++ b/docs/_data/comments/post-future-date/comment-1472786137736.yml @@ -0,0 +1,6 @@ +message: This is a tst +name: GnCavalry +email: 5669e6e45ccab46a7384a8c8ab88edd2 +url: '' +hidden: '' +date: '2016-09-02T03:15:37.068Z' diff --git a/docs/_data/comments/welcome-to-jekyll/comment-1470942205700.yml b/docs/_data/comments/welcome-to-jekyll/comment-1470942205700.yml new file mode 100644 index 00000000..cde7395b --- /dev/null +++ b/docs/_data/comments/welcome-to-jekyll/comment-1470942205700.yml @@ -0,0 +1,6 @@ +message: "This is a test comment with some **Markdown** sprinkled about for *testing purposes*.\r\n\r\n### Subheading in a comment? Madness!\r\n\r\nNam et risus nec ipsum efficitur facilisis. Aenean tincidunt dapibus odio, eget rutrum urna lacinia non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas." +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-08-11T19:03:24.929Z' diff --git a/docs/_data/comments/welcome-to-jekyll/comment-1470942247755.yml b/docs/_data/comments/welcome-to-jekyll/comment-1470942247755.yml new file mode 100644 index 00000000..8bc479ed --- /dev/null +++ b/docs/_data/comments/welcome-to-jekyll/comment-1470942247755.yml @@ -0,0 +1,6 @@ +message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"' +name: Jackalope +email: cba827e665ae179e1d1ae007a6c3c1ab +url: '' +hidden: '' +date: '2016-08-11T19:04:06.958Z' diff --git a/docs/_data/comments/welcome-to-jekyll/comment-1470942265819.yml b/docs/_data/comments/welcome-to-jekyll/comment-1470942265819.yml new file mode 100644 index 00000000..58c506a9 --- /dev/null +++ b/docs/_data/comments/welcome-to-jekyll/comment-1470942265819.yml @@ -0,0 +1,6 @@ +message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"' +name: Jackalope Duplicate +email: cba827e665ae179e1d1ae007a6c3c1ab +url: '' +hidden: '' +date: '2016-08-11T19:04:25.085Z' diff --git a/docs/_data/comments/welcome-to-jekyll/comment-1470942493518.yml b/docs/_data/comments/welcome-to-jekyll/comment-1470942493518.yml new file mode 100644 index 00000000..99d5210e --- /dev/null +++ b/docs/_data/comments/welcome-to-jekyll/comment-1470942493518.yml @@ -0,0 +1,6 @@ +message: "Images can be added to a comment using Markdown like this\r\n\r\n```markdown\r\n![Bill Murray](http://www.fillmurray.com/600/400)\r\n```\r\n![Bill Murray](http://www.fillmurray.com/600/400)" +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-08-11T19:08:12.789Z' diff --git a/docs/_data/comments/welcome-to-jekyll/comment-1471823346931.yml b/docs/_data/comments/welcome-to-jekyll/comment-1471823346931.yml new file mode 100644 index 00000000..c4960f40 --- /dev/null +++ b/docs/_data/comments/welcome-to-jekyll/comment-1471823346931.yml @@ -0,0 +1,6 @@ +message: 'Wow, this is awesome' +name: kkangshawn +email: db92190b2ee6118786fd1f25dceb448c +url: '' +hidden: '' +date: '2016-08-21T23:49:06.270Z' diff --git a/docs/_data/comments/welcome-to-jekyll/comment-1471834988411.yml b/docs/_data/comments/welcome-to-jekyll/comment-1471834988411.yml new file mode 100644 index 00000000..02d476f9 --- /dev/null +++ b/docs/_data/comments/welcome-to-jekyll/comment-1471834988411.yml @@ -0,0 +1,6 @@ +message: Test +name: Test +email: b642b4217b34b1e8d3bd915fc65c4452 +url: '' +hidden: '' +date: '2016-08-22T03:03:07.694Z' diff --git a/docs/_data/comments/welcome-to-jekyll/comment-1472786599470.yml b/docs/_data/comments/welcome-to-jekyll/comment-1472786599470.yml new file mode 100644 index 00000000..bb3541d5 --- /dev/null +++ b/docs/_data/comments/welcome-to-jekyll/comment-1472786599470.yml @@ -0,0 +1,6 @@ +message: This is a test +name: TestName +email: 97dfebf4098c0f5c16bca61e2b76c373 +url: '' +hidden: '' +date: '2016-09-02T03:23:18.756Z' diff --git a/docs/_data/comments/welcome-to-jekyll/comment-1474328950155.yml b/docs/_data/comments/welcome-to-jekyll/comment-1474328950155.yml new file mode 100644 index 00000000..a3e8393f --- /dev/null +++ b/docs/_data/comments/welcome-to-jekyll/comment-1474328950155.yml @@ -0,0 +1,6 @@ +message: just testing as well +name: js +email: f349d4bc6fa472971f68bcccc04337f9 +url: '' +hidden: '' +date: '2016-09-19T23:49:09.452Z' diff --git a/docs/_data/navigation.yml b/docs/_data/navigation.yml new file mode 100644 index 00000000..8fdea861 --- /dev/null +++ b/docs/_data/navigation.yml @@ -0,0 +1,99 @@ +# example navigation +foo: + - title: "Parent Link 1" + url: /parent-1-page-url/ + children: + - title: "Child Link 1" + url: /child-1-page-url/ + - title: "Child Link 2" + url: /child-2-page-url/ + + - title: "Parent Link 2" + url: /parent-2-page-url/ + children: + - title: "Child Link 1" + url: /child-1-page-url/ + - title: "Child Link 2" + url: /child-2-page-url/ + - title: "Child Link 3" + url: /child-3-page-url/ + + +# main links links +main: + - title: "Quick-Start Guide" + url: /docs/quick-start-guide/ + + - title: "About" + url: /about/ + + - title: "Sample Posts" + url: /year-archive/ + + - title: "Sample Collections" + url: /collection-archive/ + + - title: "Terms & Privacy Policy" + url: /terms/ + + +# documentation links +docs: + - title: Getting Started + children: + - title: "Quick-Start Guide" + url: /docs/quick-start-guide/ + - title: "Structure" + url: /docs/structure/ + - title: "Installation" + url: /docs/installation/ + - title: "Upgrading" + url: /docs/upgrading/ + + - title: Customization + children: + - title: "Configuration" + url: /docs/configuration/ + - title: "Overriding Theme Defaults" + url: /docs/overriding-theme-defaults/ + - title: "Navigation" + url: /docs/navigation/ + - title: "UI Text" + url: /docs/ui-text/ + - title: "Authors" + url: /docs/authors/ + - title: "Layouts" + url: /docs/layouts/ + + - title: Content + children: + - title: "Working with Posts" + url: /docs/posts/ + - title: "Working with Pages" + url: /docs/pages/ + - title: "Working with Collections" + url: /docs/collections/ + - title: "Helpers" + url: /docs/helpers/ + - title: "Utility Classes" + url: /docs/utility-classes/ + + - title: Extras + children: + - title: "Stylesheets" + url: /docs/stylesheets/ + - title: "JavaScript" + url: /docs/javascript/ + + - title: Meta + children: + - title: "History" + url: /docs/history/ + - title: "Contributing" + url: /docs/contributing/ + - title: "Old 2.2 Docs" + url: /docs/docs-2-2/ + - title: "License" + url: /docs/license/ + - title: "Terms & Privacy Policy" + url: /terms/ \ No newline at end of file diff --git a/example/_data/ui-text.yml b/docs/_data/ui-text.yml similarity index 87% rename from example/_data/ui-text.yml rename to docs/_data/ui-text.yml index c423109b..21c31532 100644 --- a/example/_data/ui-text.yml +++ b/docs/_data/ui-text.yml @@ -351,57 +351,5 @@ zh: &DEFAULT_ZH zh-TW: <<: *DEFAULT_ZH -# German / Deutsch -# ----------------- -de: &DEFAULT_DE - page : "Seite" - pagination_previous : "Vorherige" - pagination_next : "Nächste" - breadcrumb_home_label : "Home" - breadcrumb_separator : "/" - toc_label : "Auf dieser Seite" - ext_link_label : "Direkter Link" - less_than : "weniger als" - minute_read : "Minuten zum lesen" - share_on_label : "Teilen auf" - meta_label : - tags_label : "Tags:" - categories_label : "Kategorien:" - date_label : "Aktualisiert:" - comments_label : "Hinterlassen sie einen Kommentar" - comments_title : "Kommentare" - more_label : "Mehr anzeigen" - related_label : "Ihnen gefällt vielleicht auch" - follow_label : "Folgen:" - feed_label : "Feed" - powered_by : "Powered by" - website_label : "Webseite" - email_label : "E-Mail" - recent_posts : "Aktuelle Beiträge" - undefined_wpm : "Undefinierter Parameter words_per_minute in _config.yml" - comment_form_info : "Ihre E-Mail Adresse wird nicht veröffentlicht. Benötigte Felder sind markiert" - comment_form_comment_label : "Kommentar" - comment_form_md_info : "Markdown wird unterstützt." - comment_form_name_label : "Name" - comment_form_email_label : "E-Mail Addresse" - comment_form_website_label : "Webseite (optional)" - comment_btn_submit : "Kommentar absenden" - comment_btn_submitted : "Versendet" - comment_success_msg : "Danke für ihren Kommentar! Er wird auf der Seite angezeigt, nachdem er geprüft wurde." - comment_error_msg : "Entschuldigung, es gab einen Fehler. Bitte füllen sie alle benötigten Felder aus und versuchen sie es erneut." - loading_label : "Lade..." -de-DE: - <<: *DEFAULT_DE -de-AT: - <<: *DEFAULT_DE -de-CH: - <<: *DEFAULT_DE -de-BE: - <<: *DEFAULT_DE -de-LI: - <<: *DEFAULT_DE -de-LU: - <<: *DEFAULT_DE - # Another locale # -------------- diff --git a/docs/_docs/01-quick-start-guide.md b/docs/_docs/01-quick-start-guide.md new file mode 100644 index 00000000..19be6b65 --- /dev/null +++ b/docs/_docs/01-quick-start-guide.md @@ -0,0 +1,153 @@ +--- +title: "Quick-Start Guide" +permalink: /docs/quick-start-guide/ +excerpt: "How to quickly install and setup Minimal Mistakes for use with GitHub Pages." +modified: 2016-11-03T10:01:43-04:00 +redirect_from: + - /theme-setup/ +--- + +Minimal Mistakes has been developed as a [Jekyll theme gem](http://jekyllrb.com/docs/themes/) for easier use. It is also 100% compatible with GitHub Pages --- just with a more involved installation process. + +{% include toc %} + +## Installing the Theme + +If you're running Jekyll v3.3+ and self-hosting you can quickly install the theme as Ruby gem. +If you're hosting with GitHub Pages you'll have to use the old "repo fork" method or directly copy all of the theme files[^structure] into your site. + +[^structure]: See [**Structure** page]({{ "/docs/structure/" | absolute_url }}) for a list of theme files and what they do. + +**ProTip:** Be sure to remove `/docs` and `/test` if you forked Minimal Mistakes. These folders contain documentation and test pages for the theme and you probably don't littering up in your repo. +{: .notice--info} + +### Ruby Gem Method + +Add this line to your Jekyll site's `Gemfile`: + +```ruby +gem "minimal-mistakes-jekyll" +``` + +Add this line to your Jekyll site's `_config.yml` file: + +```yaml +theme: minimal-mistakes-jekyll +``` + +Then run Bundler to install the theme gem and dependencies: + +```bash +bundle install +``` + +### GitHub Pages Compatible Method + +Fork the [Minimal Mistakes theme](https://github.com/mmistakes/minimal-mistakes/fork), then rename the repo to **USERNAME.github.io** --- replacing **USERNAME** with your GitHub username. + +
+ fork Minimal Mistakes +
+ +**Note:** Your Jekyll site should be viewable immediately at . If it's not, you can force a rebuild by **Customizing Your Site** (see below for more details). +{: .notice--warning} + +If you're hosting several Jekyll based sites under the same GitHub username you will have to use Project Pages instead of User Pages. Essentially you rename the repo to something other than **USERNAME.github.io** and create a `gh-pages` branch off of `master`. For more details on how to set things up check [GitHub's documentation](https://help.github.com/articles/user-organization-and-project-pages/). + +
+ creating a new branch on GitHub +
+ +Replace the contents of `Gemfile` found in the root of your Jekyll site with the following: + +```ruby +source "https://rubygems.org" + +gem "github-pages", group: :jekyll_plugins + +group :jekyll_plugins do + gem "jekyll-paginate" + gem "jekyll-sitemap" + gem "jekyll-gist" + gem "jekyll-feed" + gem "jemoji" +end +``` + +Then run `bundle update` and verify that all gems install properly. + +### Remove the Unnecessary + +If you forked or downloaded the `minimal-mistakes-jekyll` repo you can safely remove the following folders and files: + +- `.editorconfig` +- `.gitattributes` +- `.github` +- `/docs` +- `/test` +- `CHANGELOG.md` +- `minimal-mistakes-jekyll.gemspec` +- `README.md` +- `screenshot-layouts.png` +- `screenshot.png` + +## Setup Your Site + +Depending on the path you took installing Minimal Mistakes you'll setup things a little differently. + +### Starting Fresh + +Starting with an empty folder and `Gemfile` you'll need to copy or re-create this [default `_config.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_config.yml) file. For a full explanation of every setting be sure to read the [**Configuration**]({{ "/docs/configuration/" | absolute_url }}) section. + +After taking care of Jekyll's configuration file, you'll need to create and edit the following data files. + +- [`_data/ui-text.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_data/ui-text.yml) - UI text [documentation]({{ "/docs/ui-text/" | absolute_url }}) +- [`_data/navigation.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_data/navigation.yml) - navigation [documentation]({{ "/docs/navigation/" | absolute_url }}) + +### Starting from `jekyll new` + +Scaffolding out a site with the `jekyll new` command requires you to modify a few files that it creates. + +Edit `_config.yml` and create `_data/ui-text.yml` and `_data/navigation.yml` same as above. Then: + +- Replace `/index.html` with a modified [Minimal Mistakes `index.html`](https://github.com/mmistakes/minimal-mistakes/blob/master/index.html). +- Change `layout: post` in `_posts/0000-00-00-welcome-to-jekyll.markdown` to `layout: single`. +- Remove `about.md`, or at the very least change `layout: page` to `layout: single` and remove references to `icon-github.html` (or [copy to your `_includes`](https://github.com/jekyll/minima/tree/master/_includes) if using it). + +### Migrating to Gem Version + +If you're migrating a site already using Minimal Mistakes and haven't customized any of the theme files things upgrading will be easier for you. + +Start by removing `_includes`, `_layouts`, `_sass`, `assets` folders and all files within. You won't need these anymore as they're bundled with the theme gem. + +If you customized any of these files leave them alone, and only remove the untouched ones. If done correctly your modified versions should [override](http://jekyllrb.com/docs/themes/#overriding-theme-defaults) the versions bundled with the theme and be used by Jekyll instead. + +#### Update Gemfile + +Replace `gem "github-pages` or `gem "jekyll"` with `gem "jekyll", "~> 3.3.0"`. You'll need the latest version of Jekyll[^update-jekyll] for Minimal Mistakes to work and load all of the theme's assets properly, this line forces Bundler to do that. + +[^update-jekyll]: You could also run `bundle update jekyll` to update Jekyll. + +Add the Minimal Mistakes theme gem: + +```ruby +gem "minimal-mistakes-jekyll" +``` + +When finished your `Gemfile` should look something like this: + +```ruby +source "https://rubygems.org" + +gem "jekyll", "~> 3.3.0" +gem "minimal-mistakes-jekyll" +``` + +Then run `bundle update` and add `theme: minimal-mistakes-jekyll` to your `_config.yml`. + +**v4 Breaking Change:** Paths for image headers, overlays, teasers, [galleries]({{ "/docs/helpers/#gallery" | absolute_url }}), and [feature rows]({{ "/docs/helpers/#feature-row" | absolute_url }}) have changed and now require a full path. Instead of just `image: filename.jpg` you'll need to use the full path eg: `image: /assets/images/filename.jpg`. The preferred location is now `/assets/images/` but can be placed elsewhere or external hosted. This all applies for image references in `_config.yml` and `author.yml` as well. +{: .notice--danger} + +--- + +That's it! If all goes well running `bundle exec jekyll serve` should spin-up your site. \ No newline at end of file diff --git a/docs/_docs/02-structure.md b/docs/_docs/02-structure.md new file mode 100644 index 00000000..e757e604 --- /dev/null +++ b/docs/_docs/02-structure.md @@ -0,0 +1,54 @@ +--- +title: "Structure" +permalink: /docs/structure/ +excerpt: "How the theme is organized and what all of the files are for." +modified: 2016-10-06T22:39:43-04:00 +--- + +Nothing clever here :wink:. Layouts, data files, and includes are all placed in their default locations. Stylesheets and scripts in `assets`, and a few development related files in the project's root directory. + +**Please note:** If you installed Minimal Mistakes via the Ruby Gem method, theme files like `_layouts`, `_includes`, `_sass`, and `/assets/` will be missing. This is normal as they are bundled with the [`minimal-mistakes-jekyll`](https://rubygems.org/gems/minimal-mistakes-jekyll) Ruby gem. +{: .notice--info} + +```bash +minimal-mistakes +├── _data # data files for customizing the theme +| ├── navigations.yml # main navigation links +| └── ui-text.yml # text used throughout the theme's UI +├── _includes +| ├── analytics-providers # snippets for analytics (Google and custom) +| ├── comments-providers # snippets for comments (Disqus, Facebook, Google+, and custom) +| ├── footer # custom snippets to add to site footer +| ├── head # custom snippets to add to site head +| ├── base_path # site.url + site.baseurl shortcut +| ├── feature_row # feature row helper +| ├── gallery # image gallery helper +| ├── group-by-array # group by array helper for archives +| ├── nav_list # navigation list helper +| ├── toc # table of contents helper +| └── ... +├── _layouts +| ├── archive-taxonomy.html # tag/category archive for Jekyll Archives plugin +| ├── archive.html # archive listing documents in an array +| ├── compress.html # compresses HTML in pure Liquid +| ├── default.html # base for all other layouts +| ├── home.html # home page +| ├── single.html # single document (post/page/etc) +| └── splash.html # splash page +├── _sass # SCSS partials +├── assets +| ├── css +| | └── main.scss # main stylesheet, loads SCSS partials from _sass +| ├── fonts +| | └── fontawesome-webfont # Font Awesome webfonts +| ├── images # image assets for posts/pages/collections/etc. +| ├── js +| | ├── plugins # jQuery plugins +| | ├── vendor # vendor scripts +| | ├── _main.js # plugin settings and other scripts to load after jQuery +| | └── main.min.js # optimized and concatenated script file loaded before +├── _config.yml # site configuration +├── Gemfile # gem file dependencies +├── index.html # paginated home page showing recent posts +└── package.json # NPM build scripts +``` \ No newline at end of file diff --git a/docs/_docs/03-installation.md b/docs/_docs/03-installation.md new file mode 100644 index 00000000..edd60b03 --- /dev/null +++ b/docs/_docs/03-installation.md @@ -0,0 +1,107 @@ +--- +title: "Installation" +permalink: /docs/installation/ +excerpt: "Instructions for installing the theme for new and existing Jekyll based sites." +modified: 2016-11-03T10:13:32-04:00 +--- + +## Install the Theme + +There are several ways to install the theme: + +**1.** For a **new site**, install the `minimal-mistakes-jekyll` theme gem or fork the Minimal Mistakes repo on GitHub following the steps outlined in the [*Quick-Start Guide*]({{ "/docs/quick-start-guide/" | absolute_url }}). + +**2.** For an **existing site** follow the **Ruby Gem Method** steps outlined in the [*Quick-Start Guide*]({{ "/docs/quick-start-guide/" | absolute_url }}). If you plan to host with GitHub Pages I suggest you fork and rename the theme's repo, then clone it locally by running `git clone https://github.com/USERNAME/REPONAME.git` --- replacing **USERNAME** and **REPONAME** with your own. + +
+ copy GitHub repo URL +
Tap the copy to clipboard button (outlined in red above) to grab your GitHub repo's path.
+
+ +**3.** And for those who don't want to mess with Git, you can download the theme as a ZIP file to work with locally. + +[ Download Minimal Mistakes Theme](https://github.com/mmistakes/minimal-mistakes/archive/master.zip){: .btn .btn--success} + +**ProTip:** Be sure to remove `/docs` and `/test` if you forked Minimal Mistakes. These folders contain documentation and test pages for the theme and you probably don't littering up in your repo. +{: .notice--info} + +--- + +To move over any existing content you'll want to copy the contents of your `_posts` folder to the new site. Along with any pages, collections, data files, images, or other assets you may have. + +Next you'll need to convert posts and pages to use the proper layouts and settings. In most cases you simply need to update `_config.yml` to your liking and set the correct `layout` in their YAML Front Matter. + +[**Front Matter defaults**](https://jekyllrb.com/docs/configuration/#front-matter-defaults) are your friend and I encourage you to leverage them instead of setting a layout and other global options in each post/page's YAML Front Matter. + +Posts can be configured to use the `single` layout --- with reading time, comments, social sharing links, and related posts enabled. Adding the following to `_config.yml` will set these defaults for all posts: + +```yaml +defaults: + # _posts + - scope: + path: "" + type: posts + values: + layout: single + read_time: true + comments: true + share: true + related: true +``` + +**Post/Page Settings**: Be sure to read through the "Working with..." documentation to learn about all the options available to you. The theme has been designed to be flexible --- with numerous settings for each. +{: .notice--info} + +## Install Dependencies + +If this is your first time using Jekyll be sure to read through the [official documentation](https://jekyllrb.com/docs/home/) before jumping in. This guide assumes you have Ruby v2 installed and a basic understanding of how Jekyll works. + +To keep your sanity and better manage dependencies I strongly urge you to [install Bundler](http://bundler.io/) with `gem install bundler` and use the following `Gemfile`: + +```ruby +source "https://rubygems.org" + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! + +# gem "github-pages", group: :jekyll_plugins + +# To upgrade, run `bundle update`. + +gem "jekyll", "~> 3.3.0" +gem "minimal-mistakes-jekyll" + +# If you have any plugins, put them here! +group :jekyll_plugins do + gem "jekyll-paginate" + gem "jekyll-sitemap" + gem "jekyll-gist" + gem "jekyll-feed" + gem "jemoji" +end +``` + +To maintain a local Jekyll environment in sync with GitHub Pages replace the `gem "jekyll"` line with `gem "github-pages", group: :jekyll_plugins` and run the following: + +```bash +$ bundle install +``` + +**Note:** The [GitHub Pages gem](https://github.com/github/pages-gem) installs additional dependencies that may need to be added to your `Gemfile` if you decide to remove the `gem "github-pages"` eg. `jekyll-paginate`, `jekyll-sitemap`, `jekyll-feed`, etc. +{: .notice--warning} + +
+ bundle install in Terminal window +
+ +Depending on what gems you already have installed you may have to run `bundle update` to clear up any dependency issues. Bundler is usually pretty good at letting you know what gems need updating or have issues installing, to further investigate. + +When using Bundler to manage gems you'll want to run Jekyll using `bundle exec jekyll serve` and `bundle exec jekyll build`. + +Doing so executes the gem versions specified in `Gemfile.lock`. Sure you can test your luck with a naked `jekyll serve`, but I wouldn't suggest it. A lot of Jekyll errors originate from outdated or conflicting gems fighting with each other. So do yourself a favor and just use Bundler. \ No newline at end of file diff --git a/docs/_docs/04-upgrading.md b/docs/_docs/04-upgrading.md new file mode 100644 index 00000000..d3945a74 --- /dev/null +++ b/docs/_docs/04-upgrading.md @@ -0,0 +1,48 @@ +--- +title: "Upgrading" +permalink: /docs/upgrading/ +excerpt: "Instructions and suggestions for upgrading the theme." +modified: 2016-11-03T10:16:34-04:00 +--- + +If you're using the Ruby Gem version of the theme upgrading is fairly painless. + +Simply run `bundle update` if you're using Bundler (have a `Gemfile`) or `gem update minimal-mistakes-jekyll` if you're not. + +## Use Git + +If you want to get the most out of the Jekyll + GitHub Pages workflow, then you'll need to utilize Git. To pull down theme updates you must first ensure there's an upstream remote. If you forked the theme's repo then you're likely good to go. + +To double check, run `git remote -v` and verify that you can fetch from `origin https://github.com/{{ site.repository }}.git`. + +To add it you can do the following: + +```bash +$ git remote add upstream https://github.com/{{ site.repository }}.git +``` + +### Pull Down Updates + +Now you can pull any commits made to theme's `master` branch with: + +```bash +$ git pull upstream master +``` + +Depending on the amount of customizations you've made after forking, there's likely to be merge conflicts. Work through any conflicting files Git flags, staging the changes you wish to keep, and then commit them. + +## Update Files Manually + +Another way of dealing with updates is [downloading the theme](https://github.com/{{ site.repository }}/archive/master.zip) --- replacing your layouts, includes, and assets with the newer ones manually. To be sure that you don't miss any changes it's probably a good idea to review the theme's [commit history](https://github.com/{{ site.repository }}/commits/master) to see what's changed since. + +Here's a quick checklist of the important folders/files you'll want to be mindful of: + +| Name | | +| ---- | --- | +| `_layouts` | Replace all. Apply edits if you customized any layouts. | +| `_includes` | Replace all. Apply edits if you customized any includes. | +| `assets` | Replace all. Apply edits if you customized stylesheets or scripts. | +| `_sass` | Replace all. Apply edits if you customized Sass partials. | +| `_data/navigation.yml` | Safe to keep. Verify that there were no major structural changes or additions. | +| `_data/ui-text.yml` | Safe to keep. Verify that there were no major structural changes or additions. | +| `_config.yml` | Safe to keep. Verify that there were no major structural changes or additions. | diff --git a/docs/_docs/05-configuration.md b/docs/_docs/05-configuration.md new file mode 100644 index 00000000..5cc84e45 --- /dev/null +++ b/docs/_docs/05-configuration.md @@ -0,0 +1,624 @@ +--- +title: "Configuration" +permalink: /docs/configuration/ +excerpt: "Settings for configuring and customizing the theme." +modified: 2016-11-03T10:42:01-04:00 +--- + +Settings that affect your entire site can be changed in [Jekyll's configuration file](https://jekyllrb.com/docs/configuration/): `_config.yml`, found in the root of your project. If you don't have this file you'll need to copy or create one using the theme's [default `_config.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_config.yml) as a base. + +**Note:** for technical reasons, `_config.yml` is NOT reloaded automatically when used with `jekyll serve`. If you make any changes to this file, please restart the server process for them to be applied. +{: .notice--warning} + +Take a moment to look over the configuration file included with the theme. Comments have been added to provide examples and default values for most settings. Detailed explanations of each can be found below. + +## Site Settings + +### Theme + +If you're using the Ruby gem version of the theme you'll need this line to activate it: + +```yaml +theme: minimal-mistakes-jekyll +``` + +### Site Locale + +`site.locale` is used to declare the primary language for each web page within the site. + +*Example:* `locale: "en-US"` sets the `lang` attribute for the site to the *United States* flavor of English, while `en-GB` would be for the `United Kingdom` style of English. Country codes are optional and the shorter variation `locale: "en"` is also acceptable. To find your language and country codes check this [reference table](https://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx). + +Properly setting the locale is important for associating localized text found in the [**UI Text**]({{ "/docs/ui-text/" | absolute_url }}) data file. An improper match will cause parts of the UI to disappear (eg. button labels, section headings, etc). + +**Note:** The theme comes with localized text in English (`en`, `en-US`, `en-GB`). If you change `locale` in `_config.yml` to something else, most of the UI text will go blank. Be sure to add the corresponding locale key and translated text to `_data/ui-text.yml` to avoid this. +{: .notice--warning} + +### Site Title + +The name of your site. Is used throughout the theme in places like the site masthead and `` tags. + +*Example:* `title: "My Awesome Site"` + +You also have the option of customizing the separation character used in SEO-friendly page titles. + +*Example:* `title_separator: "|"` would produce page titles like `Sample Page | My Awesome Site`. + +**Note:** Long site titles have been known to break the masthead layout. Avoid adding a long "tagline" to the title prevent this from happening eg. `My Awesome Site is the Best Because I Say So". +{: .notice--warning} + +### Site Name + +Used to assign a site author. Don't worry, you can override the site author with different ones on specific posts, pages, or collection documents. + +*Example:* `name: "Michael Rose"`. + +**ProTip:** If you want to get crafty with your YAML you can use [anchors](http://www.yaml.org/spec/1.2/spec.html#id2785586) to reuse values. For example `foo: &var "My String"` allows you to reuse `"My String"` elsewhere in `_config.yml` like so... `bar: *var`. You'll see a few examples of this in the provided Jekyll config. +{: .notice--info} + +### Site Description + +Fairly obvious. `site.description` describes the site. Used predominantly in meta descriptions for improving SEO. + +*Example:* `description: "A flexible Jekyll theme for your blog or site with a minimalist aesthetic."` + +### Site URL + +The base hostname and protocol for your site. If you're hosting with GitHub Pages this will be something like `url: "https://github.io.mmistakes"` or `url: "https://mademistakes.com"` if you have a custom domain name. + +GitHub Pages now [forces `https://` for new sites](https://help.github.com/articles/securing-your-github-pages-site-with-https/) so be mindful of that when setting your URL to avoid mixed-content warnings. + +**Note:** Jekyll 3.3 overrides this value with `url: http://localhost:4000` when running `jekyll serve` locally in development. If you want to avoid this behavior set `JEKYLL_ENV=production` to [force the environment](http://jekyllrb.com/docs/configuration/#specifying-a-jekyll-environment-at-build-time) to production. +{: .notice--warning} + +### Site Base URL + +This little option causes all kinds of confusion in the Jekyll community. If you're not hosting your site as a GitHub Pages Project or in a subfolder (eg: `/blog`), then don't mess with it. + +In the case of the Minimal Mistakes demo site it's hosted on GitHub at <https://mmistakes.github.io/minimal-mistakes>. To correctly set this base path I'd use `url: "https://mmistakes.github.io"` and `baseurl: "/minimal-mistakes"`. + +For more information on how to properly use `site.url` and `site.baseurl` as intended by the Jekyll maintainers, check [Parker Moore's post on the subject](https://byparker.com/blog/2014/clearing-up-confusion-around-baseurl/). + +**Note:** When using `baseurl` remember to include it as part of your path when testing your site locally. Values of `url: ` and `baseurl: "/blog"` would make your local site visible at `http://localhost:4000/blog` and not `http://localhost:4000`. +{: .notice--warning} + +### Site Repository + +Add your repository name with organization to your site's configuration file, `_config.yml`. + +```yaml +repository: "username/repo-name" +``` + +"NWO" stands for "name with owner." It is GitHub lingo for the username of the owner of the repository plus a forward slash plus the name of the repository, e.g. '**mmistakes/minimal-mistakes**', where '**mmistakes**' is the owner and '**minimal-mistakes**' is the repository name. + +Your `site.github.*` fields should fill in like normal. If you run Jekyll with the --verbose flag, you should be able to see all the API calls made. + +If you don't set `repository` correctly you may see the following error when trying to `serve` or `build` your Jekyll site: + +**Liquid Exceptions:** No repo name found. Specify using `PAGES_REPO_NWO` environment variables, `repository` in your configuration, or set up `origin` git remote pointing to your github.com repository. +{: .notice--danger} + +For more information on how `site.github` data can be used with Jekyll check out [`github-metadata`'s documentation](https://github.com/jekyll/github-metadata). + +### Site Default Teaser Image + +To assign a fallback teaser image used in the "**Related Posts**" module, place a graphic in the `/assets/images/` directory and add the filename to `_config.yml` like so: + +```yaml +teaser: /assets/images/500x300.png +``` + +This image can be overridden at anytime by applying the following to a document's YAML Front Matter. + +```yaml +header: + teaser: /assets/images/my-awesome-post-teaser.jpg +``` + +<figure> + <img src="{{ '/assets/images/mm-teaser-images-example.jpg' | absolute_url }}" alt="teaser image example"> + <figcaption>Example of teaser images found in the related posts module.</figcaption> +</figure> + +### Breadcrumb Navigation (Beta) + +Enable breadcrumb links to help visitors better navigate deep sites. Because of the fragile method of implementing them they don't always produce accurate links reliably. For best results: + +1. Use a category based permalink structure e.g. `permalink: /:categories/:title/` +2. Manually create pages for each category or use a plugin like [jekyll-archives][jekyll-archives] to auto-generate them. If these pages don't exist breadcrumb links to them will be broken. + +![breadcrumb navigation example]({{ "/assets/images/mm-breadcrumbs-example.jpg" | absolute_url }}) + +```yaml +breadcrumbs: true # disabled by default +``` + +Breadcrumb start link text and separator character can both be changed in the [UI Text data file]({{ "/docs/ui-text/" | absolute_url }}). + +### Reading Time + +Enable estimated reading time snippets with `read_time: true` in YAML Front Matter. `200` has been set as the default words per minute value --- which can be changed by adjusting `words_per_minutes: ` in `_config.yml`. + +![reading time example]({{ "/assets/images/mm-read-time-example.jpg" | absolute_url }}) + +Instead of adding `read_time: true` to each post, apply as a default in `_config.yml` like so: + +```yaml +defaults: + # _posts + - scope: + path: "" + type: posts + values: + read_time: true +``` + +To disable reading time for a post, add `read_time: false` its YAML Front Matter to override what was set in `_config.yml`. + +### Comments + +[**Disqus**](https://disqus.com/), [**Discourse**](https://www.discourse.org/), [**Facebook**](https://developers.facebook.com/docs/plugins/comments), **Google+**, and static-based commenting via [**Staticman**](https://staticman.net/) are built into the theme. First set the comment provider you'd like to use: + +| Name | Comment Provider | +| ---- | ---------------- | +| **disqus** | Disqus | +| **discourse** | Discourse | +| **facebook** | Facebook Comments | +| **google-plus** | Google+ Comments | +| **staticman** | Staticman | +| **custom** | Other | + +Then add `comments: true` to each document you want comments visible on. + +Instead of adding YAML Front Matter to each document, apply as a default in `_config.yml`. To enable comments for all posts: + +```yaml +defaults: + # _posts + - scope: + path: "" + type: posts + values: + comments: true +``` + +If you add `comments: false` to a post's YAML Front Matter it will override the default and disable comments for just that post. + +##### Disqus + +To use Disqus you'll need to create an account and [shortname](https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-). Once you have both update `_config.yml` to: + +```yaml +comments: + provider: "disqus" + disqus: + shortname: "your-disqus-shortname" +``` + +##### Discourse + +For guidance on how to set up Discourse for embedding comments from a topic on a post page, [consult this guide](https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963). + +```yaml +comments: + provider : "discourse" + discourse: + server : # meta.discourse.org +``` + + +##### Facebook Comments + +To enable Facebook Comments choose how many comments you'd like visible per post and the color scheme of the widget. + +```yaml +comments: + provider : "facebook" + facebook: + appid : # optional + num_posts : # 5 (default) + colorscheme : # "light" (default), "dark" +``` + +##### Static-Based Comments via Staticman + +Transform user comments into `_data` files that live inside of your GitHub repository by enabling Staticman. + +###### Add Staticman as a Collaborator + +1. Allow Staticman push access to your GitHub repository by clicking on **Settings**, then the **Collaborators** tab and adding `staticmanapp` as a collaborator. +2. To accept the pending invitation visit: `https://api.staticman.net/v1/connect/{your GitHub username}/{your repository name}`. Consult the Staticman "[Get Started](https://staticman.net/get-started)" guide for more info. + +###### Configure Staticman + +Default settings have been provided in `_config.yml`. The important ones to set are `provider: "staticman"` and `branch`. View the [full list of configurations](https://github.com/eduardoboucas/staticman#jekyll-configuration). + +**Branch setting:** This is the branch comment files will be sent to via pull requests. If you host your site on GitHub Pages it will likely be `master` unless your repo is setup as a project --- use `gh-pages` in that case. +{: .notice--info} + +```yaml +comments: + provider: "staticman" +staticman: + allowedFields : ['name', 'email', 'url', 'message'] + branch : # "master", "gh-pages" + commitMessage : "New comment." + filename : comment-{@timestamp} + format : "yml" + moderation : true + path : "_data/comments/{options.slug}" + requiredFields : ['name', 'email', 'message'] + transforms: + email : "md5" + generatedFields: + date: + type : "date" + options: + format : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds" +``` + +###### Comment Moderation + +By default comment moderation is enabled in `_config.yml`. As new comments are submitted Staticman will send a pull request. Merging these in will approve the comment, close the issue, and automatically rebuild your site (if hosted on GitHub Pages). + +To skip this moderation step simply set `moderation: false`. + +**ProTip:** Create a GitHub webhook that sends a `POST` request to the following payload URL `https://api.staticman.net/v1/webhook` and triggers a "Pull request" event to delete Staticman branches on merge. +{: .notice--info} + +![pull-request webhook]({{ "/assets/images/mm-staticman-pr-webhook.jpg" | absolute_url }}) + +##### Other Comment Providers + +To use another provider not included with the theme set `provider: "custom"` then add their embed code to `_includes/comments-providers/custom.html`. + +### Custom Feed URL + +By default the theme links to `feed.xml` generated in the root of your site by the **jekyll-feed** plugin. To link to an externally hosted feed update `atom_feed` in `_config.yml` like so: + +```yaml +atom_feed: + path: "http://feeds.feedburner.com/youFeedname" +``` + +**Note:** By default the site feed is linked in two locations: inside the [`<head>` element]({{ gh_repo }}/master/_includes/head.html) and at the bottom of every page in the [site footer](https://github.com/{{ site.repository }}/master/_includes/footer.html). +{: .notice--info} + +### SEO, Social Sharing, and Analytics Settings + +All optional, but a good idea to take the time setting up to improve SEO and links shared from the site. + +#### Google Search Console + +Formerly known as [Google Webmaster Tools](https://www.google.com/webmasters/tools/), add your [verification code](https://support.google.com/analytics/answer/1142414?hl=en) like so: `google_site_verification: "yourVerificationCode"`. + +**Note:** You likely won't have to do this if you verify site ownership through **Google Analytics** instead. +{: .notice--warning} + +#### Bing Webmaster Tools + +There are several ways to [verify site ownership](https://www.bing.com/webmaster/help/how-to-verify-ownership-of-your-site-afcfefc6) --- the easiest adding an authentication code to your config file. + +Copy and paste the string inside of `content`: + +```html +<meta name="msvalidate.01" content="0FC3FD70512616B052E755A56F8952D" /> +``` + +Into `_config.yml` + +```yaml +bing_site_verification: "0FC3FD70512616B052E755A56F8952D" +``` + +#### Alexa + +To [claim your site](http://www.alexa.com/siteowners/claim) with Alexa add the provided verification ID `alexa_site_verification: "yourVerificationID"`. + +#### Yandex + +To verify site ownership copy and paste the string inside of `name`: + +```html +<meta name='yandex-verification' content='2132801JL' /> +``` + +Into `_config.yml` + +```yaml +yandex_site_verification: "2132801JL" +``` + +#### Twitter Cards and Facebook Open Graph + +To improve the appearance of links shared from your site to social networks like Twitter and Facebook be sure to configure the following. + +##### Site Twitter Username + +Twitter username for the site. For pages that have custom author Twitter accounts assigned in their YAML Front Matter or data file, they will be attributed as a **creator** in the Twitter Card. + +For example if my site's Twitter account is `@mmistakes-theme` I would add the following to `_config.yml` + +```yaml +twitter: + username: "mmistakes-theme" +``` + +And if I assign `@mmistakes` as an author account it will appear in the Twitter Card along with `@mmistakes-theme`, attributed as a creator of the page being shared. + +**Note**: You need to [apply for Twitter Cards](https://dev.twitter.com/docs/cards) and validate they're working on your site before they will begin showing up. +{: .notice--warning} + +##### Facebook Open Graph + +If you have a Facebook ID or publisher page add them: + +```yaml +facebook: + app_id: # A Facebook app ID + publisher: # A Facebook page URL or ID of the publishing entity +``` + +While not part a part of Open Graph, you can also add your Facebook username for use in the sidebar and footer. + +```yaml +facebook: + username: "michaelrose" # https://www.facebook.com/michaelrose +``` + +**ProTip:** To debug Open Graph data use [this tool](https://developers.facebook.com/tools/debug/og/object?q=https%3A%2F%2Fmademistakes.com) to test your pages. If content changes aren't reflected you will probably have to hit the **Fetch new scrape information** button to refresh. +{: .notice--info} + +##### Open Graph Default Image + +For pages that don't have a `header.image` assigned in their YAML Front Matter, `site.og_image` will be used as a fallback. Use your logo, icon, avatar or something else that is meaningful. Just make sure it is place in the `/assets/images/` folder, a minimum size of 120px by 120px, and less than 1MB in file size. + +```yaml +og_image: /assets/images/site-logo.png +``` + +<figure> + <img src="{{ '/assets/images/mm-twitter-card-summary-image.jpg' | absolute_url }}" alt="Twitter Card summary example"> + <figcaption>Example of a image placed in a Summary Card.</figcaption> +</figure> + +Documents who have a `header.image` assigned in their YAML Front Matter will appear like this when shared on Twitter and Facebook. + +<figure> + <img src="{{ '/assets/images/mm-twitter-card-summary-large.jpg' | absolute_url }}" alt="page shared on Twitter"> + <figcaption>Shared page on Twitter with header image assigned.</figcaption> +</figure> + +<figure> + <img src="{{ '/assets/images/facebook-share-example.jpg' | absolute_url }}" alt="page shared on Facebook"> + <figcaption>Shared page on Facebook with header image assigned.</figcaption> +</figure> + +##### Include your social profile in search results + +Use markup on your official website to add your [social profile information](https://developers.google.com/structured-data/customize/social-profiles#adding_structured_markup_to_your_site) to the Google Knowledge panel in some searches. Knowledge panels can prominently display your social profile information. + +```yaml +social: + type: # Person or Organization (defaults to Person) + name: # If the user or organization name differs from the site's name + links: + - "https://twitter.com/yourTwitter" + - "https://facebook.com/yourFacebook" + - "https://instagram.com/yourProfile" + - "https://www.linkedin.com/in/yourprofile" + - "https://plus.google.com/your_profile" +``` + +#### Analytics + +Analytics is disabled by default. To enable globally select one of the following: + +| Name | Analytics Provider | +| ---- | ------------------ | +| **google** | [Google Standard Analytics](https://www.google.com/analytics/) | +| **google-universal** | [Google Universal Analytics](https://www.google.com/analytics/) | +| **custom** | Other analytics providers | + +For Google Analytics add your Tracking Code: + +```yaml +analytics: + provider: "google-universal" + tracking_id: "UA-1234567-8" +``` + +To use another provider not included with the theme set `provider: "custom"` then add their embed code to `_includes/analytics-providers/custom.html`. + +## Site Author + +Used as the defaults for defining what appears in the author sidebar. + +![author sidebar example]({{ "/assets/images/mm-author-sidebar-example.jpg" | absolute_url }}) + +**Note:** For sites with multiple authors these values can be overridden post by post with custom YAML Front Matter and a data file. For more information on how that works see below. +{: .notice--info} + +```yaml +author: + name : "Your Name" + avatar : "/assets/images/bio-photo.jpg" + bio : "My awesome biography constrained to a sentence or two goes here." + email : # optional + uri : "http://your-site.com" +``` + +Social media links are all optional, include the ones you want visible. In most cases you just need to add the username. If you're unsure double check `_includes/author-profile.html` to see how the URL is constructed. + +To add social media links not included with the theme or customize the author sidebar further, read the full [layout documentation]({{ "/docs/layouts/#author-profile" | absolute_url }}). + +## Reading Files + +Nothing out of the ordinary here. `include` and `exclude` may be the only things you need to alter. + +## Conversion and Markdown Processing + +Again nothing out of the ordinary here as the theme adheres to the defaults used by GitHub Pages. [**Kramdown**](http://kramdown.gettalong.org/) for Markdown conversion, [**Rouge**](http://rouge.jneen.net/) syntax highlighting, and incremental building disabled. Change them if you need to. + +## Front Matter Defaults + +To save yourself time setting [Front Matter Defaults](https://jekyllrb.com/docs/configuration/#front-matter-defaults) for posts, pages, and collections is the way to go. Sure you can assign layouts and toggle settings like **reading time**, **comments**, and **social sharing** in each file, but that's not ideal. + +Using the `default` key in `_config.yml` you could set the layout and enable author profiles, reading time, comments, social sharing, and related posts for all posts --- in one shot. + +```yaml +defaults: + # _posts + - scope: + path: "" + type: posts + values: + layout: single + author_profile: true + read_time: true + comments: true + share: true + related: true +``` + +Pages Front Matter defaults can be scoped like this: + +```yaml +defaults: + # _pages + - scope: + path: "" + type: pages + values: + layout: single +``` + +And collections like this: + +```yaml +defaults: + # _foo + - scope: + path: "" + type: foo + values: + layout: single +``` + +And of course any default value can be overridden by settings in a post, page, or collection file. All you need to do is specify the settings in the YAML Front Matter. For more examples be sure to check out the demo site's [`_config.yml`](https://github.com/{{ site.repository }}/gh-pages/_config.yml). + +## Outputting + +The default permalink style used by the theme is `permalink: /:categories/:title/`. If you have a post named `2016-01-01-my-post.md` with `categories: foo` in the YAML Front Matter, Jekyll will generate `_site/foo/my-post/index.html`. + +**Note:** If you plan on enabling breadcrumb links --- including category names in permalinks is a big part of how those are created. +{: .notice--warning} + +### Paginate + +If [using pagination](https://github.com/jekyll/jekyll-paginate) on the homepage you can change the amount of posts shown with: + +```yaml +paginate: 5 +``` + +You'll also need to include some Liquid and HTML to properly use the paginator, which you can find in the **Layouts** section under [Home Page]({{ "/docs/layouts/#home-page" | absolute_url }}). + +**Please note:** [Jekyll's pagination](http://jekyllrb.com/docs/pagination/) may have unexpected results when used on pages other than the home page eg. `<site domain>/blog/index.html`. +{: .notice--info} + +### Timezone + +This sets the timezone environment variable, which Ruby uses to handle time and date creation and manipulation. Any entry from the [IANA Time Zone Database](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones) is valid. The default is the local time zone, as set by your operating system. + +```yaml +timezone: America/New_York +``` + +## Plugins + +When hosting with GitHub Pages a small [set of gems](https://pages.github.com/versions/) have been whitelisted for use. The theme uses a few of them which can be found under `gems`. Additional settings and configurations are documented in the links below. + +| Plugin | Description | +| ------ | ----------- | +| [jekyll-paginate][jekyll-paginate] | Pagination Generator for Jekyll. | +| [jekyll-sitemap][jekyll-sitemap] |Jekyll plugin to silently generate a sitemaps.org compliant sitemap for your Jekyll site. | +| [jekyll-gist][jekyll-gist] | Liquid tag for displaying GitHub Gists in Jekyll sites. | +| [jekyll-feed][jekyll-feed] | A Jekyll plugin to generate an Atom (RSS-like) feed of your Jekyll posts. | +| [jemoji][jemoji] | GitHub-flavored emoji plugin for Jekyll. | + +[jekyll-paginate]: https://github.com/jekyll/jekyll-paginate +[jekyll-sitemap]: https://github.com/jekyll/jekyll-sitemap +[jekyll-gist]: https://github.com/jekyll/jekyll-gist +[jekyll-feed]: https://github.com/jekyll/jekyll-feed +[jemoji]: https://github.com/jekyll/jemoji + +If you're hosting elsewhere then you don't really have to worry about what is whitelisted as you are free to include whatever [Jekyll plugins](https://jekyllrb.com/docs/plugins/) you desire. + +## Archive Settings + +The theme ships with support for taxonomy (category and tag) pages. GitHub Pages hosted sites need to use a *Liquid only* approach while those hosted elsewhere can use plugins like [**jekyll-archives**][jekyll-archives] to generate these pages automatically. + +[jekyll-archives]: https://github.com/jekyll/jekyll-archives + +The default `type` is set to use Liquid. + +**Note:** `category_archive` and `tag_archive` were previously named `categories` and `tags`. Names were changed to avoid possible conflicts with `site.categories` and `site.tags`. +{: .notice--danger} + +```yaml +category_archive: + type: liquid + path: /categories/ +tag_archive: + type: liquid + path: /tags/ +``` + +Which would create category and tag links in the breadcrumbs and page meta like: `/categories/#foo` and `/tags/#foo`. + +**Note:** for these links to resolve properly, category and tag index pages need to exist at [`/categories/index.html`](https://github.com/{{ site.repository }}/blob/master/docs/_pages/category-archive.html) and [`/tags/index.html`](https://github.com/{{ site.repository }}/blob/master/docs/_pages/tag-archive.html). The necessary Liquid code to build these pages can be taken from the demo site. +{: .notice--warning} + +If you have the luxury of using Jekyll Plugins then [**jekyll-archives**][jekyll-archives] will make your life much easier as category and tag pages are created for you. + +Change `type` to `jekyll-archives` and apply the following [configurations](https://github.com/jekyll/jekyll-archives/blob/master/docs/configuration.md): + +```yaml +category_archive: + type: jekyll-archives + path: /categories/ +tag_archive: + type: jekyll-archives + path: /tags/ +jekyll-archives: + enabled: + - categories + - tags + layouts: + category: archive-taxonomy + tag: archive-taxonomy + permalinks: + category: /categories/:name/ + tag: /tags/:name/ +``` + +**Note:** The `archive-taxonomy` layout used by jekyll-archives is provided with the theme and can be found in the `_layouts` folder. +{: .notice--info} + +## HTML Compression + +If you care at all about performance (and really who doesn't) compressing the HTML files generated by Jekyll is a good thing to do. + +If you're hosting with GitHub Pages there aren't many options afforded to you for optimizing the HTML Jekyll generates. Thankfully there is some Liquid wizardry you can use to strip whitespace and comments to reduce file size. + +There's a variety of configurations and caveats to using the `compress` layout, so be sure to read through the [documentation](http://jch.penibelst.de/) if you decide to make change the defaults set in the theme's `_config.yml`. + +```yaml +compress_html: + clippings: all + ignore: + envs: development # disable compression in dev environment +``` + +**Caution:** Inline JavaScript comments can cause problems with `compress.html`, so be sure to `/* comment this way */` and avoid `// these sorts of comments`. diff --git a/docs/_docs/06-overriding-theme-defaults.md b/docs/_docs/06-overriding-theme-defaults.md new file mode 100644 index 00000000..48bf86e4 --- /dev/null +++ b/docs/_docs/06-overriding-theme-defaults.md @@ -0,0 +1,24 @@ +--- +title: "Overriding Theme Defaults" +permalink: /docs/overriding-theme-defaults/ +excerpt: "Instructions on how to customize the theme's default set of layouts, includes, and stylesheets when using the Ruby Gem version." +modified: 2016-11-03T10:49:48-04:00 +--- + +When installing the theme as a Ruby Gem its layouts, includes, stylesheets, and other assets are all bundled in the `gem`. Meaning they're not easily visible in your project. + +Each of these files can be modified, but you'll need to copy the default version into your project first. For example, if you wanted to modify the default [`single` layout](https://github.com/mmistakes/minimal-mistakes/blob/master/_layouts/single.html), you'd start by copying it to `_layouts/single.html`. + +**ProTip**: To locate theme files, run `bundle show minimal-mistakes-jekyll`. Then copy the files you want to override from the returned path, to the appropriate folder in your project. +{: .notice--info} + +Jekyll will use the files in your project first before falling back to the default versions of the theme. It exhibits this behavior with files in the following folders: + +``` +/assets +/_layouts +/_includes +/_sass +``` + +For more information on customizing the theme's [stylesheets]({{ "/docs/stylesheets/" | absolute_url }}) and [JavaScript]({{ "/docs/javascript/" | absolute_url }}), see the appropriate pages. \ No newline at end of file diff --git a/docs/_docs/07-navigation.md b/docs/_docs/07-navigation.md new file mode 100644 index 00000000..087aa27e --- /dev/null +++ b/docs/_docs/07-navigation.md @@ -0,0 +1,68 @@ +--- +title: "Navigation" +permalink: /docs/navigation/ +excerpt: "Instructions on how to customize the main navigation and enabling breadcrumb links." +modified: 2016-11-03T10:50:03-04:00 +--- + +## Masthead + +The masthead links use a "priority plus" design pattern. Meaning, show as many navigation items that will fit horizontally with a toggle to reveal the rest. + +To define these links add titles and URLs under the `main` key in `_data/navigation.yml`: + +```yaml +main: + - title: "Quick-Start Guide" + url: /docs/quick-start-guide/ + - title: "Posts" + url: /year-archive/ + - title: "Categories" + url: /categories/ + - title: "Tags" + url: /tags/ + - title: "Pages" + url: /page-archive/ + - title: "Collections" + url: /collection-archive/ + - title: "External Link" + url: https://google.com +``` + +Which will give you a responsive masthead similar to this: + +![priority plus masthead animation]({{ "/assets/images/mm-priority-plus-masthead.gif" | absolute_url }}) + +**ProTip:** Put the most important links first so they're always visible and not hidden behind the **menu toggle**. +{: .notice--info} + +## Breadcrumbs (Beta) + +Enable breadcrumb links to help visitors better navigate deep sites. Because of the fragile method of implementing them they don't always produce accurate links reliably. For best results: + +1. Use a category based permalink structure e.g. `permalink: /:categories/:title/` +2. Manually create pages for each category or use a plugin like [jekyll-archives](https://github.com/jekyll/jekyll-archives) to auto-generate them. If these pages don't exist breadcrumb links to them will be broken. + +![breadcrumb navigation example]({{ "/assets/images/mm-breadcrumbs-example.jpg" | absolute_url }}) + +```yaml +breadcrumbs: true # disabled by default +``` + +Breadcrumb start link text and separator character can both be changed in `_data/ui-text.yml`. + +```yaml +breadcrumb_home_label : "Home" +breadcrumb_separator : "/" +``` + +For breadcrumbs that resemble something like `Start > Blog > My Awesome Post` you'd apply these settings: + +```yaml +breadcrumb_home_label : "Start" +breadcrumb_separator : ">" +``` + +## Custom Sidebar Navigation Menu + +See the [**sidebars** documentation]({{ "/docs/layouts/#custom-sidebar-navigation-menu" | absolute_url }}) for information on setting up a custom navigation menu. \ No newline at end of file diff --git a/docs/_docs/08-ui-text.md b/docs/_docs/08-ui-text.md new file mode 100644 index 00000000..a5a326a8 --- /dev/null +++ b/docs/_docs/08-ui-text.md @@ -0,0 +1,29 @@ +--- +title: "UI Text" +permalink: /docs/ui-text/ +excerpt: "Text for customizing various user interface elements found in the theme." +modified: 2016-11-03T10:52:31-04:00 +--- + +Text for various UI elements, `_layouts`, and `_includes` have all been grouped together as a set of translation keys. This is by no means a full-on i18n solution, but it does help make customizing things a bit easier. + +Currently the English[^yaml-anchors] main keys in [`_data/ui-text.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_data/ui-text.yml) are translated to the following languages: + +- Brazilian Portuguese (Português brasileiro) +- Chinese +- French (Français) +- German (Deutsch) +- Italian (Italiano) +- Spanish (Español) +- Turkish (Türkçe) + +If you're are interested in localizing them into other languages feel free to submit a pull request and I will be happy to look it over. + +[^yaml-anchors]: `en-US`, and `en-GB` use [YAML anchors](http://www.yaml.org/spec/1.2/spec.html#id2785586) to reference the values in `en` as to not repeat them. + +Many of the label based keys like `meta_label`, `categories_label`, `tags_label`, `share_on_label`, and `follow_label` can be left blank if you'd like to omit them from view. It really depends on you and if you want an even more minimal look to your site. + +![UI text labels]({{ "/assets/images/mm-ui-text-labels.jpg" | absolute_url }}) + +**Note:** The theme comes with localized text in English (`en`, `en-US`, `en-GB`). If you change `locale` in `_config.yml` to something else, most of the UI text will go blank. Be sure to add the corresponding locale key and translated text to `_data/ui-text.yml` to avoid this. +{: .notice--warning} \ No newline at end of file diff --git a/docs/_docs/09-authors.md b/docs/_docs/09-authors.md new file mode 100644 index 00000000..df23c1ef --- /dev/null +++ b/docs/_docs/09-authors.md @@ -0,0 +1,39 @@ +--- +title: "Authors" +permalink: /docs/authors/ +excerpt: "Instructions and settings for working with multiple site authors." +modified: 2016-11-03T10:55:15-04:00 +--- + +Sites that may have content authored from various individuals can be accommodated by using [data files](https://jekyllrb.com/docs/datafiles/). + +To assign an author to a post or page that is different from the site author specified in `_config.yml`: + +**Step 1.** Create `_data/authors.yml` and add authors using the following format. Any variables found under `author:` in `_config.yml` can be used (e.g. `name`, `avatar`, `uri`, social media profiles, etc.). + +```yaml +# /_data/authors.yml + +Billy Rick: + name: "Billy Rick" + uri: "http://thewhip.com" + email: "billy@rick.com" + bio: "What do you want, jewels? I am a very extravagant man." + avatar: "/assets/images/bio-photo-2.jpg" + twitter: "extravagantman" + +Cornelius Fiddlebone: + name: "Cornelius Fiddlebone" + email: "cornelius@thewhip.com" + bio: "I ordered what?" + avatar: "/assets/images/bio-photo.jpg" + twitter: "rhymeswithsackit" +``` + +**Step 2.** Assign one of the authors in `authors.yml` to a post or page you wish to override the `site.author` with. + +Example: To assign `Billy Rick` as an author for a post the following YAML Front Matter would be applied: + +```yaml +author: Billy Rick +``` diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md new file mode 100644 index 00000000..7e4b789b --- /dev/null +++ b/docs/_docs/10-layouts.md @@ -0,0 +1,566 @@ +--- +title: "Layouts" +permalink: /docs/layouts/ +excerpt: "Descriptions and samples of all layouts included with the theme and how to best use them." +single_layout_gallery: + - image_path: /assets/images/mm-layout-single-header.png + alt: "single layout with header example" + - image_path: /assets/images/mm-layout-single-meta.png + alt: "single layout with comments and related posts" +modified: 2016-10-06T23:02:37-04:00 +--- + +{% include toc icon="columns" title="Included Layouts" %} + +The bread and butter of any theme. Below you'll find the layouts included with Minimal Mistakes, what they look like and the type of content they've been built for. + +## Default Layout + +The base layout all other layouts inherit from. There's not much to this layout apart from pulling in several `_includes`: + +* `<head>` elements +* masthead navigation links +* {% raw %}`{{ content }}`{% endraw %} +* page footer +* scripts + +**Note:** You won't ever assign this layout directly to a post or page. Instead all other layouts will build off of it by setting `layout: default` in their YAML Front Matter. +{: .notice--warning} + +### Layout Based and User-Defined Classes + +Class names corresponding to each layout are automatically added to the `<body>` element eg. `<body class="layout--single">`. + +| layout | class name | +| ---------------- | --------------------------- | +| archive | `.layout--archive` | +| archive-taxonomy | `.layout--archive-taxonomy` | +| single | `.layout--single` | +| splash | `.layout--splash` | +| home | `.layout--home` | + +Using YAML Front Matter you can also assign custom classes to target with CSS or JavaScript. Perfect for "art directed" posts or adding custom styles to specific pages. + +Example: + +```yaml +--- +layout: splash +classes: + - landing + - dark-theme +--- +``` + +Outputs: + +```html +<body class="layout--splash landing dark-theme"> +``` + +## Compress Layout + +A Jekyll layout that compresses HTML in pure Liquid. To enable add `layout: compress` to `_layouts/default.html`. + +**Note:** Has been known to mangle markup and break JavaScript... especially if inline `// comments` are present. For this reason it has been disabled by default. +{: .notice--danger} + +* [Documentation](http://jch.penibelst.de/) + +## Single Layout + +The layout you'll likely use the most --- sidebar and main content combo. + +**Includes:** + +* Optional header image with caption +* Optional header overlay (solid color/image) + text and optional "call to action" button +* Optional social sharing links module +* Optional comments module +* Optional related posts module + +{% include gallery id="single_layout_gallery" caption="Image header and meta info examples for `single` layout" %} + +Assign with `layout: single`, or better yet apply as a [Front Matter default]({{ "/docs/configuration/#front-matter-defaults" | absolute_url }}) in `_config.yml`. + +## Archive Layout + +Essentially the same as `single` with markup adjustments and some modules removed. + +**Includes:** + +* Optional header image with caption +* Optional header overlay (solid color/image) + text and optional "call to action" button +* List and grid views + +<figure> + <img src="{{ '/assets/images/mm-layout-archive.png' | absolute_url }}" alt="archive layout example"> + <figcaption>List view example.</figcaption> +</figure> + +Below are sample archive pages you can easily drop into your project, taking care to rename `permalink`, `title`, or the filename to fit your site. Each is 100% compatible with GitHub Pages. + +* [All Posts Grouped by Category -- List View][posts-categories] +* [All Posts Grouped by Tags -- List View][posts-tags] +* [All Posts Grouped by Year -- List View][posts-year] +* [All Posts Grouped by Collection -- List View][posts-collection] +* [Portfolio Collection -- Grid View][portfolio-collection] + +[posts-categories]: https://github.com/{{ site.repository }}/blob/master/docs/_pages/category-archive.html +[posts-tags]: https://github.com/{{ site.repository }}/blob/master/docs/_pages/tag-archive.html +[posts-year]: https://github.com/{{ site.repository }}/blob/master/docs/_pages/year-archive.html +[posts-collection]: https://github.com/{{ site.repository }}/blob/master/docs/_pages/collection-archive.html +[portfolio-collection]: https://github.com/{{ site.repository }}/blob/master/docs/_pages/portfolio-archive.html + +Post and page excerpts are auto-generated by Jekyll which grabs the first paragraph of text. To override this text with something more specific use the following YAML Front Matter: + +```yaml +excerpt: "A unique line of text to describe this post that will display in an archive listing and meta description with SEO benefits." +``` + +### Grid View + +Adding `type=grid` to the `archive-single` helper will display archive posts in a 4 column grid. For example to create an archive displaying all documents in the portfolio collection: + +**Step 1:** Create a portfolio archive page (eg. `_pages/portfolio-archive.html`) with the following YAML Front Matter: + +```yaml +--- +layout: archive +title: "Portfolio" +permalink: /portfolio/ +author_profile: false +--- +``` + +**Step 2:** Loop over all documents in the portfolio collection and output in a grid: + +```html +{% raw %}<div class="grid__wrapper"> + {% for post in site.portfolio %} + {% include archive-single.html type="grid" %} + {% endfor %}{% endraw %} +</div> +``` + +To produce something like this: + +<figure> + <img src="{{ '/assets/images/mm-archive-grid-view-example.jpg' | absolute_url }}" alt="archive grid view example"> + <figcaption>Grid view example.</figcaption> +</figure> + +**Note:** More information on using this `_include` can be found under [**Helpers**]({{ "/docs/helpers/" | absolute_url }}). +{: .notice--info} + +### Taxonomy Archive + +If you have the luxury of using Jekyll plugins the creation of category and tag archives is greatly simplified. Enable support for the [`jekyll-archives`](https://github.com/jekyll/jekyll-archives) plugin with a few `_config.yml` settings as noted in the [**Configuration**]({{ "/docs/configuration/#archive-settings" | absolute_url }}) section. + +![archive taxonomy layout example]({{ "/assets/images/mm-layout-archive-taxonomy.png" | absolute_url }}) + +### Home Page + +A derivative archive page layout to be used as a simple home page. It is built to show a paginated list of recent posts based off of the [pagination settings]({{ "/docs/configuration/#paginate" | absolute_url }}) in `_config.yml`. + +<figure> + <img src="{{ '/assets/images/mm-home-post-pagination-example.jpg' | absolute_url }}" alt="paginated home page example"> + <figcaption>Example of a paginated home page showing 5 recent posts.</figcaption> +</figure> + +To use create `index.html` at the root of your project and add the following YAML Front Matter: + +```yaml +--- +layout: home +--- +``` + +Then configure pagination in `_config.yml`. + +```yaml +paginate: 5 # amount of posts to show +paginate_path: /page:num/ +``` + +**Note:** Jekyll can only paginate a single `index.html` file. If you'd like to paginate more pages (e.g. category indexes) you'll need the help of a custom plugin. For more pagination related settings check the [**Configuration**]({{ "/docs/configuration/#paginate" | absolute_url }}) section. +{: .notice--info} + +## Splash Page Layout + +For full-width landing pages that need a little something extra add `layout: splash` to the YAML Front Matter. + +**Includes:** + +* Optional header image with caption +* Optional header overlay (solid color/image) + text and optional "call to action" button +* Feature blocks (`left`, `center`, and `right` alignment options) + +![splash page layout example]({{ "/assets/images/mm-layout-splash.png" | absolute_url }}) + +Feature blocks can be assigned and aligned to the `left`, `right`, or `center` with a sprinkling of YAML. For full details on how to use the `feature_row` helper check the [**Content**]({{ "/docs/helpers/" | absolute_url }}) section or review a [sample splash page](https://github.com/{{ site.repository }}/blob/master/docs/_pages/splash-page.md). + + +--- + +## Headers + +To add some visual punch to a post or page, a large full-width header image can be included. + +Be sure to resize your header images. `~1280px` is a good width if you aren't [responsively serving up images](http://alistapart.com/article/responsive-images-in-practice). Through the magic of CSS they will scale up or down to fill the container. If you go with something too small it will look like garbage when upscaled, and something too large will hurt performance. + +**Please Note:** Paths for image headers, overlays, teasers, [galleries]({{ "/docs/helpers/#gallery" | absolute_url }}), and [feature rows]({{ "/docs/helpers/#feature-row" | absolute_url }}) have changed and require a full path. Instead of just `image: filename.jpg` you'll need to use the full path eg: `image: /assets/images/filename.jpg`. The preferred location is now `/assets/images/`, but can be placed elsewhere or external hosted. This all applies for image references in `_config.yml` and `author.yml` as well. +{: .notice--danger} + +![single layout header image example]({{ "/assets/images/mm-single-header-example.jpg" | absolute_url }}) + +Place your images in the `/assets/images/` folder and add the following YAML Front Matter: + +```yaml +header: + image: /assets/images/image-filename.jpg +``` + +For externally hosted images include the full image path instead of just the filename: + +```yaml +header: + image: http://some-site.com/assets/images/image.jpg +``` + +To include a caption or attribution for the image: + +```yaml +header: + image: /assets/images/unsplash-image-1.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +``` + +**ProTip:** Captions written in Markdown are supported, so feel free to add links, or style text. Just be sure to wrap it in quotes. +{: .notice--info} + +### Header Overlay + +To overlay text on top of a header image you have a few more options: + +| Name | Description | Default | +| ---- | ----------- | ------- | +| **overlay_image** | Header image you'd like to overlay. Same rules as `header.image` from above. | | +| **overlay_filter** | Color/opacity to overlay on top of the header image eg: `0.5` or `rgba(255, 0, 0, 0.5)`. | +| **excerpt** | Auto-generated page excerpt is added to the overlay text or can be overridden. | | +| **cta_label** | Call to action button text label. | `more_label` in UI Text data file | +| **cta_url** | Call to action button URL. | | + +With this YAML Front Matter: + +```yaml +excerpt: "This post should display a **header with an overlay image**, if the theme supports it." +header: + overlay_image: /assets/images/unsplash-image-1.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" + cta_label: "More Info" + cta_url: "https://unsplash.com" +``` + +You'd get a header image overlaid with text and a call to action button like this: + +![single layout header overlay example]({{ "/assets/images/mm-single-header-overlay-example.jpg" | absolute_url }}) + +You also have the option of specifying a solid background-color to use instead of an image. + +![single layout header overlay with background fill]({{ "/assets/images/mm-single-header-overlay-fill-example.jpg" | absolute_url }}) + +```yaml +excerpt: "This post should display a **header with a solid background color**, if the theme supports it." +header: + overlay_color: "#333" +``` + +You can also specifying the opacity (between `0` and `1`) of a black overlay like so: + +![transparent black overlay]({{ "/assets/images/mm-header-overlay-black-filter.jpg" | absolute_url }}) + +```yaml +excerpt: "This post should [...]" +header: + overlay_image: /assets/images/unsplash-image-1.jpg + overlay_filter: 0.5 # same as adding an opacity of 0.5 to a black background + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" + cta_label: "More Info" + cta_url: "https://unsplash.com" +``` + +Or if you want to do more fancy things, go full rgba: + +![transparent red overlay]({{ "/assets/images/mm-header-overlay-red-filter.jpg" | absolute_url }}) + +```yaml +excerpt: "This post should [...]" +header: + overlay_image: /assets/images/unsplash-image-1.jpg + overlay_filter: rgba(255, 0, 0, 0.5) + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" + cta_label: "More Info" + cta_url: "https://unsplash.com" +``` + +--- + +## Sidebars + +The space to the left of a page's main content is blank by default, but has the ability to show an author profile (name, short biography, social media links), custom content, or both. + +### Author Profile + +Add `author_profile: true` to a post or page's YAML Front Matter. + +![single layout example]({{ "/assets/images/mm-layout-single.png" | absolute_url }}) + +Better yet, enable it with Front Matter Defaults set in `_config.yml`. + +```yaml +defaults: + # _posts + - scope: + path: "" + type: posts + values: + author_profile: true +``` + +**Note:** To disable the author sidebar profile for a specific post or page, add `author_profile: false` to the YAML Front Matter instead. +{: .notice--warning} + +The theme comes pre-built with a selection of links for the most common social media networks. These are all optional and can be [assigned in `_config.yml`]({{ "/docs/configuration/" | absolute_url }}). + +To add more links you'll need to crack open [`_includes/author-profile.html`](https://github.com/mmistakes/minimal-mistakes/blob/master/_includes/author-profile.html) and make some edits. + +Inside of `<ul class="author__urls">` you'll find `<li>` elements wrapped in Liquid conditionals. These represent each of the possible links you can currently add to the sidebar. + +#### Example of Twitter link + +```html +{% raw %}{% if author.twitter %} + <li><a href="https://twitter.com/{{ author.twitter }}"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li> +{% endif %}{% endraw %} +``` + +To add a new link you'll need three things: + +1. Destination URL +2. [Font Awesome icon](http://fontawesome.io/icons/) (`fa-` class) +3. Label for the link + +It's up to you if you want to wrap it in a `{% raw %}{% if %} ... {% endif %}{% endraw %}`conditional and add variables to `_config.yml`. If you don't plan to change it then hard-coding the strings is perfectly acceptable. + +Let's run through how you'd add a new link that points to a Reddit profile. Starting with the three things from above: + +1. `https://www.reddit.com/user/username` +2. [`fa-reddit`](http://fontawesome.io/icon/reddit/) +3. `Reddit` + +And plug them into the appropriate locations: + +```html +<li><a href="[1]"><i class="fa fa-fw [2]" aria-hidden="true"></i> [3]</a></li> +``` + +To end up with: + +```html +<li><a href="https://www.reddit.com/user/username"><i class="fa fa-fw fa-reddit" aria-hidden="true"></i> Reddit</a></li> +``` + +![Reddit link in author profile]({{ "/assets/images/mm-author-profile-reddit-gs.png" | absolute_url }}) + +To add a touch of color to the default black (`#000`) icon a few more steps are necessary. + +Start by copying [`_utilities.scss`](https://github.com/mmistakes/minimal-mistakes/blob/master/_sass/_utilities.scss) `<site root>/_sass`. Open it up to the icon section (it's near the bottom) and nest a new class beneath `.social-icons` that matches the one used to declare the Font Awesome icon. In our case `.fa-reddit`. + +Simply add a `color` declaration and the corresponding hex code. + +```scss +.social-icons { + + .fa-reddit { + color: #ff4500; + } +} +``` + +![Reddit link in author profile with color]({{ "/assets/images/mm-author-profile-reddit-color.png" | absolute_url }}) + +**ProTip:** For bonus points you can add it as a Sass `$variable` that you set in [`_variables.scss`](https://github.com/mmistakes/minimal-mistakes/blob/master/_sass/_variables.scss) like the other ["brand" colors](http://brandcolors.net/). You'll need to add this file to `/_sass/` as well if you're using the Ruby Gem version of the theme. +{: .notice--info} + +**Please please please** don't submit [pull requests]({{ "/docs/contributing/" | absolute_url }}) adding in support for "missing" social media links. I'm trying to keep things down to the minimum (hence the theme's name) and have no interest in merging such PRs :expressionless:. +{: .notice--warning} + +### Custom Sidebar Content + +Blocks of content can be added by using the following under `sidebar`: + +| Name | Description | +| ---- | ----------- | +| **title** | Title or heading. | +| **image** | Image path placed in `/images/` folder or an external URL. | +| **image_alt** | Alternate description for image. | +| **text** | Text. Markdown is allowed. | + +Multiple blocks can also be added by following the example below: + +```yaml +sidebar: + - title: "Title" + image: http://placehold.it/350x250 + image_alt: "image" + text: "Some text here." + - title: "Another Title" + text: "More text here." +``` + +<figure> + <img src="{{ '/assets/images/mm-custom-sidebar-example.jpg' | absolute_url }}" alt="custom sidebar content example"> + <figcaption>Example of custom sidebar content added as YAML Front Matter.</figcaption> +</figure> + +**Note:** Custom sidebar content added to a post or page's YAML Front Matter will appear below the author profile if enabled with `author_profile: true`. +{: .notice--info} + +### Custom Sidebar Navigation Menu + +To create a sidebar menu[^sidebar-menu] similar to the one found in the theme's documentation pages you'll need to modify a `_data` file and some YAML Front Matter. + +[^sidebar-menu]: Sidebar menu supports 1 level of nested links. + +<figure> + <img src="{{ '/assets/images/mm-custom-sidebar-nav.jpg' | absolute_url }}" alt="sidebar navigation example"> + <figcaption>Custom sidebar navigation menu example.</figcaption> +</figure> + +To start, add a new key to `_data/navigation.yml`. This will be referenced later in via YAML Front Matter so keep it short and memorable. In the case of the theme's documentation menu I used `docs`. + +**Sample sidebar menu links:** + +```yaml +docs: + - title: Getting Started + children: + - title: "Quick-Start Guide" + url: /docs/quick-start-guide/ + - title: "Structure" + url: /docs/structure/ + - title: "Installation" + url: /docs/installation/ + - title: "Upgrading" + url: /docs/upgrading/ + + - title: Customization + children: + - title: "Configuration" + url: /docs/configuration/ + - title: "Navigation" + url: /docs/navigation/ + - title: "UI Text" + url: /docs/ui-text/ + - title: "Authors" + url: /docs/authors/ + - title: "Layouts" + url: /docs/layouts/ + + - title: Content + children: + - title: "Working with Posts" + url: /docs/posts/ + - title: "Working with Pages" + url: /docs/pages/ + - title: "Working with Collections" + url: /docs/collections/ + - title: "Helpers" + url: /docs/helpers/ + - title: "Utility Classes" + url: /docs/utility-classes/ + + - title: Extras + children: + - title: "Stylesheets" + url: /docs/stylesheets/ + - title: "JavaScript" + url: /docs/javascript/ +``` + +Now you can pull these links into any page by adding the following YAML Front Matter. + +```yaml +sidebar: + nav: "docs" +``` + +**Note:** `nav: "docs"` references the `docs` key in `_data/navigation.yml` so make sure they match. +{: .notice--info} + +If you're adding a sidebar navigation menu to several pages the use of Front Matter Defaults is a better option. You can define them in `_config.yml` to avoid adding it to every page or post. + +**Sample sidebar nav default:** + +```yaml +defaults: + # _docs + - scope: + path: "" + type: docs + values: + sidebar: + nav: "docs" +``` + +--- + +## Social Sharing Links + +The `single` layout has an option to enable social links at the bottom of posts for sharing on Twitter, Facebook, Google+, and LinkedIn. Similar to the links found in the author sidebar, the theme ships with defaults for the most common social networks. + +![default social share link buttons]({{ "/assets/images/mm-social-share-links-default.png" | absolute_url }}) + +To enable these links add `share: true` to a post or page's YAML Front Matter or use a [default](https://jekyllrb.com/docs/configuration/#front-matter-defaults) in your `_config.yml` to apply more globally. + +If you'd like to add, remove, or change the order of these default links you can do so by editing [`_includes/social-share.html`](https://github.com/mmistakes/minimal-mistakes/blob/master/_includes/social-share.html). + +Let's say you wanted to replace the Google+ button with a Reddit one. Simply replace the HTML with the following: + +```html +{% raw %}<a href="https://www.reddit.com/submit?url={{ page.url | absolute_url }}&title={{ page.title }}" class="btn" title="{{ site.data.ui-text[site.locale].share_on_label }} Reddit"><i class="fa fa-fw fa-reddit" aria-hidden="true"></i><span> Reddit</span></a>{% endraw %} +``` + +The important parts to change are: + +1. Share point URL *eg. `https://www.reddit.com/submit?url=` +2. Link `title` +3. [Font Awesome icon](http://fontawesome.io/icons/) (`fa-` class) +4. Link label + +![Reddit social share link button]({{ "/assets/images/mm-social-share-links-reddit-gs.png" | absolute_url }}) + +To change the color of the button use one of the built in [utility classes]({{ "/docs/utility-classes/#buttons" | absolute_url }}). Or you can create a new button class to match whatever color you want. + +Under the `$social` color map in `assets/_scss/_buttons.scss` simply add a name (this will be appened to `btn--`) that matches the new button class. In our case `reddit` ~> `.btn--reddit`. + +```scss +$social: +(facebook, $facebook-color), +(twitter, $twitter-color), +(google-plus, $google-plus-color), +(linkedin, $linkedin-color); +(reddit, #ff4500;) +``` + +**ProTip:** For bonus points you can add it as a Sass `$variable` that you set in `_variables.scss` like the other ["brand" colors](http://brandcolors.net/). +{: .notice--info} + +Add the new `.btn--reddit` class to the `<a>` element from earlier, [compile `main.css`]({{ "/docs/stylesheets/" | absolute_url }}) and away you go. + +```html +{% raw %}<a href="https://www.reddit.com/submit?url={{ page.url | absolute_url }}&title={{ page.title }}" class="btn btn--reddit" title="{{ site.data.ui-text[site.locale].share_on_label }} Reddit"><i class="fa fa-fw fa-reddit" aria-hidden="true"></i><span> Reddit</span></a>{% endraw %} +``` + +![Reddit social share link button]({{ "/assets/images/mm-social-share-links-reddit-color.png" | absolute_url }}) diff --git a/docs/_docs/11-posts.md b/docs/_docs/11-posts.md new file mode 100644 index 00000000..f92c5cfb --- /dev/null +++ b/docs/_docs/11-posts.md @@ -0,0 +1,37 @@ +--- +title: "Working with Posts" +permalink: /docs/posts/ +excerpt: "Suggestions and Front Matter defaults for working with posts." +modified: 2016-11-03T11:12:40-04:00 +--- + +Posts are stored in the `_posts` directory and named according to the `YEAR-MONTH-DAY-title.MARKUP` format as per [the usual](https://jekyllrb.com/docs/posts/). + +Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. For example, the following are examples of valid post filenames: + +``` +2016-07-20-writing-jekyll-posts.md +2015-01-03-static-site-generators.markdown +``` + +**Recommended Front Matter Defaults:** + +```yaml +defaults: + # _posts + - scope: + path: "" + type: posts + values: + layout: single + author_profile: true + read_time: true + comments: true + share: true + related: true +``` + +Adding the above to `_config.yml` will assign the `single` layout and enable: *author profile*, *reading time*, *comments*, [*social sharing links*]({{ "/docs/layouts/#social-sharing-links" | absolute_url }}), and *related posts*, for all posts. + +**ProTip:** Remember to write unique `excerpt` descriptions for each post for improved SEO and archive listings. +{: .notice--info} \ No newline at end of file diff --git a/docs/_docs/12-pages.md b/docs/_docs/12-pages.md new file mode 100644 index 00000000..41c7258b --- /dev/null +++ b/docs/_docs/12-pages.md @@ -0,0 +1,43 @@ +--- +title: "Working with Pages" +permalink: /docs/pages/ +excerpt: "Suggestions and Front Matter defaults for working with pages." +modified: 2016-11-03T11:13:12-04:00 +--- + +To better organize all of your pages you can centralize them into a single location similar to posts and collections. + +**Step 1:** Start by placing pages (`.md` or `.html` files) into a `_pages` directory. Meaningfully naming files should be the goal. Avoid patterns like `/about/index.md` as it makes distinguishing between multiple `index.md` files harder. + +```bash +sample-project +└── _pages/ + ├── 404.md # custom 404 page + ├── about.md # about page + └── contact.md # contact page +``` + +**Step 2:** Include pages to be sure Jekyll "sees" and processes the files inside of `_pages`. Add `include: ["_pages"]` to `_config.yml`. + +**Step 3:** Assign permalink overrides in the YAML Front Matter of each. + +Examples: + +| filename | permalink | +| -------- | --------- | +| _pages/about.md | `permalink: /about/` | +| _pages/home.md | `permalink: /` | +| _pages/contact.md | `permalink: /contact/` | + +**Recommended Front Matter Defaults:** + +```yaml +defaults: + # _pages + - scope: + path: "" + type: pages + values: + layout: single + author_profile: true +``` \ No newline at end of file diff --git a/docs/_docs/13-collections.md b/docs/_docs/13-collections.md new file mode 100644 index 00000000..1cb112eb --- /dev/null +++ b/docs/_docs/13-collections.md @@ -0,0 +1,46 @@ +--- +title: "Working with Collections" +permalink: /docs/collections/ +excerpt: "Suggestions and Front Matter defaults for working with collections." +modified: 2016-11-03T11:13:38-04:00 +--- + +Collections like posts and pages work as you'd expect. If you're new to them be sure to read [Jekyll's documentation](https://jekyllrb.com/docs/collections/). + +The theme has been built with collections in mind and you will find [several examples]({{ "/collection-archive/" | absolute_url }}) on the demo site ([portfolio]({{ "/portfolio/" | absolute_url }}), [recipes]({{ "/recipes/" | absolute_url }}), pets). + +**Collections in the Wild:** This set of documentation is also [built as a collection](https://github.com/{{ site.repository }}/blob/master/docs/_docs/) if you're looking for a fully fleshed out example to inspect. +{: .notice--info} + +--- + +A popular use case for collections is to build a portfolio section as part of one's personal site. Let's quickly walk through the steps to do that. + +**Step 1:** Configure the portfolio collection by adding the following to `_config.yml`. + +```yaml +collections: + portfolio: + output: true + permalink: /:collection/:path/ +``` + +These settings essentially say output `index.html` files for each portfolio document in `_portfolio` at `_site/portfolio/<document-filename>/`. + +Just like posts and pages you'll probably want to set some defaults for the Front Matter: + +```yaml +defaults: + # _portfolio + - scope: + path: "" + type: portfolio + values: + layout: single + author_profile: false + share: true +``` + +And then create portfolio content like [`_portfolio/foo-bar-website.md`](https://github.com/{{ site.repository }}/blob/master/docs/_portfolio/foo-bar-website.md), to end up with something like this. + +![portfolio collection example]({{ "/assets/images/mm-portfolio-collection-example.jpg" | absolute_url }}) \ No newline at end of file diff --git a/docs/_docs/14-helpers.md b/docs/_docs/14-helpers.md new file mode 100644 index 00000000..f30141b4 --- /dev/null +++ b/docs/_docs/14-helpers.md @@ -0,0 +1,256 @@ +--- +title: "Helpers" +permalink: /docs/helpers/ +excerpt: "Jekyll `_includes` and other helpers to use as shortcuts for creating archives, galleries, table of contents, and more." +gallery: + - url: /assets/images/unsplash-gallery-image-1.jpg + image_path: /assets/images/unsplash-gallery-image-1-th.jpg + alt: "placeholder image 1" + title: "Image 1 title caption" + - url: /assets/images/unsplash-gallery-image-2.jpg + image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Image 2 title caption" + - url: /assets/images/unsplash-gallery-image-3.jpg + image_path: /assets/images/unsplash-gallery-image-3-th.jpg + alt: "placeholder image 3" + title: "Image 3 title caption" +feature_row: + - image_path: /assets/images/unsplash-gallery-image-1-th.jpg + alt: "placeholder image 1" + title: "Placeholder 1" + excerpt: "This is some sample content that goes here with **Markdown** formatting." + - image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Placeholder 2" + excerpt: "This is some sample content that goes here with **Markdown** formatting." + url: "#test-link" + btn_label: "Read More" + btn_class: "btn--inverse" + - image_path: /assets/images/unsplash-gallery-image-3-th.jpg + title: "Placeholder 3" + excerpt: "This is some sample content that goes here with **Markdown** formatting." +modified: 2016-11-03T11:15:48-04:00 +--- + +{% include toc icon="gears" title="Helpers" %} + +You can think of these Jekyll helpers as little shortcuts. Since GitHub Pages doesn't allow most plugins --- [custom tags](https://jekyllrb.com/docs/plugins/#tags) are out. Instead the theme leverages [**includes**](https://jekyllrb.com/docs/templates/#includes) to do something similar. + +## Base Path + +**Deprecated**. Use `absolute_url` filter instead. + +Instead of repeating `{% raw %}{{ site.url }}{{ site.baseurl }}{% endraw %}` over and over again to create absolute URLs, you can use `{% raw %}{{ base_path }}{% endraw %}` instead. Simply add `{% raw %}{% include base_path %}{% endraw %}` to layouts, posts, pages, collections, or other includes and you're good to go. + +**ProTip:** It's a good practice to use absolute URL paths for assets (especially post images) so they correctly resolve in the site's XML feeds. Example: `{% raw %}{{ "/assets/images/filename.jpg" | absolute_url }}{% endraw %}` ~> `https://yourdoamin.com/assets/images/filename.jpg` +{: .notice--info} + +## Group by Array + +[Jekyll Group-By-Array](https://github.com/mushishi78/jekyll-group-by-array) by Max White. + + A liquid include file for Jekyll that allows an object to be grouped by an array. + +The Liquid based taxonomy archives found amongst the demo pages rely on this helper. + +| Description | | | +| ----------- | ------------------------ | --------------------------- | +| All posts grouped by category | [Source][category-array] | [Demo][category-array-demo] | +| All posts grouped by tags | [Source][tag-array] | [Demo][tag-array-demo] | + +[category-array]: https://github.com/{{ site.repository }}/blob/master/docs/_pages/category-archive.html +[category-array-demo]: {{ "/categories/" | absolute_url }} +[tag-array]: https://github.com/{{ site.repository }}/blob/master/docs/_pages/tag-archive.html +[tag-array-demo]: {{ "/tags/" | absolute_url }} + +## Gallery + +Generate a `<figure>` element with optional caption of arrays with two or more images. + +To place a gallery add the necessary YAML Front Matter. + +| Name | Required | Description | +| ---- | -------- | ----------- | +| **url** | Optional | URL to link gallery image to (eg. a larger detail image). | +| **image_path** | **Required** | Full path to image eg: `assets/images/filename.jpg`. Use absolute URLS for those hosted externally. | +| **alt** | Optional | Alternate text for image. | +| **title** | Optional | Title text for image. Will display as a caption in a Magnific Popup overlay when linked to a larger image with `url`. | + +```yaml +gallery: + - url: /assets/images/unsplash-gallery-image-1.jpg + image_path: /assets/images/unsplash-gallery-image-1-th.jpg + alt: "placeholder image 1" + title: "Image 1 title caption" + - url: /assets/images/unsplash-gallery-image-2.jpg + image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Image 2 title caption" + - url: /assets/images/unsplash-gallery-image-3.jpg + image_path: /assets/images/unsplash-gallery-image-3-th.jpg + alt: "placeholder image 3" + title: "Image 3 title caption" +``` + +And then drop-in the gallery include in the body where you'd like it to appear. + +| Include Parameter | Required | Description | Default | +| ----------------- | -------- | ----------- | ------- | +| **id** | Optional | To add multiple galleries to a document uniquely name them in the YAML Front Matter and reference in `{% raw %}{% include gallery id="gallery_id" %}{% endraw %}` | `gallery` | +| **class** | Optional | Use to add a `class` attribute to the surrounding `<figure>` element for additional styling needs. | | +| **caption** | Optional | Gallery caption description. Markdown is allowed. | | + +```liquid +{% raw %}{% include gallery caption="This is a sample gallery with **Markdown support**." %}{% endraw %} +``` + +**Gallery example with caption:** + +{% include gallery caption="This is a sample gallery with **Markdown support**." %} + +**More Gallery Goodness:** A few more examples and [source code](https://github.com/{{ site.repository }}/blob/master/docs/_posts/2010-09-09-post-gallery.md) can be seen in [this sample gallery post]({{ "" | absolute_url }}{% post_url 2010-09-09-post-gallery %}). +{: .notice--info} + +## Feature Row + +Designed to compliment the [`splash`]({{ "/docs/layouts/#splash-page-layout" | absolute_url }}) page layout as a way of arranging and aligning "feature blocks" containing text or image. + +To add a feature row containing three content blocks with text and image, add the following YAML Front Matter + +| Name | Required | Description | Default | +| ---- | ----------- | ----------- | ------- | +| **image_path** | **Required** | Full path to image eg: `assets/images/filename.jpg`. Use absolute URLS for those hosted externally. | | +| **alt** | Optional | Alternate text for image. | | +| **title** | Optional | Content block title. | | +| **excerpt** | Optional | Content block excerpt text. Markdown is allowed. | | +| **url** | Optional | URL that the button should link to. | | +| **btn_label** | Optional | Button text label. | `more_label` in UI Text data file. | +| **btn_class** | Optional | Button style. See [utility classes]({{ "/docs/utility-classes/#buttons" | absolute_url }}) for options. | `btn` | + +```yaml +feature_row: + - image_path: /assets/images/unsplash-gallery-image-1-th.jpg + alt: "placeholder image 1" + title: "Placeholder 1" + excerpt: "This is some sample content that goes here with **Markdown** formatting." + - image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Placeholder 2" + excerpt: "This is some sample content that goes here with **Markdown** formatting." + url: "#test-link" + btn_label: "Read More" + btn_class: "btn--inverse" + - image_path: /assets/images/unsplash-gallery-image-3-th.jpg + title: "Placeholder 3" + excerpt: "This is some sample content that goes here with **Markdown** formatting." +``` + +And then drop-in the feature row include in the body where you'd like it to appear. + +| Include Parameter | Required | Description | Default | +| ----------------- | -------- | ----------- | ------- | +| **id** | Optional | To add multiple rows to a document uniquely name them in the YAML Front Matter and reference in `{% raw %}{% include feature_row id="row2" %}{% endraw %}` | `feature_row` | +| **type** | Optional | Alignment of the featured blocks in the row. Options include: `left`, `center`, or `right` aligned. | | + +```liquid +{% raw %}{% include feature_row %}{% endraw %} +``` + +{% include feature_row %} + +**More Feature Row Goodness:** A [few more examples]({{ "/splash-page/" | absolute_url }}) and [source code](https://github.com/{{ site.repository }}/blob/master/docs/_pages/splash-page.md) can be seen in the demo site. +{: .notice--info} + +## Table of Contents + +To include an [auto-generated table of contents](http://kramdown.rubyforge.org/converter/html.html#toc) for posts and pages, add the following helper before any actual content in your post or page. + +```liquid +{% raw %}{% include toc %}{% endraw %} +``` + +![table of contents example]({{ "/assets/images/mm-toc-helper-example.jpg" | absolute_url }}) + +| Parameter | Required | Description | Default | +| --------- | -------- | ----------- | ------- | +| **title** | Optional | Table of contents title. | `toc_label` in UI Text data file. | +| **icon** | Optional | Table of contents icon (shows before the title). | [Font Awesome](https://fortawesome.github.io/Font-Awesome/icons/) <i class="fa fa-file-text"></i> **file-text** icon. Any other FA icon can be used instead. | + +**TOC example with custom title and icon** + +```liquid +{% raw %}{% include toc icon="gears" title="My Table of Contents" %}{% endraw %} +``` + +## Navigation List + +Include an unordered list of links to be used as sidebar navigation with the `nav_list` helper. + +**1.** Start by adding a set of titles and URLs to `_data/navigation.yml` in the same way the [`main` navigation]({{ "/docs/navigation/" | absolute_url }}) is built. + +`foo` navigation example: + +```yaml +# _data/navigation.yml +foo: + - title: "Link 1 Title" + url: /link-1-page-url/ + + - title: "Link 2 Title" + url: http://external-link.com + + - title: "Link 3 Title" + url: /link-3-page-url/ + + - title: "Link 4 Title" + url: /link-4-page-url/ +``` + +For a navigation list that has child pages you'd structure the YAML like this: + +```yaml +# _data/navigation.yml +foo: + - title: "Parent Link 1" + url: /parent-1-page-url/ + children: + - title: "Child Link 1" + url: /child-1-page-url/ + - title: "Child Link 2" + url: /child-2-page-url/ + + - title: "Parent Link 2" + url: /parent-2-page-url/ + children: + - title: "Child Link 1" + url: /child-1-page-url/ + - title: "Child Link 2" + url: /child-2-page-url/ + - title: "Child Link 3" + url: /child-3-page-url/ +``` + +**2:** On the page(s) you'd like the `foo` sidebar nav add the following YAML Front Matter, referencing the same key name. + +```yaml +sidebar: + nav: "foo" +``` + +**ProTip:** If you're applying the same navigation list to several pages setting it as a [Front Matter default](https://jekyllrb.com/docs/configuration/#front-matter-defaults) is the better option. +{: .notice--info} + +The theme's documentation is built with the `nav_list` helper so if you'd like an example to dissect take a look at `navigation.yml`, `_config.yml` and `_doc` collection in the [`/docs/`] folder(https://github.com/{{ site.repository }}/tree/master/docs/) of this repo. + +To add a navigation list to a post or page's main content instead of the sidebar use the include this way: + +```liquid +{% raw %}{% include nav_list nav="foo" %}{% endraw %} +``` + +{% include nav_list nav="foo" %} + +| Parameter | Required | Description | +| --------- | -------- | ----------- | +| items | **Required** | Name of the links array found in `_data/navigation.yml`. | \ No newline at end of file diff --git a/docs/_docs/15-utility-classes.md b/docs/_docs/15-utility-classes.md new file mode 100644 index 00000000..3ee4861c --- /dev/null +++ b/docs/_docs/15-utility-classes.md @@ -0,0 +1,175 @@ +--- +title: "Utility Classes" +permalink: /docs/utility-classes/ +excerpt: "CSS classes for aligning text/image, styling buttons and notices, and more." +modified: 2016-11-03T11:32:25-04:00 +--- + +{% include toc icon="gears" title="Utility Classes" %} + +Using the Kramdown Markdown renderer with Jekyll allows you to add [block](http://kramdown.gettalong.org/quickref.html#block-attributes) and [inline attributes](http://kramdown.gettalong.org/quickref.html#inline-attributes). This is nice if you want to add custom styling to text and image, and still write in Markdown. + +**Jekyll 3:** Kramdown is the default for `jekyll new` sites and those hosted on GitHub Pages. Not using Kramdonw? That's OK. The following classes are still available when used with standard HTML. +{: .notice--warning} + +## Text Alignment + +Align text blocks with the following classes. + +Left aligned text `.text-left` +{: .text-left} + +```markdown +Left aligned text +{: .text-left} +``` + +--- + +Center aligned text. `.text-center` +{: .text-center} + +```markdown +Center aligned text. +{: .text-center} +``` + +--- + +Right aligned text. `.text-right` +{: .text-right} + +```markdown +Right aligned text. +{: .text-right} +``` + +--- + +**Justified text.** `.text-justify` Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vel eleifend odio, eu elementum purus. In hac habitasse platea dictumst. Fusce sed sapien eleifend, sollicitudin neque non, faucibus est. Proin tempus nisi eu arcu facilisis, eget venenatis eros consequat. +{: .text-justify} + +```markdown +Justified text. +{: .text-justify} +``` + +--- + +No wrap text. `.text-nowrap` +{: .text-nowrap} + +```markdown +No wrap text. +{: .text-nowrap} +``` + +## Image Alignment + +Position images with the following classes. + +![image-center]({{ "/assets/images/image-alignment-580x300.jpg" | absolute_url }}){: .align-center} + +The image above happens to be **centered**. + +```markdown +![image-center](/assets/images/filename.jpg){: .align-center} +``` + +--- + +![image-left]({{ "/assets/images/image-alignment-150x150.jpg" | absolute_url }}){: .align-left} The rest of this paragraph is filler for the sake of seeing the text wrap around the 150×150 image, which is **left aligned**. There should be plenty of room above, below, and to the right of the image. Just look at him there --- Hey guy! Way to rock that left side. I don't care what the right aligned image says, you look great. Don't let anyone else tell you differently. + +```markdown +![image-left](/assets/images/filename.jpg){: .align-left} +``` + +--- + +![image-right]({{ "/assets/images/image-alignment-300x200.jpg" | absolute_url }}){: .align-right} + +And now we're going to shift things to the **right align**. Again, there should be plenty of room above, below, and to the left of the image. Just look at him there --- Hey guy! Way to rock that right side. I don't care what the left aligned image says, you look great. Don't let anyone else tell you differently. + +```markdown +![image-right](/assets/images/filename.jpg){: .align-right} +``` + +--- + +![full]({{ "/assets/images/image-alignment-1200x4002.jpg" | absolute_url }}) +{: .full} + +The image above should extend outside of the parent container on right. + +```markdown +![full](/assets/images/filename.jpg) +{: .full} +``` + +## Buttons + +Make any link standout more when applying the `.btn` class. + +```html +<a href="#" class="btn">Link Text</a> +``` + +| Button Type | Example | Class | Kramdown | +| ------ | ------- | ----- | ------- | +| Default | [Text](#link){: .btn} | `.btn` | `[Text](#link){: .btn}` | +| Success | [Text](#link){: .btn .btn--success} | `.btn .btn--success` | `[Text](#link){: .btn .btn--success}` | +| Warning | [Text](#link){: .btn .btn--warning} | `.btn .btn--warning` | `[Text](#link){: .btn .btn--warning}` | +| Danger | [Text](#link){: .btn .btn--danger} | `.btn .btn--danger` | `[Text](#link){: .btn .btn--danger}` | +| Info | [Text](#link){: .btn .btn--info} | `.btn .btn--info` | `[Text](#link){: .btn .btn--info}` | +| Inverse | [Text](#link){: .btn .btn--inverse} | `.btn .btn--inverse` | `[Text](#link){: .btn .btn--inverse}` | +| Light Outline | [Text](#link){: .btn .btn--light-outline} | `.btn .btn--light-outline` | `[Text](#link){: .btn .btn--light-outline}` | + +| Button Size | Example | Class | Kramdown | +| ----------- | ------- | ----- | -------- | +| X-Large | [X-Large Button](#){: .btn .btn--x-large} | `.btn .btn--x-large` | `[Text](#link){: .btn .btn--x-large}` | +| Large | [Large Button](#){: .btn .btn--large} | `.btn .btn--large` | `[Text](#link){: .btn .btn--large}` | +| Default | [Default Button](#){: .btn} | `.btn` | `[Text](#link){: .btn}` | +| Small | [Small Button](#){: .btn .btn--small} | `.btn .btn--small` | `[Text](#link){: .btn .btn--small}` | + +## Notices + +Call attention to a block of text. + +| Notice Type | Class | +| ----------- | ----- | +| Default | `.notice` | +| Primary | `.notice--primary` | +| Info | `.notice--info` | +| Warning | `.notice--warning` | +| Success | `.notice--success` | +| Danger | `.notice--danger` | + +**Watch out!** This paragraph of text has been emphasized with the `{: .notice}` class. +{: .notice} + +**Watch out!** This paragraph of text has been emphasized with the `{: .notice--primary}` class. +{: .notice--primary} + +**Watch out!** This paragraph of text has been emphasized with the `{: .notice--info}` class. +{: .notice--info} + +**Watch out!** This paragraph of text has been emphasized with the `{: .notice--warning}` class. +{: .notice--warning} + +**Watch out!** This paragraph of text has been emphasized with the `{: .notice--success}` class. +{: .notice--success} + +**Watch out!** This paragraph of text has been emphasized with the `{: .notice--danger}` class. +{: .notice--danger} + +{% capture notice-text %} +You can also add the `.notice` class to a `<div>` element. + +* Bullet point 1 +* Bullet point 2 +{% endcapture %} + +<div class="notice--info"> + <h4>Notice Headline:</h4> + {{ notice-text | markdownify }} +</div> \ No newline at end of file diff --git a/docs/_docs/16-stylesheets.md b/docs/_docs/16-stylesheets.md new file mode 100644 index 00000000..b1360884 --- /dev/null +++ b/docs/_docs/16-stylesheets.md @@ -0,0 +1,133 @@ +--- +title: "Stylesheets" +permalink: /docs/stylesheets/ +excerpt: "Instructions for customizing and building the theme's stylesheets." +modified: 2016-11-03T11:34:42-04:00 +--- + +The theme's `assets/css/main.css` file is built from several SCSS partials located in [`_sass/`](https://github.com/mmistakes/minimal-mistakes/tree/master/_sass) and is structured as follows: + +```bash +minimal mistakes +├── _sass +| ├── vendor # vendor SCSS partials +| | ├── breakpoint # media query mixins +| | ├── font-awesome # Font Awesome icons +| | ├── magnific-popup # Magnific Popup lightbox +| | └── susy # Susy grid system +| ├── _animations.scss # animations +| ├── _archive.scss # archives (list, grid, feature views) +| ├── _base.scss # base HTML elements +| ├── _buttons.scss # buttons +| ├── _footer.scss # footer +| ├── _masthead.scss # masthead +| ├── _mixins.scss # mixins (em function, clearfix) +| ├── _navigation.scss # nav links (breadcrumb, priority+, toc, pagination, etc.) +| ├── _notices.scss # notices +| ├── _page.scss # pages +| ├── _print.scss # print styles +| ├── _reset.scss # reset +| ├── _sidebar.scss # sidebar +| ├── _syntax.scss # syntax highlighting +| ├── _tables.scss # tables +| ├── _utilities.scss # utility classes (text/image alignment) +| └── _variables.scss # theme defaults (fonts, colors, etc.) +├── assets +| ├── css +| | └── main.scss # main stylesheet, loads SCSS partials in _sass +``` + +## Customizing + +The variables and settings found in [`_sass/_variables.scss`](https://github.com/mmistakes/minimal-mistakes/blob/master/_sass/_variables.scss) can be used to modify the following aspects of the theme: + +### Paragraph Indention + +To mimic the look of type set in a printed book or manuscript you may want to enable paragraph indention. When `$paragraph-indent` is set to `true` indents are added to each sibling and the margin below each paragraph is removed. + +<figure> + <img src="{{ '/assets/images/mm-paragraph-indent-example.jpg' | absolute_url }}" alt="indented paragraph example"> + <figcaption>Example of indented paragraphs.</figcaption> +</figure> + +The size of the indent can also be customized by changing the value of `$indent-var`. + +### Font Stacks + +By default the theme uses [system fonts](https://medium.com/designing-medium/system-shock-6b1dc6d6596f#.rb81vgn7i) for all of the font stacks (serif, sans-serif, and monospace). This is done in part to provide a clean base for you to build off of and to improve performance since we aren't loading any custom webfonts[^font-awesome] by default. + +```scss +/* system typefaces */ +$serif : Georgia, Times, serif; +$sans-serif : -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; +$monospace : Monaco, Consolas, "Lucida Console", monospace; +``` + +[^font-awesome]: Apart from [Font Awesome](https://fortawesome.github.io/Font-Awesome/) icon webfonts. + +Sans-serif fonts have been used for most of the type, with serifs reserved for captions. If you wish to change this you'll need to poke around the various `SCSS` partials and modify `font-family` declarations. + +**ProTip:** To use webfonts from services like [Adobe TypeKit](https://typekit.com/) or [Google Fonts](https://www.google.com/fonts) simply update the font stacks and then add their scripts to `_includes/head/custom.html`. +{: .notice--info} + +#### Typography from Older Versions + +Not a fan of the refreshed typography of the theme and want to revert back an older version? Easy enough. + +**1.** Add this Google Fonts script to [`_includes/head/custom.html`](https://github.com/mmistakes/minimal-mistakes/blob/master/_includes/head/custom.html): + +```html +<link href="https://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700|PT+Serif:400,700,400italic" rel="stylesheet" type="text/css"> +``` + +**2.** Update the following variables in `/_sass/_variables.scss`: + +```scss +$serif : "PT Serif", Georgia, Times, serif; +$sans-serif-narrow : "PT Sans Narrow", $sans-serif; + +$global-font-family : $serif; +$header-font-family : $sans-serif-narrow; +``` + +### Type Scale + +Wherever possible type scale variables have been used instead of writing out fixed sizes. This makes updating much easier by changing values in one file, `_variables.scss`. + +Example: + +```scss +.page__lead { + font-family: $global-font-family; + font-size: $type-size-4; +} +``` + +Type sizes are set in ems to proportional scale as the screen size changes. Large headlines that look great on desktop monitors will shrink ever so slightly as to not be too big on mobile devices. To adjust this hierarchy simply edit the default values: + +```scss +/* type scale */ +$type-size-1 : 2.441em; // ~39.056px +$type-size-2 : 1.953em; // ~31.248px +$type-size-3 : 1.563em; // ~25.008px +$type-size-4 : 1.25em; // ~20px +$type-size-5 : 1em; // ~16px +$type-size-6 : 0.75em; // ~12px +$type-size-7 : 0.6875em; // ~11px +$type-size-8 : 0.625em; // ~10px +``` + +### Colors + +Change the mood of your site by altering a few color variables. `$body-color`, `$background-color`, `$text-color`, `$link-color`, and `$masthead-link-color` will have the most affect when changed. + +### Breakpoints and Grid Stuff + +Probably won't need to touch these, but they're there if you need to. Width variables are used with the [`@include breakpoint()`](http://breakpoint-sass.com/) mixin to adapt the design of certain elements. + +And `$susy` is used for setting [the grid](http://susy.oddbird.net/) the theme uses. Uncommenting the lines under `debug` can be useful if you want to show the columns when adjusting the layout. + +<figure> + <img src="{{ '/assets/images/mm-susy-grid-overlay.jpg' | absolute_url }}" alt="Susy grid overlay for debugging"> + <figcaption>Susy grid debug overlay enabled.</figcaption> +</figure> \ No newline at end of file diff --git a/docs/_docs/17-javascript.md b/docs/_docs/17-javascript.md new file mode 100644 index 00000000..7d204033 --- /dev/null +++ b/docs/_docs/17-javascript.md @@ -0,0 +1,48 @@ +--- +title: "JavaScript" +permalink: /docs/javascript/ +excerpt: "Instructions for customizing and building the theme's scripts." +modified: 2016-11-03T11:35:42-04:00 +--- + +The theme's [`assets/js/main.min.js`] script is built from several vendor, jQuery plugins, and other scripts found in [`assets/js/`](https://github.com/mmistakes/minimal-mistakes/tree/master/assets/js). + +```bash +minimal mistakes +├── assets +| ├── js +| | ├── plugins +| | | ├── jquery.fitvids.js # fluid width video embeds +| | | ├── jquery.greedy-navigation.js # priority plus navigation +| | | ├── jquery.magnific-popup.js # responsive lightbox +| | | ├── jquery.smooth-scroll.min.js # make same-page links scroll smoothly +| | | └── stickyfill.min.js # `position: sticky` polyfill +| | ├── vendor +| | | └── jquery +| | | └── jquery-1.12.1.min.js +| | ├── _main.js # jQuery plugin settings and other scripts +| | └── main.min.js # concatenated and minified scripts +``` + +## Customizing + +To modify or add your own scripts include them in [`assets/js/_main.js`](https://github.com/mmistakes/minimal-mistakes/blob/master/assets/js/_main.js) and then rebuild using `npm run build:js`. See below for more details. + +If you add additional scripts to `assets/js/plugins/` and would like them concatenated with the others, be sure to update the `uglify` script in [`package.json`](https://github.com/mmistakes/minimal-mistakes/blob/master/package.json). Same goes for scripts that you remove. + +--- + +## Build Process + +In an effort to reduce dependencies a set of [**npm scripts**](https://css-tricks.com/why-npm-scripts/) are used to build `main.min.js` instead of task runners like [Gulp](http://gulpjs.com/) or [Grunt](http://gruntjs.com/). If those tools are more your style then by all means use them instead :wink:. + +To get started: + +1. Install [Node.js](http://nodejs.org/). +2. `cd` to the root of your project. +3. Install all of the dependencies by running `npm install`. + +**Note:** If you upgraded from a previous version of the theme be sure you copied over [`package.json`](https://github.com/{{ site.repository }}/blob/master/package.json) prior to running `npm install`. +{: .notice--warning} + +If all goes well, running `npm run build:js` will compress/concatenate `_main.js` and all plugin scripts into `main.min.js`. \ No newline at end of file diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md new file mode 100644 index 00000000..47cc6059 --- /dev/null +++ b/docs/_docs/18-history.md @@ -0,0 +1,611 @@ +--- +title: "History" +permalink: /docs/history/ +excerpt: "Change log of enhancements and bug fixes made to the theme." +sidebar: + nav: docs +modified: 2016-11-03T09:49:02-04:00 +--- + +## [4.0.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.0.4) + +### Enhancements + +- "Gemify" theme ~> `gem "minimal-mistakes-jekyll"` +- Replace `base_path` include with `absolute_url` filter where possible. +- Allow images to be placed in other folders. Remove `/images/` only restriction and encourage placement in `/assets/images/` instead. **Full paths are now required. If upgrading from MM 3.4 add `/images/` before filenames in Front Matter and `_config.yml` variables.** +- Add [home `layout`](https://github.com/mmistakes/minimal-mistakes/blob/master/_layouts/home.html) +- Added missing Turkish translations for UI text. [#621](https://github.com/mmistakes/minimal-mistakes/pull/621) +- Make author avatar optional in sidebar. +- Update **/_includes/seo.html** for meta description. [#558](https://github.com/mmistakes/minimal-mistakes/pull/558) + +### Bug Fixes + +- Fix navigation bar animation "flicker" in Safari [#568](https://github.com/mmistakes/minimal-mistakes/issues/568) +- Fix `author.avatar` paths for externally hosted images. + +### Maintenance + +- Add documentation around `gem "minimal-mistakes-jekyll"` installation and use. +- Add note about using full image paths for eg. `assets/images/filename.jpg` (header images, overlays, galleries, feature rows, etc.) instead of assuming they will always be in `/images/`. +- Add "[Overriding Theme Defaults](https://mmistakes.github.io/minimal-mistakes/docs/overriding-theme-defaults/)" page to documentation. + +## [3.4.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.8) + +### Enhancements + +- Improve type readability for larger viewports by bumping up base `font-size`. [#533](https://github.com/mmistakes/minimal-mistakes/issues/533) +- Update Portuguese localized UI text. [#541](https://github.com/mmistakes/minimal-mistakes/pull/541) +- Add `page.title` and via parameter to Twitter share link. [#538](https://github.com/mmistakes/minimal-mistakes/pull/538) + +### Bug Fixes + +- Fix Last.fm author profile URL. [#540](https://github.com/mmistakes/minimal-mistakes/pull/540) + +### Maintenance + +- Move Brazilian Portuguese localized text under `pt-BR` key. + +## [3.4.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.7) + +### Enhancements + +- Add `layout` based and user-defined class names to `<body>` element for added CSS hooks. [#526](https://github.com/mmistakes/minimal-mistakes/pull/526) +- Add simplified Chinese localized UI text. [#532](https://github.com/mmistakes/minimal-mistakes/pull/532) + +### Bug Fixes + +- Remove duplicate include of `base_path` in category-list.html [#522](https://github.com/mmistakes/minimal-mistakes/pull/522) + +## [3.4.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.6) + +### Enhancements + +- Add Italian "comments" related localized UI text. [#514](https://github.com/mmistakes/minimal-mistakes/pull/514) + +### Bug Fixes + +- Disable `compress` HTML layout by default. To enable add `layout: compress` to `_layouts/default.html`. + +## [3.4.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.5) + +### Enhancements + +- Improve line numbered code block styling when using `{% raw %}{% highlight linenos %}{% endraw %}` tag. [#513](https://github.com/mmistakes/minimal-mistakes/issues/513) +- Add English fallback to "Follow" button label. [#496](https://github.com/mmistakes/minimal-mistakes/pull/496) + +### Bug Fixes + +- Fix Firefox alignment issues with code blocks generated with the `{% raw %}{% highlight %}{% endraw %}` tag. [#512](https://github.com/mmistakes/minimal-mistakes/issues/512) + +### Maintenance + +- Clarified comment for `author.stackoverflow` value used in author sidebar links. [#487](https://github.com/mmistakes/minimal-mistakes/pull/487) +- Add list of localized text strings. [#488](https://github.com/mmistakes/minimal-mistakes/pull/488) +- Add `{% raw %}{% highlight %}{% endraw %}` code block examples to demo site. +- Add documentation for using custom sidebar navigation menus. [#476](https://github.com/mmistakes/minimal-mistakes/issues/476) + +## [3.4.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.4) + +### Enhancements + +- Add French "comments" related localized UI text. [#472](https://github.com/mmistakes/minimal-mistakes/pull/472) + +### Bug Fixes + +- Exclude `vendor` in Jekyll config file. +- Fix Liquid syntax error for offending parenthesis. [#479](https://github.com/mmistakes/minimal-mistakes/issues/479) + +### Maintenance + +- Update gems: `colorator` (1.1.0), `forwardable-extended` (2.6.0), `github-pages` (93), `jekyll` (= 3.2.1), `minima` (= 1.0.1). + +## [3.4.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.3) + +### Enhancements + +- Make ["honeypot" `input`](https://github.com/mmistakes/minimal-mistakes/commit/06a8249a69a37dddda7e2a5bfbe32056c1a9a607) in Staticman comment form less obvious to spam bots +- Add padding to `.highlight` code blocks to better [align `overflow` scrollbar](https://github.com/mmistakes/minimal-mistakes/commit/e4abec0a6f7f8cff72505ca0754615df294fd5b3) to the bottom. +- Add additional image options for Twitter card social sharing meta tags. [#466](https://github.com/mmistakes/minimal-mistakes/pull/466) +- Add structured data markup for Staticman comments. [#458](https://github.com/mmistakes/minimal-mistakes/issues/458) + +### Bug Fixes + +- Format `og:locale` tag with `_` instead of `-`. [#462](https://github.com/mmistakes/minimal-mistakes/issues/462) + +### Maintenance + +- Add note to docs about using `url: http://localhost:4000` when working locally. + +## [3.4.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.2) + +### Enhancements + +- Improve UX of static comment forms. [#448](https://github.com/mmistakes/minimal-mistakes/issues/448) + +## [3.4.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.1) + +### Enhancements + +- Add `staticman.filename` configuration with UNIX timestamp for sorting data files. example ~> `comment-1470943149`. + +### Bug Fixes + +- Don't add `<a>` to author name if URL is blank. + +## [3.4.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.0) + +### Enhancements + +- Support static-based commenting via [Staticman](https://staticman.net/) for sites hosted with GitHub Pages. [#424](https://github.com/mmistakes/minimal-mistakes/issues/424) + +## [3.3.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.7) + +### Bug Fixes + +- Re-enabled Jekyll plugins in `_config.yml` in case they aren't autoloaded in `Gemfile`. [#417](https://github.com/mmistakes/minimal-mistakes/issues/417) + +### Enhancements + +- Fallback to `site.github.url` for use in `{{ base_path }}` when `site.url` is `nil`. +- Replace Sass and Autoprefixer `npm` build scripts with [Jekyll's built-in asset support](https://jekyllrb.com/docs/assets/). [#333](https://github.com/mmistakes/minimal-mistakes/issues/333) + +### Maintenance + +- Document `site.repository` and its role with [`github-metadata`](https://github.com/jekyll/github-metadata) gem. +- Add sample [archive page with content](https://mmistakes.github.io/minimal-mistakes/archive-layout-with-content/) for testing styles on demo site. + +## [3.3.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.6) + +### Bug Fixes + +- Fix blank `site.teaser` bug [#412](https://github.com/mmistakes/minimal-mistakes/issues/412) + +## [3.3.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.5) + +### Enhancements + +- Add English default text `site.locale` strings [#407](https://github.com/mmistakes/minimal-mistakes/issues/407) +- Add Portuguese localized UI text. [#411](https://github.com/mmistakes/minimal-mistakes/pull/411) +- Add Italian localized UI text. [#409](https://github.com/mmistakes/minimal-mistakes/pull/409) + +### Maintenance + +- Remove unused Google AdSense variables in `_config.yml` [#404](https://github.com/mmistakes/minimal-mistakes/issues/404) +- Update `Gemfile` instructions for using `github-pages` vs. native `jekyll` gems. +- Disable `gems:` in `_config.yml` and enable plugins with Bundler instead. +- Add `repository` to `_config.yml` to suppress GitHub Pages error `Liquid Exception: No repo name found.` + +## [3.3.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.4) + +### Enhancements + +- Add support for configurable feed URL to use a service like FeedBurner instead of linking directly to `feed.xml` in `<head>` and the site footer. [#378](https://github.com/mmistakes/minimal-mistakes/issues/378), [#379](https://github.com/mmistakes/minimal-mistakes/pull/379), [#406](https://github.com/mmistakes/minimal-mistakes/pull/406) +- Add Turkish localized UI text. [#403](https://github.com/mmistakes/minimal-mistakes/pull/403) + +### Maintenance + +- Update gems: `activesupport` (4.2.7), `ffi` (1.9.14), `github-pages` (88), `jekyll-redirect-from` (0.11.0), `jekyll-watch` (1.5.0). + +## [3.3.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.3) + +### Enhancements + +- Make footer stick to the bottom of the page. + +### Bug Fixes + +- Fix `gallery` size bug [#402](https://github.com/mmistakes/minimal-mistakes/issues/402) + +### Maintenance + +- Set default `lang` to `en`. + +### Enhancements + +- Make footer stick to the bottom of the page. + +### Bug Fixes + +- Fix `gallery` size bug [#402](https://github.com/mmistakes/minimal-mistakes/issues/402) + +### Maintenance + +- Set default `lang` to `en`. + +## [3.3.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.2) + +### Bug Fixes + +- Fix JavaScript that triggers "sticky" sidebar to avoid layout issues on screen sizes < `1024px`. [#396](https://github.com/mmistakes/minimal-mistakes/issues/396) + +## [3.3.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.1) + +### Enhancements + +- Enable image popup on < 500px wide screens. [#385](https://github.com/mmistakes/minimal-mistakes/issues/385) +- Indicate the relationship between component URLs in a paginated series by applying `rel="prev"` and `rel="next"` to pages that use `site.paginator`. [#253](https://github.com/mmistakes/minimal-mistakes/issues/253) +- Improve link posts in archive listings. [#276](https://github.com/mmistakes/minimal-mistakes/issues/276) + +### Maintenance + +- Update gems: `github-pages` (86), `ffi` 1.9.13, `jekyll-mentions` 1.1.3, and `rouge` 1.11.1 +- Fix note about custom sidebar content appearing below author profile. [#388](https://github.com/mmistakes/minimal-mistakes/issues/388) + +## [3.2.13](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.13) + +### Enhancement + +- Add English default UI text for Canada, Great Britain, and Australia. [#377](https://github.com/mmistakes/minimal-mistakes/issues/377) +- Switch default locale from `en-US` to `en`. + +## [3.2.12](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.12) + +### Enhancements + +- Remove window width "magic number" from sticky sidebar check in `main.js` for improved flexibility. [#375](https://github.com/mmistakes/minimal-mistakes/pull/375) + +### Bug Fixes + +- Fix author override conditional where a missing `authors.yml` would show broken sidebar content. Defaults to `site.author`. [#376](https://github.com/mmistakes/minimal-mistakes/pull/376) + +## [3.2.11](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.11) + +### Bug Fixes + +- Fix disappearing author sidebar links [#372](https://github.com/mmistakes/minimal-mistakes/issues/372) + +### Maintenance + +- Update gems: `github-pages` (84), `jekyll-github-metadata` 2.0.2, and `kramdown` 1.11.1 +- Update vendor JavaScript: jQuery 1.12.4, Stickyfill.js 1.1.4 +- Update Font Awesome 4.6.3 + +## [3.2.10](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.10) + +### Maintenance + +- Add `CONTRIBUTING.md` + +## [3.2.9](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.9) + +### Enhancements + +- Add support for [header overlay images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#header-overlay) for Open Graph images. [#358](https://github.com/mmistakes/minimal-mistakes/pull/358) + +### Bug Fixes + +- Fix `Person` typo Schema.org type [#358](https://github.com/mmistakes/minimal-mistakes/pull/358) + +### Maintenance + +- Update `github-pages` gem and dependencies. +- Remove `minutes_read` to avoid awkward reading time wording [#356](https://github.com/mmistakes/minimal-mistakes/issues/356) + +## [3.2.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.8) + +### Bug Fixes + +- Remove `cursor: pointer` that appears on white-space surrounding author side list items and links. [#354](https://github.com/mmistakes/minimal-mistakes/pull/354) + +### Maintenance + +- Add contributing information to `README.md`. [#357](https://github.com/mmistakes/minimal-mistakes/issues/357) + +## [3.2.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.7) + +### Enhancements + +- Add French localized UI text. [#346](https://github.com/mmistakes/minimal-mistakes/pull/346) + +### Bug Fixes + +- Fix branch logic for Yandex and Alexa in `seo.html`. [#348](https://github.com/mmistakes/minimal-mistakes/pull/348) + +## [3.2.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.6) + +### Bug Fixes + +- Fix error `Liquid Exception: divided by 0 in _includes/archive-single.html, included in _layouts/single.html` caused by null `words_per_minute` in `_config.yml`. [#345](https://github.com/mmistakes/minimal-mistakes/pull/345) + +## [3.2.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.5) + +### Bug Fixes + +- Fix link color in hero overlay to be white. +- Remove underlines from archive item titles. + +## [3.2.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.4) + +### Enhancements + +- Improve text alignment of masthead, hero overlay, page footer to be flush left and remove awkward white-space gaps. [#342](https://github.com/mmistakes/minimal-mistakes/issues/342) +- Add Spanish localized UI text. [#338](https://github.com/mmistakes/minimal-mistakes/pull/338) + +### Bug Fixes + +- Fix alignment of icons in author sidebar [#341](https://github.com/mmistakes/minimal-mistakes/issues/341) + +### Maintenance + +- Add background color to page footer to set it apart from main content. [#342](https://github.com/mmistakes/minimal-mistakes/issues/342) +- Add terms and privacy policy to theme's demo site. [#343](https://github.com/mmistakes/minimal-mistakes/issues/343) +- Update screenshots found in theme documentation. + +## [3.2.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.3) + +### Enhancement + +- Add [Discourse](https://www.discourse.org/) as a commenting provider [#335](https://github.com/mmistakes/minimal-mistakes/pull/335) + +## [3.2.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.2) + +### Enhancement + +- Add support for image captions in Magnific Popup overlays via the [`gallery`](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery) helper [#334](https://github.com/mmistakes/minimal-mistakes/issues/334) + +## [3.2.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.1) + +### Bug Fixes + +- Remove need for "double tapping" masthead menu links on iOS devices. [#315](https://github.com/mmistakes/minimal-mistakes/issues/315) + +### Maintenance + +- Add `ISSUE_TEMPLATE.md` for improve issue submission process. + +## [3.2.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.0) + +### Bug Fixes + +- Fix missing category/tag links in post footer due to possible conflict with `site.tags` and `site.categories`. [#329](https://github.com/mmistakes/minimal-mistakes/issues/329#issuecomment-222375568) + +## [3.1.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.8) + +### Bug Fixes + +- Fix `Liquid Exception: undefined method 'gsub' for nil:NilClass in _layouts/single.html` error when `page.title` is null. `<h1>` element is now conditional if `title: ` is not set for a `page` or collection item. [#312](https://github.com/mmistakes/minimal-mistakes/issues/312) + +### Maintenance + +- Remove duplicate `fa-twitter` and `fa-twitter-square` classes from `_utilities.scss`. [#302](https://github.com/mmistakes/minimal-mistakes/issues/302) + +- Document installing additional Jekyll gem dependencies when using `gem "jekyll"` instead of `gem "github-pages"` to avoid any errors on run. [#305](https://github.com/mmistakes/minimal-mistakes/issues/305) + +## [3.1.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.7) + +### Enhancement + +- Add translation key for "Recent Posts" used in home page `index.html`. [#316](https://github.com/mmistakes/minimal-mistakes/pull/316) + +### Maintenance + +- Small fix to avoid underlying the whitespace between icons and related text when hovering. [#303](https://github.com/mmistakes/minimal-mistakes/pull/303) + +## [3.1.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.6) + +### Maintenance + +- Update gem dependencies. Run `bundle` to update `Gemfile.lock`. + +## [3.1.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.5) + +### Maintenance + +- Fix `www` and `https` links in author profile include [#293](https://github.com/mmistakes/minimal-mistakes/pull/293) + +## [3.1.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.4) + +### Enhancements + +- Add `overlay_filter` param to hero headers [#298](https://github.com/mmistakes/minimal-mistakes/pull/298) + +## [3.1.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.3) + +### Enhancements + +- Improve `site.locale` documentation [#284](https://github.com/mmistakes/minimal-mistakes/issues/284) +- Remove ProTip note about protocol-less `site.url` as it is an anti-pattern [#288](https://github.com/mmistakes/minimal-mistakes/issues/288) + +### Bug Fixes + +- Fix `og_image` URL in seo.html [#277](https://github.com/mmistakes/minimal-mistakes/issues/277) +- Fix `author_profile` toggle when assigned in a `_layout` [#285](https://github.com/mmistakes/minimal-mistakes/issues/285) +- Fix typo in `build:all` npm script [#283](https://github.com/mmistakes/minimal-mistakes/pull/283) +- Fix URL typo documentation [#287](https://github.com/mmistakes/minimal-mistakes/issues/287) +- SEO author bug. If `twitter.username` is set and `author.twitter` is `nil` bad things happen. [#289](https://github.com/mmistakes/minimal-mistakes/issues/289) + +## [3.1.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.2) + +### Enhancement + +- Explain how to use `nav_list` helper in [documentation](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list). +- Reduce left/right padding on smaller screens to increase width of main content column. + +## [3.1.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.1) + +### Bug Fix + +- Fixed reading time bug when `words_per_minute` wasn't set in `_config.yml` [#271](https://github.com/mmistakes/minimal-mistakes/issues/271) + +## [3.1.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.0) + +### Enhancements + +- Updated [Font Awesome](https://fortawesome.github.io/Font-Awesome/whats-new/) to version 4.6.1 +- Added optional GitHub and Bitbucket links to footer if set on `site.author` in `_config.yml`. + +### Bug Fixes +- Fixed Bitbucket URL typo in author sidebar. + +## [3.0.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.0.3) + +### Enhancements + +- Rebuilt the entire theme: layouts, includes, stylesheets, scripts, you name it. +- Refreshed the look and feel while staying true to the original design of the theme (author sidebar/main content). +- Replaced grid system with [Susy](http://susy.oddbird.net/). +- Replaced Grunt tasks with `npm` scripts. +- Removed Google Fonts and replaced with system fonts to improve performance (they can be [added back](https://mmistakes.github.io/minimal-mistakes/docs/stylesheets/) if desired) +- Greatly improved [theme documentation](https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/). +- Increased the amount of sample posts, sample pages, and sample collections to throughly test the theme and edge-cases. +- Moved all sample content and assets out of `master` to keep it as clean as possible for forking. +- Added new layouts for `splash` pages, archives for [`jekyll-archives`](https://github.com/jekyll/jekyll-archives) if enabled, and [`compress.html`](https://github.com/penibelst/jekyll-compress-html) to improve performance. +- Added taxonomy links to posts (tags and categories). +- Added optional "reading time" meta data. +- Improved Liquid used for Twitter Cards and Open Graph data in `<head>`. +- Improved `gallery` include helper and added `feature_row` for use with splash page layout. +- Added Keybase.io, author web URI, and Bitbucket optional links to sidebar. +- Add `feed.xml` link to footer. +- Added a [UI text data file](https://mmistakes.github.io/minimal-mistakes/docs/ui-text/) to easily change all text found in the theme. +- Added LinkedIn to optional social share buttons. +- Added Facebook, Google+, and custom commenting options in addition to Disqus. +- Added optional breadcrumb links. + +## [2.2.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.2.1) + +## [2.2.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.2.0) + +### Enhancements + +- Add support for Jekyll 3.0 +- Minor updates to syntax highlighting CSS and theme documentation + +## [2.1.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.3) + +### Enhancements + +- Cleaner print styles that remove the top navigation, social sharing buttons, and other elements not needed when printed. + +## [2.1.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.2) + +### Enhancements + +- Add optional CodePen icon/url to author side bar [#156](https://github.com/mmistakes/minimal-mistakes/pull/156) +- Documented Stackoverflow username explanation in `_config.yml` [#157](https://github.com/mmistakes/minimal-mistakes/pull/157) +- Simplified Liquid in `post-index.html` to better handle year listings [#166](https://github.com/mmistakes/minimal-mistakes/pull/166) + +### Bug Fixes + +- Cleanup Facebook related Open Graph meta tags [#149](https://github.com/mmistakes/minimal-mistakes/issues/149) +- Corrected minor typos [#158](https://github.com/mmistakes/minimal-mistakes/pull/158) [#175](https://github.com/mmistakes/minimal-mistakes/issues/175) + +## [2.1.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.1) + +### Enhancements + +- Add optional XING profile link to author sidebar +- Include open graph meta tags for feature image (if assigned) [#149](https://github.com/mmistakes/minimal-mistakes/issues/149) +- Create an include for feed footer + +### Bug Fixes + +- Remove http protocol from Google search form on sample 404 page +- Only show related posts if there are one or more available +- Fix alignment of email address link in author sidebar + +## [2.1.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.0) + +### Enhancements + +- Add optional social sharing buttons ([#42](https://github.com/mmistakes/minimal-mistakes/issues/42)) + +![social sharing buttons](https://cloud.githubusercontent.com/assets/1376749/5860522/d9f28a96-a22f-11e4-9b83-940a3a9a766a.png) + +- Add Soundcloud, YouTube ([#95](https://github.com/mmistakes/minimal-mistakes/pull/95)), Flickr ([#119](https://github.com/mmistakes/minimal-mistakes/pull/119)), and Weibo ([#116](https://github.com/mmistakes/minimal-mistakes/pull/116)) icons for use in author sidebar. +- Fix typos in posts and documentation and remove references to Less +- Include note about Octopress gem being optional +- Post author override support extended to the Atom feed ([#71](https://github.com/mmistakes/minimal-mistakes/pull/71)) +- Only include email address in feed if specified in `_config.yml` or author `_data` +- Wrap all page content in `#main` to harmonize article and post index styles ([#86](https://github.com/mmistakes/minimal-mistakes/issues/86)) +- Include new sample feature images for posts and pages +- Table of contents improvements: fix collapse toggle, indent nested elements, show on small screens, and create an `_include` for reusing in posts and pages. +- Include note about running Jekyll with `bundle exec` when using Bundler +- Fix home page path in top navigation +- Remove Google Authorship ([#120](https://github.com/mmistakes/minimal-mistakes/issues/120)) +- Remove duplicate author content that displayed in `div.article-author-bottom` +- Removed unused `_sass/print.scss` styles +- Improve comments in `.scss` files + +## [2.0.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/v2.0) + +## [1.3.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.3.3) + +### Enhancements + +- Added new icons and profile links for Stackoverflow, Dribbble, Pinterest, Foursquare, and Steam to the author bio sidebar. +- Cleaned up the Kramdown auto table of contents styling to be more readable +- Removed page width specific .less stylesheets and created mixins for easier updating +- Removed Modernizr since it wasn't being used +- Added pages to sitemap.xml +- Added category: to rake new_post task +- Minor typographic changes + +### Bug Fixes + +- Corrected various broken links in README and Theme Setup. + +## [1.3.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.3.1) + +### Enhancements + +- Cleaned up table of contents styling +- Reworked top navigation to be a better experience on small screens. Nav items now display vertically when the menu button is tapped, revealing links with larger touch targets. + +![menu animation](https://camo.githubusercontent.com/3fbd8c1326485f4b1ab32c0005c0fca7660b5d31/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313337363734392f323136343037352f31653366303663322d393465372d313165332d383961612d6436623636376562306564662e676966) + +## [1.2.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.2.0) + +### Bug Fixes + +- Table weren't filling the entire width of the content container. They now scale at 100%. Thanks [@dhruvbhatia](https://github.com/dhruvbhatia) + +### Enhancements + +- Decreased spacing between Markdown footnotes +- Removed dark background on footer +- Removed UPPERCASE styling on post titles in the index listing + +## [1.1.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.4) + +### Bug Fixes + +- Fix top navigation bug issue ([#10](https://github.com/mmistakes/minimal-mistakes/issues/10)) for real this time. Remember to clear your floats kids. + +## [1.1.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.3) + +### Bug Fixes + +- Fix top navigation links that weren't click able on small viewports (Issue [#10](https://github.com/mmistakes/minimal-mistakes/issues/10)). +- Remove line wrap from top navigation links that may span multiple lines. + +## [1.1.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.2) + +### Enhancements + +- Added Grunt build script for compiling Less/JavaScript and optimizing image assets. +- Added support for large image summary Twitter card. +- Stylesheet adjustments + +## [1.1.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.1) + +### Bug Fixes + +- Removed [Typeplate](http://typeplate.com/) styles. Was [causing issues with newer versions of Less](https://github.com/typeplate/typeplate.github.io/issues/108) and is no longer maintained. + +### Enhancements + +- Added [image attribution](http://mmistakes.github.io/minimal-mistakes/theme-setup/#feature-images) for post and page feature images. +- Added [404 page](http://mmistakes.github.io/minimal-mistakes/404.html). +- Cleaned up various Less variables to better align with naming conventions used in other MM Jekyll themes. +- Removed Chrome Frame references. +- Added global CSS3 transitions to text and block elements. +- Improved typography in a few places. + +## [1.0.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/v1.0.2) + +### Enhancements + +- Google Analytics, Google Authorship, webmaster verifies, and Twitter card meta are now optional. + +## [1.0.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/v1.0.1) \ No newline at end of file diff --git a/docs/_docs/19-contributing.md b/docs/_docs/19-contributing.md new file mode 100644 index 00000000..37771fd4 --- /dev/null +++ b/docs/_docs/19-contributing.md @@ -0,0 +1,18 @@ +--- +title: "Contributing" +permalink: /docs/contributing/ +excerpt: "How you can contribute to make this theme better." +modified: 2016-11-03T11:37:14-04:00 +--- + +Having trouble working with the theme? Found a typo in the documentation? Interested in adding a feature or [fixing a bug](https://github.com/mmistakes/minimal-mistakes/issues)? Then by all means [submit an issue](https://github.com/mmistakes/minimal-mistakes/issues/new) or [pull request](https://help.github.com/articles/using-pull-requests/). If this is your first pull request, it may be helpful to read up on the [GitHub Flow](https://guides.github.com/introduction/flow/) first. + +Minimal Mistakes has been designed as a base for you to customize and fit your site's unique needs. Please keep this in mind when requesting features and/or submitting pull requests. If it's not something that most people will use, I probably won't consider it. When in doubt ask. + +This goes for author sidebar links and "share button" additions -- I have no intention of merging in every possibly option, the essentials are there to get you started :smile:. + +## Pull Requests + +To help me out try to avoid creating pull requests on `master` and instead branch off of `develop`. It's much easier for me to test, merge, and roll them into new releases this way. + +Theme documentation and demo pages can be found in the [`/docs`](https://github.com/{{ site.repository }}/blob/master/docs) if submitting improvements, typo corrections, etc. \ No newline at end of file diff --git a/docs/_docs/20-docs-2-2.md b/docs/_docs/20-docs-2-2.md new file mode 100644 index 00000000..c5393e2b --- /dev/null +++ b/docs/_docs/20-docs-2-2.md @@ -0,0 +1,301 @@ +--- +title: "2.2 Documentation" +permalink: /docs/docs-2-2/ +excerpt: "Setup and installation instructions for Minimal Mistakes 2.2 (deprecated)." +modified: 2016-04-13T15:54:02-04:00 +--- + +{% include toc %} + +## Installation + +Minimal Mistakes now requires [Jekyll](http://jekyllrb.com/) 3.0. Make sure to run `bundle update` if you aren't on the latest version to update all gem dependencies. + +If you are creating a new Jekyll site using Minimal Mistakes follow these steps: + +1. Fork the [Minimal Mistakes repo](http://github.com/mmistakes/minimal-mistakes/fork). +2. Clone the repo you just forked and rename it. +3. [Install Bundler](http://bundler.io) `gem install bundler` and Run `bundle install` to install all dependencies (Jekyll, [Jekyll-Sitemap](https://github.com/jekyll/jekyll-sitemap), [Octopress](https://github.com/octopress/octopress), etc) +4. Update `config.yml`, add navigation, and replace demo posts and pages with your own. Full details below. + +If you want to use Minimal Mistakes with an existing Jekyll site follow these steps: + +1. [Download Minimal Mistakes](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.2.1) and unzip. +2. Rename `minimal-mistakes-master` to something meaningful ie: `new-site` +3. Run `bundle install` to install all dependencies (Jekyll, [Jekyll-Sitemap](https://github.com/jekyll/jekyll-sitemap), [Octopress](https://github.com/octopress/octopress), etc) +4. Remove demo posts/pages and replace with your own posts, pages, and any other content you want to move over. +5. Update posts' and pages' YAML to match variables used by Minimal Mistakes. Full details below. +6. Update `_config.yml` and add navigation links. Full details below. + +**Pro-tip:** Delete the `gh-pages` branch after cloning and start fresh by branching off `master`. There is a bunch of garbage in `gh-pages` used for the theme's demo site that I'm guessing you won't want. +{: .notice} + +## Running Jekyll + +The preferred method for running Jekyll is with `bundle exec`, but if you're willing to deal gem conflicts feel free to go cowboy with a `jekyll serve` or `jekyll build`. + +> In some cases, running executables without bundle exec may work, if the executable happens to be installed in your system and does not pull in any gems that conflict with your bundle. +> +>However, this is unreliable and is the source of considerable pain. Even if it looks like it works, it may not work in the future or on another machine. + +```bash +bundle exec jekyll serve +``` + +## Scaffolding + +How Minimal Mistakes is organized and what the various files are. All posts, layouts, includes, stylesheets, assets, and whatever else is grouped nicely under the root folder. The compiled Jekyll site outputs to `_site/`. + +```bash +minimal-mistakes/ +├── _includes/ +| ├── author-bio.html # bio stuff layout. pulls optional owner data from _config.yml +| ├── browser-upgrade # prompt to install a modern browser for < IE9 +| ├── disqus-comments # Disqus comments script +| ├── footer # site footer +| ├── head # site head +| ├── navigation # site top navigation +| ├── open-graph.html # Twitter Cards and Open Graph meta data +| └── scripts # site scripts +├── _layouts/ +| ├── home.html # homepage layout +| ├── page.html # page layout +| ├── post-index.html # post index layout +| └── post.html # single post layout +├── _posts/ # MarkDown formatted posts +├── _sass/ # Sass stylesheets +├── _templates/ # used by Octopress to define YAML variables for new posts/pages +├── about/ # sample about page +├── assets/ +| ├── css/ # compiled stylesheets +| ├── fonts/ # webfonts +| ├── js/ +| | ├── _main.js # main JavaScript file, plugin settings, etc +| | ├── plugins/ # scripts and jQuery plugins to combine with _main.js +| | ├── scripts.min.js # concatenated and minified _main.js + plugin scripts +| | └── vendor/ # vendor scripts to leave alone and load as is +| └── less/ +├── images/ # images for posts and pages +├── 404.md # 404 page +├── feed.xml # Atom feed template +├── index.md # sample homepage. lists 5 latest posts +├── posts/ # sample post index page. lists all posts in reverse chronology +└── theme-setup/ # theme setup page. safe to remove +``` + +## Site Setup + +A quick checklist of the files you'll want to edit to get up and running. + +### Site Wide Configuration + +`_config.yml` is your friend. Open it up and personalize it. Most variables are self explanatory but here's an explanation of each if needed: + +#### title + +The title of your site... shocker! + +Example `title: My Awesome Site` + +#### url + +Used to generate absolute urls in `sitemap.xml`, `feed.xml`, and for generating canonical URLs in `<head>`. When developing locally either comment this out or use something like `http://localhost:4000` so all assets load properly. *Don't include a trailing `/`*. + +Examples: + +```yaml +url: http://mmistakes.github.io/minimal-mistakes +url: http://localhost:4000 +url: //cooldude.github.io +url: +``` + +#### Google Analytics and Webmaster Tools + +Google Analytics UA and Webmaster Tool verification tags can be entered under `owner` in `_config.yml`. For more information on obtaining these meta tags check [Google Webmaster Tools](http://support.google.com/webmasters/bin/answer.py?hl=en&answer=35179) and [Bing Webmaster Tools](https://ssl.bing.com/webmaster/configure/verify/ownership) support. + +### Navigation Links + +To set what links appear in the top navigation edit `_data/navigation.yml`. Use the following format to set the URL and title for as many links as you'd like. *External links will open in a new window.* + +```yaml +- title: Portfolio + url: /portfolio/ + +- title: Made Mistakes + url: http://mademistakes.com +``` + +## Adding New Content with Octopress + +While completely optional, I've included Octopress and some starter templates to automate the creation of new posts and pages. To take advantage of it start by installing the [Octopress](https://github.com/octopress/octopress) gem if it isn't already. + +```bash +$ gem install octopress +``` + +### New Post + +Default command + +```bash +$ octopress new post "Post Title" +``` + +Default works great if you want all your posts in one directory, but if you're like me and want to group them into subfolders like `/posts`, `/portfolio`, etc. Then this is the command for you. By specifying the DIR it will create a new post in that folder and populate the `categories:` YAML with the same value. + +```bash +$ octopress new post "New Portfolio Post Title" --dir portfolio +``` + +### New Page + +To create a new page use the following command. + +```bash +$ octopress new page new-page/ +``` + +This will create a page at `/new-page/index.md` + +## Layouts and Content + +Explanations of the various `_layouts` included with the theme and when to use them. + +### Post and Page + +These two layouts are very similar. Both have an author sidebar, allow for large feature images at the top, and optional Disqus comments. The only real difference is the post layout includes related posts at the end of the page. + +### Post Index Page + +A [sample index page]({{ site.url }}/posts/) listing all posts grouped by the year they were published has been provided. The name can be customized to your liking by editing a few references. For example, to change **Posts** to **Writing** update the following: + +In `_config.yml` under `links:` rename the title and URL to the following: + +```yaml + links: + - title: Writing + url: /writing/ +``` + +* Rename `posts/index.md` to `writing/index.md` and update the YAML front matter accordingly. +* Update the **View all posts** link in the `post.html` layout found in `_layouts` to match title and URL set previously. + +### Feature Images + +A good rule of thumb is to keep feature images nice and wide so you don't push the body text too far down. An image cropped around around 1024 x 256 pixels will keep file size down with an acceptable resolution for most devices. If you want to serve these images responsively I'd suggest looking at the [Jekyll Picture Tag](https://github.com/robwierzbowski/jekyll-picture-tag) plugin[^plugins]. + +[^plugins]: If you're using GitHub Pages to host your site be aware that plugins are disabled. You'll need to build your site locally and then manually deploy if you want to use this sweet plugin. + +The post and page layouts make the assumption that the feature images live in the `images/` folder. To add a feature image to a post or page just include the filename in the front matter like so. It's probably best to host all your images from this folder, but you can hotlink from external sources if you desire. + +```yaml +image: + feature: feature-image-filename.jpg + thumb: thumbnail-image.jpg #keep it square 200x200 px is good +``` + +To add attribution to a feature image use the following YAML front matter on posts or pages. Image credits appear directly below the feature image with a link back to the original source if supplied. + +```yaml +image: + feature: feature-image-filename.jpg + credit: Michael Rose #name of the person or site you want to credit + creditlink: http://mademistakes.com #url to their site or licensing +``` + +### Thumbnails for OG and Twitter Cards + +Feature and thumbnail images are used by [Open Graph](https://developers.facebook.com/docs/opengraph/) and [Twitter Cards](https://dev.twitter.com/docs/cards) as well. If you don't assign a thumbnail the default graphic *(default-thumb.png)* is used. I'd suggest changing this to something more meaningful --- your logo or avatar are good options. + +**Pro-Tip**: You need to [apply for Twitter Cards](https://dev.twitter.com/docs/cards) before they will begin showing up when links to your site are shared. +{:.notice} + +### Author Override + +By making use of data files you can assign different authors for each post. + +Start by modifying `authors.yml` file in the `_data` folder and add your authors using the following format. + +```yaml +# Authors + +billy_rick: + name : "Billy Rick" + web : "http://thewhip.com" + email : "billy@rick.com" + bio : "What do you want, jewels? I am a very extravagant man." + avatar : "bio-photo-2.jpg" + twitter : "extravagantman" + google_plus : "BillyRick" + +cornelius_fiddlebone: + name : "Cornelius Fiddlebone" + email : "cornelius@thewhip.com" + bio : "I ordered what?" + avatar : "bio-photo.jpg" + twitter : "rhymeswithsackit" + google_plus : "CorneliusFiddlebone" +``` + +To assign Billy Rick as an author for our post. We'd add the following YAML front matter to a post: + +```yaml +author: billy_rick +``` + +### Kramdown Table of Contents + +To include an auto-generated **table of contents** for posts and pages, add the following `_include` before the actual content. [Kramdown will take care of the rest](http://kramdown.rubyforge.org/converter/html.html#toc) and convert all headlines into list of links. + +```html +{% raw %}{% include toc.html %}{% endraw %} +``` + +### Paragraph Indentation + +By default the margin below paragraphs has been removed and indent added to each. This is an intentional design decision to mimic the look of type set in a printed book or manuscript. + +<figure> + <img src="{{ '/assets/images/paragraph-indent.png' | absolute_url }}" alt="screen shot of paragraphs with default indent style set"> + <figcaption>Example of the default paragraph style (indented first line and bottom margin removed).</figcaption> +</figure> + +To disable the indents and add spacing between paragraphs change the following line in `_sass/variables.scss` from `true !default` to `false` like so. + +```scss +$paragraph-indent: false; +``` + +<figure> + <img src="{{ '/assets/images/paragraph-no-indent.png' | absolute_url }}" alt="screen shot of paragraphs with indent style disabled"> + <figcaption>Example of paragraphs with $paragraph-indent disabled.</figcaption> +</figure> + +### Videos + +Video embeds are responsive and scale with the width of the main content block with the help of [FitVids](http://fitvidsjs.com/). + +Not sure if this only effects Kramdown or if it's an issue with Markdown in general. But adding YouTube video embeds causes errors when building your Jekyll site. To fix add a space between the `<iframe>` tags and remove `allowfullscreen`. Example below: + +```html +<iframe width="560" height="315" src="http://www.youtube.com/embed/PWf4WUoMXwg" frameborder="0"> </iframe> +``` + +### Social Sharing Links + +Social sharing links for Twitter, Facebook, and Google+ are included on posts/pages by default. To hide them on specific posts or pages add `share: false` to the YAML Front Matter. If you'd like to use different social networks modify `_includes/social-share` to your liking. Icons are set using [Font Awesome](http://fontawesome.io). + +## Further Customization + +Jekyll 2.x added support for Sass files making it much easier to modify a theme's fonts and colors. By editing values found in `_sass/variables.scss` you can fine tune the site's colors and typography. + +For example if you wanted a red background instead of white you'd change `$bodycolor: #fff;` to `$bodycolor: $cc0033;`. + +To modify the site's JavaScript files I setup a Grunt build script to lint/concatenate/minify all scripts into `scripts.min.js`. [Install Node.js](http://nodejs.org/), then [install Grunt](http://gruntjs.com/getting-started), and then finally install the dependencies for the theme contained in `package.json`: + +```bash +npm install +``` + +From the theme's root, use `grunt` concatenate JavaScript files, and optimize .jpg, .png, and .svg files in the `images/` folder. You can also use `grunt dev` in combination with `jekyll build --watch` to watch for updates JS files that Grunt will then automatically re-build as you write your code which will in turn auto-generate your Jekyll site when developing locally. \ No newline at end of file diff --git a/docs/_docs/21-license.md b/docs/_docs/21-license.md new file mode 100644 index 00000000..234b53a4 --- /dev/null +++ b/docs/_docs/21-license.md @@ -0,0 +1,28 @@ +--- +title: "License" +permalink: /docs/license/ +excerpt: "License for Minimal Mistakes Jekyll Theme." +modified: 2016-04-13T15:05:12-04:00 +--- + +The MIT License (MIT) + +Copyright (c) {{ site.time | date: '%Y' }} Michael Rose + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/docs/_drafts/post-draft.md b/docs/_drafts/post-draft.md new file mode 100644 index 00000000..e0bb2bd4 --- /dev/null +++ b/docs/_drafts/post-draft.md @@ -0,0 +1,19 @@ +--- +layout: single +title: "Draft Post" +header: + teaser: "unsplash-gallery-image-2-th.jpg" +categories: + - Jekyll +tags: + - edge case +--- +Monocle ipsum dolor sit amet handsome pariatur aliqua, hub remarkable irure commodo classic deserunt bespoke. Sunt commodo signature, Swiss minim flat white Tsutaya excepteur artisanal et Nordic laborum joy ANA. Beams mollit exquisite Ginza efficient dolore qui Comme des Garçons Winkreative Lufthansa bulletin global. Iconic sed liveable duis. Mollit dolore eu laboris Comme des Garçons hub pintxos sed eiusmod tote bag Shinkansen nisi consectetur pariatur. Nordic international quis finest Baggu dolore, bureaux hub hand-crafted ut joy sint Airbus A380. + +Conversation handsome hub cosy, enim emerging sed K-pop velit Gaggenau charming proident et boulevard ryokan. Remarkable airport deserunt international est, nulla minim magna emerging discerning in exclusive dolor. Commodo dolore deserunt cosy, global Nordic culpa uniforms signature charming. Smart ryokan commodo, eiusmod global occaecat incididunt aliqua Beams. Boulevard conversation excepteur finest Swiss non veniam Comme des Garçons essential artisanal. Destination Scandinavian international, anim Boeing 787 in duis Baggu irure essential. + +Fugiat exclusive laborum, Gaggenau ad Winkreative sharp elit labore. Remarkable officia ryokan Boeing 787, consectetur boutique Nordic Singapore espresso elit iconic perfect izakaya soft power excepteur. Ut veniam carefully curated K-pop dolore, uniforms in voluptate. Craftsmanship Ettinger Lufthansa sophisticated esse boutique veniam exquisite. Aute cillum bespoke, intricate consectetur in exquisite international lovely bulletin irure Washlet Gaggenau deserunt. Efficient eu quality of life wardrobe labore, dolor emerging airport concierge reprehenderit izakaya dolore liveable Baggu. + +Commodo elegant essential consectetur Gaggenau culpa consequat id sophisticated St Moritz sunt conversation duis non velit. Nulla business class non ut Marylebone ANA soft power fugiat carefully curated. Bureaux sed punctual handsome Washlet impeccable hand-crafted aute extraordinary tote bag enim boulevard soft power sleepy. Dolore conversation irure Zürich the best adipisicing, vibrant finest hub anim premium aliqua. Cupidatat smart international, bureaux Baggu id efficient punctual. Tempor nulla flat white enim, K-pop incididunt elit efficient Toto uniforms concierge discerning. Concierge sleepy extraordinary, deserunt Melbourne commodo Nordic Winkreative Washlet Ginza exercitation espresso. + +Tsutaya sed in business class sharp. Do Beams in adipisicing Lufthansa. Business class occaecat Melbourne, irure Singapore commodo espresso carefully curated quis quality of life adipisicing. Impeccable laborum efficient classic proident in. Beams Helsinki ullamco Marylebone dolore sophisticated concierge Muji anim duis joy ut. Comme des Garçons aute Muji in aliquip ryokan soft power Nordic essential ANA culpa elegant. \ No newline at end of file diff --git a/docs/_includes/analytics-providers/custom.html b/docs/_includes/analytics-providers/custom.html new file mode 100644 index 00000000..c34b97ad --- /dev/null +++ b/docs/_includes/analytics-providers/custom.html @@ -0,0 +1,3 @@ +<!-- start custom analytics snippet --> + +<!-- end custom analytics snippet --> \ No newline at end of file diff --git a/docs/_includes/analytics-providers/google-universal.html b/docs/_includes/analytics-providers/google-universal.html new file mode 100644 index 00000000..3ada6e36 --- /dev/null +++ b/docs/_includes/analytics-providers/google-universal.html @@ -0,0 +1,9 @@ +<script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', '{{ site.analytics.google.tracking_id }}', 'auto'); + ga('send', 'pageview'); +</script> \ No newline at end of file diff --git a/docs/_includes/analytics-providers/google.html b/docs/_includes/analytics-providers/google.html new file mode 100644 index 00000000..b591b995 --- /dev/null +++ b/docs/_includes/analytics-providers/google.html @@ -0,0 +1,11 @@ +<script type="text/javascript"> + var _gaq = _gaq || []; + _gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); +</script> \ No newline at end of file diff --git a/docs/_includes/analytics.html b/docs/_includes/analytics.html new file mode 100644 index 00000000..64a3359a --- /dev/null +++ b/docs/_includes/analytics.html @@ -0,0 +1,12 @@ +{% if site.analytics.provider and page.analytics != false %} + +{% case site.analytics.provider %} +{% when "google" %} + {% include /analytics-providers/google.html %} +{% when "google-universal" %} + {% include /analytics-providers/google-universal.html %} +{% when "custom" %} + {% include /analytics-providers/custom.html %} +{% endcase %} + +{% endif %} \ No newline at end of file diff --git a/docs/_includes/archive-single.html b/docs/_includes/archive-single.html new file mode 100644 index 00000000..93755e38 --- /dev/null +++ b/docs/_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: "<p>" | remove: "</p>" %} +{% else %} + {% assign title = post.title %} +{% endif %} + +<div class="{{ include.type | default: "list" }}__item"> + <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork"> + {% if include.type == "grid" and teaser %} + <div class="archive__item-teaser"> + <img src= + {% if teaser contains "://" %} + "{{ teaser }}" + {% else %} + "{{ teaser | absolute_url }}" + {% endif %} + alt=""> + </div> + {% endif %} + <h2 class="archive__item-title" itemprop="headline"> + {% if post.link %} + <a href="{{ post.link }}">{{ title }}</a> <a href="{{ post.url | absolute_url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a> + {% else %} + <a href="{{ post.url | absolute_url }}" rel="permalink">{{ title }}</a> + {% endif %} + </h2> + {% if post.read_time %} + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p> + {% endif %} + {% if post.excerpt %}<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify | strip_html | truncate: 160 }}</p>{% endif %} + </article> +</div> \ No newline at end of file diff --git a/docs/_includes/author-profile.html b/docs/_includes/author-profile.html new file mode 100644 index 00000000..97261f32 --- /dev/null +++ b/docs/_includes/author-profile.html @@ -0,0 +1,102 @@ +{% if page.author and site.data.authors[page.author] %} + {% assign author = site.data.authors[page.author] %}{% else %}{% assign author = site.author %} +{% endif %} + +<div itemscope itemtype="http://schema.org/Person"> + + {% if author.avatar %} + <div class="author__avatar"> + {% if author.avatar contains "://" %} + <img src="{{ author.avatar }}" alt="{{ author.name }}"> + {% else %} + <img src="{{ author.avatar | absolute_url }}" class="author__avatar" alt="{{ author.name }}"> + {% endif %} + </div> + {% endif %} + + <div class="author__content"> + <h3 class="author__name">{{ author.name }}</h3> + {% if author.bio %}<p class="author__bio">{{ author.bio }}</p>{% endif %} + </div> + + <div class="author__urls-wrapper"> + <button class="btn btn--inverse">{{ site.data.ui-text[site.locale].follow_label | remove: ":" | default: "Follow" }}</button> + <ul class="author__urls social-icons"> + {% if author.location %} + <li><i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> {{ author.location }}</li> + {% endif %} + {% if author.uri %} + <li><a href="{{ author.uri }}"><i class="fa fa-fw fa-chain" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].website_label | default: "Website" }}</a></li> + {% endif %} + {% if author.email %} + <li><a href="mailto:{{ author.email }}"><i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].email_label | default: "Email" }}</a></li> + {% endif %} + {% if author.keybase %} + <li><a href="https://keybase.io/{{ author.keybase }}"><i class="fa fa-fw fa-key" aria-hidden="true"></i> Keybase</a></li> + {% endif %} + {% if author.twitter %} + <li><a href="https://twitter.com/{{ author.twitter }}"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li> + {% endif %} + {% if author.facebook %} + <li><a href="https://www.facebook.com/{{ author.facebook }}"><i class="fa fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook</a></li> + {% endif %} + {% if author.google_plus %} + <li><a href="https://plus.google.com/+{{ author.google_plus }}"><i class="fa fa-fw fa-google-plus-square" aria-hidden="true"></i> Google+</a></li> + {% endif %} + {% if author.linkedin %} + <li><a href="https://www.linkedin.com/in/{{ author.linkedin }}"><i class="fa fa-fw fa-linkedin-square" aria-hidden="true"></i> LinkedIn</a></li> + {% endif %} + {% if author.xing %} + <li><a href="https://www.xing.com/profile/{{ author.xing }}"><i class="fa fa-fw fa-xing-square" aria-hidden="true"></i> XING</a></li> + {% endif %} + {% if author.instagram %} + <li><a href="https://instagram.com/{{ author.instagram }}"><i class="fa fa-fw fa-instagram" aria-hidden="true"></i> Instagram</a></li> + {% endif %} + {% if author.tumblr %} + <li><a href="https://{{ author.tumblr }}.tumblr.com"><i class="fa fa-fw fa-tumblr-square" aria-hidden="true"></i> Tumblr</a></li> + {% endif %} + {% if author.bitbucket %} + <li><a href="https://bitbucket.org/{{ author.bitbucket }}"><i class="fa fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket</a></li> + {% endif %} + {% if author.github %} + <li><a href="https://github.com/{{ author.github }}"><i class="fa fa-fw fa-github" aria-hidden="true"></i> Github</a></li> + {% endif %} + {% if author.stackoverflow %} + <li><a href="https://www.stackoverflow.com/users/{{ author.stackoverflow }}"><i class="fa fa-fw fa-stack-overflow" aria-hidden="true"></i> Stackoverflow</a></li> + {% endif %} + {% if author.lastfm %} + <li><a href="https://last.fm/user/{{ author.lastfm }}"><i class="fa fa-fw fa-lastfm-square" aria-hidden="true"></i> Last.fm</a></li> + {% endif %} + {% if author.dribbble %} + <li><a href="https://dribbble.com/{{ author.dribbble }}"><i class="fa fa-fw fa-dribbble" aria-hidden="true"></i> Dribbble</a></li> + {% endif %} + {% if author.pinterest %} + <li><a href="https://www.pinterest.com/{{ author.pinterest }}"><i class="fa fa-fw fa-pinterest" aria-hidden="true"></i> Pinterest</a></li> + {% endif %} + {% if author.foursquare %} + <li><a href="https://foursquare.com/{{ author.foursquare }}"><i class="fa fa-fw fa-foursquare" aria-hidden="true"></i> Foursquare</a></li> + {% endif %} + {% if author.steam %} + <li><a href="https://steamcommunity.com/id/{{ author.steam }}"><i class="fa fa-fw fa-steam-square" aria-hidden="true"></i> Steam</a></li> + {% endif %} + {% if author.youtube %} + <li><a href="https://www.youtube.com/user/{{ author.youtube }}"><i class="fa fa-fw fa-youtube-square" aria-hidden="true"></i> YouTube</a></li> + {% endif %} + {% if author.soundcloud %} + <li><a href="https://soundcloud.com/{{ author.soundcloud }}"><i class="fa fa-fw fa-soundcloud" aria-hidden="true"></i> Soundcloud</a></li> + {% endif %} + {% if author.weibo %} + <li><a href="https://www.weibo.com/{{ author.weibo }}"><i class="fa fa-fw fa-weibo" aria-hidden="true"></i> Weibo</a></li> + {% endif %} + {% if author.flickr %} + <li><a href="https://www.flickr.com/{{ author.flickr }}"><i class="fa fa-fw fa-flickr" aria-hidden="true"></i> Flickr</a></li> + {% endif %} + {% if author.codepen %} + <li><a href="https://codepen.io/{{ author.codepen }}"><i class="fa fa-fw fa-codepen" aria-hidden="true"></i> CodePen</a></li> + {% endif %} + {% if author.vine %} + <li><a href="https://vine.co/u/{{ author.vine }}"><i class="fa fa-fw fa-vine" aria-hidden="true"></i> Vine</a></li> + {% endif %} + </ul> + </div> +</div> diff --git a/docs/_includes/base_path b/docs/_includes/base_path new file mode 100644 index 00000000..36826c4f --- /dev/null +++ b/docs/_includes/base_path @@ -0,0 +1,5 @@ +{% if site.url %} + {% assign base_path = site.url | append: site.baseurl %} +{% else %} + {% assign base_path = site.github.url %} +{% endif %} \ No newline at end of file diff --git a/docs/_includes/breadcrumbs.html b/docs/_includes/breadcrumbs.html new file mode 100644 index 00000000..cf2b745e --- /dev/null +++ b/docs/_includes/breadcrumbs.html @@ -0,0 +1,39 @@ +{% case site.categories.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.categories.path %} +{% endif %} + +<nav class="breadcrumbs"> + <ol itemscope itemtype="http://schema.org/BreadcrumbList"> + {% assign crumbs = page.url | split: '/' %} + {% assign i = 1 %} + {% for crumb in crumbs offset: 1 %} + {% if forloop.first %} + <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> + <a href="{{ site.url }}{{ site.baseurl }}/" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a> + <meta itemprop="position" content="{{ i }}" /> + </li> + <span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span> + {% endif %} + {% if forloop.last %} + <li class="current">{{ page.title }}</li> + {% else %} + {% assign i = i | plus: 1 %} + <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> + <a href="{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path | absolute_url }}" itemprop="item"><span itemprop="name">{{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}</span></a> + <meta itemprop="position" content="{{ i }}" /> + </li> + <span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span> + {% endif %} + {% endfor %} + </ol> +</nav> \ No newline at end of file diff --git a/docs/_includes/browser-upgrade.html b/docs/_includes/browser-upgrade.html new file mode 100644 index 00000000..e8d8b262 --- /dev/null +++ b/docs/_includes/browser-upgrade.html @@ -0,0 +1,3 @@ +<!--[if lt IE 9]> +<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div> +<![endif]--> \ No newline at end of file diff --git a/docs/_includes/category-list.html b/docs/_includes/category-list.html new file mode 100644 index 00000000..039d5e2e --- /dev/null +++ b/docs/_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 %} + <!-- Sort alphabetically regardless of case e.g. a B c d E --> + <!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ --> + {% endcomment %} + {% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}#{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %} + {% assign category_hashes = (page_categories | split: ',' | sort:0) %} + + <p class="page__taxonomy"> + <strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong> + <span itemprop="keywords"> + {% for hash in category_hashes %} + {% assign keyValue = hash | split: '#' %} + {% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %} + <a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | absolute_url }}" class="page__taxonomy-item" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %} + {% endfor %} + </span> + </p> +{% endif %} \ No newline at end of file diff --git a/docs/_includes/comment.html b/docs/_includes/comment.html new file mode 100644 index 00000000..44c07d1a --- /dev/null +++ b/docs/_includes/comment.html @@ -0,0 +1,22 @@ +<article id="comment{{ include.index }}" class="js-comment comment" itemprop="comment" itemscope itemtype="http://schema.org/Comment"> + <div class="comment__avatar-wrapper"> + <img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80"> + </div> + <div class="comment__content-wrapper"> + <h3 class="comment__author" itemprop="author" itemscope itemtype="http://schema.org/Person"> + {% unless include.url == blank %} + <span itemprop="name"><a rel="external nofollow" itemprop="url" href="{{ include.url }}">{{ include.name }}</a></span> + {% else %} + <span itemprop="name">{{ include.name }}</span> + {% endunless %} + </h3> + <p class="comment__date"> + {% if include.date %} + {% if include.index %}<a href="#comment{{ include.index }}" itemprop="url">{% endif %} + <time datetime="{{ include.date | date_to_xmlschema }}" itemprop="datePublished">{{ include.date | date: "%B %d, %Y at %I:%M %p" }}</time> + {% if include.index %}</a>{% endif %} + {% endif %} + </p> + <div itemprop="text">{{ include.message | markdownify }}</div> + </div> +</article> \ No newline at end of file diff --git a/docs/_includes/comments-providers/custom.html b/docs/_includes/comments-providers/custom.html new file mode 100644 index 00000000..90993691 --- /dev/null +++ b/docs/_includes/comments-providers/custom.html @@ -0,0 +1,3 @@ +<!-- start custom comments snippet --> + +<!-- end custom comments snippet --> \ No newline at end of file diff --git a/docs/_includes/comments-providers/discourse.html b/docs/_includes/comments-providers/discourse.html new file mode 100644 index 00000000..1d23b6f2 --- /dev/null +++ b/docs/_includes/comments-providers/discourse.html @@ -0,0 +1,14 @@ +{% if site.comments.discourse.server %} +{% include base_path %} +{% capture canonical %}{{ base_path }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %} +<script type="text/javascript"> + DiscourseEmbed = { discourseUrl: '//{{ site.comments.discourse.server }}/', + discourseEmbedUrl: '{{ canonical }}' }; + (function () { + var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true; + d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d); + })(); +</script> +<noscript>Please enable JavaScript to view the comments powered by [Discourse](http://forum.beta-europe.org/c/beta/website).</a></noscript> +{% endif %} \ No newline at end of file diff --git a/docs/_includes/comments-providers/disqus.html b/docs/_includes/comments-providers/disqus.html new file mode 100644 index 00000000..c6fc691d --- /dev/null +++ b/docs/_includes/comments-providers/disqus.html @@ -0,0 +1,22 @@ +{% if site.comments.disqus.shortname %} + <script type="text/javascript"> + /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ + var disqus_shortname = '{{ site.comments.disqus.shortname }}'; + + /* * * DON'T EDIT BELOW THIS LINE * * */ + (function() { + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; + dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); + })(); + + /* * * DON'T EDIT BELOW THIS LINE * * */ + (function () { + var s = document.createElement('script'); s.async = true; + s.type = 'text/javascript'; + s.src = '//' + disqus_shortname + '.disqus.com/count.js'; + (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); + }()); + </script> + <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> +{% endif %} \ No newline at end of file diff --git a/docs/_includes/comments-providers/facebook.html b/docs/_includes/comments-providers/facebook.html new file mode 100644 index 00000000..009dc1c6 --- /dev/null +++ b/docs/_includes/comments-providers/facebook.html @@ -0,0 +1,8 @@ +<div id="fb-root"></div> +<script>(function(d, s, id) { + var js, fjs = d.getElementsByTagName(s)[0]; + if (d.getElementById(id)) return; + js = d.createElement(s); js.id = id; + js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5{% if site.comments.facebook.appid %}&appId={{ site.comments.facebook.appid }}{% endif %}"; + fjs.parentNode.insertBefore(js, fjs); +}(document, 'script', 'facebook-jssdk'));</script> \ No newline at end of file diff --git a/docs/_includes/comments-providers/google-plus.html b/docs/_includes/comments-providers/google-plus.html new file mode 100644 index 00000000..0b4ff6b7 --- /dev/null +++ b/docs/_includes/comments-providers/google-plus.html @@ -0,0 +1,2 @@ +<script async type="text/javascript" src="//apis.google.com/js/plusone.js?callback=gpcb"></script> +<noscript>Please enable JavaScript to view the <a href="https://plus.google.com/">comments powered by Google+.</a></noscript> \ No newline at end of file diff --git a/docs/_includes/comments-providers/scripts.html b/docs/_includes/comments-providers/scripts.html new file mode 100644 index 00000000..ed192f7e --- /dev/null +++ b/docs/_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 "google-plus" %} + {% include /comments-providers/google-plus.html %} +{% when "staticman" %} + {% include /comments-providers/staticman.html %} +{% when "custom" %} + {% include /comments-providers/custom.html %} +{% endcase %} + +{% endif %} \ No newline at end of file diff --git a/docs/_includes/comments-providers/staticman.html b/docs/_includes/comments-providers/staticman.html new file mode 100644 index 00000000..471fa867 --- /dev/null +++ b/docs/_includes/comments-providers/staticman.html @@ -0,0 +1,42 @@ +{% if site.repository and site.staticman.branch %} + <script> + (function ($) { + var $comments = $('.js-comments'); + + $('#new_comment').submit(function () { + var form = this; + + $(form).addClass('disabled'); + $('#comment-form-submit').html('<i class="fa fa-spinner fa-spin fa-fw"></i> {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}'); + + $.ajax({ + type: $(this).attr('method'), + url: $(this).attr('action'), + data: $(this).serialize(), + contentType: 'application/x-www-form-urlencoded', + success: function (data) { + $('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}'); + $('.page__comments-form .js-notice').removeClass('notice--danger'); + $('.page__comments-form .js-notice').addClass('notice--success'); + showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}'); + }, + error: function (err) { + console.log(err); + $('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}'); + $('.page__comments-form .js-notice').removeClass('notice--success'); + $('.page__comments-form .js-notice').addClass('notice--danger'); + showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}'); + $(form).removeClass('disabled'); + } + }); + + return false; + }); + + function showAlert(message) { + $('.page__comments-form .js-notice').removeClass('hidden'); + $('.page__comments-form .js-notice-text').html(message); + } + })(jQuery); + </script> +{% endif %} \ No newline at end of file diff --git a/docs/_includes/comments.html b/docs/_includes/comments.html new file mode 100644 index 00000000..e1459973 --- /dev/null +++ b/docs/_includes/comments.html @@ -0,0 +1,80 @@ +<div class="page__comments"> + {% capture comments_label %}{{ site.data.ui-text[site.locale].comments_label | default: "Comments" }}{% endcapture %} + {% case site.comments.provider %} + {% when "disqus" %} + <h4 class="page__comments-title">{{ comments_label }}</h4> + <section id="disqus_thread"></section> + {% when "facebook" %} + <h4 class="page__comments-title">{{ comments_label }}</h4> + <section class="fb-comments" data-href="{{ page.url | absolute_url }}" data-mobile="true" data-num-posts="{{ site.comments.facebook.num_posts | default: 5 }}" data-width="100%" data-colorscheme="{{ site.comments.facebook.colorscheme | default: 'light' }}"></section> + {% when "google-plus" %} + <h4 class="page__comments-title">{{ comments_label }}</h4> + <section class="g-comments" data-href="{{ page.url | absolute_url }}" data-first_party_property="BLOGGER" data-view_type="FILTERED_POSTMOD">Loading Google+ Comments ...</section> + {% when "staticman" %} + <section id="comments"> + {% if site.repository and site.staticman.branch %} + <!-- Start static comments --> + <div class="js-comments"> + {% if site.data.comments[page.slug] %} + <h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4> + {% assign comments = site.data.comments[page.slug] | sort %} + + {% for comment in comments %} + {% assign email = comment[1].email %} + {% assign name = comment[1].name %} + {% assign url = comment[1].url %} + {% assign date = comment[1].date %} + {% assign message = comment[1].message %} + {% include comment.html index=forloop.index email=email name=name url=url date=date message=message %} + {% endfor %} + {% endif %} + </div> + <!-- End static comments --> + + <!-- Start new comment form --> + <h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4> + <p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p> + <form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/{{ site.repository }}/{{ site.staticman.branch }}"> + <div class="form__spinner"> + <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i> + <span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span> + </div> + + <fieldset> + <label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label> + <textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea> + <div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div> + </fieldset> + <fieldset> + <label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label> + <input type="text" id="comment-form-name" name="fields[name]" tabindex="2" /> + </fieldset> + <fieldset> + <label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label> + <input type="email" id="comment-form-email" name="fields[email]" tabindex="3" /> + </fieldset> + <fieldset> + <label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label> + <input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/> + </fieldset> + <fieldset class="hidden" style="display: none;"> + <input type="hidden" name="options[slug]" value="{{ page.slug }}"> + <label for="comment-form-location">Not used. Leave blank if you are a human.</label> + <input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/> + </fieldset> + <!-- Start comment form alert messaging --> + <p class="hidden js-notice"> + <strong class="js-notice-text"></strong> + </p> + <!-- End comment form alert messaging --> + <fieldset> + <button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button> + </fieldset> + </form> + <!-- End new comment form --> + {% endif %} + </section> + {% when "custom" %} + <section id="comments"></section> + {% endcase %} +</div> \ No newline at end of file diff --git a/docs/_includes/feature_row b/docs/_includes/feature_row new file mode 100644 index 00000000..d5b7e23d --- /dev/null +++ b/docs/_includes/feature_row @@ -0,0 +1,50 @@ +{% if include.id %} + {% assign feature_row = page.[include.id] %} +{% else %} + {% assign feature_row = page.feature_row %} +{% endif %} + +<div class="feature__wrapper"> + + {% for f in feature_row %} + + {% if f.url contains "://" %} + {% capture f_url %}{{ f.url }}{% endcapture %} + {% else %} + {% capture f_url %}{{ f.url | absolute_url }}{% endcapture %} + {% endif %} + + <div class="feature__item{% if include.type %}--{{ include.type }}{% endif %}"> + <div class="archive__item"> + {% if f.image_path %} + <div class="archive__item-teaser"> + <img src= + {% if f.image_path contains "://" %} + "{{ f.image_path }}" + {% else %} + "{{ f.image_path | absolute_url }}" + {% endif %} + alt="{% if f.alt %}{{ f.alt }}{% endif %}"> + </div> + {% endif %} + + <div class="archive__item-body"> + {% if f.title %} + <h2 class="archive__item-title">{{ f.title }}</h2> + {% endif %} + + {% if f.excerpt %} + <div class="archive__item-excerpt"> + {{ f.excerpt | markdownify }} + </div> + {% endif %} + + {% if f.url %} + <p><a href="{{ f_url }}" class="btn {{ f.btn_class }}">{{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p> + {% endif %} + </div> + </div> + </div> + {% endfor %} + +</div> \ No newline at end of file diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html new file mode 100644 index 00000000..8fe13bbd --- /dev/null +++ b/docs/_includes/footer.html @@ -0,0 +1,22 @@ +<div class="page__footer-follow"> + <ul class="social-icons"> + {% if site.data.ui-text[site.locale].follow_label %} + <li><strong>{{ site.data.ui-text[site.locale].follow_label }}</strong></li> + {% endif %} + {% if site.twitter.username %} + <li><a href="https://twitter.com/{{ site.twitter.username }}"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li> + {% endif %} + {% if site.facebook.username %} + <li><a href="https://facebook.com/{{ site.facebook.username }}"><i class="fa fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook</a></li> + {% endif %} + {% if site.author.github %} + <li><a href="http://github.com/{{ site.author.github }}"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li> + {% endif %} + {% if site.author.bitbucket %} + <li><a href="http://bitbucket.org/{{ site.author.bitbucket }}"><i class="fa fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket</a></li> + {% endif %} + <li><a href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | absolute_url }}{% endif %}"><i class="fa fa-fw fa-rss-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}</a></li> + </ul> +</div> + +<div class="page__footer-copyright">© {{ site.time | date: '%Y' }} {{ site.name | default: site.title }}. {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div> \ No newline at end of file diff --git a/docs/_includes/footer/custom.html b/docs/_includes/footer/custom.html new file mode 100644 index 00000000..d512599d --- /dev/null +++ b/docs/_includes/footer/custom.html @@ -0,0 +1,3 @@ +<!-- start custom footer snippets --> + +<!-- end custom footer snippets --> \ No newline at end of file diff --git a/docs/_includes/gallery b/docs/_includes/gallery new file mode 100644 index 00000000..5983239c --- /dev/null +++ b/docs/_includes/gallery @@ -0,0 +1,47 @@ +{% if include.id %} + {% assign gallery = page.[include.id] %} +{% else %} + {% assign gallery = page.gallery %} +{% endif %} + +{% if gallery.size == 2 %} + {% assign gallery_layout = 'half' %} +{% elsif gallery.size >= 3 %} + {% assign gallery_layout = 'third' %} +{% else %} + {% assign gallery_layout = '' %} +{% endif %} + +<figure class="{{ gallery_layout }} {{ include.class }}"> + {% for img in gallery %} + {% if img.url %} + <a href= + {% if img.url contains "://" %} + "{{ img.url }}" + {% else %} + "{{ img.url | absolute_url }}" + {% endif %} + {% if img.title %}title="{{ img.title }}"{% endif %} + > + <img src= + {% if img.image_path contains "://" %} + "{{ img.image_path }}" + {% else %} + "{{ img.image_path | absolute_url }}" + {% endif %} + alt="{% if img.alt %}{{ img.alt }}{% endif %}"> + </a> + {% else %} + <img src= + {% if img.image_path contains "://" %} + "{{ img.image_path }}" + {% else %} + "{{ img.image_path | absolute_url }}" + {% endif %} + alt="{% if img.alt %}{{ img.alt }}{% endif %}"> + {% endif %} + {% endfor %} + {% if include.caption %} + <figcaption>{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}</figcaption> + {% endif %} +</figure> \ No newline at end of file diff --git a/docs/_includes/group-by-array b/docs/_includes/group-by-array new file mode 100644 index 00000000..251302c7 --- /dev/null +++ b/docs/_includes/group-by-array @@ -0,0 +1,47 @@ +<!-- +# Jekyll Group-By-Array 0.1.0 +# https://github.com/mushishi78/jekyll-group-by-array +# © 2015 Max White <mushishi78@gmail.com> +# MIT License +--> + +<!-- Initialize --> +{% assign __empty_array = '' | split: ',' %} +{% assign group_names = __empty_array %} +{% assign group_items = __empty_array %} + +<!-- Map --> +{% assign __names = include.collection | map: include.field %} + +<!-- Flatten --> +{% assign __names = __names | join: ',' | join: ',' | split: ',' %} + +<!-- Uniq --> +{% assign __names = __names | sort %} +{% for name in __names | sort %} + +<!-- If not equal to previous then it must be unique as sorted --> +{% unless name == previous %} + +<!-- Push to group_names --> +{% assign group_names = group_names | push: name %} +{% endunless %} + +{% assign previous = name %} +{% endfor %} + + +<!-- group_items --> +{% for name in group_names %} + +<!-- Collect if contains --> +{% assign __item = __empty_array %} +{% for __element in include.collection %} +{% if __element[include.field] contains name %} +{% assign __item = __item | push: __element %} +{% endif %} +{% endfor %} + +<!-- Push to group_items --> +{% assign group_items = group_items | push: __item %} +{% endfor %} \ No newline at end of file diff --git a/docs/_includes/head.html b/docs/_includes/head.html new file mode 100644 index 00000000..a59b14a2 --- /dev/null +++ b/docs/_includes/head.html @@ -0,0 +1,19 @@ +<meta charset="utf-8"> + +{% include seo.html %} + +<link href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | absolute_url }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed"> + +<!-- http://t.co/dKP3o1e --> +<meta name="HandheldFriendly" content="True"> +<meta name="MobileOptimized" content="320"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> + +<script> + document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js '; +</script> + +<!-- For all browsers --> +<link rel="stylesheet" href="{{ '/assets/css/main.css' | absolute_url }}"> + +<meta http-equiv="cleartype" content="on"> \ No newline at end of file diff --git a/docs/_includes/head/custom.html b/docs/_includes/head/custom.html new file mode 100644 index 00000000..01767313 --- /dev/null +++ b/docs/_includes/head/custom.html @@ -0,0 +1,5 @@ +<!-- start custom head snippets --> + +<!-- insert favicons. use http://realfavicongenerator.net/ --> + +<!-- end custom head snippets --> \ No newline at end of file diff --git a/docs/_includes/masthead.html b/docs/_includes/masthead.html new file mode 100644 index 00000000..5e9a1d59 --- /dev/null +++ b/docs/_includes/masthead.html @@ -0,0 +1,21 @@ +<div class="masthead"> + <div class="masthead__inner-wrap"> + <div class="masthead__menu"> + <nav id="site-nav" class="greedy-nav"> + <button><div class="navicon"></div></button> + <ul class="visible-links"> + <li class="masthead__menu-item masthead__menu-item--lg"><a href="{{ '/' | absolute_url }}">{{ site.title }}</a></li> + {% for link in site.data.navigation.main %} + {% if link.url contains 'http' %} + {% assign domain = '' %} + {% else %} + {% assign domain = site.url | append: site.baseurl %} + {% endif %} + <li class="masthead__menu-item"><a href="{{ domain }}{{ link.url }}">{{ link.title }}</a></li> + {% endfor %} + </ul> + <ul class="hidden-links hidden"></ul> + </nav> + </div> + </div> +</div> \ No newline at end of file diff --git a/docs/_includes/nav_list b/docs/_includes/nav_list new file mode 100644 index 00000000..8f3db3dd --- /dev/null +++ b/docs/_includes/nav_list @@ -0,0 +1,45 @@ +{% assign navigation = site.data.navigation[include.nav] %} + +<nav class="nav__list"> + {% if page.sidebar.title %}<header><h4 class="nav__title" style="padding: 0;">{{ page.sidebar.title }}</h4></header>{% endif %} + <ul> + {% for nav in navigation %} + <li> + {% if nav.url %} + {% comment %} internal/external URL check {% endcomment %} + {% if nav.url contains "://" %} + {% assign domain = "" %} + {% else %} + {% assign domain = site.url | append: site.baseurl %} + {% endif %} + + <a href="{{ domain }}{{ nav.url }}"><span class="nav__sub-title">{{ nav.title }}</span></a> + {% else %} + <span class="nav__sub-title">{{ nav.title }}</span> + {% endif %} + + {% if nav.children != null %} + <ul> + {% for child in nav.children %} + {% comment %} internal/external URL check {% endcomment %} + {% if child.url contains "://" %} + {% assign domain = "" %} + {% else %} + {% assign domain = site.url | append: site.baseurl %} + {% endif %} + + {% comment %} set "active" class on current page {% endcomment %} + {% if child.url == page.url %} + {% assign active = "active" %} + {% else %} + {% assign active = "" %} + {% endif %} + + <li><a href="{{ domain }}{{ child.url }}" class="{{ active }}">{{ child.title }}</a></li> + {% endfor %} + </ul> + {% endif %} + </li> + {% endfor %} + </ul> +</nav> \ No newline at end of file diff --git a/docs/_includes/page__hero.html b/docs/_includes/page__hero.html new file mode 100644 index 00000000..ecc8d805 --- /dev/null +++ b/docs/_includes/page__hero.html @@ -0,0 +1,53 @@ +{% if page.header.image contains "://" %} + {% capture img_path %}{{ page.header.image }}{% endcapture %} +{% else %} + {% capture img_path %}{{ page.header.image | absolute_url }}{% endcapture %} +{% endif %} + +{% if page.header.cta_url contains "://" %} + {% capture cta_path %}{{ page.header.cta_url }}{% endcapture %} +{% else %} + {% capture cta_path %}{{ page.header.cta_url | absolute_url }}{% endcapture %} +{% endif %} + +{% if page.header.overlay_image contains "://" %} + {% capture overlay_img_path %}{{ page.header.overlay_image }}{% endcapture %} +{% elsif page.header.overlay_image %} + {% capture overlay_img_path %}{{ page.header.overlay_image | absolute_url }}{% endcapture %} +{% endif %} + +{% if page.header.overlay_filter contains "rgba" %} + {% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %} +{% elsif page.header.overlay_filter %} + {% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %} +{% endif %} + +<div class="page__hero{% if page.header.overlay_color or page.header.overlay_image %}--overlay{% endif %}" + style="{% if page.header.overlay_color %}background-color: {{ page.header.overlay_color | default: 'transparent' }};{% endif %} {% if overlay_img_path %}background-image: {% if overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}), {% endif %}url('{{ overlay_img_path }}');{% endif %}" +> + {% if page.header.overlay_color or page.header.overlay_image %} + <div class="wrapper"> + <h1 class="page__title" itemprop="headline"> + {% if paginator %} + {{ site.title }}{% unless paginator.page == 1 %} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %} + {% else %} + {{ page.title | default: site.title | markdownify | remove: "<p>" | remove: "</p>" }} + {% endif %} + </h1> + {% if page.excerpt %} + <p class="page__lead">{{ page.excerpt | markdownify | remove: "<p>" | remove: "</p>" }}</p> + {% endif %} + {% if site.read_time and page.read_time %} + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p> + {% endif %} + {% if page.header.cta_url %} + <p><a href="{{ cta_path }}" class="btn btn--light-outline btn--large">{{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p> + {% endif %} + </div> + {% else %} + <img src="{{ img_path }}" alt="{{ page.title }}" class="page__hero-image"> + {% endif %} + {% if page.header.caption %} + <span class="page__hero-caption">{{ page.header.caption | markdownify | remove: "<p>" | remove: "</p>" }}</span> + {% endif %} +</div> \ No newline at end of file diff --git a/docs/_includes/page__taxonomy.html b/docs/_includes/page__taxonomy.html new file mode 100644 index 00000000..75c76c81 --- /dev/null +++ b/docs/_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/docs/_includes/paginator.html b/docs/_includes/paginator.html new file mode 100644 index 00000000..588c0fd2 --- /dev/null +++ b/docs/_includes/paginator.html @@ -0,0 +1,68 @@ +{% if paginator.total_pages > 1 %} +<nav class="pagination"> + <ul> + {% comment %} Link for previous page {% endcomment %} + {% if paginator.previous_page %} + {% if paginator.previous_page == 1 %} + <li><a href="{{ '/' | absolute_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li> + {% else %} + <li><a href="{{ '/page' | absolute_url }}{{ paginator.previous_page | append: '/' }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li> + {% endif %} + {% else %} + <li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li> + {% endif %} + + {% comment %} First page {% endcomment %} + {% if paginator.page == 1 %} + <li><a href="#" class="disabled current">1</a></li> + {% else %} + <li><a href="{{ '/' | absolute_url }}">1</a></li> + {% endif %} + + {% assign page_start = 2 %} + {% if paginator.page > 4 %} + {% assign page_start = paginator.page | minus: 2 %} + {% comment %} Ellipsis for truncated links {% endcomment %} + <li><a href="#" class="disabled">…</a></li> + {% endif %} + + {% assign page_end = paginator.total_pages | minus: 1 %} + {% assign pages_to_end = paginator.total_pages | minus: paginator.page %} + {% if pages_to_end > 4 %} + {% assign page_end = paginator.page | plus: 2 %} + {% endif %} + + {% for index in (page_start..page_end) %} + {% if index == paginator.page %} + <li><a href="{{ '/page' | absolute_url }}{{ index | append: '/' }}" class="disabled current">{{ index }}</a></li> + {% else %} + {% comment %} Distance from current page and this link {% endcomment %} + {% assign dist = paginator.page | minus: index %} + {% if dist < 0 %} + {% comment %} Distance must be a positive value {% endcomment %} + {% assign dist = 0 | minus: dist %} + {% endif %} + <li><a href="{{ '/page' | absolute_url }}{{ index | append: '/' }}">{{ index }}</a></li> + {% endif %} + {% endfor %} + + {% comment %} Ellipsis for truncated links {% endcomment %} + {% if pages_to_end > 3 %} + <li><a href="#" class="disabled">…</a></li> + {% endif %} + + {% if paginator.page == paginator.total_pages %} + <li><a href="#" class="disabled current">{{ paginator.page }}</a></li> + {% else %} + <li><a href="{{ base_path }}/page{{ paginator.total_pages }}/">{{ paginator.total_pages }}</a></li> + {% endif %} + + {% comment %} Link next page {% endcomment %} + {% if paginator.next_page %} + <li><a href="{{ base_path }}/page{{ paginator.next_page }}/">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li> + {% else %} + <li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li> + {% endif %} + </ul> +</nav> +{% endif %} \ No newline at end of file diff --git a/docs/_includes/post_pagination.html b/docs/_includes/post_pagination.html new file mode 100644 index 00000000..3b8b6168 --- /dev/null +++ b/docs/_includes/post_pagination.html @@ -0,0 +1,14 @@ +{% if page.previous or page.next %} + <nav class="pagination"> + {% if page.previous %} + <a href="{{ page.previous.url | absolute_url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a> + {% else %} + <a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a> + {% endif %} + {% if page.next %} + <a href="{{ page.next.url | absolute_url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a> + {% else %} + <a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a> + {% endif %} + </nav> +{% endif %} \ No newline at end of file diff --git a/docs/_includes/read-time.html b/docs/_includes/read-time.html new file mode 100644 index 00000000..a45043c1 --- /dev/null +++ b/docs/_includes/read-time.html @@ -0,0 +1,17 @@ +{% 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 site.words_per_minute %} + {% if words < 180 %} + {{ 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 < 360 %} + 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} + {% else %} + {{ words | divided_by:site.words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} + {% endif %} +{% else %} + {{ site.data.ui-text[site.locale].undefined_wpm | "Undefined parameter words_per_minute at _config.yml" }} +{% endif %} \ No newline at end of file diff --git a/docs/_includes/scripts.html b/docs/_includes/scripts.html new file mode 100644 index 00000000..844de82d --- /dev/null +++ b/docs/_includes/scripts.html @@ -0,0 +1,4 @@ +<script src="{{ '/assets/js/main.min.js' | absolute_url }}"></script> + +{% include analytics.html %} +{% include /comments-providers/scripts.html %} diff --git a/docs/_includes/seo.html b/docs/_includes/seo.html new file mode 100644 index 00000000..9279e1a0 --- /dev/null +++ b/docs/_includes/seo.html @@ -0,0 +1,143 @@ +<!-- begin SEO --> +{% if site.url %} + {% assign seo_url = site.url | append: site.baseurl %} +{% endif %} +{% assign seo_url = seo_url | default: site.github.url %} + +{% if page.title %} + {% assign seo_title = page.title | append: " " | append: site.title_separator | append: " " | append: site.title %} +{% endif %} + +{% if seo_title %} + {% assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once %} +{% endif %} + +{% if site.url %} + {% assign canonical_url = page.url | replace: "index.html", "" | prepend: site.url %} +{% endif %} + +<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ site.title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %} + +{% 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 seo_author = page.author | default: page.author[0] | default: site.author[0] %} +{% if seo_author %} + {% if seo_author.twitter %} + {% assign seo_author_twitter = seo_author.twitter %} + {% else %} + {% if site.data.authors and site.data.authors[seo_author] %} + {% assign seo_author_twitter = site.data.authors[seo_author].twitter %} + {% else %} + {% assign seo_author_twitter = seo_author %} + {% endif %} + {% endif %} + {% assign seo_author_twitter = seo_author_twitter | replace: "@", "" %} +{% endif %} + + + + + +{% if seo_url %} + + +{% endif %} + +{% if page.excerpt %} + +{% endif %} + +{% if site.twitter.username %} + + + + + + {% if page.header.image %} + + + {% else %} + + {% if page.header.teaser %} + + {% elsif site.og_image %} + + {% endif %} + {% endif %} + + {% if seo_author_twitter %} + + {% endif %} +{% endif %} + +{% if site.facebook %} + {% if site.facebook.publisher %} + + {% endif %} + + {% if site.facebook.app_id %} + + {% endif %} +{% endif %} + +{% if page.header.image %} + +{% elsif page.header.overlay_image %} + +{% elsif page.header.teaser %} + +{% elsif site.og_image %} + +{% endif %} + +{% if page.date %} + + +{% 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 %} + diff --git a/docs/_includes/sidebar.html b/docs/_includes/sidebar.html new file mode 100644 index 00000000..d2661c38 --- /dev/null +++ b/docs/_includes/sidebar.html @@ -0,0 +1,23 @@ +{% if page.author_profile or layout.author_profile or page.sidebar %} + +{% endif %} \ No newline at end of file diff --git a/docs/_includes/social-share.html b/docs/_includes/social-share.html new file mode 100644 index 00000000..dbf769ef --- /dev/null +++ b/docs/_includes/social-share.html @@ -0,0 +1,13 @@ + diff --git a/docs/_includes/tag-list.html b/docs/_includes/tag-list.html new file mode 100644 index 00000000..0cea2113 --- /dev/null +++ b/docs/_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:0) %} + +

+ {{ 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 %} + {% unless forloop.last %}, {% endunless %} + {% endfor %} + +

+{% endif %} \ No newline at end of file diff --git a/docs/_includes/toc b/docs/_includes/toc new file mode 100644 index 00000000..6ba831c9 --- /dev/null +++ b/docs/_includes/toc @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/docs/_layouts/archive-taxonomy.html b/docs/_layouts/archive-taxonomy.html new file mode 100644 index 00000000..6939122d --- /dev/null +++ b/docs/_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/docs/_layouts/archive.html b/docs/_layouts/archive.html new file mode 100644 index 00000000..fe41fba8 --- /dev/null +++ b/docs/_layouts/archive.html @@ -0,0 +1,24 @@ +--- +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 }} +
+
\ No newline at end of file diff --git a/docs/_layouts/compress.html b/docs/_layouts/compress.html new file mode 100644 index 00000000..8248010b --- /dev/null +++ b/docs/_layouts/compress.html @@ -0,0 +1,10 @@ +--- +# Jekyll layout that compresses HTML +# v3.0.2 +# http://jch.penibelst.de/ +# © 2014–2015 Anatol Broder +# MIT License +--- + +{% capture _LINE_FEED %} +{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{% 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/docs/_layouts/default.html b/docs/_layouts/default.html new file mode 100644 index 00000000..1deb9014 --- /dev/null +++ b/docs/_layouts/default.html @@ -0,0 +1,28 @@ +--- +--- + + + + + {% include head.html %} + {% include head/custom.html %} + + + + + {% include browser-upgrade.html %} + {% include masthead.html %} + + {{ content }} + + + + {% include scripts.html %} + + + diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html new file mode 100644 index 00000000..2db6526b --- /dev/null +++ b/docs/_layouts/home.html @@ -0,0 +1,13 @@ +--- +layout: archive +--- + +{% include base_path %} + +

{{ 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/docs/_layouts/single.html b/docs/_layouts/single.html new file mode 100644 index 00000000..90355285 --- /dev/null +++ b/docs/_layouts/single.html @@ -0,0 +1,74 @@ +--- +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 %} + +
+ {% if page.title %}{% endif %} + {% if page.excerpt %}{% endif %} + {% if page.date %}{% endif %} + {% if page.modified %}{% endif %} + +
+ {% unless page.header.overlay_color or page.header.overlay_image %} +
+ {% if page.title %}

{{ page.title | markdownify | remove: "

" | remove: "

" }}

{% endif %} + {% if page.read_time %} +

{% include read-time.html %}

+ {% endif %} +
+ {% endunless %} + +
+ {{ 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.modified %} +

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

+ {% elsif page.date %} +

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

+ {% endif %} +
+ + {% if page.share %}{% include social-share.html %}{% endif %} + + {% include post_pagination.html %} +
+ + {% if site.comments.provider and page.comments %} + {% include comments.html %} + {% endif %} +
+ + {% comment %}{% endcomment %} + {% if page.id and page.related and site.related_posts.size > 0 %} + + {% endif %} +
\ No newline at end of file diff --git a/docs/_layouts/splash.html b/docs/_layouts/splash.html new file mode 100644 index 00000000..f2b310b9 --- /dev/null +++ b/docs/_layouts/splash.html @@ -0,0 +1,20 @@ +--- +layout: default +--- + +{% if page.header.overlay_color or page.header.overlay_image or page.header.image %} + {% include page__hero.html %} +{% endif %} + +
+
+ {% if page.title %}{% endif %} + {% if page.excerpt %}{% endif %} + {% if page.date %}{% endif %} + {% if page.modified %}{% endif %} + +
+ {{ content }} +
+
+
\ No newline at end of file diff --git a/example/_pages/404.md b/docs/_pages/404.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/404.md rename to docs/_pages/404.md diff --git a/docs/_pages/about.md b/docs/_pages/about.md new file mode 100644 index 00000000..7baa36f5 --- /dev/null +++ b/docs/_pages/about.md @@ -0,0 +1,84 @@ +--- +permalink: /about/ +title: "About" +excerpt: "Minimal Mistakes is a flexible two-column Jekyll theme." +layouts_gallery: + - url: /assets/images/mm-layout-splash.png + image_path: /assets/images/mm-layout-splash.png + alt: "splash layout example" + - url: /assets/images/mm-layout-single-meta.png + image_path: /assets/images/mm-layout-single-meta.png + alt: "single layout with comments and related posts" + - url: /assets/images/mm-layout-archive.png + image_path: /assets/images/mm-layout-archive.png + alt: "archive layout example" +modified: 2016-10-10T11:51:50-04:00 +--- + +{% include base_path %} + +Minimal Mistakes is a flexible two-column Jekyll theme. Perfect for hosting your personal site, blog, or portfolio on GitHub or self-hosting on your own server. As the name implies --- styling is purposely minimalistic to be enhanced and customized by you :smile:. + +{% include gallery id="layouts_gallery" caption="Examples of included layouts `splash`, `single`, and `archive`." %} + +[Install the Theme]({{ base_path }}/docs/quick-start-guide/){: .btn .btn--success .btn--large} + +## Notable Features + +- Compatible with Jekyll 3.x and GitHub Pages +- Support for Jekyll's built-in Sass/SCSS preprocessor +- Several responsive layout options (single, archive index, splash, and paginated home page) +- SEO optimized with support for [Twitter Cards](https://dev.twitter.com/cards/overview) and [Open Graph](http://ogp.me/) data +- Optional [header images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#headers), [custom sidebars](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#sidebars), [table of contents](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#table-of-contents), [galleries](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery), related posts, [breadcrumb links](https://mmistakes.github.io/minimal-mistakes/docs/configuration/#breadcrumb-navigation-beta), [navigation lists](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list), and more. +- Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), Google+, [Discourse](https://www.discourse.org/), static-based via [Staticman](https://staticman.net/), and custom). +- [Google Analytics](https://www.google.com/analytics/) support. +- UI localized text in English (default), Brazilian Portguese, Chinese, French, German, Italian, Spanish, and Turkish + +## Demo Pages + +| Name | Description | +| ------------------------------------------- | ----------------------------------------------------- | +| [Post with Header Image][header-image-post] | A post with a large header image. | +| [HTML Tags and Formatting Post][html-tags-post] | A variety of common markup showing how the theme styles them. | +| [Syntax Highlighting Post][syntax-post] | Post displaying highlighted code. | +| [Post with a Gallery][gallery-post] | A post showing several images wrapped in `
` elements. | +| [Sample Collection Page][sample-collection] | Single page from a collection. | +| [Categories Archive][categories-archive] | Posts grouped by category. | +| [Tags Archive][tags-archive] | Posts grouped by tags. | + +For even more demo pages check the [posts archive][year-archive]. + +[header-image-post]: {{ base_path }}{% post_url 2012-03-15-layout-header-image-text-readability %} +[gallery-post]: {{ base_path }}{% post_url 2010-09-09-post-gallery %} +[html-tags-post]: {{ base_path }}{% post_url 2013-01-11-markup-html-tags-and-formatting %} +[syntax-post]: {{ base_path }}{% post_url 2013-08-16-markup-syntax-highlighting %} +[sample-collection]: {{ base_path }}/recipes/chocolate-chip-cookies/ +[categories-archive]: {{ base_path }}/categories/ +[tags-archive]: {{ base_path }}/tags/ +[year-archive]: {{ base_path }}/year-archive/ + +--- + +## Credits + +### Icons + Demo Images: + +- [The Noun Project](https://thenounproject.com) -- Garrett Knoll, Arthur Shlain, and [tracy tam](https://thenounproject.com/tracytam) +- [Font Awesome](http://fortawesome.github.io/Font-Awesome/) +- [Unsplash](https://unsplash.com/) + +### Other: + +- [Jekyll](http://jekyllrb.com/) +- [jQuery](http://jquery.com/) +- [Susy](http://susy.oddbird.net/) +- [Breakpoint](http://breakpoint-sass.com/) +- [Magnific Popup](http://dimsemenov.com/plugins/magnific-popup/) +- [FitVids.JS](http://fitvidsjs.com/) +- Greedy Navigation - [lukejacksonn](http://codepen.io/lukejacksonn/pen/PwmwWV) +- [jQuery Smooth Scroll](https://github.com/kswedberg/jquery-smooth-scroll) +- [Stickyfill](https://github.com/wilddeer/stickyfill) + +--- + +Minimal Mistakes is designed, developed, and maintained by Michael Rose. Just another boring, tattooed, designer from Buffalo New York. \ No newline at end of file diff --git a/example/_pages/archive-layout-with-content.md b/docs/_pages/archive-layout-with-content.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/archive-layout-with-content.md rename to docs/_pages/archive-layout-with-content.md diff --git a/example/_pages/category-archive.html b/docs/_pages/category-archive.html old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/category-archive.html rename to docs/_pages/category-archive.html diff --git a/example/_pages/collection-archive.html b/docs/_pages/collection-archive.html old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/collection-archive.html rename to docs/_pages/collection-archive.html diff --git a/docs/_pages/home.md b/docs/_pages/home.md new file mode 100644 index 00000000..8ca03502 --- /dev/null +++ b/docs/_pages/home.md @@ -0,0 +1,38 @@ +--- +layout: splash +permalink: / +header: + overlay_color: "#5e616c" + overlay_image: /assets/images/mm-home-page-feature.jpg + cta_label: " Install Now" + cta_url: "/docs/quick-start-guide/" + caption: +excerpt: 'A flexible two-column Jekyll theme. Perfect for personal sites, blogs, and portfolios hosted on GitHub or your own server.
Latest release v4.0.4

{::nomarkdown} {:/nomarkdown}' +feature_row: + - image_path: /assets/images/mm-customizable-feature.png + alt: "customizable" + title: "Super Customizable" + excerpt: "Everything from the menus, sidebars, comments, and more can be configured or set with YAML Front Matter." + url: "/docs/configuration/" + btn_label: "Learn More" + - image_path: /assets/images/mm-responsive-feature.png + alt: "fully responsive" + title: "Responsive Layouts" + excerpt: "Built on HTML5 + CSS3. All layouts are fully responsive with helpers to augment your content." + url: "/docs/layouts/" + btn_label: "Learn More" + - image_path: /assets/images/mm-free-feature.png + alt: "100% free" + title: "100% Free" + excerpt: "Free to use however you want under the MIT License. Clone it, fork it, customize it, whatever!" + url: "/docs/license/" + btn_label: "Learn More" +github: + - excerpt: '{::nomarkdown} {:/nomarkdown}' +intro: + - excerpt: 'Get notified when I add new stuff   [ @mmistakes](https://twitter.com/mmistakes){: .btn .btn--twitter}' +--- + +{% include feature_row id="intro" type="center" %} + +{% include feature_row %} diff --git a/example/_pages/lorem-ipsum.md b/docs/_pages/lorem-ipsum.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/lorem-ipsum.md rename to docs/_pages/lorem-ipsum.md diff --git a/example/_pages/page-a.md b/docs/_pages/page-a.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/page-a.md rename to docs/_pages/page-a.md diff --git a/example/_pages/page-archive.html b/docs/_pages/page-archive.html old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/page-archive.html rename to docs/_pages/page-archive.html diff --git a/example/_pages/page-b.md b/docs/_pages/page-b.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/page-b.md rename to docs/_pages/page-b.md diff --git a/example/_pages/portfolio-archive.html b/docs/_pages/portfolio-archive.html old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/portfolio-archive.html rename to docs/_pages/portfolio-archive.html diff --git a/example/_pages/recipes-archive.html b/docs/_pages/recipes-archive.html old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/recipes-archive.html rename to docs/_pages/recipes-archive.html diff --git a/example/_pages/sample-page.md b/docs/_pages/sample-page.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/sample-page.md rename to docs/_pages/sample-page.md diff --git a/example/_pages/sitemap.md b/docs/_pages/sitemap.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/sitemap.md rename to docs/_pages/sitemap.md diff --git a/example/_pages/splash-page.md b/docs/_pages/splash-page.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/splash-page.md rename to docs/_pages/splash-page.md diff --git a/example/_pages/tag-archive.html b/docs/_pages/tag-archive.html old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/tag-archive.html rename to docs/_pages/tag-archive.html diff --git a/example/_pages/terms.md b/docs/_pages/terms.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/terms.md rename to docs/_pages/terms.md diff --git a/example/_pages/year-archive.html b/docs/_pages/year-archive.html old mode 100755 new mode 100644 similarity index 100% rename from example/_pages/year-archive.html rename to docs/_pages/year-archive.html diff --git a/example/_pets/lhasa-apso.md b/docs/_pets/lhasa-apso.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pets/lhasa-apso.md rename to docs/_pets/lhasa-apso.md diff --git a/example/_pets/tabby.md b/docs/_pets/tabby.md old mode 100755 new mode 100644 similarity index 100% rename from example/_pets/tabby.md rename to docs/_pets/tabby.md diff --git a/example/_portfolio/foo-bar-website.md b/docs/_portfolio/foo-bar-website.md old mode 100755 new mode 100644 similarity index 100% rename from example/_portfolio/foo-bar-website.md rename to docs/_portfolio/foo-bar-website.md diff --git a/example/_posts/2009-05-15-edge-case-nested-and-mixed-lists.md b/docs/_posts/2009-05-15-edge-case-nested-and-mixed-lists.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2009-05-15-edge-case-nested-and-mixed-lists.md rename to docs/_posts/2009-05-15-edge-case-nested-and-mixed-lists.md diff --git a/example/_posts/2009-06-01-edge-case-many-tags.md b/docs/_posts/2009-06-01-edge-case-many-tags.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2009-06-01-edge-case-many-tags.md rename to docs/_posts/2009-06-01-edge-case-many-tags.md diff --git a/example/_posts/2009-07-02-edge-case-many-categories.md b/docs/_posts/2009-07-02-edge-case-many-categories.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2009-07-02-edge-case-many-categories.md rename to docs/_posts/2009-07-02-edge-case-many-categories.md diff --git a/example/_posts/2009-08-06-edge-case-no-body-content.md b/docs/_posts/2009-08-06-edge-case-no-body-content.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2009-08-06-edge-case-no-body-content.md rename to docs/_posts/2009-08-06-edge-case-no-body-content.md diff --git a/example/_posts/2009-09-05-edge-case-no-yaml-title.md b/docs/_posts/2009-09-05-edge-case-no-yaml-title.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2009-09-05-edge-case-no-yaml-title.md rename to docs/_posts/2009-09-05-edge-case-no-yaml-title.md diff --git a/example/_posts/2009-10-05-edge-case-title-should-not-overflow-the-content-area.md b/docs/_posts/2009-10-05-edge-case-title-should-not-overflow-the-content-area.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2009-10-05-edge-case-title-should-not-overflow-the-content-area.md rename to docs/_posts/2009-10-05-edge-case-title-should-not-overflow-the-content-area.md diff --git a/example/_posts/2009-10-05-edge-case-very-long-title.md b/docs/_posts/2009-10-05-edge-case-very-long-title.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2009-10-05-edge-case-very-long-title.md rename to docs/_posts/2009-10-05-edge-case-very-long-title.md diff --git a/example/_posts/2010-01-07-post-modified.md b/docs/_posts/2010-01-07-post-modified.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-01-07-post-modified.md rename to docs/_posts/2010-01-07-post-modified.md diff --git a/example/_posts/2010-01-07-post-standard.md b/docs/_posts/2010-01-07-post-standard.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-01-07-post-standard.md rename to docs/_posts/2010-01-07-post-standard.md diff --git a/example/_posts/2010-01-08-post-chat.md b/docs/_posts/2010-01-08-post-chat.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-01-08-post-chat.md rename to docs/_posts/2010-01-08-post-chat.md diff --git a/example/_posts/2010-02-05-post-notice.md b/docs/_posts/2010-02-05-post-notice.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-02-05-post-notice.md rename to docs/_posts/2010-02-05-post-notice.md diff --git a/example/_posts/2010-02-05-post-quote.md b/docs/_posts/2010-02-05-post-quote.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-02-05-post-quote.md rename to docs/_posts/2010-02-05-post-quote.md diff --git a/example/_posts/2010-03-07-post-link.md b/docs/_posts/2010-03-07-post-link.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-03-07-post-link.md rename to docs/_posts/2010-03-07-post-link.md diff --git a/example/_posts/2010-06-02-post-video-youtube.md b/docs/_posts/2010-06-02-post-video-youtube.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-06-02-post-video-youtube.md rename to docs/_posts/2010-06-02-post-video-youtube.md diff --git a/example/_posts/2010-08-05-post-image-linked.md b/docs/_posts/2010-08-05-post-image-linked.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-08-05-post-image-linked.md rename to docs/_posts/2010-08-05-post-image-linked.md diff --git a/example/_posts/2010-08-05-post-image-standard.md b/docs/_posts/2010-08-05-post-image-standard.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-08-05-post-image-standard.md rename to docs/_posts/2010-08-05-post-image-standard.md diff --git a/example/_posts/2010-08-06-post-image-linked-caption.md b/docs/_posts/2010-08-06-post-image-linked-caption.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-08-06-post-image-linked-caption.md rename to docs/_posts/2010-08-06-post-image-linked-caption.md diff --git a/example/_posts/2010-08-07-post-image-caption.md b/docs/_posts/2010-08-07-post-image-caption.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-08-07-post-image-caption.md rename to docs/_posts/2010-08-07-post-image-caption.md diff --git a/example/_posts/2010-09-09-post-gallery.md b/docs/_posts/2010-09-09-post-gallery.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-09-09-post-gallery.md rename to docs/_posts/2010-09-09-post-gallery.md diff --git a/example/_posts/2010-09-10-post-twitter-embeds.md b/docs/_posts/2010-09-10-post-twitter-embeds.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-09-10-post-twitter-embeds.md rename to docs/_posts/2010-09-10-post-twitter-embeds.md diff --git a/example/_posts/2010-10-25-post-future-date.md b/docs/_posts/2010-10-25-post-future-date.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2010-10-25-post-future-date.md rename to docs/_posts/2010-10-25-post-future-date.md diff --git a/example/_posts/2012-01-02-layout-comments-disabled.md b/docs/_posts/2012-01-02-layout-comments-disabled.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-02-layout-comments-disabled.md rename to docs/_posts/2012-01-02-layout-comments-disabled.md diff --git a/example/_posts/2012-01-02-layout-comments.md b/docs/_posts/2012-01-02-layout-comments.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-02-layout-comments.md rename to docs/_posts/2012-01-02-layout-comments.md diff --git a/example/_posts/2012-01-02-layout-read-time-disabled.md b/docs/_posts/2012-01-02-layout-read-time-disabled.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-02-layout-read-time-disabled.md rename to docs/_posts/2012-01-02-layout-read-time-disabled.md diff --git a/example/_posts/2012-01-02-layout-read-time.md b/docs/_posts/2012-01-02-layout-read-time.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-02-layout-read-time.md rename to docs/_posts/2012-01-02-layout-read-time.md diff --git a/example/_posts/2012-01-02-layout-related-posts-disabled.md b/docs/_posts/2012-01-02-layout-related-posts-disabled.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-02-layout-related-posts-disabled.md rename to docs/_posts/2012-01-02-layout-related-posts-disabled.md diff --git a/example/_posts/2012-01-02-layout-related-posts.md b/docs/_posts/2012-01-02-layout-related-posts.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-02-layout-related-posts.md rename to docs/_posts/2012-01-02-layout-related-posts.md diff --git a/example/_posts/2012-01-02-layout-sharing-disabled.md b/docs/_posts/2012-01-02-layout-sharing-disabled.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-02-layout-sharing-disabled.md rename to docs/_posts/2012-01-02-layout-sharing-disabled.md diff --git a/example/_posts/2012-01-02-layout-sharing.md b/docs/_posts/2012-01-02-layout-sharing.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-02-layout-sharing.md rename to docs/_posts/2012-01-02-layout-sharing.md diff --git a/example/_posts/2012-01-03-layout-read-time-comments-sharing-related-posts-disabled.md b/docs/_posts/2012-01-03-layout-read-time-comments-sharing-related-posts-disabled.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-03-layout-read-time-comments-sharing-related-posts-disabled.md rename to docs/_posts/2012-01-03-layout-read-time-comments-sharing-related-posts-disabled.md diff --git a/example/_posts/2012-01-03-layout-table-of-contents-post.md b/docs/_posts/2012-01-03-layout-table-of-contents-post.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-01-03-layout-table-of-contents-post.md rename to docs/_posts/2012-01-03-layout-table-of-contents-post.md diff --git a/example/_posts/2012-03-14-layout-code-excerpt-generated.md b/docs/_posts/2012-03-14-layout-code-excerpt-generated.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-14-layout-code-excerpt-generated.md rename to docs/_posts/2012-03-14-layout-code-excerpt-generated.md diff --git a/example/_posts/2012-03-14-layout-excerpt-defined.md b/docs/_posts/2012-03-14-layout-excerpt-defined.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-14-layout-excerpt-defined.md rename to docs/_posts/2012-03-14-layout-excerpt-defined.md diff --git a/example/_posts/2012-03-14-layout-excerpt-generated.md b/docs/_posts/2012-03-14-layout-excerpt-generated.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-14-layout-excerpt-generated.md rename to docs/_posts/2012-03-14-layout-excerpt-generated.md diff --git a/example/_posts/2012-03-15-layout-author-override.md b/docs/_posts/2012-03-15-layout-author-override.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-author-override.md rename to docs/_posts/2012-03-15-layout-author-override.md diff --git a/example/_posts/2012-03-15-layout-author-sidebar-disabled.md b/docs/_posts/2012-03-15-layout-author-sidebar-disabled.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-author-sidebar-disabled.md rename to docs/_posts/2012-03-15-layout-author-sidebar-disabled.md diff --git a/example/_posts/2012-03-15-layout-header-image-external.md b/docs/_posts/2012-03-15-layout-header-image-external.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-header-image-external.md rename to docs/_posts/2012-03-15-layout-header-image-external.md diff --git a/example/_posts/2012-03-15-layout-header-image-horizontal.md b/docs/_posts/2012-03-15-layout-header-image-horizontal.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-header-image-horizontal.md rename to docs/_posts/2012-03-15-layout-header-image-horizontal.md diff --git a/example/_posts/2012-03-15-layout-header-image-text-readability.md b/docs/_posts/2012-03-15-layout-header-image-text-readability.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-header-image-text-readability.md rename to docs/_posts/2012-03-15-layout-header-image-text-readability.md diff --git a/example/_posts/2012-03-15-layout-header-image-vertical.md b/docs/_posts/2012-03-15-layout-header-image-vertical.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-header-image-vertical.md rename to docs/_posts/2012-03-15-layout-header-image-vertical.md diff --git a/example/_posts/2012-03-15-layout-header-overlay-color.md b/docs/_posts/2012-03-15-layout-header-overlay-color.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-header-overlay-color.md rename to docs/_posts/2012-03-15-layout-header-overlay-color.md diff --git a/docs/_posts/2012-03-15-layout-header-overlay-image.md b/docs/_posts/2012-03-15-layout-header-overlay-image.md new file mode 100644 index 00000000..80c39c42 --- /dev/null +++ b/docs/_posts/2012-03-15-layout-header-overlay-image.md @@ -0,0 +1,51 @@ +--- +title: "Layout: Header Image Overlay" +header: + overlay_image: /assets/images/unsplash-image-1.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" + cta_url: "https://unsplash.com" +categories: + - Layout + - Uncategorized +tags: + - edge case + - image + - layout +modified: 2016-11-03T11:45:09-04:00 +--- + +This post should display a **header with an overlay image**, if the theme supports it. + +Non-square images can provide some unique styling issues. + +This post tests overlay header images. + +## Overlay filter + +You can use it by specifying the opacity (between 0 and 1) of a black overlay like so: + +![transparent black overlay]({{ "/assets/images/mm-header-overlay-black-filter.jpg" | absolute_url }}) + +```yaml +excerpt: "This post should [...]" +header: + overlay_image: /assets/images/unsplash-image-1.jpg + overlay_filter: 0.5 # same as adding an opacity of 0.5 to a black background + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" + cta_label: "More Info" + cta_url: "https://unsplash.com" +``` + +Or if you want to do more fancy things, go full rgba: + +![transparent red overlay]({{ "/assets/images/mm-header-overlay-red-filter.jpg" | absolute_url }}) + +```yaml +excerpt: "This post should [...]" +header: + overlay_image: /assets/images/unsplash-image-1.jpg + overlay_filter: rgba(255, 0, 0, 0.5) + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" + cta_label: "More Info" + cta_url: "https://unsplash.com" +``` \ No newline at end of file diff --git a/example/_posts/2012-03-15-layout-more-tag.md b/docs/_posts/2012-03-15-layout-more-tag.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-more-tag.md rename to docs/_posts/2012-03-15-layout-more-tag.md diff --git a/example/_posts/2012-03-15-layout-sidebar-custom.md b/docs/_posts/2012-03-15-layout-sidebar-custom.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-sidebar-custom.md rename to docs/_posts/2012-03-15-layout-sidebar-custom.md diff --git a/example/_posts/2012-05-22-markup-text-readability.md b/docs/_posts/2012-05-22-markup-text-readability.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-05-22-markup-text-readability.md rename to docs/_posts/2012-05-22-markup-text-readability.md diff --git a/example/_posts/2013-01-05-markup-title-with-markup.md b/docs/_posts/2013-01-05-markup-title-with-markup.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2013-01-05-markup-title-with-markup.md rename to docs/_posts/2013-01-05-markup-title-with-markup.md diff --git a/example/_posts/2013-01-05-markup-title-with-special-characters.md b/docs/_posts/2013-01-05-markup-title-with-special-characters.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2013-01-05-markup-title-with-special-characters.md rename to docs/_posts/2013-01-05-markup-title-with-special-characters.md diff --git a/example/_posts/2013-01-09-markup-text-alignment.md b/docs/_posts/2013-01-09-markup-text-alignment.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2013-01-09-markup-text-alignment.md rename to docs/_posts/2013-01-09-markup-text-alignment.md diff --git a/example/_posts/2013-01-10-markup-image-alignment.md b/docs/_posts/2013-01-10-markup-image-alignment.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2013-01-10-markup-image-alignment.md rename to docs/_posts/2013-01-10-markup-image-alignment.md diff --git a/docs/_posts/2013-01-11-markup-html-tags-and-formatting.md b/docs/_posts/2013-01-11-markup-html-tags-and-formatting.md new file mode 100644 index 00000000..2a34d618 --- /dev/null +++ b/docs/_posts/2013-01-11-markup-html-tags-and-formatting.md @@ -0,0 +1,222 @@ +--- +title: "Markup: HTML Tags and Formatting" +header: + teaser: "assets/images/markup-syntax-highlighting-teaser.jpg" +categories: + - Markup +tags: + - content + - css + - formatting + - html + - markup +--- + +A variety of common markup showing how the theme styles them. + +# Header one + +## Header two + +### Header three + +#### Header four + +##### Header five + +###### Header six + +## Blockquotes + +Single line blockquote: + +> Stay hungry. Stay foolish. + +Multi line blockquote with a cite reference: + +> People think focus means saying yes to the thing you've got to focus on. But that's not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I'm actually as proud of the things we haven't done as the things I have done. Innovation is saying no to 1,000 things. + +Steve Jobs --- Apple Worldwide Developers' Conference, 1997 +{: .small} + +## Tables + +| Employee | Salary | | +| -------- | ------ | ------------------------------------------------------------ | +| [John Doe](#) | $1 | Because that's all Steve Jobs needed for a salary. | +| [Jane Doe](#) | $100K | For all the blogging she does. | +| [Fred Bloggs](#) | $100M | Pictures are worth a thousand words, right? So Jane × 1,000. | +| [Jane Bloggs](#) | $100B | With hair like that?! Enough said. | + +| Header1 | Header2 | Header3 | +|:--------|:-------:|--------:| +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|-----------------------------| +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|=============================| +| Foot1 | Foot2 | Foot3 | + +## Definition Lists + +Definition List Title +: Definition list division. + +Startup +: A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model. + +#dowork +: Coined by Rob Dyrdek and his personal body guard Christopher "Big Black" Boykins, "Do Work" works as a self motivator, to motivating your friends. + +Do It Live +: I'll let Bill O'Reilly [explain](https://www.youtube.com/watch?v=O_HyZ5aW76c "We'll Do It Live") this one. + +## Unordered Lists (Nested) + + * List item one + * List item one + * List item one + * List item two + * List item three + * List item four + * List item two + * List item three + * List item four + * List item two + * List item three + * List item four + +## Ordered List (Nested) + + 1. List item one + 1. List item one + 1. List item one + 2. List item two + 3. List item three + 4. List item four + 2. List item two + 3. List item three + 4. List item four + 2. List item two + 3. List item three + 4. List item four + +## Buttons + +Make any link standout more when applying the `.btn` class. + +```html +Success Button +``` + +[Primary Button](#){: .btn} +[Success Button](#){: .btn .btn--success} +[Warning Button](#){: .btn .btn--warning} +[Danger Button](#){: .btn .btn--danger} +[Info Button](#){: .btn .btn--info} +[Inverse Button](#){: .btn .btn--inverse} +[Light Outline Button](#){: .btn .btn--light-outline} + +```markdown +[Primary Button Text](#link){: .btn} +[Success Button Text](#link){: .btn .btn--success} +[Warning Button Text](#link){: .btn .btn--warning} +[Danger Button Text](#link){: .btn .btn--danger} +[Info Button Text](#link){: .btn .btn--info} +[Inverse Button](#link){: .btn .btn--inverse} +[Light Outline Button](#link){: .btn .btn--light-outline} +``` + +[X-Large Button](#){: .btn .btn--x-large} +[Large Button](#){: .btn .btn--large} +[Default Button](#){: .btn} +[Small Button](#){: .btn .btn--small} + +```markdown +[X-Large Button](#link){: .btn .btn--x-large} +[Large Button](#link){: .btn .btn--large} +[Default Button](#link){: .btn} +[Small Button](#link){: .btn .btn--small} +``` + +## Notices + +**Watch out!** You can also add notices by appending `{: .notice}` to a paragraph. +{: .notice} + +## HTML Tags + +### Address Tag + +
+ 1 Infinite Loop
Cupertino, CA 95014
United States +
+ +### Anchor Tag (aka. Link) + +This is an example of a [link](http://apple.com "Apple"). + +### Abbreviation Tag + +The abbreviation CSS stands for "Cascading Style Sheets". + +*[CSS]: Cascading Style Sheets + +### Cite Tag + +"Code is poetry." ---Automattic + +### Code Tag + +You will learn later on in these tests that `word-wrap: break-word;` will be your best friend. + +### Strike Tag + +This tag will let you strikeout text. + +### Emphasize Tag + +The emphasize tag should _italicize_ text. + +### Insert Tag + +This tag should denote inserted text. + +### Keyboard Tag + +This scarcely known tag emulates keyboard text, which is usually styled like the `` tag. + +### Preformatted Tag + +This tag styles large blocks of code. + +
+.post-title {
+	margin: 0 0 5px;
+	font-weight: bold;
+	font-size: 38px;
+	line-height: 1.2;
+	and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
+}
+
+ +### Quote Tag + +Developers, developers, developers… –Steve Ballmer + +### Strong Tag + +This tag shows **bold text**. + +### Subscript Tag + +Getting our science styling on with H2O, which should push the "2" down. + +### Superscript Tag + +Still sticking with science and Albert Einstein's E = MC2, which should lift the 2 up. + +### Variable Tag + +This allows you to denote variables. diff --git a/example/_posts/2013-05-22-markup-more-images.md b/docs/_posts/2013-05-22-markup-more-images.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2013-05-22-markup-more-images.md rename to docs/_posts/2013-05-22-markup-more-images.md diff --git a/example/_posts/2013-08-16-markup-syntax-highlighting.md b/docs/_posts/2013-08-16-markup-syntax-highlighting.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2013-08-16-markup-syntax-highlighting.md rename to docs/_posts/2013-08-16-markup-syntax-highlighting.md diff --git a/example/_posts/2016-02-24-welcome-to-jekyll.md b/docs/_posts/2016-02-24-welcome-to-jekyll.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2016-02-24-welcome-to-jekyll.md rename to docs/_posts/2016-02-24-welcome-to-jekyll.md diff --git a/docs/_posts/2016-09-21-gemified-theme-alpha.md b/docs/_posts/2016-09-21-gemified-theme-alpha.md new file mode 100644 index 00000000..2dfeea1d --- /dev/null +++ b/docs/_posts/2016-09-21-gemified-theme-alpha.md @@ -0,0 +1,95 @@ +--- +title: "Gemified Theme -- Alpha Release" +modified: 2016-11-03T11:46:00-04:00 +categories: + - Jekyll +tags: + - update +--- + +Jekyll [themes distributed as Ruby gems](http://jekyllrb.com/docs/themes/) are finally here to make installing and upgrading much easier. Gone are the days of forking a repo just to "install it". Or dealing with merge conflicts when pulling in upstream commits to "upgrade it". + +{% include toc title="Getting Started" %} + +If you're interested in testing out Minimal Mistakes as a gemified theme read on. There are a few caveats though: + +1. Support for a theme `assets` folder was recently [added to Jekyll core](https://github.com/jekyll/jekyll/pull/5364), but has yet to be released or rolled into the `github-pages` gem. Meaning you can't use Minimal Mistakes as a Ruby gem there just yet... locally served or self-hosted installs should be fine if you don't mind using a pre-release version of Jekyll. +2. Windows users can't currently use themes packaged as gems due to a [bug with file paths](https://github.com/jekyll/jekyll/issues/5192) in Jekyll core. This is being worked on so hopefully a [fix is on the way](https://github.com/jekyll/jekyll/pull/5256) soon. + +Fine with all that? Great. Let's continue. + +If you're migrating a site already using Minimal Mistakes and haven't customized any of the `_includes`, `_layouts`, `_sass` partials, or `assets` this should be quick and painless. + +## Step 1: Remove Theme Files + +Remove `_includes`, `_layouts`, `_sass`, `assets` folders and files within. You won't need these anymore as they're bundled in the theme. + +If you customized any of these then leave them alone and only remove the untouched ones. If setup correctly your modified versions should act as [overrides](http://jekyllrb.com/docs/themes/#overriding-theme-defaults) to the versions bundled with the theme. + +## Step 2: Update `Gemfile` + +In order to test you'll need to install pre-release gems of Jekyll and Minimal Mistakes. + +Start by replacing `gem "github-pages"` or `gem "jekyll"` with the following: + +```ruby +gem "jekyll", :git => "https://github.com/jekyll/jekyll.git" +``` + +Then add the pre-release Minimal Mistakes theme gem: + +```ruby +gem "minimal-mistakes-jekyll", :git => "https://github.com/mmistakes/minimal-mistakes.git", :branch => "feature/theme-gem"` +``` + +When finished your `Gemfile` should look something like this: + +```ruby +source "https://rubygems.org" + +gem "jekyll", :git => "https://github.com/jekyll/jekyll.git" +gem "minimal-mistakes-jekyll", :git => "https://github.com/mmistakes/minimal-mistakes.git", :branch => "feature/theme-gem" + +group :jekyll_plugins do + # gem "jekyll-archives" + gem "jekyll-paginate" + gem "jekyll-sitemap" + gem "jekyll-gist" + gem "jekyll-feed" + gem "jemoji" +end +``` + +## Step 3: Run Bundler + +Run `bundle install` (or `bundle update` if you're updating an existing repo) to install the pre-release gems. + +## Step 4: Install the Theme + +Add `theme: "minimal-mistakes-jekyll"` to your `_config.yml` file. + +If you're migrating from an existing Minimal Mistakes site you shouldn't have to change anything else after this. If it's a new site consult then docs to [properly config]({{ "/docs/configuration/" | absolute_url }}). + +**Please Note:** Paths for image headers, overlays, teasers, [galleries]({{ "/docs/helpers/#gallery" | absolute_url }}), and [feature rows]({{ "/docs/helpers/#feature-row" | absolute_url }}) have changed and now require a full path. Instead of just `image: filename.jpg` you'll need to use the full path eg: `image: assets/images/filename.jpg`. The preferred location is now `assets/images` but can be placed elsewhere or external hosted. This applies for image references in `_config.yml` and `author.yml`. +{: .notice--danger} + +## Step 5: `jekyll new` Tweaks + +If this is a new site be sure to add the following files to `_data/` and customize as you see fit. There is currently no way of bundling them in with the theme, so be sure to consult the docs on how to properly use both. + +- [`_data/ui-text.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_data/ui-text.yml) - UI text [documentation]({{ "/docs/ui-text/" | absolute_url }}) +- [`_data/navigation.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_data/navigation.yml) - navigation [documentation]({{ "/docs/navigation/" | absolute_url }}) + +You'll also need to: + +- Replace `/index.html` with a modified [Minimal Mistakes `index.html`](https://github.com/mmistakes/minimal-mistakes/blob/master/index.html). +- Change `layout: post` in `_posts/0000-00-00-welcome-to-jekyll.markdown` to `layout: single`. +- Remove `about.md`, or at the very least change `layout: page` to `layout: single` and remove references to `icon-github.html` (or [copy to your `_includes`](https://github.com/jekyll/minima/tree/master/_includes) if using). + +--- + +That's it! If all goes well running `bundle exec jekyll serve` should spin-up your site. If you encounter any bumps please file an issue on GitHub and make sure to indicate you're testing the pre-release Ruby gem version. + +[File an issue](https://github.com/mmistakes/minimal-mistakes/issues/new){: .btn .btn--info .btn--large} + +Thanks! diff --git a/docs/_posts/2016-10-06-gemified-theme-beta.md b/docs/_posts/2016-10-06-gemified-theme-beta.md new file mode 100644 index 00000000..88adb554 --- /dev/null +++ b/docs/_posts/2016-10-06-gemified-theme-beta.md @@ -0,0 +1,79 @@ +--- +title: "Gemified Theme -- Beta Release" +modified: 2016-11-03T11:45:04-04:00 +categories: + - Jekyll +tags: + - update +--- + +Hot on the heels of Jekyll v3.3.0 is a beta release of Minimal Mistakes... as a gemified theme. + +{% include toc title="Getting Started" %} + +[`minimal-mistakes-jekyll`](https://rubygems.org/gems/minimal-mistakes-jekyll) can only be used with Jekyll proper. If you're hosting on GitHub Pages or using that gem the theme won't work. 3rd party themes haven't been white-listed so it's a no go for now. + +Fine with all that? Great. Let's continue. + +If you're migrating a site already using Minimal Mistakes and haven't customized any of the `_includes`, `_layouts`, `_sass` partials, or `assets` this should be quick and painless. + +## Step 1: Remove Theme Files + +Remove `_includes`, `_layouts`, `_sass`, `assets` folders and files within. You won't need these anymore as they're bundled in the theme. + +If you customized any of these then leave them alone and only remove the untouched ones. If setup correctly your modified versions should act as [overrides](http://jekyllrb.com/docs/themes/#overriding-theme-defaults) to the versions bundled with the theme. + +## Step 2: Update `Gemfile` + +Replace `gem "github-pages` or `gem "jekyll"` with `gem "jekyll", "~> 3.3.0"`. You'll need the latest version of Jekyll[^update-jekyll] for Minimal Mistakes to work and load all of the /assets/ properly. + +[^update-jekyll]: You could also run `bundle update jekyll` to update Jekyll. + +Add the Minimal Mistakes theme gem: + +```ruby +gem "minimal-mistakes-jekyll" +``` + +When finished your `Gemfile` should look something like this: + +```ruby +source "https://rubygems.org" + +gem "jekyll", "~> 3.3.0" +gem "minimal-mistakes-jekyll" +``` + +## Step 3: Run Bundler + +Run `bundle install` (or `bundle update` if you're updating an existing repo) to install/update Jekyll and the theme. + +## Step 4: Install the Theme + +Add `theme: "minimal-mistakes-jekyll"` to your `_config.yml` file. + +If you're migrating from an existing Minimal Mistakes site you shouldn't have to change anything else after this. If it's a new site consult then docs to [properly config]({{ "/docs/configuration/" | absolute_url }}). + +**Please Note:** Paths for image headers, overlays, teasers, [galleries]({{ "/docs/helpers/#gallery" | absolute_url }}), and [feature rows]({{ "/docs/helpers/#feature-row" | absolute_url }}) have changed and now require a full path. Instead of just `image: filename.jpg` you'll need to use the full path eg: `image: assets/images/filename.jpg`. The preferred location is now `assets/images` but can be placed elsewhere or external hosted. This all applies for image references in `_config.yml` and `author.yml` as well. +{: .notice--danger} + +## Step 5: `jekyll new` Tweaks + +If this is a new site be sure to add the following files to `_data/` and customize as you see fit. There is currently no way of bundling them in with the theme, so be sure to consult the docs on how to properly use both. + +- [`_data/ui-text.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_data/ui-text.yml) - UI text [documentation]({{ "/docs/ui-text/" | absolute_url }}) +- [`_data/navigation.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_data/navigation.yml) - navigation [documentation]({{ "/docs/navigation/" | absolute_url }}) + +You'll also need to: + +- Replace `/index.html` with a modified [Minimal Mistakes `index.html`](https://github.com/mmistakes/minimal-mistakes/blob/master/index.html). +- Change `layout: post` in `_posts/0000-00-00-welcome-to-jekyll.markdown` to `layout: single`. +- Remove `about.md`, or at the very least change `layout: page` to `layout: single` and remove references to `icon-github.html` (or [copy to your `_includes`](https://github.com/jekyll/minima/tree/master/_includes) if using). + +--- + +That's it! If all goes well running `bundle exec jekyll serve` should spin-up your site. If you encounter any bumps please file an issue on GitHub and make sure to indicate you're testing the pre-release Ruby gem version. + +[File an issue](https://github.com/mmistakes/minimal-mistakes/issues/new){: .btn .btn--info .btn--large} + +Thanks! diff --git a/example/_recipes/chocolate-chip-cookies.md b/docs/_recipes/chocolate-chip-cookies.md old mode 100755 new mode 100644 similarity index 100% rename from example/_recipes/chocolate-chip-cookies.md rename to docs/_recipes/chocolate-chip-cookies.md diff --git a/example/_recipes/oatmeal-cookies.md b/docs/_recipes/oatmeal-cookies.md old mode 100755 new mode 100644 similarity index 100% rename from example/_recipes/oatmeal-cookies.md rename to docs/_recipes/oatmeal-cookies.md diff --git a/example/_recipes/peanut-butter-cookies.md b/docs/_recipes/peanut-butter-cookies.md old mode 100755 new mode 100644 similarity index 100% rename from example/_recipes/peanut-butter-cookies.md rename to docs/_recipes/peanut-butter-cookies.md diff --git a/docs/_sass/_animations.scss b/docs/_sass/_animations.scss new file mode 100644 index 00000000..25ef77fb --- /dev/null +++ b/docs/_sass/_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/docs/_sass/_archive.scss b/docs/_sass/_archive.scss new file mode 100644 index 00000000..0509f814 --- /dev/null +++ b/docs/_sass/_archive.scss @@ -0,0 +1,238 @@ +/* ========================================================================== + ARCHIVE + ========================================================================== */ + +.archive { + margin-bottom: 2em; + + @include breakpoint($medium) { + @include span(12 of 12); + } + + @include breakpoint($large) { + @include span(10 of 12 last); + @include prefix(0.5 of 12); + } + + a { + color: inherit; + text-decoration: none; + } +} + +.archive__subtitle { + margin: 1.414em 0 0; + padding-bottom: 0.5em; + font-size: $type-size-5; + color: mix(#fff, $gray, 25%); + 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; + + a + a { + opacity: 0.5; + } +} + +/* remove border*/ +.page__content { + + .archive__item-title { + margin-top: 1em; + border-bottom: none; + } +} + +.archive__item-excerpt { + margin-top: 0; + font-size: $type-size-6; + + & + p { + text-indent: 0; + } +} + +.archive__item-teaser { + border-radius: $border-radius; + overflow: hidden; + img { + width: 100%; + } +} + +.archive__item:hover { + .archive__item-teaser { + box-shadow: 0 0 10px rgba(#000, 0.25); + } + + .archive__item-title { + text-decoration: underline; + } +} + + +/* + List view + ========================================================================== */ + +.list__item { + @include breakpoint($medium) { + padding-right: $right-sidebar-width-narrow; + } + + @include breakpoint($large) { + padding-right: $right-sidebar-width; + } + + @include breakpoint($x-large) { + padding-right: $right-sidebar-width-wide; + } + + .page__meta { + margin: 0 0 4px; + } +} + + +/* + Grid view + ========================================================================== */ + +.grid__item { + margin-bottom: 2em; + + .page__meta { + margin: 0 0 4px; + } + + .archive__item-title { + margin-top: 0.5em; + font-size: $type-size-5; + } + + .archive__item-excerpt { + display: none; + } + + @include breakpoint($small) { + @include gallery(5 of 10); + .archive__item-teaser { + max-height: 200px; + } + } + + @include breakpoint($medium) { + margin-left: 0; /* reset before mixin does its thing*/ + margin-right: 0; /* reset before mixin does its thing*/ + @include gallery(2.5 of 10); + + .archive__item-teaser { + max-height: 120px; + } + + .archive__item-excerpt { + display: block; + font-size: $type-size-6; + } + } +} + + +/* + Features + ========================================================================== */ + +.feature__wrapper { + @include clearfix(); + margin-bottom: 2em; + border-bottom: 1px solid $border-color; +} + +.feature__item { + margin-bottom: 2em; + font-size: 1.25rem; + + @include breakpoint($small) { + margin-bottom: 0; + @include gallery(4 of 12); + + .feature__item-teaser { + max-height: 200px; + overflow: hidden; + } + } + + &--left { + @include full(); + font-size: 1.25rem; + + .archive__item-teaser { + margin-bottom: 2em; + } + + @include breakpoint($small) { + .archive__item-teaser { + @include span(5 of 12); + } + + .archive__item-body { + @include span(7 of 12 last); + @include prefix(0.5 of 12); + @include suffix(1 of 12); + } + } + } + + &--right { + @include full(); + font-size: 1.25rem; + + .archive__item-teaser { + margin-bottom: 2em; + } + + @include breakpoint($small) { + text-align: right; + + .archive__item-teaser { + @include span(5 of 12 rtl); + } + + .archive__item-body { + @include span(7 of 12 last rtl); + @include prefix(0.5 of 12); + @include suffix(1 of 12); + } + } + } + + &--center { + @include full(); + font-size: 1.25rem; + + .archive__item-teaser { + margin-bottom: 2em; + } + + @include breakpoint($small) { + text-align: center; + + .archive__item-teaser { + margin: 0 auto; + width: span(5 of 12); + } + + .archive__item-body { + margin: 0 auto; + width: span(7 of 12); + } + } + } +} diff --git a/docs/_sass/_base.scss b/docs/_sass/_base.scss new file mode 100644 index 00000000..c5311a29 --- /dev/null +++ b/docs/_sass/_base.scss @@ -0,0 +1,315 @@ +/* ========================================================================== + BASE ELEMENTS + ========================================================================== */ + +html { + /* sticky footer fix */ + position: relative; + min-height: 100%; +} + +body { + margin: 0; + padding: 0; + color: $text-color; + font-family: $global-font-family; + line-height: 1.5; + + &.overflow--hidden { + /* when primary navigation is visible, the content in the background won't scroll */ + overflow: hidden; + } +} + +h1, h2, h3, h4, h5, h6 { + margin: 2em 0 0.5em; + line-height: 1.2; + font-family: $header-font-family; + font-weight: bold; +} + +h1 { + margin-top: 0; + font-size: $type-size-3; +} + +h2 { + font-size: $type-size-4; +} + +h3 { + font-size: $type-size-5; +} + +h4 { + font-size: $type-size-6; +} + +h5 { + font-size: $type-size-6; +} + +h6 { + font-size: $type-size-6; +} + +small, .small { + font-size: $type-size-6; +} + +p { + margin-bottom: 1.3em; +} + +u, +ins { + text-decoration: none; + border-bottom: 1px solid $text-color; + a { + color: inherit; + } +} + +del a { + color: inherit; +} + +/* reduce orphans and widows when printing */ + +p, pre, blockquote, ul, ol, dl, figure, table, fieldset { + orphans: 3; + widows: 3; +} + +/* abbreviations */ + +abbr[title], +abbr[data-original-title] { + text-decoration: none; + cursor: help; + border-bottom: 1px dotted $text-color; +} + +/* blockquotes */ + +blockquote { + margin: 2em 1em 2em 0; + padding-left: 1em; + padding-right: 1em; + font-style: italic; + border-left: 0.25em solid $primary-color; + + cite { + font-style: italic; + + &:before { + content: "\2014"; + padding-right: 5px; + } + } +} + +/* links */ + +a { + &:focus { + @extend %tab-focus; + } + + &:hover, + &:active { + outline: 0; + } +} + +/* code */ + +tt, code, kbd, samp, pre { + font-family: $monospace; +} + +pre { + overflow-x: auto; /* add scrollbars to wide code blocks*/ +} + +p > code, +a > code, +li > code, +figcaption > code, +td > code { + padding-top: 0.1rem; + padding-bottom: 0.1rem; + font-size: $type-size-6; + background: $code-background-color; + border: 1px solid $lighter-gray; + border-radius: $border-radius; + box-shadow: $box-shadow; + + &:before, &:after { + letter-spacing: -0.2em; + content: "\00a0"; /* non-breaking space*/ + } +} + +/* horizontal rule */ + +hr { + display: block; + margin: 1em 0; + border: 0; + border-top: 1px solid $border-color; +} + +/* lists */ + +ul li, +ol li { + margin-bottom: 0.5em; +} + +li ul, +li ol { + margin-top: 0.5em; +} + +/* + Media and embeds + ========================================================================== */ + +/* Figures and images */ + +figure { + display: -webkit-box; + display: flex; + -webkit-box-pack: justify; + justify-content: space-between; + -webkit-box-align: start; + align-items: flex-start; + flex-wrap: wrap; + margin: 2em 0; + + img, + iframe, + .fluid-width-video-wrapper { + margin-bottom: 1em; + } + + img { + width: 100%; + border-radius: $border-radius; + -webkit-transition: $global-transition; + transition: $global-transition; + } + + > a { + display: block; + } + + &.half { + > a, + > img { + @include breakpoint($small) { + width: calc(50% - 0.5em); + } + } + + figcaption { + width: 100%; + } + } + + &.third { + > a, + > img { + @include breakpoint($small) { + width: calc(33.3333% - 0.5em); + } + } + + figcaption { + width: 100%; + } + } +} + +/* Figure captions */ + +figcaption { + margin-bottom: 0.5em; + color: mix(#fff, $text-color, 25%); + font-family: $caption-font-family; + font-size: $type-size-6; + + a { + color: inherit; + text-decoration: none; + border-bottom: 1px solid $light-gray; + -webkit-transition: $global-transition; + transition: $global-transition; + + &:hover { + color: #000; + border-bottom-color: #000; + } + } +} + + +/* 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; +} \ No newline at end of file diff --git a/docs/_sass/_buttons.scss b/docs/_sass/_buttons.scss new file mode 100644 index 00000000..d6cf90ea --- /dev/null +++ b/docs/_sass/_buttons.scss @@ -0,0 +1,153 @@ +/* ========================================================================== + BUTTONS + ========================================================================== */ + +/* + Default button + ========================================================================== */ + +.btn { + /* default button */ + display: inline-block; + margin-bottom: 0.25em; + padding: 0.5em 1em; + color: #fff !important; + font-family: $sans-serif; + font-size: $type-size-6; + font-weight: bold; + text-align: center; + text-decoration: none; + background-color: $primary-color; + border: 0 !important; + border-radius: $border-radius; + cursor: pointer; + + &:hover { + background-color: mix(white, #000, 20%); + } + + .icon { + margin-right: 0.5em; + } + + .icon + .hidden { + margin-left: -0.5em; /* override for hidden text*/ + } + + /* fills width of parent container */ + + &--block { + display: block; + width: 100%; + + + .btn--block { + margin-top: 0.25em; + } + } + + /* for dark backgrounds */ + + &--inverse { + color: $gray !important; + border: 1px solid $light-gray !important; /* override*/ + background-color: #fff; + + &:hover { + color: #fff !important; + border-color: $gray; + } + } + + /* light outline */ + + &--light-outline { + border: 1px solid #fff !important; /* override*/ + background-color: transparent; + } + + /* information */ + + &--info { + background-color: $info-color; + + &:hover { + background-color: mix(#000, $info-color, 20%); + } + } + + /* warning */ + + &--warning { + background-color: $warning-color; + + &:hover { + background-color: mix(#000, $warning-color, 20%); + } + } + + /* success */ + + &--success { + background-color: $success-color; + + &:hover { + background-color: mix(#000, $success-color, 20%); + } + } + + /* danger */ + + &--danger { + background-color: $danger-color; + + &:hover { + background-color: mix(#000, $danger-color, 20%); + } + } + + /* disabled */ + + &--disabled { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + box-shadow: none; + opacity: 0.65; + } + + /* social buttons */ + + $social: + (facebook, $facebook-color), + (twitter, $twitter-color), + (google-plus, $google-plus-color), + (linkedin, $linkedin-color); + + @each $socialnetwork, $color in $social { + &--#{$socialnetwork} { + background-color: $color; + + &:hover { + background-color: mix(#000, $color, 20%); + } + } + } + + /* 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/docs/_sass/_footer.scss b/docs/_sass/_footer.scss new file mode 100644 index 00000000..598bd400 --- /dev/null +++ b/docs/_sass/_footer.scss @@ -0,0 +1,80 @@ +/* ========================================================================== + FOOTER + ========================================================================== */ + +.page__footer { + @include full(); + @include clearfix; + /* sticky footer fix start */ + position: absolute; + bottom: 0; + width: 100%; + clear: both; + height: auto; + /* sticky footer fix end */ + margin-top: 3em; + color: mix(#fff, $gray, 25%); + -webkit-animation: intro 0.3s both; + animation: intro 0.3s both; + -webkit-animation-delay: 0.45s; + animation-delay: 0.45s; + background-color: $lighter-gray; + border-top: 1px solid $light-gray; + + footer { + @include container; + @include clearfix; + margin-top: 2em; + padding: 0 1em 2em; + + @include breakpoint($x-large) { + max-width: $x-large; + } + } + + a { + color: inherit; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } + + .fa { + color: mix(#fff, $gray, 25%); + } +} + +.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; + } +} \ No newline at end of file diff --git a/docs/_sass/_forms.scss b/docs/_sass/_forms.scss new file mode 100644 index 00000000..a1f0f146 --- /dev/null +++ b/docs/_sass/_forms.scss @@ -0,0 +1,391 @@ +/* ========================================================================== + Forms + ========================================================================== */ + +form { + margin: 0 0 5px 0; + + 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; + border-bottom: 1px solid mix(#fff, #000, 80%); + 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: #fff; + border: 1px solid mix(#fff, #000, 80%); + border-radius: $border-radius; + box-shadow: $box-shadow; + + &:hover { + border-color: mix(#fff, $primary-color, 50%); + } +} + +.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; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus, +select:focus { + box-shadow: none; +} + + +/* + Help text + ========================================================================== */ + +.help-block, +.help-inline { + color: $info-color; +} + +.help-block { + display: block; + margin-bottom: 1em; + line-height: 1em; +} + +.help-inline { + display: inline-block; + vertical-align: middle; + padding-left: 5px; +} + + +/* + .form-inline + ========================================================================== */ + +.form-inline input, +.form-inline textarea, +.form-inline select { + display: inline-block; + margin-bottom: 0; +} + +.form-inline label { + display: inline-block; +} + +.form-inline .radio, +.form-inline .checkbox, +.form-inline .radio { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-left: 0; + margin-right: 3px; } + + +/* + .form-search + ========================================================================== */ + +.form-search input, +.form-search textarea, +.form-search select { + display: inline-block; + margin-bottom: 0; +} + +.form-search .search-query { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; + border-radius: 14px; +} + +.form-search label { + display: inline-block; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"] { + float: left; + margin-left: 0; + margin-right: 3px; +} + + +/* + .form--loading + ========================================================================== */ + +.form--loading:before { + content: ''; +} + +.form--loading .form__spinner { + display: block; +} + +.form:before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(255, 255, 255, 0.7); + z-index: 10; +} + +.form__spinner { + display: none; + position: absolute; + top: 50%; + left: 50%; + z-index: 11; +} + + + +/* + Google search form + ========================================================================== */ + +#goog-fixurl { + ul { + list-style: none; + margin-left: 0; + padding-left: 0; + li { + list-style-type: none; + } + } +} + +#goog-wm-qt { + width: auto; + margin-right: 10px; + margin-bottom: 20px; + padding: 8px 20px; + display: inline-block; + font-size: $type-size-6; + background-color: #fff; + color: #000; + border-width: 2px !important; + border-style: solid !important; + border-color: lighten(#000,50); + border-radius: $border-radius; +} + +#goog-wm-sb { + @extend .btn; +} \ No newline at end of file diff --git a/docs/_sass/_masthead.scss b/docs/_sass/_masthead.scss new file mode 100644 index 00000000..dec55cd1 --- /dev/null +++ b/docs/_sass/_masthead.scss @@ -0,0 +1,53 @@ +/* ========================================================================== + MASTHEAD + ========================================================================== */ + +.masthead { + position: relative; + border-bottom: 1px solid $border-color; + -webkit-animation: intro 0.3s both; + animation: intro 0.3s both; + -webkit-animation-delay: 0.15s; + animation-delay: 0.15s; + z-index: 20; + + &__inner-wrap { + @include container; + @include clearfix; + padding: 1em 1em 1em; + font-family: $sans-serif-narrow; + + @include breakpoint($x-large) { + max-width: $x-large; + } + + nav { + z-index: 10; + } + + a { + text-decoration: none; + } + } +} + +.masthead__menu { + + 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; + } +} \ No newline at end of file diff --git a/docs/_sass/_mixins.scss b/docs/_sass/_mixins.scss new file mode 100644 index 00000000..14782b19 --- /dev/null +++ b/docs/_sass/_mixins.scss @@ -0,0 +1,53 @@ +/* ========================================================================== + MIXINS + ========================================================================== */ + +%tab-focus { + /* Default*/ + outline: thin dotted $warning-color; + /* Webkit*/ + outline: 5px auto $warning-color; + outline-offset: -2px; +} + +/* + em function + ========================================================================== */ + +@function em($target, $context: $doc-font-size) { + @return ($target / $context) * 1em; +} + + +/* + Bourbon clearfix + ========================================================================== */ + +/* + * Provides an easy way to include a clearfix for containing floats. + * link http://cssmojo.com/latest_new_clearfix_so_far/ + * + * example scss - Usage + * + * .element { + * @include clearfix; + * } + * + * example css - CSS Output + * + * .element::after { + * clear: both; + * content: ""; + * display: table; + * } +*/ + +@mixin clearfix { + clear: both; + + &::after { + clear: both; + content: ""; + display: table; + } +} \ No newline at end of file diff --git a/docs/_sass/_navigation.scss b/docs/_sass/_navigation.scss new file mode 100644 index 00000000..d96735b8 --- /dev/null +++ b/docs/_sass/_navigation.scss @@ -0,0 +1,432 @@ +/* ========================================================================== + NAVIGATION + ========================================================================== */ + +/* + Breadcrumb navigation links + ========================================================================== */ + +.breadcrumbs { + @include container; + @include clearfix; + margin-top: 0; + margin-bottom: 0; + padding-left: 2em; + padding-right: 2em; + font-family: $sans-serif; + -webkit-animation: intro 0.3s both; + animation: intro 0.3s both; + -webkit-animation-delay: 0.30s; + animation-delay: 0.30s; + + @include breakpoint($large) { + padding-left: 1em; + padding-right: 1em; + } + + @include breakpoint($x-large) { + max-width: $x-large; + } + + ol { + padding: 0; + list-style: none; + font-size: $type-size-6; + + @include breakpoint($large) { + @include span(10 of 12 last); + } + + @include breakpoint($x-large) { + @include prefix(0.5 of 12); + } + } + + li { + display: inline; + } + + .current { + font-weight: bold; + } +} + + +/* + Post pagination navigation links + ========================================================================== */ + +.pagination { + @include full(); + @include clearfix(); + margin-top: 1em; + padding-top: 1em; + + ul { + margin: 0; + padding: 0; + list-style-type: none; + font-family: $sans-serif; + } + + li { + display: block; + float: left; + margin-left: -1px; + + a { + 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: mix(#fff, $gray, 25%); + border: 1px solid $light-gray; + border-radius: 0; + + &:hover { + color: $link-color-hover; + } + + &.current { + color: #fff; + background: $primary-color; + } + + &.disabled { + color: mix(#fff, $gray, 75%); + 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: mix(#fff, $gray, 50%); + border: 1px solid $light-gray; + border-radius: $border-radius; + + &:hover { + color: $link-color-hover; + } + + &: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: mix(#fff, $gray, 75%); + 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; + min-width: 250px; + background: $background-color; + + a { + display: block; + margin: 0 1rem; + padding: 0.5rem 0; + color: $masthead-link-color; + text-decoration: none; + + &:hover { + color: $masthead-link-color-hover; + } + } + + button { + position: absolute; + height: 100%; + right: 0; + padding: 0 0.5rem; + border: 0; + outline: none; + background-color: $primary-color; + color: #fff; + cursor: pointer; + } + + .visible-links { + display: table; + + li { + display: table-cell; + vertical-align: middle; + + &:first-child { + font-weight: bold; + + a { + margin-left: 0; + } + } + + &:last-child { + a { + margin-right: 0; + } + } + } + + a { + position: relative; + + &:before { + content: ""; + position: absolute; + left: 0; + bottom: 0; + height: 4px; + background: mix(#fff, $primary-color, 50%); + width: 100%; + -webkit-transition: $global-transition; + transition: $global-transition; + -webkit-transform: scaleX(0); + -ms-transform: scaleX(0); + transform: scaleX(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: #fff; + box-shadow: 0 0 10px rgba(#000, 0.25); + + a { + margin: 0; + padding: 10px 20px; + font-size: $type-size-5; + + &:hover { + color: $masthead-link-color-hover; + background: mix(#fff, $primary-color, 75%); + } + } + + &: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: #fff transparent; + display: block; + z-index: 1; + } + + li { + display: block; + border-bottom: 1px solid $border-color; + + &:last-child { + border-bottom: none; + } + } + } +} + + +/* + Navigation list + ========================================================================== */ + +.nav__list { + font-size: 1.25rem; + + ul { + margin-bottom: 1em; + } + + a { + display: block; + padding: 0.125em 0; + color: inherit; + + &:hover { + text-decoration: underline; + } + } + + .active { + margin-left: -0.5em; + padding-left: 0.5em; + padding-right: 0.5em; + color: #fff; + font-weight: bold; + background: $primary-color; + border-radius: $border-radius; + + &:hover { + color: #fff; + } + } +} + +.nav__title { + margin: 0; + padding: 0.5rem 1rem; + font-family: $sans-serif-narrow; + font-size: $type-size-5; + font-weight: bold; +} + +.nav__sub-title { + display: block; + margin: 0.5rem 0; + padding: 0.5rem 0; + font-family: $sans-serif-narrow; + font-size: $type-size-6; + font-weight: bold; + text-transform: uppercase; + border-bottom: 1px solid $border-color; +} + + +/* + Table of contents navigation + ========================================================================== */ + +.toc { + font-family: $sans-serif-narrow; + color: $gray; + text-transform: uppercase; + letter-spacing: 1px; + background-color: #fff; + border: 1px solid $border-color; + border-radius: $border-radius; + box-shadow: $box-shadow; + + .nav__title { + color: #fff; + font-size: $type-size-6; + background: $primary-color; + border-top-left-radius: $border-radius; + border-top-right-radius: $border-radius; + } +} + +.toc__menu { + margin: 0; + padding: 0; + width: 100%; + list-style: none; + font-size: 0.8rem; + + a { + display: block; + padding: 0.5rem 1rem; + color: $gray; + font-size: $type-size-7; + font-weight: bold; + line-height: 1.5; + border-bottom: 1px solid $border-color; + + &:hover { + color: #000; + background: $lighter-gray; + } + } + + > li:last-child { + a { + border-bottom: none; + } + } + + li ul > li a { + padding-left: 2rem; + font-weight: normal; + } + + /* hide sub sub links on small screens*/ + li > ul li { + display: none; + + @include breakpoint($medium) { + display: block; + } + } +} \ No newline at end of file diff --git a/docs/_sass/_notices.scss b/docs/_sass/_notices.scss new file mode 100644 index 00000000..26afa319 --- /dev/null +++ b/docs/_sass/_notices.scss @@ -0,0 +1,99 @@ +/* ========================================================================== + 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; + 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/docs/_sass/_page.scss b/docs/_sass/_page.scss new file mode 100644 index 00000000..1c822397 --- /dev/null +++ b/docs/_sass/_page.scss @@ -0,0 +1,401 @@ +/* ========================================================================== + SINGLE PAGE/POST + ========================================================================== */ + +#main { + @include container; + @include clearfix; + margin-top: 2em; + padding-left: 1em; + padding-right: 1em; + animation: intro 0.3s both; + animation-delay: 0.35s; + + @include breakpoint($x-large) { + max-width: $x-large; + } +} + +.page { + @include breakpoint($large) { + @include span(10 of 12 last); + @include prefix(0.5 of 12); + @include suffix(2 of 12); + } + + .page__inner-wrap { + @include full(); + + .page__content, + .page__meta, + .page__share { + @include full(); + } + } +} + +.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 { + text-decoration: none; + + &: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; + animation: intro 0.3s both; + 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; + animation: intro 0.3s both; + 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 $border-radius 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: mix(#fff, $gray, 25%); + 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 $light-gray; + border-radius: $border-radius; + + &:hover { + text-decoration: none; + color: $link-color-hover; + } +} + + +/* + Comments + ========================================================================== */ + +.page__comments { + @include full(); +} + +.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 { + padding: 1em; + background: $lighter-gray; + 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 { + margin-top: 2em; + padding-top: 1em; + border-top: 1px solid $border-color; + @include clearfix(); + float: left; + + @include breakpoint($large) { + @include pre(2.5 of 12); + } + + a { + color: inherit; + text-decoration: none; + } +} + +.page__related-title { + margin-bottom: 10px; + font-size: $type-size-6; + text-transform: uppercase; +} \ No newline at end of file diff --git a/docs/_sass/_print.scss b/docs/_sass/_print.scss new file mode 100644 index 00000000..09bdb1d8 --- /dev/null +++ b/docs/_sass/_print.scss @@ -0,0 +1,18 @@ +/* ========================================================================== + PRINT STYLES + ========================================================================== */ + +/* + Hide the following elements on print + ========================================================================== */ + +@media print { + .masthead, + .toc, + .page__share, + .page__related, + .ads, + .page__footer { + display: none; + } +} diff --git a/docs/_sass/_reset.scss b/docs/_sass/_reset.scss new file mode 100644 index 00000000..d9ae7875 --- /dev/null +++ b/docs/_sass/_reset.scss @@ -0,0 +1,187 @@ +/* ========================================================================== + STYLE RESETS + ========================================================================== */ + +@include border-box-sizing; + +html { + /* apply a natural box layout model to all elements */ + box-sizing: border-box; + background-color: $background-color; + font-size: 16px; + + @include breakpoint($medium) { + font-size: 18px; + } + + @include breakpoint($large) { + font-size: 20px; + } + + @include breakpoint($x-large) { + font-size: 22px; + } + + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +/* Remove margin */ + +body { margin: 0; } + +/* Selected elements */ + +::-moz-selection { + color: #fff; + background: #000; +} + +::selection { + color: #fff; + background: #000; +} + +/* Display HTML5 elements in IE6-9 and FF3 */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block; +} + +/* Display block in IE6-9 and FF3 */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/* Prevents modern browsers from displaying 'audio' without controls */ + +audio:not([controls]) { + display: none; +} + +a { + color: $link-color; +} + +/* Apply focus state */ + +a:focus { + @extend %tab-focus; +} + +/* Remove outline from links */ + +a:hover, +a:active { + outline: 0; +} + +/* Prevent sub and sup affecting line-height in all browsers */ + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* img border in anchor's and image quality */ + +img { + /* Responsive images (ensure images don't scale beyond their parents) */ + max-width: 100%; /* part 1: Set a maximum relative to the parent*/ + width: auto\9; /* IE7-8 need help adjusting responsive images*/ + height: auto; /* part 2: Scale the height according to the width, otherwise you get stretching*/ + + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +/* Prevent max-width from affecting Google Maps */ + +#map_canvas img, +.google-maps img { + max-width: none; +} + +/* Consistent form font size in all browsers, margin changes, misc */ + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; /* inner spacing ie IE6/7*/ + line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/ +} + +button::-moz-focus-inner, +input::-moz-focus-inner { /* inner padding and border oddities in FF3/4*/ + padding: 0; + border: 0; +} + +button, +html input[type="button"], // avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* corrects inability to style clickable `input` types in iOS*/ + cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/ +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/ +} + +input[type="search"] { /* Appearance in Safari/Chrome*/ + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; /* inner-padding issues in Chrome OSX, Safari 5*/ +} + +textarea { + overflow: auto; /* remove vertical scrollbar in IE6-9*/ + vertical-align: top; /* readability and alignment cross-browser*/ +} diff --git a/docs/_sass/_sidebar.scss b/docs/_sass/_sidebar.scss new file mode 100644 index 00000000..377c6237 --- /dev/null +++ b/docs/_sass/_sidebar.scss @@ -0,0 +1,232 @@ +/* ========================================================================== + SIDEBAR + ========================================================================== */ + +/* + Default + ========================================================================== */ + +.sidebar { + @include clearfix(); + margin-bottom: 1em; + + @include breakpoint($large) { + @include span(2 of 12); + opacity: 0.75; + -webkit-transition: opacity 0.2s ease-in-out; + transition: opacity 0.2s ease-in-out; + + &:hover { + opacity: 1; + } + } + + @include breakpoint($x-large) { + padding-right: 0; + } + + h2, h3, h4, h5, h6 { + margin-bottom: 0; + font-family: $sans-serif-narrow; + } + + h3, h4 { + font-size: $type-size-5; + } + + p, li { + font-family: $sans-serif; + font-size: $type-size-6; + line-height: 1.5; + } + + img { + width: 100%; + } +} + +.sidebar__right { + margin-bottom: 1em; + + @include breakpoint($large) { + position: relative; + float: right; + width: $right-sidebar-width-narrow; + margin-left: span(0.5 of 12); + z-index: 10; + } + + @include breakpoint($x-large) { + width: $right-sidebar-width; + } +} + +/* + Author profile and links + ========================================================================== */ + +.author__avatar { + display: table-cell; + vertical-align: top; + width: 36px; + height: 36px; + + @include breakpoint($large) { + display: block; + width: auto; + height: auto; + } + + img { + max-width: 110px; + border-radius: 50%; + + @include breakpoint($large) { + padding: 5px; + border: 1px solid $border-color; + } + } +} + +.author__content { + display: table-cell; + vertical-align: top; + padding-left: 15px; + padding-right: 25px; + line-height: 1; + + @include breakpoint($large) { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; + } +} + +.author__name { + margin: 0; + + @include breakpoint($large) { + margin-top: 10px; + margin-bottom: 10px; + } +} +.sidebar .author__name { + font-family: $sans-serif; + font-size: $type-size-5; +} + +.author__bio { + margin: 0; + + @include breakpoint($large) { + margin-top: 10px; + margin-bottom: 20px; + } +} + +.author__urls-wrapper { + position: relative; + display: table-cell; + vertical-align: middle; + font-family: $sans-serif; + z-index: 10; + position: relative; + cursor: pointer; + + li:last-child { + a { + margin-bottom: 0; + } + } + + @include breakpoint($large) { + display: block; + } + + button { + margin-bottom: 0; + + @include breakpoint($large) { + display: none; + } + } +} + +.author__urls { + display: none; + position: absolute; + right: 0; + margin-top: 15px; + padding: 10px; + list-style-type: none; + border: 1px solid $border-color; + border-radius: $border-radius; + background: #fff; + z-index: -1; + box-shadow: 0 0 10px rgba(#000, 0.25); + cursor: default; + + @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: #fff 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; + } + } +} \ No newline at end of file diff --git a/docs/_sass/_syntax.scss b/docs/_sass/_syntax.scss new file mode 100644 index 00000000..fb13b73a --- /dev/null +++ b/docs/_sass/_syntax.scss @@ -0,0 +1,146 @@ +/* ========================================================================== + Syntax highlighting + ========================================================================== */ + +div.highlighter-rouge, +figure.highlight { + position: relative; + margin-bottom: 1em; + font-family: $monospace; + font-size: $type-size-7; + line-height: 1.8; + border: 1px solid $border-color; + border-radius: $border-radius; + background-color: $code-background-color; + box-shadow: $box-shadow; + + &:before { + position: absolute; + top: 0; + right: 0; + padding: 0.5em; + background-color: $lighter-gray; + content: "\f121"; + font-family: "fontawesome" !important; + line-height: 1; + text-transform: none; + speak: none; + } + + .highlight { + margin: 0; + padding: 1em; + } +} + +figure.highlight { + padding-left: 1em; + padding-right: 1em; +} + +.highlight table { + font-size: 1em; + border: 0; + + td { + padding: 5px; + border: 0; + + // line numbers + &.gutter { + padding-right: 1em; + color: $light-gray; + } + } + + pre { + margin: 0; + } +} + +.highlight pre { width: 100%; } + +/* + Solarized Light + http://ethanschoonover.com/solarized + + SOLARIZED HEX ROLE + --------- -------- ------------------------------------------ + base01 #586e75 body text / default code / primary content + base1 #93a1a1 comments / secondary content + base3 #fdf6e3 background + orange #cb4b16 constants + red #dc322f regex, special keywords + blue #22b3eb reserved keywords + cyan #2aa198 strings, numbers + green #859900 operators, other keywords + ========================================================================== */ + +.highlight .c { color: #93a1a1 } /* Comment */ +.highlight .err { color: #586e75 } /* Error */ +.highlight .g { color: #586e75 } /* Generic */ +.highlight .k { color: #859900 } /* Keyword */ +.highlight .l { color: #586e75 } /* Literal */ +.highlight .n { color: #586e75 } /* Name */ +.highlight .o { color: #859900 } /* Operator */ +.highlight .x { color: #cb4b16 } /* Other */ +.highlight .p { color: #586e75 } /* Punctuation */ +.highlight .cm { color: #93a1a1 } /* Comment.Multiline */ +.highlight .cp { color: #859900 } /* Comment.Preproc */ +.highlight .c1 { color: #93a1a1 } /* Comment.Single */ +.highlight .cs { color: #859900 } /* Comment.Special */ +.highlight .gd { color: #2aa198 } /* Generic.Deleted */ +.highlight .ge { color: #586e75; font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #dc322f } /* Generic.Error */ +.highlight .gh { color: #cb4b16 } /* Generic.Heading */ +.highlight .gi { color: #859900 } /* Generic.Inserted */ +.highlight .go { color: #586e75 } /* Generic.Output */ +.highlight .gp { color: #586e75 } /* Generic.Prompt */ +.highlight .gs { color: #586e75; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #cb4b16 } /* Generic.Subheading */ +.highlight .gt { color: #586e75 } /* Generic.Traceback */ +.highlight .kc { color: #cb4b16 } /* Keyword.Constant */ +.highlight .kd { color: #22b3eb } /* Keyword.Declaration */ +.highlight .kn { color: #859900 } /* Keyword.Namespace */ +.highlight .kp { color: #859900 } /* Keyword.Pseudo */ +.highlight .kr { color: #22b3eb } /* Keyword.Reserved */ +.highlight .kt { color: #dc322f } /* Keyword.Type */ +.highlight .ld { color: #586e75 } /* Literal.Date */ +.highlight .m { color: #2aa198 } /* Literal.Number */ +.highlight .s { color: #2aa198 } /* Literal.String */ +.highlight .na { color: #586e75 } /* Name.Attribute */ +.highlight .nb { color: #B58900 } /* Name.Builtin */ +.highlight .nc { color: #22b3eb } /* Name.Class */ +.highlight .no { color: #cb4b16 } /* Name.Constant */ +.highlight .nd { color: #22b3eb } /* Name.Decorator */ +.highlight .ni { color: #cb4b16 } /* Name.Entity */ +.highlight .ne { color: #cb4b16 } /* Name.Exception */ +.highlight .nf { color: #22b3eb } /* Name.Function */ +.highlight .nl { color: #586e75 } /* Name.Label */ +.highlight .nn { color: #586e75 } /* Name.Namespace */ +.highlight .nx { color: #586e75 } /* Name.Other */ +.highlight .py { color: #586e75 } /* Name.Property */ +.highlight .nt { color: #22b3eb } /* Name.Tag */ +.highlight .nv { color: #22b3eb } /* Name.Variable */ +.highlight .ow { color: #859900 } /* Operator.Word */ +.highlight .w { color: #586e75 } /* Text.Whitespace */ +.highlight .mf { color: #2aa198 } /* Literal.Number.Float */ +.highlight .mh { color: #2aa198 } /* Literal.Number.Hex */ +.highlight .mi { color: #2aa198 } /* Literal.Number.Integer */ +.highlight .mo { color: #2aa198 } /* Literal.Number.Oct */ +.highlight .sb { color: #93a1a1 } /* Literal.String.Backtick */ +.highlight .sc { color: #2aa198 } /* Literal.String.Char */ +.highlight .sd { color: #586e75 } /* Literal.String.Doc */ +.highlight .s2 { color: #2aa198 } /* Literal.String.Double */ +.highlight .se { color: #cb4b16 } /* Literal.String.Escape */ +.highlight .sh { color: #586e75 } /* Literal.String.Heredoc */ +.highlight .si { color: #2aa198 } /* Literal.String.Interpol */ +.highlight .sx { color: #2aa198 } /* Literal.String.Other */ +.highlight .sr { color: #dc322f } /* Literal.String.Regex */ +.highlight .s1 { color: #2aa198 } /* Literal.String.Single */ +.highlight .ss { color: #2aa198 } /* Literal.String.Symbol */ +.highlight .bp { color: #22b3eb } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #22b3eb } /* Name.Variable.Class */ +.highlight .vg { color: #22b3eb } /* Name.Variable.Global */ +.highlight .vi { color: #22b3eb } /* Name.Variable.Instance */ +.highlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/_sass/_tables.scss b/docs/_sass/_tables.scss new file mode 100644 index 00000000..d31dc24a --- /dev/null +++ b/docs/_sass/_tables.scss @@ -0,0 +1,38 @@ +/* ========================================================================== + TABLES + ========================================================================== */ + +table { + margin-bottom: 1em; + width: 100%; + font-family: $global-font-family; + font-size: $type-size-6; + border-collapse: collapse; + border: 1px solid $light-gray; + + & + table { + margin-top: 1em; + } +} + +thead { + background-color: $lighter-gray; + border-bottom: 1px solid $light-gray; +} + +th { + padding: 0.5em; + font-weight: bold; + text-align: left; + border-right: 1px solid $light-gray; +} + +td { + padding: 0.5em; + border-bottom: 1px solid $light-gray; + border-right: 1px solid $light-gray; +} + +tr, td, th { + vertical-align: middle; +} \ No newline at end of file diff --git a/docs/_sass/_utilities.scss b/docs/_sass/_utilities.scss new file mode 100644 index 00000000..87536a45 --- /dev/null +++ b/docs/_sass/_utilities.scss @@ -0,0 +1,470 @@ +/* ========================================================================== + UTILITY CLASSES + ========================================================================== */ + +/* + Visibility + ========================================================================== */ + +/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */ + +.hidden { + display: none; + visibility: hidden; +} + +/* for preloading images */ + +.load { + display: none; +} + +.transparent { + opacity: 0; +} + +/* https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html */ + +.visually-hidden, +.screen-reader-text, +.screen-reader-text span, +.screen-reader-shortcut { + position: absolute !important; + clip: rect(1px, 1px, 1px, 1px); + height: 1px !important; + width: 1px !important; + border: 0 !important; + overflow: hidden; +} + +body:hover .visually-hidden a, +body:hover .visually-hidden input, +body:hover .visually-hidden button { + display: none !important; +} + +/* screen readers */ + +.screen-reader-text:focus, +.screen-reader-shortcut:focus { + clip: auto !important; + height: auto !important; + width: auto !important; + display: block; + font-size: 1em; + font-weight: bold; + padding: 15px 23px 14px; + background: #fff; + z-index: 100000; + text-decoration: none; + box-shadow: 0 0 2px 2px rgba(0,0,0,.6); +} + + +/* + Skip links + ========================================================================== */ + +.skip-link { + position: fixed; + z-index: 20; + margin: 0; + font-family: $sans-serif; + white-space: nowrap; +} + +.skip-link li { + height: 0; + width: 0; + list-style: none; +} + + +/* + Type + ========================================================================== */ + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.text-right { + text-align: right; +} + +.text-justify { + text-align: justify; +} + +.text-nowrap { + white-space: nowrap; +} + + +/* + Alignment + ========================================================================== */ + +/* clearfix */ + +.cf { clear: both; } + +.wrapper { + @include container(); +} + + +/* + Images + ========================================================================== */ + +/* image align left */ + +.align-left { + display: block; + margin-left: auto; + margin-right: auto; + + @include breakpoint($small) { + float: left; + margin-right: 1em; + } +} + +/* image align right */ + +.align-right { + display: block; + margin-left: auto; + margin-right: auto; + + @include breakpoint($small) { + float: right; + margin-left: 1em; + } +} + +/* image align center */ + +.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +/* file page content container */ + +.full { + @include breakpoint($large){ + margin-right: -1 * span(2.5 of 12) !important; + } +} + +/* + Icons + ========================================================================== */ + +.icon { + display: inline-block; + fill: currentColor; + width: 1em; + height: 1.1em; + line-height: 1; + position: relative; + top: -0.1em; + vertical-align: middle; +} + +/* social icons*/ + +.social-icons { + .fa { + color: #000; + } + + .fa-behance, + .fa-behance-square { + color: $behance-color; + } + + .fa-dribbble { + color: $dribbble-color; + } + + .fa-facebook, + .fa-facebook-square { + color: $facebook-color; + } + + .fa-flickr { + color: $flickr-color; + } + + .fa-foursquare { + color: $foursquare-color; + } + + .fa-github, + .fa-github-alt, + .fa-github-square { + color: $github-color; + } + + .fa-google-plus, + .fa-google-plus-square { + color: $google-plus-color; + } + + .fa-instagram { + color: $instagram-color; + } + + .fa-lastfm, + .fa-lastfm-square { + color: $lastfm-color; + } + + .fa-linkedin, + .fa-linkedin-square { + color: $linkedin-color; + } + + .fa-pinterest, + .fa-pinterest-p, + .fa-pinterest-square { + color: $pinterest-color; + } + + .fa-rss, + .fa-rss-square { + color: $rss-color; + } + + .fa-soundcloud { + color: $soundcloud-color; + } + + .fa-stack-exchange, + .fa-stack-overflow { + color: $stackoverflow-color; + } + + .fa-tumblr, + .fa-tumblr-square { + color: $tumblr-color; + } + + .fa-twitter, + .fa-twitter-square { + color: $twitter-color; + } + + .fa-vimeo, + .fa-vimeo-square { + color: $vimeo-color; + } + + .fa-vine { + color: $vine-color; + } + + .fa-youtube, + .fa-youtube-square, + .fa-youtube-play { + color: $youtube-color; + } + + .fa-xing, + .fa-xing-square { + color: $xing-color; + } +} + + +/* + Navicons + ========================================================================== */ + +.navicon { + position: relative; + width: $navicon-width; + height: $navicon-height; + background: #fff; + margin: auto; + -webkit-transition: 0.3s; + transition: 0.3s; + + &:before, + &:after { + content: ""; + position: absolute; + left: 0; + width: $navicon-width; + height: $navicon-height; + background: #fff; + -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); + } +} + + +/* + 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; +} diff --git a/docs/_sass/_variables.scss b/docs/_sass/_variables.scss new file mode 100644 index 00000000..a9b09121 --- /dev/null +++ b/docs/_sass/_variables.scss @@ -0,0 +1,147 @@ +/* ========================================================================== + Variables + ========================================================================== */ + +/* + Typography + ========================================================================== */ + +$doc-font-size : 16; + +/* paragraph indention */ +$paragraph-indent : false; // true, false (default) +$indent-var : 1.3em; + +/* system typefaces */ +$serif : Georgia, Times, serif; +$sans-serif : -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; +$monospace : Monaco, Consolas, "Lucida Console", monospace; + +/* sans serif typefaces */ +$sans-serif-narrow : $sans-serif; +$helvetica : Helvetica, "Helvetica Neue", Arial, sans-serif; + +/* serif typefaces */ +$georgia : Georgia, serif; +$times : Times, serif; +$bodoni : "Bodoni MT", serif; +$calisto : "Calisto MT", serif; +$garamond : Garamond, serif; + +$global-font-family : $sans-serif; +$header-font-family : $sans-serif; +$caption-font-family : $serif; + +/* type scale */ +$type-size-1 : 2.441em; // ~39.056px +$type-size-2 : 1.953em; // ~31.248px +$type-size-3 : 1.563em; // ~25.008px +$type-size-4 : 1.25em; // ~20px +$type-size-5 : 1em; // ~16px +$type-size-6 : 0.75em; // ~12px +$type-size-7 : 0.6875em; // ~11px +$type-size-8 : 0.625em; // ~10px + + +/* + Colors + ========================================================================== */ + +$gray : #7a8288; +$dark-gray : mix(#000, $gray, 40%); +$darker-gray : mix(#000, $gray, 60%); +$light-gray : mix(#fff, $gray, 50%); +$lighter-gray : mix(#fff, $gray, 90%); + +$body-color : #fff; +$background-color : #fff; +$code-background-color : #fafafa; +$code-background-color-dark : $light-gray; +$text-color : $dark-gray; +$border-color : $lighter-gray; + +$primary-color : #7a8288; +$success-color : #62c462; +$warning-color : #f89406; +$danger-color : #ee5f5b; +$info-color : #52adc8; + +/* brands */ +$behance-color : #1769FF; +$dribbble-color : #ea4c89; +$facebook-color : #3b5998; +$flickr-color : #ff0084; +$foursquare-color : #0072b1; +$github-color : #171516; +$google-plus-color : #dd4b39; +$instagram-color : #517fa4; +$lastfm-color : #d51007; +$linkedin-color : #007bb6; +$pinterest-color : #cb2027; +$rss-color : #fa9b39; +$soundcloud-color : #ff3300; +$stackoverflow-color : #fe7a15; +$tumblr-color : #32506d; +$twitter-color : #55acee; +$vimeo-color : #1ab7ea; +$vine-color : #00bf8f; +$youtube-color : #bb0000; +$xing-color : #006567; + + +/* links */ +$link-color : $info-color; +$link-color-hover : mix(#000, $link-color, 25%); +$link-color-visited : mix(#fff, $link-color, 25%); +$masthead-link-color : $primary-color; +$masthead-link-color-hover : mix(#000, $primary-color, 25%); + + +/* + Breakpoints + ========================================================================== */ + +@include breakpoint-set("to ems", true); + +$small : 600px; +$medium : 768px; +$medium-wide : 900px; +$large : 1024px; +$x-large : 1280px; + + +/* + Grid + ========================================================================== */ + +$right-sidebar-width-narrow : 200px; +$right-sidebar-width : 300px; +$right-sidebar-width-wide : 400px; + +$susy: ( + columns: 12, + // column-width: 90px, + gutters: 1/4, + math: fluid, + output: float, + gutter-position: after, + container: $large, + global-box-sizing: border-box, + // debug: ( + // image: show, + // color: blue, + // output: overlay, + // toggle: top right, + // ), +); + + +/* + Other + ========================================================================== */ + +$border-radius : 4px; +$box-shadow : 0 1px 1px rgba(0, 0, 0, 0.125); +$navicon-width : 28px; +$navicon-height : 4px; +$global-transition : all 0.2s ease-in-out; diff --git a/docs/_sass/vendor/breakpoint/_breakpoint.scss b/docs/_sass/vendor/breakpoint/_breakpoint.scss new file mode 100644 index 00000000..a0528eb8 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/_context.scss b/docs/_sass/vendor/breakpoint/_context.scss new file mode 100644 index 00000000..57947f5c --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/_helpers.scss b/docs/_sass/vendor/breakpoint/_helpers.scss new file mode 100644 index 00000000..97e522d1 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/_legacy-settings.scss b/docs/_sass/vendor/breakpoint/_legacy-settings.scss new file mode 100644 index 00000000..e060ebe3 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/_no-query.scss b/docs/_sass/vendor/breakpoint/_no-query.scss new file mode 100644 index 00000000..0b5a81f6 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/_parsers.scss b/docs/_sass/vendor/breakpoint/_parsers.scss new file mode 100644 index 00000000..f0b053fe --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/_respond-to.scss b/docs/_sass/vendor/breakpoint/_respond-to.scss new file mode 100644 index 00000000..e2462c5f --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/_settings.scss b/docs/_sass/vendor/breakpoint/_settings.scss new file mode 100644 index 00000000..05ee6894 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/_double.scss b/docs/_sass/vendor/breakpoint/parsers/_double.scss new file mode 100644 index 00000000..24580c15 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/_query.scss b/docs/_sass/vendor/breakpoint/parsers/_query.scss new file mode 100644 index 00000000..b138b393 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/_resolution.scss b/docs/_sass/vendor/breakpoint/parsers/_resolution.scss new file mode 100644 index 00000000..19769adf --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/_single.scss b/docs/_sass/vendor/breakpoint/parsers/_single.scss new file mode 100644 index 00000000..d9fd764a --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/_triple.scss b/docs/_sass/vendor/breakpoint/parsers/_triple.scss new file mode 100644 index 00000000..e2732067 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/double/_default-pair.scss b/docs/_sass/vendor/breakpoint/parsers/double/_default-pair.scss new file mode 100644 index 00000000..f88432cc --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/double/_default.scss b/docs/_sass/vendor/breakpoint/parsers/double/_default.scss new file mode 100644 index 00000000..73190ed5 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/double/_double-string.scss b/docs/_sass/vendor/breakpoint/parsers/double/_double-string.scss new file mode 100644 index 00000000..c6fd0cb0 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss b/docs/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss new file mode 100644 index 00000000..36804212 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/single/_default.scss b/docs/_sass/vendor/breakpoint/parsers/single/_default.scss new file mode 100644 index 00000000..503ef427 --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/breakpoint/parsers/triple/_default.scss b/docs/_sass/vendor/breakpoint/parsers/triple/_default.scss new file mode 100644 index 00000000..7fa418dd --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/font-awesome/_animated.scss b/docs/_sass/vendor/font-awesome/_animated.scss new file mode 100644 index 00000000..8a020dbf --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/docs/_sass/vendor/font-awesome/_bordered-pulled.scss b/docs/_sass/vendor/font-awesome/_bordered-pulled.scss new file mode 100644 index 00000000..d4b85a02 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_bordered-pulled.scss @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $fa-border-color; + border-radius: .1em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/docs/_sass/vendor/font-awesome/_core.scss b/docs/_sass/vendor/font-awesome/_core.scss new file mode 100644 index 00000000..7425ef85 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_core.scss @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/docs/_sass/vendor/font-awesome/_fixed-width.scss b/docs/_sass/vendor/font-awesome/_fixed-width.scss new file mode 100644 index 00000000..b221c981 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/docs/_sass/vendor/font-awesome/_font-awesome.scss b/docs/_sass/vendor/font-awesome/_font-awesome.scss new file mode 100644 index 00000000..2308b14c --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_font-awesome.scss @@ -0,0 +1,18 @@ +/*! + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "animated"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; +@import "screen-reader"; diff --git a/docs/_sass/vendor/font-awesome/_icons.scss b/docs/_sass/vendor/font-awesome/_icons.scss new file mode 100644 index 00000000..29443443 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_icons.scss @@ -0,0 +1,733 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } +.#{$fa-css-prefix}-music:before { content: $fa-var-music; } +.#{$fa-css-prefix}-search:before { content: $fa-var-search; } +.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } +.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } +.#{$fa-css-prefix}-star:before { content: $fa-var-star; } +.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } +.#{$fa-css-prefix}-user:before { content: $fa-var-user; } +.#{$fa-css-prefix}-film:before { content: $fa-var-film; } +.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } +.#{$fa-css-prefix}-th:before { content: $fa-var-th; } +.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } +.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, +.#{$fa-css-prefix}-times:before { content: $fa-var-times; } +.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } +.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } +.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } +.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } +.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } +.#{$fa-css-prefix}-home:before { content: $fa-var-home; } +.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } +.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } +.#{$fa-css-prefix}-road:before { content: $fa-var-road; } +.#{$fa-css-prefix}-download:before { content: $fa-var-download; } +.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } +.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } +.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } +.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } +.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } +.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } +.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } +.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } +.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } +.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } +.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } +.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } +.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } +.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } +.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } +.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } +.#{$fa-css-prefix}-book:before { content: $fa-var-book; } +.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } +.#{$fa-css-prefix}-print:before { content: $fa-var-print; } +.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } +.#{$fa-css-prefix}-font:before { content: $fa-var-font; } +.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } +.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } +.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } +.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } +.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } +.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } +.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } +.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } +.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } +.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } +.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-photo:before, +.#{$fa-css-prefix}-image:before, +.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } +.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } +.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } +.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } +.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } +.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } +.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } +.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } +.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } +.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } +.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } +.#{$fa-css-prefix}-play:before { content: $fa-var-play; } +.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } +.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } +.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } +.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } +.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } +.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } +.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } +.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } +.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } +.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } +.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } +.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } +.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } +.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } +.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } +.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } +.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } +.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } +.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } +.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } +.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } +.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { content: $fa-var-share; } +.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } +.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } +.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } +.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } +.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } +.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } +.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } +.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } +.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } +.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } +.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } +.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } +.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } +.#{$fa-css-prefix}-random:before { content: $fa-var-random; } +.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } +.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } +.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } +.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } +.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } +.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } +.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } +.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } +.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } +.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } +.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } +.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } +.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } +.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } +.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } +.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } +.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } +.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } +.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } +.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } +.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } +.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } +.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } +.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } +.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } +.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } +.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } +.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } +.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } +.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } +.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } +.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } +.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, +.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } +.#{$fa-css-prefix}-github:before { content: $fa-var-github; } +.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } +.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, +.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } +.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } +.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } +.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } +.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } +.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } +.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } +.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } +.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } +.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } +.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } +.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } +.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } +.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } +.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } +.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } +.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } +.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } +.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { content: $fa-var-link; } +.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } +.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } +.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } +.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-navicon:before, +.#{$fa-css-prefix}-reorder:before, +.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } +.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } +.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } +.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } +.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } +.#{$fa-css-prefix}-table:before { content: $fa-var-table; } +.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } +.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } +.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } +.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } +.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } +.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } +.#{$fa-css-prefix}-money:before { content: $fa-var-money; } +.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } +.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } +.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } +.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } +.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } +.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } +.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } +.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } +.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } +.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } +.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } +.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } +.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } +.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } +.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } +.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } +.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } +.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } +.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } +.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } +.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } +.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } +.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } +.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } +.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } +.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } +.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } +.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } +.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } +.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } +.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } +.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } +.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } +.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } +.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } +.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } +.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } +.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } +.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } +.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } +.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } +.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } +.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } +.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } +.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } +.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } +.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } +.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } +.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } +.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } +.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } +.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } +.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } +.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } +.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } +.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } +.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } +.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-mail-reply-all:before, +.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } +.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } +.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } +.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } +.#{$fa-css-prefix}-question:before { content: $fa-var-question; } +.#{$fa-css-prefix}-info:before { content: $fa-var-info; } +.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } +.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } +.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } +.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } +.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } +.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } +.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } +.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } +.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } +.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } +.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } +.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } +.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } +.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } +.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } +.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } +.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } +.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } +.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } +.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } +.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } +.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } +.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } +.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } +.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } +.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } +.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } +.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } +.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } +.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } +.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } +.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } +.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } +.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } +.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } +.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } +.#{$fa-css-prefix}-file:before { content: $fa-var-file; } +.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } +.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } +.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } +.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } +.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } +.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } +.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } +.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } +.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } +.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } +.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } +.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } +.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } +.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } +.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } +.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } +.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } +.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } +.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } +.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } +.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } +.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } +.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } +.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } +.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } +.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } +.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } +.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } +.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } +.#{$fa-css-prefix}-android:before { content: $fa-var-android; } +.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } +.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } +.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } +.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } +.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } +.#{$fa-css-prefix}-female:before { content: $fa-var-female; } +.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } +.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } +.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } +.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } +.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } +.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } +.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } +.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } +.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } +.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } +.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } +.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } +.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } +.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } +.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { content: $fa-var-try; } +.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } +.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } +.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } +.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } +.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } +.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } +.#{$fa-css-prefix}-institution:before, +.#{$fa-css-prefix}-bank:before, +.#{$fa-css-prefix}-university:before { content: $fa-var-university; } +.#{$fa-css-prefix}-mortar-board:before, +.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } +.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } +.#{$fa-css-prefix}-google:before { content: $fa-var-google; } +.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } +.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } +.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } +.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } +.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } +.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } +.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } +.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } +.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } +.#{$fa-css-prefix}-language:before { content: $fa-var-language; } +.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } +.#{$fa-css-prefix}-building:before { content: $fa-var-building; } +.#{$fa-css-prefix}-child:before { content: $fa-var-child; } +.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } +.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } +.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } +.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } +.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } +.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } +.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } +.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } +.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } +.#{$fa-css-prefix}-automobile:before, +.#{$fa-css-prefix}-car:before { content: $fa-var-car; } +.#{$fa-css-prefix}-cab:before, +.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } +.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } +.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } +.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } +.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } +.#{$fa-css-prefix}-database:before { content: $fa-var-database; } +.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } +.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } +.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } +.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } +.#{$fa-css-prefix}-file-photo-o:before, +.#{$fa-css-prefix}-file-picture-o:before, +.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } +.#{$fa-css-prefix}-file-zip-o:before, +.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } +.#{$fa-css-prefix}-file-sound-o:before, +.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } +.#{$fa-css-prefix}-file-movie-o:before, +.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } +.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } +.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } +.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } +.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } +.#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, +.#{$fa-css-prefix}-life-saver:before, +.#{$fa-css-prefix}-support:before, +.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } +.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } +.#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-resistance:before, +.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } +.#{$fa-css-prefix}-ge:before, +.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } +.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } +.#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, +.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } +.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } +.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } +.#{$fa-css-prefix}-wechat:before, +.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } +.#{$fa-css-prefix}-send:before, +.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } +.#{$fa-css-prefix}-send-o:before, +.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } +.#{$fa-css-prefix}-history:before { content: $fa-var-history; } +.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } +.#{$fa-css-prefix}-header:before { content: $fa-var-header; } +.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } +.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } +.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } +.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } +.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } +.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } +.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } +.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } +.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } +.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } +.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } +.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } +.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } +.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } +.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } +.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } +.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } +.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } +.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } +.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } +.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } +.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } +.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } +.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } +.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } +.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } +.#{$fa-css-prefix}-at:before { content: $fa-var-at; } +.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } +.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } +.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } +.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } +.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } +.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } +.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } +.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } +.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } +.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } +.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } +.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } +.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } +.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } +.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } +.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } +.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } +.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } +.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } +.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } +.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } +.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } +.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } +.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } +.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } +.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } +.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } +.#{$fa-css-prefix}-asl-interpreting:before, +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } +.#{$fa-css-prefix}-deafness:before, +.#{$fa-css-prefix}-hard-of-hearing:before, +.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } +.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } +.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } +.#{$fa-css-prefix}-signing:before, +.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } +.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } +.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } +.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } +.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } +.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } +.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } +.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } +.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } +.#{$fa-css-prefix}-google-plus-circle:before, +.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } +.#{$fa-css-prefix}-fa:before, +.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } diff --git a/docs/_sass/vendor/font-awesome/_larger.scss b/docs/_sass/vendor/font-awesome/_larger.scss new file mode 100644 index 00000000..41e9a818 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { font-size: 2em; } +.#{$fa-css-prefix}-3x { font-size: 3em; } +.#{$fa-css-prefix}-4x { font-size: 4em; } +.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/docs/_sass/vendor/font-awesome/_list.scss b/docs/_sass/vendor/font-awesome/_list.scss new file mode 100644 index 00000000..7d1e4d54 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/docs/_sass/vendor/font-awesome/_mixins.scss b/docs/_sass/vendor/font-awesome/_mixins.scss new file mode 100644 index 00000000..c3bbd574 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_mixins.scss @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/docs/_sass/vendor/font-awesome/_path.scss b/docs/_sass/vendor/font-awesome/_path.scss new file mode 100644 index 00000000..bb457c23 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_path.scss @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/docs/_sass/vendor/font-awesome/_rotated-flipped.scss b/docs/_sass/vendor/font-awesome/_rotated-flipped.scss new file mode 100644 index 00000000..a3558fd0 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_rotated-flipped.scss @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/docs/_sass/vendor/font-awesome/_screen-reader.scss b/docs/_sass/vendor/font-awesome/_screen-reader.scss new file mode 100644 index 00000000..637426f0 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only(); } +.sr-only-focusable { @include sr-only-focusable(); } diff --git a/docs/_sass/vendor/font-awesome/_stacked.scss b/docs/_sass/vendor/font-awesome/_stacked.scss new file mode 100644 index 00000000..aef74036 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { line-height: inherit; } +.#{$fa-css-prefix}-stack-2x { font-size: 2em; } +.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/docs/_sass/vendor/font-awesome/_variables.scss b/docs/_sass/vendor/font-awesome/_variables.scss new file mode 100644 index 00000000..a5a89ef9 --- /dev/null +++ b/docs/_sass/vendor/font-awesome/_variables.scss @@ -0,0 +1,744 @@ +// Variables +// -------------------------- + +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.3/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: "4.6.3" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-500px: "\f26e"; +$fa-var-adjust: "\f042"; +$fa-var-adn: "\f170"; +$fa-var-align-center: "\f037"; +$fa-var-align-justify: "\f039"; +$fa-var-align-left: "\f036"; +$fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; +$fa-var-ambulance: "\f0f9"; +$fa-var-american-sign-language-interpreting: "\f2a3"; +$fa-var-anchor: "\f13d"; +$fa-var-android: "\f17b"; +$fa-var-angellist: "\f209"; +$fa-var-angle-double-down: "\f103"; +$fa-var-angle-double-left: "\f100"; +$fa-var-angle-double-right: "\f101"; +$fa-var-angle-double-up: "\f102"; +$fa-var-angle-down: "\f107"; +$fa-var-angle-left: "\f104"; +$fa-var-angle-right: "\f105"; +$fa-var-angle-up: "\f106"; +$fa-var-apple: "\f179"; +$fa-var-archive: "\f187"; +$fa-var-area-chart: "\f1fe"; +$fa-var-arrow-circle-down: "\f0ab"; +$fa-var-arrow-circle-left: "\f0a8"; +$fa-var-arrow-circle-o-down: "\f01a"; +$fa-var-arrow-circle-o-left: "\f190"; +$fa-var-arrow-circle-o-right: "\f18e"; +$fa-var-arrow-circle-o-up: "\f01b"; +$fa-var-arrow-circle-right: "\f0a9"; +$fa-var-arrow-circle-up: "\f0aa"; +$fa-var-arrow-down: "\f063"; +$fa-var-arrow-left: "\f060"; +$fa-var-arrow-right: "\f061"; +$fa-var-arrow-up: "\f062"; +$fa-var-arrows: "\f047"; +$fa-var-arrows-alt: "\f0b2"; +$fa-var-arrows-h: "\f07e"; +$fa-var-arrows-v: "\f07d"; +$fa-var-asl-interpreting: "\f2a3"; +$fa-var-assistive-listening-systems: "\f2a2"; +$fa-var-asterisk: "\f069"; +$fa-var-at: "\f1fa"; +$fa-var-audio-description: "\f29e"; +$fa-var-automobile: "\f1b9"; +$fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; +$fa-var-ban: "\f05e"; +$fa-var-bank: "\f19c"; +$fa-var-bar-chart: "\f080"; +$fa-var-bar-chart-o: "\f080"; +$fa-var-barcode: "\f02a"; +$fa-var-bars: "\f0c9"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; +$fa-var-bed: "\f236"; +$fa-var-beer: "\f0fc"; +$fa-var-behance: "\f1b4"; +$fa-var-behance-square: "\f1b5"; +$fa-var-bell: "\f0f3"; +$fa-var-bell-o: "\f0a2"; +$fa-var-bell-slash: "\f1f6"; +$fa-var-bell-slash-o: "\f1f7"; +$fa-var-bicycle: "\f206"; +$fa-var-binoculars: "\f1e5"; +$fa-var-birthday-cake: "\f1fd"; +$fa-var-bitbucket: "\f171"; +$fa-var-bitbucket-square: "\f172"; +$fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-blind: "\f29d"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; +$fa-var-bold: "\f032"; +$fa-var-bolt: "\f0e7"; +$fa-var-bomb: "\f1e2"; +$fa-var-book: "\f02d"; +$fa-var-bookmark: "\f02e"; +$fa-var-bookmark-o: "\f097"; +$fa-var-braille: "\f2a1"; +$fa-var-briefcase: "\f0b1"; +$fa-var-btc: "\f15a"; +$fa-var-bug: "\f188"; +$fa-var-building: "\f1ad"; +$fa-var-building-o: "\f0f7"; +$fa-var-bullhorn: "\f0a1"; +$fa-var-bullseye: "\f140"; +$fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; +$fa-var-cab: "\f1ba"; +$fa-var-calculator: "\f1ec"; +$fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; +$fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; +$fa-var-camera: "\f030"; +$fa-var-camera-retro: "\f083"; +$fa-var-car: "\f1b9"; +$fa-var-caret-down: "\f0d7"; +$fa-var-caret-left: "\f0d9"; +$fa-var-caret-right: "\f0da"; +$fa-var-caret-square-o-down: "\f150"; +$fa-var-caret-square-o-left: "\f191"; +$fa-var-caret-square-o-right: "\f152"; +$fa-var-caret-square-o-up: "\f151"; +$fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; +$fa-var-cc: "\f20a"; +$fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; +$fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; +$fa-var-cc-mastercard: "\f1f1"; +$fa-var-cc-paypal: "\f1f4"; +$fa-var-cc-stripe: "\f1f5"; +$fa-var-cc-visa: "\f1f0"; +$fa-var-certificate: "\f0a3"; +$fa-var-chain: "\f0c1"; +$fa-var-chain-broken: "\f127"; +$fa-var-check: "\f00c"; +$fa-var-check-circle: "\f058"; +$fa-var-check-circle-o: "\f05d"; +$fa-var-check-square: "\f14a"; +$fa-var-check-square-o: "\f046"; +$fa-var-chevron-circle-down: "\f13a"; +$fa-var-chevron-circle-left: "\f137"; +$fa-var-chevron-circle-right: "\f138"; +$fa-var-chevron-circle-up: "\f139"; +$fa-var-chevron-down: "\f078"; +$fa-var-chevron-left: "\f053"; +$fa-var-chevron-right: "\f054"; +$fa-var-chevron-up: "\f077"; +$fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; +$fa-var-circle: "\f111"; +$fa-var-circle-o: "\f10c"; +$fa-var-circle-o-notch: "\f1ce"; +$fa-var-circle-thin: "\f1db"; +$fa-var-clipboard: "\f0ea"; +$fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; +$fa-var-close: "\f00d"; +$fa-var-cloud: "\f0c2"; +$fa-var-cloud-download: "\f0ed"; +$fa-var-cloud-upload: "\f0ee"; +$fa-var-cny: "\f157"; +$fa-var-code: "\f121"; +$fa-var-code-fork: "\f126"; +$fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; +$fa-var-coffee: "\f0f4"; +$fa-var-cog: "\f013"; +$fa-var-cogs: "\f085"; +$fa-var-columns: "\f0db"; +$fa-var-comment: "\f075"; +$fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; +$fa-var-comments: "\f086"; +$fa-var-comments-o: "\f0e6"; +$fa-var-compass: "\f14e"; +$fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; +$fa-var-copy: "\f0c5"; +$fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; +$fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; +$fa-var-crop: "\f125"; +$fa-var-crosshairs: "\f05b"; +$fa-var-css3: "\f13c"; +$fa-var-cube: "\f1b2"; +$fa-var-cubes: "\f1b3"; +$fa-var-cut: "\f0c4"; +$fa-var-cutlery: "\f0f5"; +$fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; +$fa-var-database: "\f1c0"; +$fa-var-deaf: "\f2a4"; +$fa-var-deafness: "\f2a4"; +$fa-var-dedent: "\f03b"; +$fa-var-delicious: "\f1a5"; +$fa-var-desktop: "\f108"; +$fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; +$fa-var-digg: "\f1a6"; +$fa-var-dollar: "\f155"; +$fa-var-dot-circle-o: "\f192"; +$fa-var-download: "\f019"; +$fa-var-dribbble: "\f17d"; +$fa-var-dropbox: "\f16b"; +$fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; +$fa-var-edit: "\f044"; +$fa-var-eject: "\f052"; +$fa-var-ellipsis-h: "\f141"; +$fa-var-ellipsis-v: "\f142"; +$fa-var-empire: "\f1d1"; +$fa-var-envelope: "\f0e0"; +$fa-var-envelope-o: "\f003"; +$fa-var-envelope-square: "\f199"; +$fa-var-envira: "\f299"; +$fa-var-eraser: "\f12d"; +$fa-var-eur: "\f153"; +$fa-var-euro: "\f153"; +$fa-var-exchange: "\f0ec"; +$fa-var-exclamation: "\f12a"; +$fa-var-exclamation-circle: "\f06a"; +$fa-var-exclamation-triangle: "\f071"; +$fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; +$fa-var-external-link: "\f08e"; +$fa-var-external-link-square: "\f14c"; +$fa-var-eye: "\f06e"; +$fa-var-eye-slash: "\f070"; +$fa-var-eyedropper: "\f1fb"; +$fa-var-fa: "\f2b4"; +$fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; +$fa-var-facebook-square: "\f082"; +$fa-var-fast-backward: "\f049"; +$fa-var-fast-forward: "\f050"; +$fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; +$fa-var-female: "\f182"; +$fa-var-fighter-jet: "\f0fb"; +$fa-var-file: "\f15b"; +$fa-var-file-archive-o: "\f1c6"; +$fa-var-file-audio-o: "\f1c7"; +$fa-var-file-code-o: "\f1c9"; +$fa-var-file-excel-o: "\f1c3"; +$fa-var-file-image-o: "\f1c5"; +$fa-var-file-movie-o: "\f1c8"; +$fa-var-file-o: "\f016"; +$fa-var-file-pdf-o: "\f1c1"; +$fa-var-file-photo-o: "\f1c5"; +$fa-var-file-picture-o: "\f1c5"; +$fa-var-file-powerpoint-o: "\f1c4"; +$fa-var-file-sound-o: "\f1c7"; +$fa-var-file-text: "\f15c"; +$fa-var-file-text-o: "\f0f6"; +$fa-var-file-video-o: "\f1c8"; +$fa-var-file-word-o: "\f1c2"; +$fa-var-file-zip-o: "\f1c6"; +$fa-var-files-o: "\f0c5"; +$fa-var-film: "\f008"; +$fa-var-filter: "\f0b0"; +$fa-var-fire: "\f06d"; +$fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-first-order: "\f2b0"; +$fa-var-flag: "\f024"; +$fa-var-flag-checkered: "\f11e"; +$fa-var-flag-o: "\f11d"; +$fa-var-flash: "\f0e7"; +$fa-var-flask: "\f0c3"; +$fa-var-flickr: "\f16e"; +$fa-var-floppy-o: "\f0c7"; +$fa-var-folder: "\f07b"; +$fa-var-folder-o: "\f114"; +$fa-var-folder-open: "\f07c"; +$fa-var-folder-open-o: "\f115"; +$fa-var-font: "\f031"; +$fa-var-font-awesome: "\f2b4"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; +$fa-var-forumbee: "\f211"; +$fa-var-forward: "\f04e"; +$fa-var-foursquare: "\f180"; +$fa-var-frown-o: "\f119"; +$fa-var-futbol-o: "\f1e3"; +$fa-var-gamepad: "\f11b"; +$fa-var-gavel: "\f0e3"; +$fa-var-gbp: "\f154"; +$fa-var-ge: "\f1d1"; +$fa-var-gear: "\f013"; +$fa-var-gears: "\f085"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; +$fa-var-gift: "\f06b"; +$fa-var-git: "\f1d3"; +$fa-var-git-square: "\f1d2"; +$fa-var-github: "\f09b"; +$fa-var-github-alt: "\f113"; +$fa-var-github-square: "\f092"; +$fa-var-gitlab: "\f296"; +$fa-var-gittip: "\f184"; +$fa-var-glass: "\f000"; +$fa-var-glide: "\f2a5"; +$fa-var-glide-g: "\f2a6"; +$fa-var-globe: "\f0ac"; +$fa-var-google: "\f1a0"; +$fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-circle: "\f2b3"; +$fa-var-google-plus-official: "\f2b3"; +$fa-var-google-plus-square: "\f0d4"; +$fa-var-google-wallet: "\f1ee"; +$fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; +$fa-var-group: "\f0c0"; +$fa-var-h-square: "\f0fd"; +$fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; +$fa-var-hand-o-down: "\f0a7"; +$fa-var-hand-o-left: "\f0a5"; +$fa-var-hand-o-right: "\f0a4"; +$fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-hard-of-hearing: "\f2a4"; +$fa-var-hashtag: "\f292"; +$fa-var-hdd-o: "\f0a0"; +$fa-var-header: "\f1dc"; +$fa-var-headphones: "\f025"; +$fa-var-heart: "\f004"; +$fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; +$fa-var-history: "\f1da"; +$fa-var-home: "\f015"; +$fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; +$fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-ils: "\f20b"; +$fa-var-image: "\f03e"; +$fa-var-inbox: "\f01c"; +$fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; +$fa-var-info: "\f129"; +$fa-var-info-circle: "\f05a"; +$fa-var-inr: "\f156"; +$fa-var-instagram: "\f16d"; +$fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; +$fa-var-ioxhost: "\f208"; +$fa-var-italic: "\f033"; +$fa-var-joomla: "\f1aa"; +$fa-var-jpy: "\f157"; +$fa-var-jsfiddle: "\f1cc"; +$fa-var-key: "\f084"; +$fa-var-keyboard-o: "\f11c"; +$fa-var-krw: "\f159"; +$fa-var-language: "\f1ab"; +$fa-var-laptop: "\f109"; +$fa-var-lastfm: "\f202"; +$fa-var-lastfm-square: "\f203"; +$fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; +$fa-var-legal: "\f0e3"; +$fa-var-lemon-o: "\f094"; +$fa-var-level-down: "\f149"; +$fa-var-level-up: "\f148"; +$fa-var-life-bouy: "\f1cd"; +$fa-var-life-buoy: "\f1cd"; +$fa-var-life-ring: "\f1cd"; +$fa-var-life-saver: "\f1cd"; +$fa-var-lightbulb-o: "\f0eb"; +$fa-var-line-chart: "\f201"; +$fa-var-link: "\f0c1"; +$fa-var-linkedin: "\f0e1"; +$fa-var-linkedin-square: "\f08c"; +$fa-var-linux: "\f17c"; +$fa-var-list: "\f03a"; +$fa-var-list-alt: "\f022"; +$fa-var-list-ol: "\f0cb"; +$fa-var-list-ul: "\f0ca"; +$fa-var-location-arrow: "\f124"; +$fa-var-lock: "\f023"; +$fa-var-long-arrow-down: "\f175"; +$fa-var-long-arrow-left: "\f177"; +$fa-var-long-arrow-right: "\f178"; +$fa-var-long-arrow-up: "\f176"; +$fa-var-low-vision: "\f2a8"; +$fa-var-magic: "\f0d0"; +$fa-var-magnet: "\f076"; +$fa-var-mail-forward: "\f064"; +$fa-var-mail-reply: "\f112"; +$fa-var-mail-reply-all: "\f122"; +$fa-var-male: "\f183"; +$fa-var-map: "\f279"; +$fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; +$fa-var-maxcdn: "\f136"; +$fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; +$fa-var-medkit: "\f0fa"; +$fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; +$fa-var-microphone: "\f130"; +$fa-var-microphone-slash: "\f131"; +$fa-var-minus: "\f068"; +$fa-var-minus-circle: "\f056"; +$fa-var-minus-square: "\f146"; +$fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; +$fa-var-mobile: "\f10b"; +$fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; +$fa-var-money: "\f0d6"; +$fa-var-moon-o: "\f186"; +$fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; +$fa-var-music: "\f001"; +$fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; +$fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; +$fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; +$fa-var-outdent: "\f03b"; +$fa-var-pagelines: "\f18c"; +$fa-var-paint-brush: "\f1fc"; +$fa-var-paper-plane: "\f1d8"; +$fa-var-paper-plane-o: "\f1d9"; +$fa-var-paperclip: "\f0c6"; +$fa-var-paragraph: "\f1dd"; +$fa-var-paste: "\f0ea"; +$fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; +$fa-var-paw: "\f1b0"; +$fa-var-paypal: "\f1ed"; +$fa-var-pencil: "\f040"; +$fa-var-pencil-square: "\f14b"; +$fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; +$fa-var-phone: "\f095"; +$fa-var-phone-square: "\f098"; +$fa-var-photo: "\f03e"; +$fa-var-picture-o: "\f03e"; +$fa-var-pie-chart: "\f200"; +$fa-var-pied-piper: "\f2ae"; +$fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pied-piper-pp: "\f1a7"; +$fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; +$fa-var-pinterest-square: "\f0d3"; +$fa-var-plane: "\f072"; +$fa-var-play: "\f04b"; +$fa-var-play-circle: "\f144"; +$fa-var-play-circle-o: "\f01d"; +$fa-var-plug: "\f1e6"; +$fa-var-plus: "\f067"; +$fa-var-plus-circle: "\f055"; +$fa-var-plus-square: "\f0fe"; +$fa-var-plus-square-o: "\f196"; +$fa-var-power-off: "\f011"; +$fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; +$fa-var-puzzle-piece: "\f12e"; +$fa-var-qq: "\f1d6"; +$fa-var-qrcode: "\f029"; +$fa-var-question: "\f128"; +$fa-var-question-circle: "\f059"; +$fa-var-question-circle-o: "\f29c"; +$fa-var-quote-left: "\f10d"; +$fa-var-quote-right: "\f10e"; +$fa-var-ra: "\f1d0"; +$fa-var-random: "\f074"; +$fa-var-rebel: "\f1d0"; +$fa-var-recycle: "\f1b8"; +$fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; +$fa-var-reddit-square: "\f1a2"; +$fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; +$fa-var-remove: "\f00d"; +$fa-var-renren: "\f18b"; +$fa-var-reorder: "\f0c9"; +$fa-var-repeat: "\f01e"; +$fa-var-reply: "\f112"; +$fa-var-reply-all: "\f122"; +$fa-var-resistance: "\f1d0"; +$fa-var-retweet: "\f079"; +$fa-var-rmb: "\f157"; +$fa-var-road: "\f018"; +$fa-var-rocket: "\f135"; +$fa-var-rotate-left: "\f0e2"; +$fa-var-rotate-right: "\f01e"; +$fa-var-rouble: "\f158"; +$fa-var-rss: "\f09e"; +$fa-var-rss-square: "\f143"; +$fa-var-rub: "\f158"; +$fa-var-ruble: "\f158"; +$fa-var-rupee: "\f156"; +$fa-var-safari: "\f267"; +$fa-var-save: "\f0c7"; +$fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; +$fa-var-search: "\f002"; +$fa-var-search-minus: "\f010"; +$fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; +$fa-var-send: "\f1d8"; +$fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; +$fa-var-share: "\f064"; +$fa-var-share-alt: "\f1e0"; +$fa-var-share-alt-square: "\f1e1"; +$fa-var-share-square: "\f14d"; +$fa-var-share-square-o: "\f045"; +$fa-var-shekel: "\f20b"; +$fa-var-sheqel: "\f20b"; +$fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; +$fa-var-shopping-cart: "\f07a"; +$fa-var-sign-in: "\f090"; +$fa-var-sign-language: "\f2a7"; +$fa-var-sign-out: "\f08b"; +$fa-var-signal: "\f012"; +$fa-var-signing: "\f2a7"; +$fa-var-simplybuilt: "\f215"; +$fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; +$fa-var-skype: "\f17e"; +$fa-var-slack: "\f198"; +$fa-var-sliders: "\f1de"; +$fa-var-slideshare: "\f1e7"; +$fa-var-smile-o: "\f118"; +$fa-var-snapchat: "\f2ab"; +$fa-var-snapchat-ghost: "\f2ac"; +$fa-var-snapchat-square: "\f2ad"; +$fa-var-soccer-ball-o: "\f1e3"; +$fa-var-sort: "\f0dc"; +$fa-var-sort-alpha-asc: "\f15d"; +$fa-var-sort-alpha-desc: "\f15e"; +$fa-var-sort-amount-asc: "\f160"; +$fa-var-sort-amount-desc: "\f161"; +$fa-var-sort-asc: "\f0de"; +$fa-var-sort-desc: "\f0dd"; +$fa-var-sort-down: "\f0dd"; +$fa-var-sort-numeric-asc: "\f162"; +$fa-var-sort-numeric-desc: "\f163"; +$fa-var-sort-up: "\f0de"; +$fa-var-soundcloud: "\f1be"; +$fa-var-space-shuttle: "\f197"; +$fa-var-spinner: "\f110"; +$fa-var-spoon: "\f1b1"; +$fa-var-spotify: "\f1bc"; +$fa-var-square: "\f0c8"; +$fa-var-square-o: "\f096"; +$fa-var-stack-exchange: "\f18d"; +$fa-var-stack-overflow: "\f16c"; +$fa-var-star: "\f005"; +$fa-var-star-half: "\f089"; +$fa-var-star-half-empty: "\f123"; +$fa-var-star-half-full: "\f123"; +$fa-var-star-half-o: "\f123"; +$fa-var-star-o: "\f006"; +$fa-var-steam: "\f1b6"; +$fa-var-steam-square: "\f1b7"; +$fa-var-step-backward: "\f048"; +$fa-var-step-forward: "\f051"; +$fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; +$fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; +$fa-var-street-view: "\f21d"; +$fa-var-strikethrough: "\f0cc"; +$fa-var-stumbleupon: "\f1a4"; +$fa-var-stumbleupon-circle: "\f1a3"; +$fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; +$fa-var-suitcase: "\f0f2"; +$fa-var-sun-o: "\f185"; +$fa-var-superscript: "\f12b"; +$fa-var-support: "\f1cd"; +$fa-var-table: "\f0ce"; +$fa-var-tablet: "\f10a"; +$fa-var-tachometer: "\f0e4"; +$fa-var-tag: "\f02b"; +$fa-var-tags: "\f02c"; +$fa-var-tasks: "\f0ae"; +$fa-var-taxi: "\f1ba"; +$fa-var-television: "\f26c"; +$fa-var-tencent-weibo: "\f1d5"; +$fa-var-terminal: "\f120"; +$fa-var-text-height: "\f034"; +$fa-var-text-width: "\f035"; +$fa-var-th: "\f00a"; +$fa-var-th-large: "\f009"; +$fa-var-th-list: "\f00b"; +$fa-var-themeisle: "\f2b2"; +$fa-var-thumb-tack: "\f08d"; +$fa-var-thumbs-down: "\f165"; +$fa-var-thumbs-o-down: "\f088"; +$fa-var-thumbs-o-up: "\f087"; +$fa-var-thumbs-up: "\f164"; +$fa-var-ticket: "\f145"; +$fa-var-times: "\f00d"; +$fa-var-times-circle: "\f057"; +$fa-var-times-circle-o: "\f05c"; +$fa-var-tint: "\f043"; +$fa-var-toggle-down: "\f150"; +$fa-var-toggle-left: "\f191"; +$fa-var-toggle-off: "\f204"; +$fa-var-toggle-on: "\f205"; +$fa-var-toggle-right: "\f152"; +$fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; +$fa-var-trash: "\f1f8"; +$fa-var-trash-o: "\f014"; +$fa-var-tree: "\f1bb"; +$fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; +$fa-var-trophy: "\f091"; +$fa-var-truck: "\f0d1"; +$fa-var-try: "\f195"; +$fa-var-tty: "\f1e4"; +$fa-var-tumblr: "\f173"; +$fa-var-tumblr-square: "\f174"; +$fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; +$fa-var-twitch: "\f1e8"; +$fa-var-twitter: "\f099"; +$fa-var-twitter-square: "\f081"; +$fa-var-umbrella: "\f0e9"; +$fa-var-underline: "\f0cd"; +$fa-var-undo: "\f0e2"; +$fa-var-universal-access: "\f29a"; +$fa-var-university: "\f19c"; +$fa-var-unlink: "\f127"; +$fa-var-unlock: "\f09c"; +$fa-var-unlock-alt: "\f13e"; +$fa-var-unsorted: "\f0dc"; +$fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; +$fa-var-usd: "\f155"; +$fa-var-user: "\f007"; +$fa-var-user-md: "\f0f0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; +$fa-var-users: "\f0c0"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; +$fa-var-viadeo: "\f2a9"; +$fa-var-viadeo-square: "\f2aa"; +$fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; +$fa-var-vimeo-square: "\f194"; +$fa-var-vine: "\f1ca"; +$fa-var-vk: "\f189"; +$fa-var-volume-control-phone: "\f2a0"; +$fa-var-volume-down: "\f027"; +$fa-var-volume-off: "\f026"; +$fa-var-volume-up: "\f028"; +$fa-var-warning: "\f071"; +$fa-var-wechat: "\f1d7"; +$fa-var-weibo: "\f18a"; +$fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; +$fa-var-wheelchair: "\f193"; +$fa-var-wheelchair-alt: "\f29b"; +$fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; +$fa-var-windows: "\f17a"; +$fa-var-won: "\f159"; +$fa-var-wordpress: "\f19a"; +$fa-var-wpbeginner: "\f297"; +$fa-var-wpforms: "\f298"; +$fa-var-wrench: "\f0ad"; +$fa-var-xing: "\f168"; +$fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; +$fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; +$fa-var-yelp: "\f1e9"; +$fa-var-yen: "\f157"; +$fa-var-yoast: "\f2b1"; +$fa-var-youtube: "\f167"; +$fa-var-youtube-play: "\f16a"; +$fa-var-youtube-square: "\f166"; + diff --git a/docs/_sass/vendor/magnific-popup/_magnific-popup.scss b/docs/_sass/vendor/magnific-popup/_magnific-popup.scss new file mode 100644 index 00000000..27b27bcc --- /dev/null +++ b/docs/_sass/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/docs/_sass/vendor/magnific-popup/_settings.scss b/docs/_sass/vendor/magnific-popup/_settings.scss new file mode 100644 index 00000000..caaca026 --- /dev/null +++ b/docs/_sass/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; diff --git a/docs/_sass/vendor/susy/_su.scss b/docs/_sass/vendor/susy/_su.scss new file mode 100644 index 00000000..83386adb --- /dev/null +++ b/docs/_sass/vendor/susy/_su.scss @@ -0,0 +1,4 @@ +// Su +// == + +@import 'susy/su'; diff --git a/docs/_sass/vendor/susy/_susy.scss b/docs/_sass/vendor/susy/_susy.scss new file mode 100644 index 00000000..224e98ad --- /dev/null +++ b/docs/_sass/vendor/susy/_susy.scss @@ -0,0 +1,4 @@ +// Susy +// ==== + +@import 'susy/language/susy'; diff --git a/docs/_sass/vendor/susy/_susyone.scss b/docs/_sass/vendor/susy/_susyone.scss new file mode 100644 index 00000000..5b934c68 --- /dev/null +++ b/docs/_sass/vendor/susy/_susyone.scss @@ -0,0 +1,4 @@ +// Susy +// ==== + +@import 'susy/language/susyone'; diff --git a/docs/_sass/vendor/susy/susy/_su.scss b/docs/_sass/vendor/susy/susy/_su.scss new file mode 100644 index 00000000..a1454157 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/_su.scss @@ -0,0 +1,7 @@ +// Su +// == + +@import "su/utilities"; +@import "su/settings"; +@import "su/validation"; +@import "su/grid"; diff --git a/docs/_sass/vendor/susy/susy/language/_susy.scss b/docs/_sass/vendor/susy/susy/language/_susy.scss new file mode 100644 index 00000000..0ee9cae2 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/_susy.scss @@ -0,0 +1,24 @@ +// Susy Next Syntax +// ================ + +$susy-version: 2.1; + +@import "../su"; +@import "../output/float"; + +@import "susy/settings"; +@import "susy/validation"; +@import "susy/grids"; +@import "susy/box-sizing"; +@import "susy/context"; +@import "susy/background"; +@import "susy/container"; +@import "susy/span"; +@import "susy/gutters"; +@import "susy/isolate"; +@import "susy/gallery"; +@import "susy/rows"; +@import "susy/margins"; +@import "susy/padding"; +@import "susy/bleed"; +@import "susy/breakpoint-plugin"; diff --git a/docs/_sass/vendor/susy/susy/language/_susyone.scss b/docs/_sass/vendor/susy/susy/language/_susyone.scss new file mode 100644 index 00000000..a783d3a8 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/_susyone.scss @@ -0,0 +1,13 @@ +// --------------------------------------------------------------------------- +// Partials + +$susy-version: 1.5; + +@import "susyone/settings"; +@import "susyone/functions"; +@import "susyone/grid"; +@import "susyone/isolation"; +@import "susyone/padding"; +@import "susyone/margin"; +@import "susyone/media"; +@import "susyone/background"; diff --git a/docs/_sass/vendor/susy/susy/language/susy/_background.scss b/docs/_sass/vendor/susy/susy/language/susy/_background.scss new file mode 100644 index 00000000..d39dc721 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_background.scss @@ -0,0 +1,385 @@ +// Background Grid Syntax +// ====================== + +$susy-overlay-grid-head-exists: false; + + +// Show Grid/s +// ----------- +// Show grid on any element using either background or overlay. +// - [$grid] : +@mixin show-grid( + $grid: $susy +) { + $inspect: $grid; + $_output: debug-get(output, $grid); + + @include susy-inspect(show-grid, $inspect); + @if $_output == overlay and susy-get(debug image, $grid) != hide { + @include overlay-grid($grid); + } @else { + @include background-grid($grid); + } +} + +@mixin show-grids( + $grid: $susy +) { + @include show-grid($grid); +} + +// Background Grid +// --------------- +// Show a grid background on any element. +// - [$grid] : +@mixin background-grid( + $grid: $susy +) { + $inspect : $grid; + $_output : get-background($grid); + + @if length($_output) > 0 { + $_flow: susy-get(flow, $grid); + + $_image: (); + @each $name, $layer in map-get($_output, image) { + $_direction: if($name == baseline, to bottom, to to($_flow)); + $_image: append($_image, linear-gradient($_direction, $layer), comma); + } + $_output: map-merge($_output, (image: $_image)); + + @include background-grid-output($_output...); + @include susy-inspect(background-grid, $inspect); + } +} + + +// Overlay Grid +// ------------ +// Generate an icon to trigger grid-overlays on any given elements. +// $grids... : [] [, ]* +@mixin overlay-grid ( + $grid: $susy +) { + @if not($susy-overlay-grid-head-exists) { + @at-root head { @include overlay-head($grid); } + @at-root head:before { @include overlay-trigger; } + @at-root head:hover { @include overlay-trigger-hover; } + $susy-overlay-grid-head-exists: true !global; + } + + head:hover ~ &, + head:hover ~ body & { + position: relative; + &:before { + @include grid-overlay-base; + @include background-grid($grid); + } + } +} + + +// [Private] Overlay Trigger +// ------------------------- +@mixin overlay-trigger { + content: "|||"; + display: block; + padding: 5px 10px; + font: { + family: sans-serif; + size: 16px; + weight: bold; + } +} + + +// [Private] Overlay Trigger Hover +// ------------------------------- +@mixin overlay-trigger-hover { + background: rgba(white, .5); + color: red; +} + + +// [Private] Overlay Head +// ---------------------- +// styles to create grid overlay toggle +@mixin overlay-head ( + $grid: $susy +) { + $_toggle: debug-get(toggle, $grid); + $_horz: null; + $_vert: null; + + @each $side in $_toggle { + $_horz: if($side == left or $side == right, $side, $_horz); + $_vert: if($side == top or $side == bottom, $side, $_vert); + } + + display: block; + position: fixed; + #{$_horz}: 10px; + #{$_vert}: 10px; + z-index: 999; + color: #333; + background: rgba(white, .25); +} + + +// [Private] Grid Overlay Base +// --------------------------- +// Base styles for generating a grid overlay +@mixin grid-overlay-base() { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + content: " "; + z-index: 998; +} + + +// Get Symmetrical Background +// -------------------------- +// - $grid: +@function get-background-sym( + $grid +) { + $grid : parse-grid($grid); + $_gutters : susy-get(gutters, $grid); + $_column-width : susy-get(column-width, $grid); + $_math : susy-get(math, $grid); + + $_color : debug-get(color); + $_trans : transparent; + $_light : lighten($_color, 15%); + + $_end : 1 + $_gutters; + $_after : percentage(1/$_end); + $_stops : (); + $_size : span(1 $grid wide); + + @if is-inside($grid) { + $_stops: $_color, $_light; + } @else if is-split($grid) { + $_split: $_gutters/2; + $_before: percentage($_split/$_end); + $_after: percentage((1 + $_split)/$_end); + $_stops: $_trans $_before, $_color $_before, $_light $_after, $_trans $_after; + } @else { + $_stops: $_color, $_light $_after, $_trans $_after; + } + + @if $_math == static { + $_size: valid-column-math($_math, $_column-width) * $_end; + } + + $_output: ( + image: (columns: $_stops), + size: $_size, + ); + + @return $_output; +} + + +// Get Asymmetrical Inside +// ----------------------- +// - $grid: +@function get-asym-inside( + $grid +) { + $grid : parse-grid($grid); + $_columns : susy-get(columns, $grid); + + $_color : debug-get(color); + $_light : lighten($_color, 15%); + $_stops : (); + + @for $location from 1 through susy-count($_columns) { + $this-stop: (); + + @if $location == 1 { + $this-stop: append($this-stop, $_color, comma); + } @else { + $start: parse-span(1 at $location $grid); + $start: get-isolation($start); + $this-stop: append($this-stop, $_color $start, comma); + } + + @if $location == susy-count($_columns) { + $this-stop: append($this-stop, $_light, comma); + } @else { + $_end: parse-span(1 at ($location + 1) $grid); + $_end: get-isolation($_end); + $this-stop: append($this-stop, $_light $_end, comma); + } + + $_stops: join($_stops, $this-stop, comma); + } + + @return $_stops; +} + + +// Get Asymmetrical Split +// ---------------------- +// - $grid: +@function get-asym-split( + $grid +) { + $grid : parse-grid($grid); + $_columns : susy-get(columns, $grid); + + $_color : debug-get(color); + $_light : lighten($_color, 15%); + $_stops : (); + + @for $location from 1 through susy-count($_columns) { + $this-stop: (); + + $start: parse-span(1 at $location $grid); + $start: get-isolation($start); + $this-stop: append($this-stop, transparent $start, comma); + $this-stop: append($this-stop, $_color $start, comma); + + $_end: $start + span(1 at $location $grid); + $this-stop: append($this-stop, $_light $_end, comma); + $this-stop: append($this-stop, transparent $_end, comma); + + $_stops: join($_stops, $this-stop, comma); + } + + @return $_stops; +} + + +// Get Asymmetrical Outside +// ------------------------ +// - $grid: +@function get-asym-outside( + $grid +) { + $grid : parse-grid($grid); + $_columns : susy-get(columns, $grid); + + $_color : debug-get(color); + $_light : lighten($_color, 15%); + $_trans : transparent; + $_stops : (); + + @for $location from 1 through susy-count($_columns) { + $this-stop: (); + + @if $location == 1 { + $this-stop: append($this-stop, $_color, comma); + } @else { + $start: parse-span(1 at $location $grid); + $start: get-isolation($start); + $this-stop: append($this-stop, $_color $start, comma); + } + + @if $location == susy-count($_columns) { + $this-stop: append($this-stop, $_light, comma); + } @else { + $gutter: get-span-width(first $location $grid); + + $_end: parse-span(1 at ($location + 1) $grid); + $_end: get-isolation($_end); + + $gutter: $_light $gutter, $_trans $gutter, $_trans $_end; + $this-stop: join($this-stop, $gutter, comma); + } + + $_stops: join($_stops, $this-stop, comma); + } + + @return $_stops; +} + + +// Get Asymmetrical Background +// --------------------------- +// - $grid: +@function get-background-asym( + $grid +) { + $_stops: (); + + @if is-inside($grid) { + $_stops: get-asym-inside($grid); + } @else if is-split($grid) { + $_stops: get-asym-split($grid); + } @else { + $_stops: get-asym-outside($grid); + } + + @return (image: (columns: $_stops)); +} + + +// Get Background +// -------------- +// - $grid: +@function get-background( + $grid +) { + $grid : parse-grid($grid); + $_show : susy-get(debug image, $grid); + $_return : (); + + @if $_show and $_show != 'hide' { + $_columns: susy-get(columns, $grid); + + @if $_show != 'show-baseline' { + $_sym: is-symmetrical($_columns); + $_return: if($_sym, get-background-sym($grid), get-background-asym($grid)); + $_return: map-merge($_return, (clip: content-box)); + } + + @if $_show != 'show-columns' + and global-variable-exists(base-line-height) + and type-of($base-line-height) == 'number' + and not unitless($base-line-height) { + $_color: variable-exists('grid-background-baseline-color'); + $_color: if($_color, $grid-background-baseline-color, #000); + + $_image: map-get($_return, image); + $_size: map-get($_return, size); + $_baseline: (baseline: ($_color 1px, transparent 1px)); + $_baseline-size: 100% $base-line-height; + + $_return: map-merge($_return, ( + image: if($_image, map-merge($_image, $_baseline), $_baseline), + size: if($_size, ($_size, $_baseline-size), $_baseline-size), + )); + + @if $_show == 'show' { + $_clip: map-get($_return, clip); + $_return: map-merge($_return, (clip: join($_clip, border-box, comma))); + } + } @else if $_show == 'show-baseline' { + @warn 'Please provide a $base-line-height with the desired height and units'; + } + } + + @if map-get($_return, image) { + $_return: map-merge($_return, (flow: susy-get(flow, $grid))); + } + + @return $_return; +} + + +// Get Debug +// --------- +// Return the value of a debug setting +// - $key: +@function debug-get( + $key, + $grid: $susy +) { + $key: join(debug, $key, space); + @return susy-get($key, $grid); +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_bleed.scss b/docs/_sass/vendor/susy/susy/language/susy/_bleed.scss new file mode 100644 index 00000000..8ef59743 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_bleed.scss @@ -0,0 +1,200 @@ +// Bleed Syntax +// ============ + +// Bleed +// ----- +// Add negative margins, and equal positive padding to create bleed. +// - $bleed : +@mixin bleed( + $bleed: 0 gutter() +) { + $inspect : $bleed; + $output : get-bleed($bleed); + + @if susy-get(global-box-sizing) != content-box { + $output: map-merge((box-sizing: content-box), $output); + } + + @include susy-inspect(bleed, $inspect); + @include output($output); +} + + +// Bleed-x +// ------- +// Shortcut for horizontal bleed. +// - $bleed : +@mixin bleed-x( + $bleed: gutter() +) { + $bleed : parse-span($bleed); + $trbl : susy-get(span, $bleed); + + @if length($trbl) == 1 { + $bleed: map-merge($bleed, (span: 0 nth($trbl, 1))); + } @else if length($trbl) == 2 { + $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1))); + } @else { + @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.'; + } + + @include bleed($bleed); +} + + +// Bleed-y +// ------- +// Shortcut for vertical bleed. +// - $bleed : +@mixin bleed-y( + $bleed: if(function-exists(rhythm), rhythm(1), 1em) +) { + $bleed : parse-span($bleed); + $trbl : susy-get(span, $bleed); + + @if length($trbl) == 1 { + $bleed: map-merge($bleed, (span: nth($trbl, 1) 0)); + } @else if length($trbl) == 2 { + $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0)); + } @else { + @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.'; + } + + @include bleed($bleed); +} + + +// Get Bleed +// --------- +// Return bleed output values +// - $bleed: +@function get-bleed( + $bleed +) { + $bleed : map-merge((spread: wide), parse-span($bleed)); + $trbl : susy-get(span, $bleed); + $short : null; + $output : (); + + @for $i from 1 through length($trbl) { + $this: nth($trbl, $i); + $new: (); + $margin: null; + $padding: null; + $padding-x: null; + + @if $this > 0 { + $this: map-merge($bleed, (span: $this)); + $margin: span($this); + $padding: $margin; + $padding-x: $padding; + } + + @if $margin and $margin > 0 { + $margin: - $margin; + + @if is-inside($this) { + $gutter: gutter($this); + $join: if($gutter and comparable($padding, $gutter), true, false); + $padding-x: if($join and $padding > 0, $padding + $gutter, $padding); + } + } + + @if $i == 1 { + $new: ( + margin-top: $margin, + padding-top: $padding, + margin-right: $margin, + padding-right: $padding-x, + margin-bottom: $margin, + padding-bottom: $padding, + margin-left: $margin, + padding-left: $padding-x, + ); + } @else if $i == 2 { + $new: ( + margin-right: $margin, + padding-right: $padding-x, + margin-left: $margin, + padding-left: $padding-x, + ); + } @else if $i == 3 { + $new: ( + margin-bottom: $margin, + padding-bottom: $padding, + ); + } @else if $i == 4 { + $new: ( + margin-left: $margin, + padding-left: $padding-x, + ); + } + + $output: map-merge($output, $new); + } + + @each $prop, $value in $output { + $output: if($value == 0, map-merge($output, ($prop: null)), $output); + } + + @return bleed-shorthand($output); +} + +// Bleed Shorthand +// --------------- +// Convert bleed output into shorthand when possible. +// - $bleed: +@function bleed-shorthand( + $bleed +) { + $margin: (); + $padding: (); + $return: (); + + @each $key, $value in $bleed { + @if str-index($key, margin) { + $margin: map-merge($margin, ($key: $value)); + } @else if str-index($key, padding) > 0 { + $padding: map-merge($padding, ($key: $value)); + } + } + + $props: ( + margin: $margin, + padding: $padding, + ); + + @each $name, $map in $props { + $four: if(length(map-keys($map)) == 4, true, false); + $null: if(index(map-values($map), null), true, false); + + @if $four and not($null) { + $top: map-get($map, '#{$name}-top'); + $right: map-get($map, '#{$name}-right'); + $bottom: map-get($map, '#{$name}-bottom'); + $left: map-get($map, '#{$name}-left'); + + $tb: if($top == $bottom, $top, null); + $rl: if($right == $left, $right, null); + $all: if($tb == $rl, $tb, null); + + $new: if($all, $all, null); + + @if not($new) { + @if $tb and $rl { + $new: $tb $rl; + } @else if $rl { + $new: $top $rl $bottom; + } @else { + $new: $top $right $bottom $left; + } + } + + $return: map-merge($return, ($name: $new)); + } @else { + $return: map-merge($return, $map); + } + } + + @return $return; +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_box-sizing.scss b/docs/_sass/vendor/susy/susy/language/susy/_box-sizing.scss new file mode 100644 index 00000000..f551241d --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_box-sizing.scss @@ -0,0 +1,47 @@ +// Susy Box Sizing +// ================= + +// Global Box Sizing +// ----------------- +// Set a box model globally on all elements. +// - [$box]: border-box | content-box +// - [$inherit]: true | false +@mixin global-box-sizing( + $box: susy-get(global-box-sizing), + $inherit: false +) { + $inspect: $box; + + @if $inherit { + @at-root { + html { @include output((box-sizing: $box)); } + *, *:before, *:after { box-sizing: inherit; } + } + } @else { + *, *:before, *:after { @include output((box-sizing: $box)); } + } + + @include susy-inspect(global-box-sizing, $inspect); + @include update-box-model($box); +} + +// Border Box Sizing +// ----------------- +// A legacy shortcut... +// - [$inherit]: true | false +@mixin border-box-sizing( + $inherit: false +) { + @include global-box-sizing(border-box, $inherit); +} + +// Update Box Model +// ---------------- +// PRIVATE: Updates global box model setting +@mixin update-box-model( + $box +) { + @if $box != susy-get(global-box-sizing) { + @include susy-set(global-box-sizing, $box); + } +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss b/docs/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss new file mode 100644 index 00000000..30de288b --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss @@ -0,0 +1,185 @@ +// Breakpoint Integration +// ====================== + +$susy-media: () !default; +$susy-media-fallback: false !default; + +$_susy-media-context: (); + + +// Susy Breakpoint +// --------------- +// Change grids at different media query breakpoints. +// - $query : [] | | +// - $layout : +// - $no-query : | +@mixin susy-breakpoint( + $query, + $layout: false, + $no-query: $susy-media-fallback +) { + @include susy-media-router($query, $no-query) { + @if $layout { + @include with-layout($layout) { + @content; + } + } @else { + @content; + } + } +} + + +// Susy Media +// ---------- +// - $query: [] | +// - $no-query: | +@mixin susy-media( + $query, + $no-query: $susy-media-fallback +) { + $old-context: $_susy-media-context; + $name: if(map-has-key($susy-media, $query), $query, null); + $query: susy-get-media($query); + $query: susy-parse-media($query); + + @include susy-media-context($query, $name); + + @if $no-query and type-of($no-query) != string { + @content; + } @else { + @media #{susy-render-media($query)} { + @content; + } + + @if type-of($no-query) == string { + #{$no-query} & { + @content; + } + } + } + + @include susy-media-context($old-context, $clean: true); +} + + +// Media Router +// ------------ +// Rout media arguments to the correct mixin. +@mixin susy-media-router( + $query, + $no-query: $susy-media-fallback +) { + @if susy-support(breakpoint, (mixin: breakpoint), $warn: false) { + @include breakpoint($query, $no-query) { + @content; + } + } @else { + @include susy-media($query, $no-query) { + @content; + } + } +} + + +// Update Context +// ------------- +// Set the new media context +@mixin susy-media-context( + $query, + $name: null, + $clean: false +) { + $query: map-merge((name: $name), $query); + + @if $clean { + $_susy-media-context: $query !global; + } @else { + $_susy-media-context: map-merge($_susy-media-context, $query) !global; + } +} + + +// Media Context +// ------------- +// Return the full media context, or a single media property (e.g. min-width) +@function susy-media-context( + $property: false +) { + @if $property { + @return map-get($_susy-media-context, $property); + } @else { + @return $_susy-media-context; + } +} + + +// Get Media +// --------- +// Return a named media-query from $susy-media. +// - $name: +@function susy-get-media( + $name +) { + @if map-has-key($susy-media, $name) { + $map-value: map-get($susy-media, $name); + @if ($name == $map-value) { + $name: $map-value; + } @else { + $name: susy-get-media($map-value); + } + } + + @return $name; +} + + +// Render Media +// ------------ +// Build a media-query string from various media settings +@function susy-render-media( + $query +) { + $output: null; + @each $property, $value in $query { + $string: null; + + @if $property == media { + $string: $value; + } @else { + $string: '(#{$property}: #{$value})'; + } + + $output: if($output, '#{$output} and #{$string}', $string); + } + + @return $output; +} + + +// Parse Media +// ----------- +// Return parsed media-query settings based on shorthand +@function susy-parse-media( + $query +) { + $mq: null; + @if type-of($query) == map { + $mq: $query; + } @else if type-of($query) == number { + $mq: (min-width: $query); + } @else if type-of($query) == list and length($query) == 2 { + @if type-of(nth($query, 1)) == number { + $mq: ( + min-width: min($query...), + max-width: max($query...), + ); + } @else { + $mq: (nth($query, 1): nth($query, 2)); + } + } @else { + $mq: (media: '#{$query}'); + } + + @return $mq; +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_container.scss b/docs/_sass/vendor/susy/susy/language/susy/_container.scss new file mode 100644 index 00000000..e5f4a858 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_container.scss @@ -0,0 +1,81 @@ +// Container Syntax +// ================ + +// Container [mixin] +// ----------------- +// Set a container element +// - [$layout] : +@mixin container( + $layout: $susy +) { + $inspect : $layout; + $layout : parse-grid($layout); + + $_width : get-container-width($layout); + $_justify : parse-container-position(susy-get(container-position, $layout)); + $_property : if(susy-get(math, $layout) == static, width, max-width); + + $_box : susy-get(box-sizing, $layout); + + @if $_box { + @include output((box-sizing: $_box)); + } + + @include susy-inspect(container, $inspect); + @include float-container($_width, $_justify, $_property); + @include show-grid($layout); +} + +// Container [function] +// -------------------- +// Return container width +// - [$layout] : +@function container( + $layout: $susy +) { + $layout: parse-grid($layout); + @return get-container-width($layout); +} + +// Get Container Width +// ------------------- +// Calculate the container width +// - [$layout]: +@function get-container-width( + $layout: $susy +) { + $layout : parse-grid($layout); + $_width : susy-get(container, $layout); + $_column-width : susy-get(column-width, $layout); + $_math : susy-get(math, $layout); + + @if not($_width) or $_width == auto { + @if valid-column-math($_math, $_column-width) { + $_columns : susy-get(columns, $layout); + $_gutters : susy-get(gutters, $layout); + $_spread : if(is-split($layout), wide, narrow); + $_width : susy-sum($_columns, $_gutters, $_spread) * $_column-width; + } @else { + $_width: 100%; + } + } + + @return $_width; +} + +// Parse Container Position +// ------------------------ +// Parse the $container-position into margin values. +// - [$justify] : left | center | right | [] +@function parse-container-position( + $justify: map-get($susy-defaults, container-position) +) { + $_return: if($justify == left, 0, auto) if($justify == right, 0, auto); + + @if not(index(left right center, $justify)) { + $_return: nth($justify, 1); + $_return: $_return if(length($justify) > 1, nth($justify, 2), $_return); + } + + @return $_return; +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_context.scss b/docs/_sass/vendor/susy/susy/language/susy/_context.scss new file mode 100644 index 00000000..52e12a6c --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_context.scss @@ -0,0 +1,36 @@ +// Context Syntax +// ============== + +// Nested [function] +// ----------------- +// Return a subset grid for nested context. +// - $context : +@function nested( + $context +) { + $context : parse-span($context); + $span : susy-get(span, $context); + $location : get-location($context); + $columns : susy-get(columns, $context); + + @return susy-slice($span, $location, $columns); +} + +// Nested [mixin] +// -------------- +// Use a subset grid for a nested context +// - $context : +// - @content : +@mixin nested( + $context +) { + $inspect : $context; + $context : parse-span($context); + $old : susy-get(columns); + $susy : map-merge($susy, (columns: nested($context))) !global; + + @include susy-inspect(nested, $inspect); + @content; + + $susy : map-merge($susy, (columns: $old)) !global; +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_gallery.scss b/docs/_sass/vendor/susy/susy/language/susy/_gallery.scss new file mode 100644 index 00000000..e59b9a0c --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_gallery.scss @@ -0,0 +1,94 @@ +// Gallery Syntax +// ============== + +// Gallery +// ------- +// Create an isolated gallery +// - $span : +// - [$selector] : child | of-type +@mixin gallery( + $span, + $selector: child +) { + $inspect : $span; + $span : parse-span($span); + $span : map-merge($span, (location: 1)); + + $n : susy-get(span, $span); + $columns : susy-get(columns, $span); + $context : susy-count($columns); + $flow : susy-get(flow, $span); + + $inside : is-inside($span); + $from : from($flow); + $line : floor($context / $n); + $symmetrical : is-symmetrical($columns); + + $output: ( + width : null, + float : from, + margin-before : null, + margin-after : null, + padding-before : null, + padding-after : null, + flow : $flow, + ); + + @if $inside { + $gutters: get-gutters($span); + $output: map-merge($output, ( + padding-before: map-get($gutters, before), + padding-after: map-get($gutters, after), + )); + } + + @if $symmetrical { + $output: map-merge($output, (width: get-span-width($span))); + } + + $box : susy-get(box-sizing, $span); + $global-box : if(susy-get(global-box-sizing) == 'border-box', true, false); + + @include susy-inspect(gallery, $inspect); + + // Collective Output + @if $box == border-box or ($inside and not($box) and not($global-box)) { + @include output((box-sizing: border-box)); + } @else if $box == content-box { + @include output((box-sizing: content-box)); + } + + @include float-span-output($output...); + + // Individual Loop + @for $item from 1 through $line { + $nth: '#{$line}n + #{$item}'; + &:nth-#{$selector}(#{$nth}) { + // Individual Prep + $output: ( + width : if($symmetrical, null, get-span-width($span)), + float : null, + margin-before : get-isolation($span), + margin-after : -100%, + padding-before : null, + padding-after : null, + flow : $flow, + ); + + // Individual Output + @include float-span-output($output...); + + @if get-edge($span) == first { + @include break; + @include first($span); + } @else { + @include nobreak; + } + + // Individual Location Increment + $location: get-location($span) + $n; + $location: if($location > $context, 1, $location); + $span: map-merge($span, (location: $location)); + } + } +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_grids.scss b/docs/_sass/vendor/susy/susy/language/susy/_grids.scss new file mode 100644 index 00000000..4fa72edc --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_grids.scss @@ -0,0 +1,64 @@ +// Grid Syntax +// =========== + + +// Layout +// ------ +// Set a new layout using a shorthand +// - $layout: +// - $clean: boolean +@mixin layout( + $layout, + $clean: false +) { + $inspect : $layout; + $susy : _get-layout($layout, $clean) !global; + + @include susy-inspect(layout, $inspect); +} + + +// Use Grid +// -------- +// Use an arbitrary layout for a section of code +// - $layout: +// - $clean: boolean +@mixin with-layout( + $layout, + $clean: false +) { + $inspect : $layout; + $old : $susy; + $susy : _get-layout($layout, $clean) !global; + + @include susy-inspect(with-layout, $inspect); + + @content; + + $susy: $old !global; +} + + +// Layout +// ------ +// Return a parsed layout map based on shorthand syntax +// - $layout: +@function layout( + $layout: $susy +) { + @return parse-grid($layout); +} + + +// Get Layout +// ---------- +// Return a new layout based on current and given settings +// - $layout: +// - $clean: boolean +@function _get-layout( + $layout, + $clean: false +) { + $layout: layout($layout); + @return if($clean, $layout, _susy-deep-merge($susy, $layout)); +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_gutters.scss b/docs/_sass/vendor/susy/susy/language/susy/_gutters.scss new file mode 100644 index 00000000..efe7ac20 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_gutters.scss @@ -0,0 +1,154 @@ +// Gutter Syntax +// ============= + + +// Gutters +// ------- +// Set gutters on an element. +// - [$span] : +@mixin gutters( + $span: $susy +) { + $inspect : $span; + $span : parse-gutters($span); + $_gutters : get-gutters($span); + + $_output: ( + before: map-get($_gutters, before), + after: map-get($_gutters, after), + flow: susy-get(flow, $span), + ); + + @include susy-inspect(gutters, $inspect); + + @if is-inside($span) { + @include padding-output($_output...); + } @else { + @include margin-output($_output...); + } +} + +@mixin gutter( + $span: $susy +) { + @include gutters($span); +} + + +// Gutter +// ------ +// Return the width of a gutter. +// - [$span] : +@function gutter( + $span: $susy +) { + $span: parse-gutters($span); + + $_gutters: get-gutters($span); + $_gutters: map-get($_gutters, before) or map-get($_gutters, after); + + @return $_gutters; +} + +@function gutters( + $span: $susy +) { + @return gutter($span); +} + + +// Get Gutter Width +// ---------------- +// Return gutter width. +// - [$context]: +@function get-gutter-width( + $context: $susy +) { + $context : parse-gutters($context); + + $_gutters : susy-get(gutters, $context); + $_gutter : susy-get(gutter-override, $context); + + @if $_gutters and ($_gutters > 0) and not($_gutter) { + $_column-width: susy-get(column-width, $context); + $_math: gutter-math($context); + @if $_math == static { + $_gutter: $_gutters * valid-column-math($_math, $_column-width); + } @else { + $_columns : susy-get(columns, $context); + $_spread : if(is-split($context), wide, susy-get(spread, $context)); + $_gutter : percentage($_gutters / susy-sum($_columns, $_gutters, $_spread)); + } + } + + $_gutter: if($_gutter == 'no-gutters' or $_gutter == 'no-gutter', null, $_gutter); + + @return $_gutter; +} + + +// Get Gutters +// ----------- +// Return before and after gutter values. +// - [$context]: +@function get-gutters( + $context: $susy +) { + $context : parse-gutters($context); + + $_gutter-position : susy-get(gutter-position, $context); + $_gutter : get-gutter-width($context); + + $_return : (before: null, after: null); + + @if is-split($context) and $_gutter { + $_gutter: $_gutter / 2; + $_return: map-merge($_return, (before: $_gutter, after: $_gutter)); + } @else { + $_return: map-merge($_return, ($_gutter-position: $_gutter)); + } + + @return $_return; +} + + +// Is Inside +// --------- +// Returns true if gutters are inside. +// $context: +@function is-inside( + $context +) { + $_inside: inside inside-static; + $_gutter-position: susy-get(gutter-position, $context); + + @return if(index($_inside, $_gutter-position), true, false); +} + + +// Is Split +// -------- +// Returns true if gutters are split. +// $context: +@function is-split( + $context +) { + $_split: split inside inside-static; + $_gutter-position: susy-get(gutter-position, $context); + + @return if(index($_split, $_gutter-position), true, false); +} + + +// Gutter Math +// ----------- +// Return the math to use for gutter calculations +// $context: +@function gutter-math( + $context: $susy +) { + $_return : susy-get(math, $context); + $_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return); + + @return $_return; +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_isolate.scss b/docs/_sass/vendor/susy/susy/language/susy/_isolate.scss new file mode 100644 index 00000000..7ddfd7f5 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_isolate.scss @@ -0,0 +1,77 @@ +// Isolation Syntax +// ================ + + +// Isolate [Mixin] +// --------------- +// Set isolation as an override. +// - $location: +@mixin isolate( + $isolate: 1 +) { + $inspect: $isolate; + + $output: ( + push: isolate($isolate), + flow: susy-get(flow, $isolate), + ); + + @include susy-inspect(isolate, $inspect); + @include isolate-output($output...); +} + + +// Isolate [function] +// ------------------ +// Return an isolation offset width. +// - $location: +@function isolate( + $isolate: 1 +) { + $isolate: parse-span($isolate); + $isolation: susy-get(span, $isolate); + + @if $isolation and not(get-location($isolate)) { + $new: ( + span: null, + location: $isolation, + ); + $isolate: map-merge($isolate, $new); + } + + @return get-isolation($isolate); +} + + +// Get Isolation +// ------------- +// Return the isolation offset width +// - $input: +@function get-isolation( + $input +) { + $location : get-location($input); + $columns : susy-get(columns, $input); + $width : null; + + @if type-of($location) == number and not(unitless($location)) { + $width: $location; + } @else if $location { + $push: $location - 1; + @if $push > 0 { + $push: map-merge($input, ( + span: $push, + location: 1, + spread: wide, + )); + $width: get-span-width($push); + } + } + + @if susy-get(gutter-position, $input) == split + and susy-get(gutters, $input) > 0 { + $width: if($width == null, gutters($input), $width + gutters($input)); + } + + @return $width or 0; +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_margins.scss b/docs/_sass/vendor/susy/susy/language/susy/_margins.scss new file mode 100644 index 00000000..cb368399 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_margins.scss @@ -0,0 +1,94 @@ +// Margin Syntax +// ============= + +// Pre +// --- +// Add spanning-margins before an element. +// - $span : +@mixin pre( + $span +) { + $inspect: $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $split : if(susy-get(gutter-position, $span) == split, true, false); + $gutter : gutter($span); + $span : span($span); + $width : if($split and $gutter, $span + $gutter, $span); + + @include susy-inspect(pre, $inspect); + @include margin-output($width, null, $flow); +} + +// Post +// ---- +// Add spanning-margins after an element. +// - $span : +@mixin post( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $split : if(susy-get(gutter-position, $span) == split, true, false); + $width : if($split, span($span) + gutter($span), span($span)); + + @include susy-inspect(post, $inspect); + @include margin-output(null, $width, $flow); +} + +// Push +// ---- +// Simple synonymn for pre. +// - $span : +@mixin push( + $span +) { + @include pre($span); +} + +// Pull +// ---- +// Add negative spanning-margins before an element. +// - $span : +@mixin pull( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $split : if(susy-get(gutter-position, $span) == split, true, false); + $width : if($split, 0 - span($span) + gutter($span), 0 - span($span)); + + @include susy-inspect(pull, $inspect); + @include margin-output($width, null, $flow); +} + +// Squish +// ------ +// Add spanning-margins before and after an element. +// - $pre : +// - [$post] : +@mixin squish( + $pre, + $post: false +) { + $inspect : ($pre, $post); + $pre : map-merge((spread: wide), parse-span($pre)); + + @if $post { + $post: map-merge((spread: wide), parse-span($post)); + } @else { + $span: susy-get(span, $pre); + @if length($span) > 1 { + $pre: map-merge($pre, (span: nth($span, 1))); + $post: map-merge($pre, (span: nth($span, 2))); + } @else { + $post: $pre; + } + } + + @include susy-inspect(squish, $inspect); + @include pre($pre); + @include post($post); +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_padding.scss b/docs/_sass/vendor/susy/susy/language/susy/_padding.scss new file mode 100644 index 00000000..cdf75c8b --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_padding.scss @@ -0,0 +1,74 @@ +// Padding Syntax +// ============== + +// Prefix +// ------ +// Add spanning-padding before an element. +// - $span : +@mixin prefix( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $width : span($span); + + @if is-inside($span) { + $gutter: gutter($span); + $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); + } + + @include susy-inspect(prefix, $inspect); + @include padding-output($width, null, $flow); +} + +// Suffix +// ------ +// Add spanning-padding after an element. +// - $span : +@mixin suffix( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $width : span($span); + + @if is-inside($span) { + $gutter: gutter($span); + $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); + } + + @include susy-inspect(suffix, $inspect); + @include padding-output(null, $width, $flow); +} + +// Pad +// --- +// Add spanning-padding before and after an element. +// - $pre : +// - [$post] : +@mixin pad( + $pre, + $post: false +) { + $inspect : ($pre, $post); + $pre : map-merge((spread: wide), parse-span($pre)); + + @if $post { + $post: map-merge((spread: wide), parse-span($post)); + } @else { + $span: susy-get(span, $pre); + @if length($span) > 1 { + $pre: map-merge($pre, (span: nth($span, 1))); + $post: map-merge($pre, (span: nth($span, 2))); + } @else { + $post: $pre; + } + } + + @include susy-inspect(pad, $inspect); + @include prefix($pre); + @include suffix($post); + +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_rows.scss b/docs/_sass/vendor/susy/susy/language/susy/_rows.scss new file mode 100644 index 00000000..d7264313 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_rows.scss @@ -0,0 +1,138 @@ +// Row Start & End +// =============== + +// Break +// ----- +// Apply to any element that should force a line break. +@mixin break { + @include output((clear: both)); +} + + +// NoBreak +// ------- +// Cancel the break() effect, e.g. when using media queries. +@mixin nobreak { + @include output((clear: none)); +} + + +// Full +// ---- +// - [$context]: +@mixin full( + $context: $susy +) { + $inspect : $context; + @include susy-inspect(full, $inspect); + @include span(full of parse-grid($context) break); +} + + +// First +// ----- +// - [$context]: +@mixin first( + $context: $susy +) { + $inspect : $context; + $context : parse-grid($context); + $flow : susy-get(flow, $context); + + @include susy-inspect(first, $inspect); + @if not(is-split($context)) { + @include float-first($flow); + } +} + +@mixin alpha( + $context: $susy +) { + @include first($context); +} + + +// Last +// ---- +// - [$context]: +@mixin last( + $context: $susy +) { + $inspect : $context; + $context : parse-grid($context); + + @include susy-inspect(last, $inspect); + + $output: ( + flow: susy-get(flow, $context), + last-flow: susy-get(last-flow, $context), + margin: if(is-split($context), null, 0), + ); + + @include float-last($output...); +} + +@mixin omega( + $context: $susy +) { + @include last($context); +} + + +// Get Edge +// -------- +// Calculate edge value based on location, if possible +@function get-edge( + $span +) { + $span : parse-span($span); + $edge : susy-get(edge, $span); + + @if not($edge) { + $count: susy-count(susy-get(columns, $span)); + $location: susy-get(location, $span); + $n: susy-get(span, $span); + + $number: if(type-of($location) == number, true, false); + $index: if($number and unitless($location), true, false); + + @if $n == $count { + $edge: full; + } @else if $location and $n and $index { + @if $location == 1 { + $edge: if($n == $count, full, first); + } @else if $location + $n - 1 == $count { + $edge: last; + } + } + } + + @if $edge == alpha or $edge == omega { + $edge: if($edge == alpha, first, last); + } + + @return $edge; +} + + +// Get Location +// ------------ +// Calculate location value based on edge, if possible +@function get-location( + $span +) { + $span : parse-span($span); + $location : susy-get(location, $span); + $edge : get-edge($span); + $n : susy-get(span, $span); + + @if $edge and not($location) and type-of($n) == number and unitless($n) { + @if $edge == first { + $location: 1; + } @else if $edge == last { + $location: susy-count(susy-get(columns, $span)) - $n + 1; + } + } + + @return $location +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_settings.scss b/docs/_sass/vendor/susy/susy/language/susy/_settings.scss new file mode 100644 index 00000000..9b5d897d --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_settings.scss @@ -0,0 +1,216 @@ +// Susy Settings +// ============= + +// Susy Language Defaults +// ---------------------- +// - PRIVATE +@include susy-defaults(( + container: auto, + math: fluid, + output: float, + container-position: center, + gutter-position: after, + global-box-sizing: content-box, + debug: ( + image: hide, + color: rgba(#66f, .25), + output: background, + toggle: top right, + ), +)); + + +// Valid Keyword Values +// -------------------- +// - PRIVATE: DONT'T TOUCH +$susy-keywords: ( + container: auto, + math: static fluid, + output: isolate float, + container-position: left center right, + flow: ltr rtl, + gutter-position: before after split inside inside-static, + box-sizing: border-box content-box, + span: full, + edge: first alpha last omega full, + spread: narrow wide wider, + gutter-override: no-gutters no-gutter, + role: nest, + clear: break nobreak, + debug image: show hide show-columns show-baseline, + debug output: background overlay, +); + + +// Parse Susy Keywords and Maps +// ---------------------------- +@function parse-settings( + $short: $susy +) { + $_return: (); + + @if type-of($short) == map { + $_return: $short; + } @else { + @each $item in $short { + // strings + @if type-of($item) == string { + @each $key, $value in $susy-keywords { + @if index($value, $item) { + $_key-value: append($key, $item); + $_return: _susy-deep-set($_return, $_key-value...); + } + } + // maps + } @else if type-of($item) == map { + $_return: map-merge($_return, $item); + } + } + } + + @return $_return; +} + + +// Parse Columns & Gutters +// ----------------------- +@function parse-layout( + $short +) { + $_return: (); + $_columns: (); + $_gutters: null; + + @if not(unitless(nth(nth($short, 1), 1))) { + $_gutters: nth($short, 1); + } @else { + $_columns: (columns: nth($short, 1)); + $_gutters: if(length($short) > 1, nth($short, 2), $_gutters); + } + + @if type-of($_gutters) == list and length($_gutters) > 0 { + $_gutters: ( + gutters: nth($_gutters, 2) / nth($_gutters, 1), + column-width: nth($_gutters, 1), + ); + } @else { + $_gutters: if($_gutters, (gutters: $_gutters), ()); + } + + $_return: map-merge($_return, $_columns); + $_return: map-merge($_return, $_gutters); + + @return $_return; +} + + +// Parse Grid/Context +// ------------------ +@function parse-grid( + $short: $susy +) { + $_return: parse-settings($short); + $_layout: (); + + @if type-of($short) == map { + $_return: $short; + } @else { + @each $item in $short { + // number or list + @if type-of($item) == number or type-of($item) == list { + @if type-of($item) == list or unitless($item) { + $_layout: append($_layout, $item); + } @else { + $_return: map-merge($_return, (container: $item)); + } + } + } + + $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout); + } + + @return map-merge($_return, $_layout); +} + + +// Parse Span +// ---------- +@function parse-span( + $short, + $key: span +) { + $_return: (); + + @if type-of($short) == map { + $_return: $short; + } @else { + $_at: index($short, at); + + @if $_at { + $_loci: $_at + 1; + $_location: nth($short, $_loci); + $_return: map-merge($_return, (location: $_location)); + $short: set-nth($short, $_at, null); + $short: set-nth($short, $_loci, null); + } + + $_i: 1; + $_span: (); + + @while $_i <= length($short) { + $_this: nth($short, $_i); + + @if type-of($_this) == number { + $_span: append($_span, $_this); + $short: set-nth($short, $_i, null); + } @else if $_this == of { + $short: set-nth($short, $_i, null); + $_i: length($short) + 1; + } + + $_i: $_i + 1; + } + + @if length($_span) > 0 { + $_span: if(length($_span) == 1, nth($_span, 1), $_span); + $_return: map-merge($_return, ($key: $_span)); + } + + $_return: map-merge($_return, parse-grid($short)); + } + + @return $_return; +} + + +// Parse Gutters +// ------------- +@function parse-gutters( + $short: $susy +) { + $_gutters: parse-span($short, gutter-override); + $_span: susy-get(gutter-override, $_gutters); + + @if $_span and not(map-get($_gutters, columns)) { + $_context: (); + $_new: (); + + @each $item in $_span { + @if type-of($item) == number and unitless($item) { + $_context: append($_context, $item); + } @else { + $_new: append($_new, $item); + } + } + + $_context: parse-grid($_context); + $_new: if(length($_new) == 0, null, $_new); + $_new: if(length($_new) == 1, nth($_new, 1), $_new); + $_new: (gutter-override: if($_new != $_span, $_new, $_span)); + + $_gutters: map-merge($_gutters, $_new); + $_gutters: map-merge($_gutters, $_context); + } + + @return $_gutters; +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_span.scss b/docs/_sass/vendor/susy/susy/language/susy/_span.scss new file mode 100644 index 00000000..86ccda91 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_span.scss @@ -0,0 +1,163 @@ +// Span Syntax +// =========== + +// Span [mixin] +// ------------ +// Set a spanning element using shorthand syntax. +// - $span : +@mixin span( + $span +) { + $inspect: $span; + $span: parse-span($span); + $output: span-math($span); + $nesting: susy-get(span, $span); + $clear: susy-get(clear, $span); + + $box: susy-get(box-sizing, $span); + $content-box: if(susy-get(global-box-sizing) != 'border-box', true, false); + $box: $box or if(is-inside($span) and $content-box, border-box, null); + + @if $clear == break { + @include break; + } @else if $clear == nobreak { + @include nobreak; + } + + @include susy-inspect(span, $inspect); + @include output((box-sizing: $box)); + @include float-span-output($output...); + + @if valid-columns($nesting, silent) { + @include nested($span) { @content; } + } @else { + @content; + } +} + +// Span [function] +// --------------- +// Return the width of a span. +// - $span : +@function span( + $span +) { + @return get-span-width($span); +} + +// Span Math +// --------- +// Get all the span results. +// - $span: +@function span-math( + $span +) { + $nest : if(susy-get(role, $span) == nest, true, false); + $split-nest : if(is-split($span) and $nest, true, false); + $edge : get-edge($span); + $location : get-location($span); + + $float : from; + $padding-before : null; + $padding-after : null; + $margin-before : null; + $margin-after : null; + + // calculate widths + $spread: index(map-values($span), spread); + $span: if($split-nest and not($spread), map-merge($span, (spread: wide)), $span); + $width: get-span-width($span); + $gutters: get-gutters($span); + + // apply gutters + @if is-inside($span) { + @if not(susy-get(role, $span)) { + $padding-before: map-get($gutters, before); + $padding-after: map-get($gutters, after); + } + } @else { + @if not($split-nest) { + $margin-before: map-get($gutters, before); + $margin-after: map-get($gutters, after); + } + } + + // special margin handling + @if susy-get(output, $span) == isolate and $location { + $margin-before: get-isolation($span); + $margin-after: -100%; + } @else if $edge { + $is-split: is-split($span); + $pos: susy-get(gutter-position, $span); + + @if $edge == last { + $float: susy-get(last-flow, $span); + } + + @if not($is-split) { + @if $edge == full or ($edge == first and $pos == before) { + $margin-before: 0; + } + @if $edge == full or ($edge == last and $pos == after) { + $margin-after: 0; + } + } + + } + + @return ( + width : $width, + float : $float, + margin-before : $margin-before, + margin-after : $margin-after, + padding-before : $padding-before, + padding-after : $padding-after, + flow : susy-get(flow, $span), + ); +} + +// Get Span Width +// -------------- +// Return span width. +// - $span: +@function get-span-width( + $span +) { + $span : parse-span($span); + + $n : susy-get(span, $span); + $location : get-location($span); + $columns : susy-get(columns, $span); + $gutters : susy-get(gutters, $span); + $spread : susy-get(spread, $span); + + $context : null; + $span-sum : null; + $width : null; + + @if $n == 'full' { + $pos: susy-get(gutter-position, $span); + $role: susy-get(role, $span); + $n: if($pos == split and $role != nest, susy-count($columns), 100%); + } + + @if type-of($n) != number { + @warn "(#{type-of($n)}) #{$n} is not a valid span."; + } @else if unitless($n) { + $context: susy-sum($columns, $gutters, if(is-split($span), wide, narrow)); + $spread: if(is-inside($span), $spread or wide, $spread); + $span-sum: susy($n, $location, $columns, $gutters, $spread); + + $_math: susy-get(math, $span); + $_column-width: susy-get(column-width, $span); + @if $_math == static { + $width: $span-sum * valid-column-math($_math, $_column-width); + } @else { + $width: percentage($span-sum / $context); + } + } @else { + $width: $n; + } + + @return $width; +} diff --git a/docs/_sass/vendor/susy/susy/language/susy/_validation.scss b/docs/_sass/vendor/susy/susy/language/susy/_validation.scss new file mode 100644 index 00000000..a235b176 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susy/_validation.scss @@ -0,0 +1,16 @@ +// Validation +// ========== + + +// Validate Column Math +// -------------------- +@function valid-column-math( + $math, + $column-width +) { + @if $math == static and not($column-width) { + @error 'Static math requires a valid column-width setting.'; + } + + @return $column-width; +} diff --git a/docs/_sass/vendor/susy/susy/language/susyone/_background.scss b/docs/_sass/vendor/susy/susy/language/susyone/_background.scss new file mode 100644 index 00000000..38c6726b --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susyone/_background.scss @@ -0,0 +1,18 @@ +// --------------------------------------------------------------------------- +// Imports + +@import "compass/layout/grid-background"; +@import "compass/css3/background-origin"; +@import "compass/css3/background-clip"; + +// --------------------------------------------------------------------------- +// Susy Grid Background +// +// A wrapper for the compass "column-grid-background" mixin +// Uses all your settings to create a grid background for a container element. +// Note: Sub-pixel rounding can lead to several pixels of variation between browsers. +@mixin susy-grid-background(){ + @include column-grid-background($total-columns, column(), gutter(), 0); + @include background-origin(content-box); + @include background-clip(content-box); +} diff --git a/docs/_sass/vendor/susy/susy/language/susyone/_functions.scss b/docs/_sass/vendor/susy/susy/language/susyone/_functions.scss new file mode 100644 index 00000000..68184589 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susyone/_functions.scss @@ -0,0 +1,377 @@ +// --------------------------------------------------------------------------- +// Imports + +// We need access to some basic font settings for handling media-queries. +@import "compass/typography/vertical_rhythm"; + +// For now, we also need this... +$browser-default-font-size-px : 16px; +$browser-default-font-size-percent : 100%; +$browser-default-font-size-pt : 12pt; + +$rem-with-px-fallback : true !default; + +// --------------------------------------------------------------------------- +// Sass list Functions + +// Return a list with specific items removed +// +// filter($list, $target) +// - $list : The list to filter. +// - $target : An item to be removed from the list. +@function filter($list, $target) { + $clean: compact(); + @if index($list, $target) { + @each $item in $list { + $clean: if($item == $target, $clean, append($clean, $item)); + } + } @else { $clean: $list; } + @return $clean; +} + +// --------------------------------------------------------------------------- +// Don't use static output when it will break things + +// Switch element-level output to fluid, when container-width is wrong for static +// +// fix-static-misalignment([$style, $width]) +// - $style: $container-style. +// - $width: $container-width. +@function fix-static-misalignment( + $style: $container-style, + $width: $container-width +) { + @if $container-width and $container-width != container-outer-width($width: false) { + $style: fluid; + } + @return $style; +} + +// --------------------------------------------------------------------------- +// Grid Functions + +// Returns the full width of a grid based on your grid settings. +// +// $columns : The number of columns to get width for. +@function columns-width( + $columns : $total-columns +) { + @if round($columns) != $columns { + @warn "Susy works best with integer column-spans." + + "For partial-columns, you may need to finesse the math by hand using functions directly."; + } + @return ($columns * $column-width) + (if($columns >= 1, ceil($columns - 1), 0) * $gutter-width); +} + +// Return the grid width after adding or subtracting grid padding +// +// $width : the width of the grid without padding; +// $operation : ( add | subtract ) if padding should be added or subtracted; +@function handle-grid-padding( + $width, + $operation : subtract +) { + $pad: $grid-padding*2; + + @if comparable($width, $grid-padding) { + $width: if($operation == subtract, $width - $pad, $width + $pad); + } @else { + @warn "$grid-padding must be set in units comparable to the container width."; + } + + @return $width; +} + +// Return the full outer width of a Container element. +// +// $columns : The number of columns in the Grid Layout. +@function container-outer-width( + $columns : $total-columns, + $width : $container-width +) { + $outerwidth: if($width, $width, columns-width($columns)); + + @if $width { + @if not($border-box-sizing) { $outerwidth: handle-grid-padding($outerwidth, subtract); } + } @else { + @if $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, add); } + } + + @return $outerwidth; +} + +// Return the percentage width of a single column in a given 'context'. +// +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function column( + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return if($style == static, $column-width, relative-width($column-width, $context)); +} + +// Return the percentage width of multiple 'columns' in a given 'context'. +// +// $columns : The number of columns to get relative width for. +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function columns( + $columns, + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return if($style == static, columns-width($columns), relative-width(columns-width($columns), $context)); +} + +// Return the percentage width of a single gutter in a given 'context'. +// +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function gutter( + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return if($style == static, $gutter-width, relative-width($gutter-width, $context)); +} + +// Return the percentage width of a given value in a given 'context'. +// +// $width : Any given width value. +// $context : The grid context in columns, if nested. +@function relative-width( + $width, + $context : $total-columns +) { + @return percentage($width / columns-width($context)); +} + +// Return the total space occupied by multiple columns and associated gutters. +// Useful for adding padding or margins (prefix, suffix, push, pull, etc.) +// +// $columns : The number of columns to get relative space for. +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function space( + $columns, + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return columns($columns, $context, $style) + if($columns >= 1, gutter($context, $style), 0); +} + +// Accept a list including column-count and (optional) position. +// Return either the column count or the position alone. +// +// $columns : the list to split and interprate. +// $request : The value to return, either 'columns' or 'position'. +@function split-columns-value( + $columns, + $request : columns +) { + $pos : false; + $cols : false; + + @each $var in $columns { + @if (type-of($var) == 'string') { + $pos: $var; + } @else { + @if (type-of($var) == 'number') and (unitless($var)) { + $cols: $var; + } @else { + @warn '"#{$var}" is not a valid part of "$columns: #{$columns}" in the columns() mixin.'; + } + } + } + + @if $request == 'columns' { + @return $cols; + } @else { + @if $request == 'position' { + @return $pos; + } @else { + @warn '"#{$request}" is not a valid value for $request'; + } + } +} + +// Accept nth-selector variables, and format them as a valid CSS3 selector. +// +// $n : [first | only | last | ] +// $selector : [child | last-child | of-type | last-of-type ] +@function format-nth( + $n : last, + $selector : child +) { + @if ($n == 'last') or ($n =='first') or ($n =='only') { + $selector: '#{$n}-#{$selector}'; + } @else { + $selector: 'nth-#{$selector}(#{$n})'; + } + @return $selector; +} + +// --------------------------------------------------------------------------- +// Media Functions + +// Return an em value adjusted to match the browser default font size. +// Note: This only works if actual sizes are set relative to browser defaults. +// +// $ems : The initial value to be converted. +// $font-size : The current font-size in. +@function base-ems( + $ems, + $font-size: $base-font-size +){ + $font-size : if(unit($ems) == 'rem', $base-font-size, $font-size); + $unit : unit($font-size); + $mult : $ems / ($ems * 0 + 1); + + @if $unit == 'px' { + @return $font-size / $browser-default-font-size-px * $mult * 1em; + } + @else if $unit == '%' { + @return $font-size / $browser-default-font-size-percent * $mult * 1em; + } + @else if $unit == 'em' { + @return $font-size / 1em * $mult * 1em; + } + @else if $unit == 'pt' { + @return $font-size / $browser-default-font-size-pt * $mult * 1em; + } + @else { + @warn 'Variable $base-font-size does not have a valid font unit. Valid units for fonts in CSS are px, pt, em, and %.'; + } +} + +// This name will be deprecated... +@function absolute-ems( + $ems, + $font-size: $base-font-size +){ + @return base-ems( $ems, $font-size); + } + +// Return a length, after any em-values have been sent through absolute-ems(). +// +// $length : The length value to be checked and adjusted if necessary. +// $font-size : The current font-size in px. +@function fix-ems( + $length, + $font-size: $base-font-size +){ + @if $length { + @if (unit($length) == 'em') or (unit($length) == 'rem') { + $length: absolute-ems($length,$font-size); + } + } + @return $length; +} + +// Sort a list of arguments into "$min $layout $max $ie" order, and return the list. +// +// $media-layout : a list of values [$min $layout $max $ie] including... +// : - one unitless number (columns in a layout) +// : - two optional lengths (min and max-width media-query breakpoints). +// : - one optional boolean or string to trigger fallback support for IE. +// $font-size : [optional] The base font-size of your layout, if you are using ems. +// : - defaults to $base-font-size +@function medialayout( + $media-layout, + $font-size: $base-font-size +) { + $media : false; + $min : false; + $layout : false; + $max : false; + $ie : false; + $has-layout : false; + + @each $val in $media-layout { + @if (type-of($val) == "number") { + @if unitless($val) { + $layout : $val; + $has-layout : true; + } @else { + @if ($has-layout) and not($media) { + $max: $val; + } @else { + @if $media { + $media: join($media,$val); + } @else { + $media: $val; + } + } + } + } @else { + $ie: $val; + } + } + @if (length($media) > 0) { + @if (length($media) == 1) { + $min: nth($media,1); + } @else { + $min: nth($media,1); + $max: nth($media,2); + @if comparable($min, $max) { + @if ($min > $max) { + $max: nth($media,1); + $min: nth($media,2); + } + } @else { + @warn "Can't compare incompatible units." + + "Using #{$min} for min-width, and #{$max} for max-width"; + } + @if (length($media) > 2) { + @warn "You can only send two lengths: a min-width and an (optional) max-width." + + "You sent #{length($media)}: #{$media}"; + } + } + } + + // media-queries must be set in ems relative to the browser default + // rather than the font-size set in CSS. + $min: fix-ems($min,$font-size); + $max: fix-ems($max,$font-size); + + @return $min $layout $max $ie; +} + +// Return the nearest layout (column-count) above a given breakpoint. +// +// $min : The min-width media-query breakpoint above which to establish a new layout. +@function get-layout( + $min +) { + $min : fix-ems($min); + $return : false; + + @if comparable($min, $column-width) { + $return : ceil(($min + $gutter-width) / ($column-width + $gutter-width)); + } @else { + @warn "Can't determine a layout, becuse #{$min} and #{$column-width} are not comparable."; + } + + @return $return; +} + +// Check to see if a given $media-layout list is simply the default. +// +// $media-layout : a list of values including - +// : One unitless number (columns in a layout) +// : Two optional lengths (min and max-width media-query breakpoints). +// : One optional boolean or string to trigger fallback support for IE. +@function is-default-layout( + $media-layout +) { + $media-layout : medialayout($media-layout); + $min : nth($media-layout,1); + $layout-cols : nth($media-layout,2); + $max : nth($media-layout,3); + + @if $min or $max { + @return false; + } @else { + @return if($layout-cols == $total-columns,true,false); + } +} diff --git a/docs/_sass/vendor/susy/susy/language/susyone/_grid.scss b/docs/_sass/vendor/susy/susy/language/susyone/_grid.scss new file mode 100644 index 00000000..491c6229 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susyone/_grid.scss @@ -0,0 +1,312 @@ +// --------------------------------------------------------------------------- +// Imports + +@import "compass/utilities/general/clearfix"; +@import "compass/css3/box-sizing"; + +// --------------------------------------------------------------------------- +// Border-Box Sizing + +// Apply the border-box sizing model to all elements +// and adjust the grid math appropriately. +@mixin border-box-sizing { + $border-box-sizing: true !global; + * { @include box-sizing(border-box); } +} + +// --------------------------------------------------------------------------- +// Container + +// Set the width of a container +// +// $columns : The number of columns in the Grid Layout. +@mixin set-container-width( + $columns : $total-columns, + $style : $container-style, + $px-vals : $pixel-values-only +){ + $width: container-outer-width($columns); + + @if $style == 'static' { + @if $px-vals == true { + width: round(convert-length($width, px)); + } @else { + @include rem(width, $width); + } + } @else { + @if $style == 'fluid' { + @if unit($width) == '%' { + @if $px-vals == true { + width: round(convert-length($width, px)); + } @else { + @include rem(width, $width); + } + } + } @else { + @if $px-vals == true { + max-width: round(convert-length($width, px)); + } @else { + @include rem(max-width, $width); + } + + @include for-legacy-browser(ie,"6") { + @if unit($width) == 'rem' { + _width: round(convert-length($width, px)); + } @else { + _width: $width; + } + } + } + } +} + +// Set the outer grid-containing element(s). +// +// $columns : The number of columns in the container. +@mixin apply-container( + $columns : $total-columns, + $px-vals : $pixel-values-only +){ + @include pie-clearfix; + @include set-container-width($columns); + @if $px-vals == true { + padding-left: round(convert-length($grid-padding, px)); + padding-right: round(convert-length($grid-padding, px)); + } @else { + @include rem(padding-left, $grid-padding); + @include rem(padding-right, $grid-padding); + } + margin: { left: auto; right: auto; } +} + +// Set one or more layouts on a grid-containing element at any number of media-query breakpoints. +// +// $media-layout-1 : [default:$total-columns] A list of values including - +// : One unitless number (representing columns in a layout) +// : Two optional lengths (representing min and max-width media-query breakpoints). +// $media-layout-2 ...-10 : [optional] Same as $media-layout-1 +@mixin container( + $media-layouts... +){ + $media-layouts: if(length($media-layouts) > 0, $media-layouts, $total-columns); + + @each $ml in $media-layouts { + @if is-default-layout($ml) { + @include apply-container; + } @else { + @include at-breakpoint($ml) { + @include apply-container; + } + } + } +} + +// --------------------------------------------------------------------------- +// Columns + +// Create a grid element spanning any number of 'columns' in a grid 'context'. +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $padding : [optional] Padding applied to the inside of individual grid columns. +// : Padding is only output if one or two values are specified (e.g. 1em or 10px 20px) +// : Padding values are applied only on the horizontal axis in from-to order +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin span-columns( + $columns, + $context : $total-columns, + $padding : false, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + $pos : split-columns-value($columns,position); + $cols : split-columns-value($columns,columns); + $pad-from : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); + $pad-to : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); + + @if $padding != false { + $pad-from : nth($padding, 1); + + @if length($padding) > 1 { + $pad-to: nth($padding, 2); + } @else { + $pad-to: $pad-from; + } + + $pad-from : if($style == static, $pad-from, relative-width($pad-from, $context)); + $pad-to : if($style == static, $pad-to, relative-width($pad-to, $context)); + + padding-#{$from}: $pad-from; + padding-#{$to}: $pad-to; + } + + width: columns($cols, $context, $style) - if($border-box-sizing, 0, $pad-to + $pad-from); + + @if ($pos == 'omega') { + @include omega($from); + } @else { + float: $from; + margin-#{$to}: gutter($context, $style); + @include for-legacy-browser(ie, "6") { + display: inline; + } + } +} + +// Apply to elements spanning the last column, to account for the page edge. +// Only needed as an override. Normally 'omega' can just be called by `columns`. +// +// $from : The start-direction for your document. +@mixin omega( + $from : $from-direction +) { + $from : unquote($from); + $to : opposite-position($from); + $hack : opposite-position($omega-float); + + float: $omega-float; + margin-#{$to}: 0; + + @include for-legacy-browser(ie, "6", "7") { + *margin-#{$hack}: - $gutter-width; + @include for-legacy-browser(ie, "6") { + display: inline; + } + } +} + +// Shortcut to apply omega to a specific subset of elements. +// +// $n : [first | only | last | ] +// $selector : [child | last-child | of-type | last-of-type ] +// $from : The start-direction for your document. +@mixin nth-omega( + $n : last, + $selector : child, + $from : $from-direction +) { + $from : unquote($from); + + &:#{format-nth($n,$selector)} { + @if $n == "first" { + @include omega($from); + } @else { + @include with-browser-ranges(css-sel3) { + @include omega($from); + } + } + } +} + + + +// --------------------------------------------------------------------------- +// Resets + +// Reset a '+columns' grid element to default block behavior +// +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +@mixin reset-columns( + $from: $from-direction +) { + $from : unquote($from); + $to : opposite-position($from); + $hack : opposite-position($omega-float); + + float: none; + width: auto; + margin-#{$to}: auto; + + @include for-legacy-browser(ie, "6", "7") { + *margin-#{$hack}: auto; + @include for-legacy-browser(ie, "6") { + display: block; + } + } +} + +// Apply to elements previously set as omega. +// This will return floats and margins back to non-omega settigns. +// +// $context : [optional] The context (columns spanned by parent). +// $from : The start-direction for your document. +// $style : The container style to use. +@mixin remove-omega( + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + $hack : opposite-position($omega-float); + + float: $from; + margin-#{$to}: gutter($context, $style); + + @include for-legacy-browser(ie, "6", "7") { + *margin-#{$hack}: auto; + } +} + +// Shortcut to apply remove-omega to a specific subset of elements. +// +// $n : [first | only | last | ] +// $selector : [child | last-child | of-type | last-of-type ] +// $context : [optional] The context (columns spanned by parent). +// $from : The start-direction for your document. +// $style : The container style to use. +@mixin remove-nth-omega( + $n : last, + $selector : child, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + + &:#{format-nth($n,$selector)} { + @if $n == "first" { + @include remove-omega($context, $from, $style); + } @else { + @include with-browser-ranges(css-sel3) { + @include remove-omega($context, $from, $style); + } + } + } +} + + +// --------------------------------------------------------------------------- +// Change Settings + +@mixin with-grid-settings( + $columns: $total-columns, + $width: $column-width, + $gutter: $gutter-width, + $padding: $grid-padding +) { + // keep the defaults around + $default-columns: $total-columns; + $default-width: $column-width; + $default-gutter: $gutter-width; + $default-padding: $grid-padding; + + // use the new settings + $total-columns: $columns !global; + $column-width: $width !global; + $gutter-width: $gutter !global; + $grid-padding: $padding !global; + + // apply to contents + @content; + + // re-instate the defaults + $total-columns: $default-columns !global; + $column-width: $default-width !global; + $gutter-width: $default-gutter !global; + $grid-padding: $default-padding !global; +} diff --git a/docs/_sass/vendor/susy/susy/language/susyone/_isolation.scss b/docs/_sass/vendor/susy/susy/language/susyone/_isolation.scss new file mode 100644 index 00000000..2b70038b --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susyone/_isolation.scss @@ -0,0 +1,51 @@ +// --------------------------------------------------------------------------- +// Isolation + +// Isolate the position of a grid element (use in addition to span-columns) +// +// $location : The grid column to isolate in, relative to the container; +// $context : [optional] The context (columns spanned by parent). +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +@mixin isolate( + $location, + $context: $total-columns, + $from: $from-direction, + $style: fix-static-misalignment() +) { + $to: opposite-position($from); + margin-#{$to}: -100%; + margin-#{$from}: space($location - 1, $context, $style); +} + +// Isolate a group of elements in a grid, using nth-child selectors +// +// $columns : The column-width of each item on the grid; +// $context : [optional] The context (columns spanned by parent). +// $selector : [child | of-type | last-of-type ] (default is 'child') +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +@mixin isolate-grid( + $columns, + $context: $total-columns, + $selector: 'child', + $from: $from-direction, + $style: fix-static-misalignment() +) { + $to: opposite-position($from); + $location: 1; + $line: floor($context / $columns); + + @include span-columns($columns, $context, $from: $from, $style: $style); + margin-#{$to}: -100%; + + @for $item from 1 through $line { + $nth: '#{$line}n + #{$item}'; + &:#{format-nth($nth,$selector)} { + margin-#{$from}: space($location - 1, $context, $style); + @if $location == 1 { clear: $from; } + @else { clear: none; } + + $location: $location + $columns; + @if $location > $context { $location: 1; } + } + } +} diff --git a/docs/_sass/vendor/susy/susy/language/susyone/_margin.scss b/docs/_sass/vendor/susy/susy/language/susyone/_margin.scss new file mode 100644 index 00000000..accbbe65 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susyone/_margin.scss @@ -0,0 +1,93 @@ +// --------------------------------------------------------------------------- +// Margin Mixins + +// Apply 'columns' margin before an element to push it along the grid. +// +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin pre( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + margin-#{$from}: space($columns, $context, $style); +} + +// 'push' is a synonymn for 'pre' +@mixin push( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + @include pre($columns, $context, $from, $style); +} + +// Apply negative 'columns' margin before an element to pull it along the grid. +// +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin pull( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + margin-#{$from}: 0 - space($columns, $context, $style); +} + +// Apply 'columns' margin after an element to contain it in a grid. +// +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin post( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + margin-#{$to}: space($columns, $context, $style); +} + +// Apply 'columns' before and/or after an element to contain it on a grid. +// +// $pre : The number of columns to add as margin before. +// $post : The number of columns to add as margin after. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin squish( + $pre : false, + $post : false, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + @if $pre { + @include pre($pre, $context, $from, $style) + } + @if $post { + @include post($post, $context, $from, $style) + } +} diff --git a/docs/_sass/vendor/susy/susy/language/susyone/_media.scss b/docs/_sass/vendor/susy/susy/language/susyone/_media.scss new file mode 100644 index 00000000..ca860fc9 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susyone/_media.scss @@ -0,0 +1,105 @@ +// --------------------------------------------------------------------------- +// Media Mixins + +// Create a new layout context for (@content) descendants. +// +// $layout-cols : a (unitless) number of columns to use for this layout. +@mixin layout( + $layout-cols +) { + // store default $total-columns setting for later, then change it. + $default-layout : $total-columns; + $total-columns : $layout-cols !global; + + // apply children in this new layout context. + @content; + + // return to default $total-columns setting. + $total-columns : $default-layout !global; +} + +// Nest a block of code inside a new media-query and layout context. +// +// $media-layout : a list of values [$min $layout $max $ie] including... +// : - one unitless number (columns in a layout) +// : - two optional lengths (min and max-width media-query breakpoints). +// : - one optional boolean or string to trigger fallback support for IE. +// $font-size : [optional] The base font-size of your layout, if you are using ems. +// : - defaults to $base-font-size +@mixin at-breakpoint( + $media-layout, + $font-size: $base-font-size +) { + $media-layout : medialayout($media-layout,$font-size); + $min : nth($media-layout,1); + $layout : nth($media-layout,2); + $max : nth($media-layout,3); + $ie : nth($media-layout,4); + + @if not($breakpoint-media-output) and not($breakpoint-ie-output) and not($breakpoint-raw-output) { + @warn "Either $breakpoint-media-output, $breakpoint-ie-output, or $breakpoint-raw-output must be true for at-breakpoint to work."; + } + + // We need to have either a min-width breakpoint or a layout in order to proceed. + @if $min or $layout or $max { + + // If we don't have a layout, we create one based on the min-width. + @if not($layout) { + $layout: get-layout($min); + } + + // If we still don't have a layout, we have a problem. + @if $layout { + // Set our new layout context. + @include layout($layout) { + @if $breakpoint-media-output { + @include with-browser-ranges(css-mediaqueries) { + @if $min and $max { + // Both $min and $max + @media (min-width: $min) and (max-width: $max) { + @content; + } + } @else { + @if not($min) and not($max) { + // Neither $min nor $max: + // We can create a breakpoint based on the number of columns in the layout. + $min: fix-ems(container-outer-width($width: false)); + } + @if $min { + // Min only: + @media (min-width: $min) { + @content; + } + } @else { + // Max only: + @media (max-width: $max) { + @content; + } + } + } + } + } + // Set an IE fallback + @if $ie and $breakpoint-ie-output { + @if (type-of($ie) == 'bool') { + $ie: 'lt-ie9'; + } + .#{$ie} & { + @content; + } + } + + @if $breakpoint-raw-output { + @content; + } + } + } @else { + @warn "We were unable to determine a layout for your breakpoint."; + } + + } @else { + @warn "You need to provide either a valid layout (number of columns)" + + "or a valid media-query min-width breakpoint (length)."; + } + +} diff --git a/docs/_sass/vendor/susy/susy/language/susyone/_padding.scss b/docs/_sass/vendor/susy/susy/language/susyone/_padding.scss new file mode 100644 index 00000000..8e6394a4 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susyone/_padding.scss @@ -0,0 +1,92 @@ +// --------------------------------------------------------------------------- +// Padding Mixins + +// add empty colums as padding before an element. +// $columns : The number of columns to prefix. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin prefix( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + padding-#{$from}: space($columns, $context, $style); +} + +// add empty colums as padding after an element. +// $columns : The number of columns to suffix. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin suffix( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + padding-#{$to}: space($columns, $context, $style); +} + +// add empty colums as padding before and after an element. +// $columns : The number of columns to pad. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin pad( + $prefix : false, + $suffix : false, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + @if $prefix { + @include prefix($prefix, $context, $from, $style); + } + @if $suffix { + @include suffix($suffix, $context, $from, $style); + } +} + +// Bleed into colums with margin/padding on any side of an element. +// $width : The side of the bleed. +// : Any unit-length will be used directly. +// : Any unitless number will be used as a column-count. +// : Use "2 of 6" format to represent 2 cals in a 6-col nested context. +// $sides : One or more sides to bleed [ top | right | bottom | left | all ]. +// $style : The container style to use. +@mixin bleed( + $width: $grid-padding, + $sides: left right, + $style: fix-static-misalignment() +) { + @if $border-box-sizing { @include box-sizing(content-box) } + + @if type-of($width) == 'list' { + $width: filter($width, of); + $width: space(nth($width,1), nth($width,2), $style); + } @else if unitless($width) { + $width: space($width, $style: $style); + } + + @if $sides == 'all' { + margin: - $width; + padding: $width; + } @else { + @each $side in $sides { + margin-#{$side}: - $width; + padding-#{$side}: $width; + } + } +} diff --git a/docs/_sass/vendor/susy/susy/language/susyone/_settings.scss b/docs/_sass/vendor/susy/susy/language/susyone/_settings.scss new file mode 100644 index 00000000..e8ff9c84 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/language/susyone/_settings.scss @@ -0,0 +1,60 @@ +// --------------------------------------------------------------------------- +// Susy Settings + +// The total number of columns in the grid +$total-columns : 12 !default; + +// The width of columns and gutters. +// These must all be set with the comparable units. +$column-width : 4em !default; +$gutter-width : 1em !default; + +// Padding on the left and right of a Grid Container. +$grid-padding : $gutter-width !default; + +// --------------------------------------------------------------------------- +// Advanced Settings + +// From Direction: +// Controls for right-to-left or bi-directional sites. +$from-direction : left !default; + +// Omega Float Direction: +// The direction that +omega elements are floated by deafult. +$omega-float : opposite-position($from-direction) !default; + +// Container Width: +// Override the total width of your grid, using any length (50em, 75%, etc.) +$container-width : false !default; + +// Container Style: +// 'magic' - Static (fixed or elastic) when there's enough space, +// fluid when there isn't. This is the SUSY MAGIC SAUCE(TM). +// 'static' - Forces the grid container to remain static at all times. +// 'fluid' - Forces the grid to remain fluid at all times. +// (this will overrule any static $container-width settings) +$container-style : magic !default; + +// Border-Box Sizing +// Adjust the grid math appropriately for box-sizing: border-box; +// Warning: This does not actually apply the new box model! +// In most cases you can ignore this setting, +// and simply apply the border-box-sizing mixin. +$border-box-sizing : false !default; + +// Pixel Values only: +// Make sure only pixel values are set for the container width. +$pixel-values-only : false !default; + +// --------------------------------------------------------------------------- +// IE Settings + +// When you are using a seperate IE stylesheet, +// you can use these settings to control the output of at-breakpoint. +// By default, at-breakpoint will output media-queries as well as +// any defined ie-fallback classes. +$breakpoint-media-output : true !default; +$breakpoint-ie-output : true !default; + +// Danger Zone! Only set as 'true' in IE-specific style sheets. +$breakpoint-raw-output : false !default; diff --git a/docs/_sass/vendor/susy/susy/output/_float.scss b/docs/_sass/vendor/susy/susy/output/_float.scss new file mode 100644 index 00000000..9c24051c --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/_float.scss @@ -0,0 +1,9 @@ +// Float API +// ========= + +@import "shared"; + +@import "float/container"; +@import "float/span"; +@import "float/end"; +@import "float/isolate"; diff --git a/docs/_sass/vendor/susy/susy/output/_shared.scss b/docs/_sass/vendor/susy/susy/output/_shared.scss new file mode 100644 index 00000000..dd9df4ed --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/_shared.scss @@ -0,0 +1,15 @@ +// Shared API +// ========== + +@import "support"; + +@import "shared/inspect"; +@import "shared/output"; +@import "shared/direction"; +@import "shared/background"; +@import "shared/container"; +@import "shared/margins"; +@import "shared/padding"; + + + diff --git a/docs/_sass/vendor/susy/susy/output/_support.scss b/docs/_sass/vendor/susy/susy/output/_support.scss new file mode 100644 index 00000000..53dbc9c3 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/_support.scss @@ -0,0 +1,9 @@ +// Susy Browser Support +// ==================== + +@import "support/support"; +@import "support/prefix"; +@import "support/background"; +@import "support/box-sizing"; +@import "support/rem"; +@import "support/clearfix"; diff --git a/docs/_sass/vendor/susy/susy/output/float/_container.scss b/docs/_sass/vendor/susy/susy/output/float/_container.scss new file mode 100644 index 00000000..121eb11a --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/float/_container.scss @@ -0,0 +1,16 @@ +// Float Container API +// =================== + +// Float Container +// --------------- +// - [$width] : +// - [$justify] : left | center | right +// - [$math] : fluid | static +@mixin float-container( + $width, + $justify: auto auto, + $property: max-width +) { + @include susy-clearfix; + @include container-output($width, $justify, $property); +} diff --git a/docs/_sass/vendor/susy/susy/output/float/_end.scss b/docs/_sass/vendor/susy/susy/output/float/_end.scss new file mode 100644 index 00000000..3369997f --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/float/_end.scss @@ -0,0 +1,40 @@ +// Float Ends API +// ============== + +// Susy End Defaults +// ----------------- +// - PRIVATE +@include susy-defaults(( + last-flow: to, +)); + +// Float Last +// ---------- +// - [$flow] : ltr | rtl +@mixin float-last( + $flow: map-get($susy-defaults, flow), + $last-flow: map-get($susy-defaults, last-flow), + $margin: 0 +) { + $to: to($flow); + + $output: ( + float: if($last-flow == to, $to, null), + margin-#{$to}: $margin, + ); + + @include output($output); +} + +// Float First +// ----------- +// - [$flow] : ltr | rtl +@mixin float-first( + $flow: map-get($susy-defaults, flow) +) { + $output: ( + margin-#{from($flow)}: 0, + ); + + @include output($output); +} diff --git a/docs/_sass/vendor/susy/susy/output/float/_isolate.scss b/docs/_sass/vendor/susy/susy/output/float/_isolate.scss new file mode 100644 index 00000000..4dd3c230 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/float/_isolate.scss @@ -0,0 +1,22 @@ +// Float Isolation API +// =================== + +// Isolate Output +// -------------- +// - $push : +// - [$flow] : ltr | rtl +@mixin isolate-output( + $push, + $flow: map-get($susy-defaults, flow) +) { + $to: to($flow); + $from: from($flow); + + $output: ( + float: $from, + margin-#{$from}: $push, + margin-#{$to}: -100%, + ); + + @include output($output); +} diff --git a/docs/_sass/vendor/susy/susy/output/float/_span.scss b/docs/_sass/vendor/susy/susy/output/float/_span.scss new file mode 100644 index 00000000..5b732ccb --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/float/_span.scss @@ -0,0 +1,35 @@ +// Float Span API +// ============== + +// Float Span Output +// ----------------- +// - $width : +// - [$float] : from | to +// - [$margin-before] : +// - [$margin-after] : +// - [$padding-before] : +// - [$padding-after] : +// - [$flow] : ltr | rtl +@mixin float-span-output( + $width, + $float : from, + $margin-before : null, + $margin-after : null, + $padding-before : null, + $padding-after : null, + $flow : map-get($susy-defaults, flow) +) { + $to : to($flow); + $from : from($flow); + + $output: ( + width: $width, + float: if($float == to, $to, null) or if($float == from, $from, null), + margin-#{$from}: $margin-before, + margin-#{$to}: $margin-after, + padding-#{$from}: $padding-before, + padding-#{$to}: $padding-after, + ); + + @include output($output); +} diff --git a/docs/_sass/vendor/susy/susy/output/shared/_background.scss b/docs/_sass/vendor/susy/susy/output/shared/_background.scss new file mode 100644 index 00000000..c230f613 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/shared/_background.scss @@ -0,0 +1,26 @@ +// Grid Background API +// =================== +// - Sub-pixel rounding can lead to several pixels variation between browsers. + +// Grid Background Output +// ---------------------- +// - $image: background-image +// - $size: background-size +// - $clip: background-clip +// - [$flow]: ltr | rtl +@mixin background-grid-output ( + $image, + $size: null, + $clip: null, + $flow: map-get($susy-defaults, flow) +) { + $output: ( + background-image: $image, + background-size: $size, + background-origin: $clip, + background-clip: $clip, + background-position: from($flow) top, + ); + + @include output($output); +} diff --git a/docs/_sass/vendor/susy/susy/output/shared/_container.scss b/docs/_sass/vendor/susy/susy/output/shared/_container.scss new file mode 100644 index 00000000..7c7d4f17 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/shared/_container.scss @@ -0,0 +1,21 @@ +// Shared Container API +// ==================== + +// Container Output +// ---------------- +// - [$width] : +// - [$justify] : left | center | right +// - [$math] : fluid | static +@mixin container-output( + $width, + $justify: auto auto, + $property: max-width +) { + $output: ( + #{$property}: $width or 100%, + margin-left: nth($justify, 1), + margin-right: nth($justify, 2), + ); + + @include output($output); +} diff --git a/docs/_sass/vendor/susy/susy/output/shared/_direction.scss b/docs/_sass/vendor/susy/susy/output/shared/_direction.scss new file mode 100644 index 00000000..abb9c36f --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/shared/_direction.scss @@ -0,0 +1,42 @@ +// Direction Helpers +// ================= + +// Susy Flow Defaults +// ------------------ +// - PRIVATE +@include susy-defaults(( + flow: ltr, +)); + +// Get Direction +// ------------- +// Return the 'from' or 'to' direction of a ltr or rtl flow. +// - [$flow] : ltr | rtl +// - [$key] : from | to +@function get-direction( + $flow: map-get($susy-defaults, flow), + $key: from +) { + $return: if($flow == rtl, (from: right, to: left), (from: left, to: right)); + @return map-get($return, $key); +} + +// To +// -- +// Return the 'to' direction of a flow +// - [$flow] : ltr | rtl +@function to( + $flow: map-get($susy-defaults, flow) +) { + @return get-direction($flow, to); +} + +// From +// ---- +// Return the 'from' direction of a flow +// - [$flow] : ltr | rtl +@function from( + $flow: map-get($susy-defaults, flow) +) { + @return get-direction($flow, from); +} diff --git a/docs/_sass/vendor/susy/susy/output/shared/_inspect.scss b/docs/_sass/vendor/susy/susy/output/shared/_inspect.scss new file mode 100644 index 00000000..b0af9b6d --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/shared/_inspect.scss @@ -0,0 +1,25 @@ +// Debugging +// ========= + +// Susy Inspect +// ------------ +// Output arguments passed to a inspect. +// - $mixin : +// - $inspec : + +@mixin susy-inspect( + $mixin, + $inspect +) { + $show: false; + + @each $item in $inspect { + @if index($item, inspect) { + $show: true; + } + } + + @if $show or susy-get(debug inspect) { + -susy-#{$mixin}: inspect($inspect); + } +} diff --git a/docs/_sass/vendor/susy/susy/output/shared/_margins.scss b/docs/_sass/vendor/susy/susy/output/shared/_margins.scss new file mode 100644 index 00000000..cd73e8cf --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/shared/_margins.scss @@ -0,0 +1,23 @@ +// Margins API +// =========== + +// Margin Output +// ------------- +// - $before : +// - $after : +// - [$flow] : ltr | rtl +@mixin margin-output( + $before, + $after, + $flow: map-get($susy-defaults, flow) +) { + $to: to($flow); + $from: from($flow); + + $output: ( + margin-#{$from}: $before, + margin-#{$to}: $after, + ); + + @include output($output); +} diff --git a/docs/_sass/vendor/susy/susy/output/shared/_output.scss b/docs/_sass/vendor/susy/susy/output/shared/_output.scss new file mode 100644 index 00000000..20fc2d61 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/shared/_output.scss @@ -0,0 +1,14 @@ +// Output +// ====== + +// Output +// ------ +// Output CSS with proper browser support. +// - $styles : +@mixin output( + $styles +) { + @each $prop, $val in $styles { + @include susy-support($prop, $val); + } +} diff --git a/docs/_sass/vendor/susy/susy/output/shared/_padding.scss b/docs/_sass/vendor/susy/susy/output/shared/_padding.scss new file mode 100644 index 00000000..5069d0cb --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/shared/_padding.scss @@ -0,0 +1,23 @@ +// Padding API +// =========== + +// Padding Output +// -------------- +// - $before : +// - $after : +// - [$flow] : ltr | rtl +@mixin padding-output( + $before, + $after, + $flow: map-get($susy-defaults, flow) +) { + $to: to($flow); + $from: from($flow); + + $output: ( + padding-#{$from}: $before, + padding-#{$to}: $after, + ); + + @include output($output); +} diff --git a/docs/_sass/vendor/susy/susy/output/support/_background.scss b/docs/_sass/vendor/susy/susy/output/support/_background.scss new file mode 100644 index 00000000..b1415028 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/support/_background.scss @@ -0,0 +1,58 @@ +// Background Properties +// ===================== + +// Susy Background Image +// --------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-image( + $image +) { + @if susy-support(background-image, (mixin: background-image), $warn: false) { + @include background-image($image...); + } @else { + background-image: $image; + } +} + +// Susy Background Size +// --------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-size( + $size +) { + @if susy-support(background-options, (mixin: background-size)) { + @include background-size($size); + } @else { + background-size: $size; + } +} + +// Susy Background Origin +// ---------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-origin( + $origin +) { + @if susy-support(background-options, (mixin: background-origin)) { + @include background-origin($origin); + } @else { + background-origin: $origin; + } +} + +// Susy Background Clip +// -------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-clip( + $clip +) { + @if susy-support(background-options, (mixin: background-clip)) { + @include background-clip($clip); + } @else { + background-clip: $clip; + } +} diff --git a/docs/_sass/vendor/susy/susy/output/support/_box-sizing.scss b/docs/_sass/vendor/susy/susy/output/support/_box-sizing.scss new file mode 100644 index 00000000..bf50bbc9 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/support/_box-sizing.scss @@ -0,0 +1,19 @@ +// Box Sizing +// ========== + +// Box Sizing +// ---------- +// Check for an existing support mixin, or provide a simple fallback. +// - $model: +@mixin susy-box-sizing( + $model: content-box +) { + @if $model { + @if susy-support(box-sizing, (mixin: box-sizing), $warn: false) { + @include box-sizing($model); + } @else { + $prefix: (moz, webkit, official); + @include susy-prefix(box-sizing, $model, $prefix); + } + } +} diff --git a/docs/_sass/vendor/susy/susy/output/support/_clearfix.scss b/docs/_sass/vendor/susy/susy/output/support/_clearfix.scss new file mode 100644 index 00000000..48c6e7b7 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/support/_clearfix.scss @@ -0,0 +1,18 @@ +// Susy Fallback Clearfix +// ====================== + + +// Clearfix +// -------- +// Check for an existing support mixin, or provide a simple fallback. +@mixin susy-clearfix { + @if susy-support(clearfix, (mixin: clearfix)) { + @include clearfix; + } @else { + &:after { + content: " "; + display: block; + clear: both; + } + } +} diff --git a/docs/_sass/vendor/susy/susy/output/support/_prefix.scss b/docs/_sass/vendor/susy/susy/output/support/_prefix.scss new file mode 100644 index 00000000..f4e26ecc --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/support/_prefix.scss @@ -0,0 +1,19 @@ +// Susy Prefix +// =========== + +// Prefix +// ------ +// Output simple prefixed properties. +// - $prop : +// - $val : +// - [$prefix] : +@mixin susy-prefix( + $prop, + $val, + $prefix: official +) { + @each $fix in $prefix { + $fix: if($fix == official or not($fix), $prop, '-#{$fix}-#{$prop}'); + @include susy-rem($fix, $val); + } +} diff --git a/docs/_sass/vendor/susy/susy/output/support/_rem.scss b/docs/_sass/vendor/susy/susy/output/support/_rem.scss new file mode 100644 index 00000000..0a807f79 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/support/_rem.scss @@ -0,0 +1,22 @@ +// rem Support +// =========== + +// rem +// --- +// Check for an existing support mixin, or output directly. +// - $prop : +// - $val : +@mixin susy-rem( + $prop, + $val +) { + $_reqs: ( + variable: rhythm-unit rem-with-px-fallback, + mixin: rem, + ); + @if susy-support(rem, $_reqs, $warn: false) and $rhythm-unit == rem { + @include rem($prop, $val); + } @else { + #{$prop}: $val; + } +} diff --git a/docs/_sass/vendor/susy/susy/output/support/_support.scss b/docs/_sass/vendor/susy/susy/output/support/_support.scss new file mode 100644 index 00000000..96991135 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/output/support/_support.scss @@ -0,0 +1,85 @@ +// Browser Support +// =============== + +// Susy Support Defaults +// --------------------- +@include susy-defaults(( + use-custom: ( + clearfix: false, + background-image: true, + background-options: false, + breakpoint: true, + box-sizing: true, + rem: true, + ), +)); + + +// Susy Support [mixin] +// -------------------- +// Send property-value pairs to the proper support modules. +// - $prop : +// - $val : +@mixin susy-support( + $prop, + $val +) { + // Background Support + @if $prop == background-image { + @include susy-background-image($val); + } @else if $prop == background-size { + @include susy-background-size($val); + } @else if $prop == background-origin { + @include susy-background-origin($val); + } @else if $prop == background-clip { + @include susy-background-clip($val); + } + + // Box-Sizing Support + @else if $prop == box-sizing { + @include susy-box-sizing($val); + } + + // Rem Support + @else { + @include susy-rem($prop, $val); + } +} + + +// Susy Support [function] +// ----------------------- +// Check for support of a feature. +// - $feature : +// - e.g "rem" or "box-sizing" +// - $requirements : +// - e.g (variable: rem-with-px-fallback, mixin: rem) +// - $warn : +@function susy-support( + $feature, + $requirements: (), + $warn: true +) { + $_support: susy-get(use-custom $feature); + + @if $_support { + $_fail: false; + + @each $_type, $_req in $requirements { + @each $_i in $_req { + $_pass: call(unquote("#{$_type}-exists"), $_i); + + @if not($_pass) { + $_fail: true; + @if $warn { + @warn "You requested custom support of #{$feature}, but the #{$_i} #{$_type} is not available."; + } + } + } + } + + $_support: if($_fail, false, $_support); + } + + @return $_support; +} diff --git a/docs/_sass/vendor/susy/susy/su/_grid.scss b/docs/_sass/vendor/susy/susy/su/_grid.scss new file mode 100644 index 00000000..7fe2a02d --- /dev/null +++ b/docs/_sass/vendor/susy/susy/su/_grid.scss @@ -0,0 +1,103 @@ +// Column math +// =========== + + +// Is Symmetrical +// -------------- +// Returns true if a grid is symmetrical. +// - [$columns] : | +@function is-symmetrical( + $columns: susy-get(columns) +) { + $columns: valid-columns($columns); + @return if(type-of($columns) == number, $columns, null); +} + + +// Susy Count +// ---------- +// Find the number of columns in a given layout +// - [$columns] : | +@function susy-count( + $columns: susy-get(columns) +) { + $columns: valid-columns($columns); + @return is-symmetrical($columns) or length($columns); +} + + +// Susy Sum +// -------- +// Find the total sum of column-units in a layout +// - [$columns] : | +// - [$gutters] : +// - [$spread] : false/narrow | wide | wider +@function susy-sum( + $columns : susy-get(columns), + $gutters : susy-get(gutters), + $spread : false +) { + $columns: valid-columns($columns); + $gutters: valid-gutters($gutters); + + $spread: if($spread == wide, 0, if($spread == wider, 1, -1)); + $gutter-sum: (susy-count($columns) + $spread) * $gutters; + $column-sum: is-symmetrical($columns); + + @if not($column-sum) { + @each $column in $columns { + $column-sum: ($column-sum or 0) + $column; + } + } + + @return $column-sum + $gutter-sum; +} + + +// Susy Slice +// ---------- +// Return a subset of columns at a given location. +// - $span : +// - $location : +// - [$columns] : | +@function susy-slice( + $span, + $location, + $columns: susy-get(columns) +) { + $columns: valid-columns($columns); + $sub-columns: $span; + + @if not(is-symmetrical($columns)) { + $location: $location or 1; + $sub-columns: (); + @for $i from $location to ($location + $span) { + $sub-columns: append($sub-columns, nth($columns, $i)); + } + } + + @return $sub-columns; +} + + +// Susy +// ---- +// Find the sum of a column-span. +// - $span : +// - $location : +// - [$columns] : | +// - [$gutters] : +// - [$spread] : false/narrow | wide | wider +@function susy( + $span, + $location : false, + $columns : susy-get(columns), + $gutters : susy-get(gutters), + $spread : false +) { + $columns: valid-columns($columns); + $gutters: valid-gutters($gutters); + $span: susy-slice($span, $location, $columns); + + @return susy-sum($span, $gutters, $spread); +} diff --git a/docs/_sass/vendor/susy/susy/su/_settings.scss b/docs/_sass/vendor/susy/susy/su/_settings.scss new file mode 100644 index 00000000..8b439aaa --- /dev/null +++ b/docs/_sass/vendor/susy/susy/su/_settings.scss @@ -0,0 +1,73 @@ +// Settings +// ======== + +// Version +// ------- +$su-version: 1.1; + + +// Default Settings +// ---------------- +// PRIVATE: The basic settings +$susy-defaults: ( + columns: 4, + gutters: .25, +); + + +// User Settings +// ------------- +// - Define the $susy variable with a map of your own settings. +// - Set EITHER $column-width OR $container +// - Use $column-width for static layouts +$susy: () !default; + + +// Susy Defaults +// ------------- +// PRIVATE: Add defaults to Susy +@mixin susy-defaults( + $defaults +) { + $susy-defaults: map-merge($susy-defaults, $defaults) !global; +} + + +// Susy Set +// -------- +// Change one setting +// - $key : setting name +// - $value : setting value +@mixin susy-set( + $key-value... +) { + $susy: _susy-deep-set($susy, $key-value...) !global; +} + + +// Susy Get +// -------- +// Return one setting from a grid +// - $key : +// - $layout : +@function susy-get( + $key, + $layout: map-merge($susy-defaults, $susy) +) { + $layout: parse-grid($layout); + $_options: $layout $susy $susy-defaults; + $_break: false; + $_return: null; + + @each $opt in $_options { + @if type-of($opt) == map and not($_break) { + $_keyset: _susy-deep-has-key($opt, $key...); + @if $_keyset { + $_return: _susy-deep-get($opt, $key...); + $_break: true; + } + } + } + + @return $_return; +} diff --git a/docs/_sass/vendor/susy/susy/su/_utilities.scss b/docs/_sass/vendor/susy/susy/su/_utilities.scss new file mode 100644 index 00000000..b737f212 --- /dev/null +++ b/docs/_sass/vendor/susy/susy/su/_utilities.scss @@ -0,0 +1,111 @@ +// Map Functions +// ============= + + +// Truncate List +// ------------- +// - Return a list, truncated to a given length +@function _susy-truncate-list( + $list, + $length +) { + $_return: (); + + @for $i from 1 through length($list) { + $_return: if($i <= $length, append($_return, nth($list, $i)), $_return); + } + + @return $_return; +} + + +// Deep Get +// -------- +// - Return a value deep in nested maps +@function _susy-deep-get( + $map, + $keys... +) { + $_return: $map; + + @each $key in $keys { + @if type-of($_return) == map { + $_return: map-get($_return, $key); + } + } + + @return $_return; +} + + +// Deep Set +// -------- +// - Set a value deep in nested maps +@function _susy-deep-set( + $map, + $keys-value... +) { + $_value: nth($keys-value, -1); + $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1); + $_length: length($_keys); + $_return: (); + + @for $i from 1 through $_length { + $_n: 0 - $i; + $_level: _susy-truncate-list($_keys, $_length + $_n); + $_level: _susy-deep-get($map, $_level...); + $_merge: nth($_keys, $_n); + $_merge: ($_merge: $_value); + $_return: if($_level, map-merge($_level, $_merge), $_merge); + $_value: $_return; + } + + @return $_return; +} + + +// Deep Merge +// ---------- +// Return 2 objects of any depth, merged +@function _susy-deep-merge( + $map1, + $map2 +) { + + @if type-of($map1) != map or type-of($map2) != map { + $map1: $map2; + } @else { + @each $key, $value in $map2 { + $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value)); + $map1: map-merge($map1, $_new); + } + } + + @return $map1; +} + + +// Deep Has-Key +// ------------ +// - Return true if a deep key exists +@function _susy-deep-has-key( + $map, + $keys... +) { + $_return: null; + $_stop: false; + + @each $key in $keys { + @if not($_stop) { + $_return: map-has-key($map, $key); + } + + @if $_return { + $map: map-get($map, $key); + } @else { + $_stop: true; + } + } + + @return $_return; +} diff --git a/docs/_sass/vendor/susy/susy/su/_validation.scss b/docs/_sass/vendor/susy/susy/su/_validation.scss new file mode 100644 index 00000000..4c6ab8da --- /dev/null +++ b/docs/_sass/vendor/susy/susy/su/_validation.scss @@ -0,0 +1,57 @@ +// Math Validation +// =============== + + +// Valid Columns +// ------------- +// Check that a column setting is valid. +@function valid-columns( + $columns, + $silent: false +) { + $type: type-of($columns); + $return: null; + + @if $type == number and unitless($columns) { + $return: $columns; + } @else if $type == list { + $fail: null; + @each $col in $columns { + @if type-of($col) == number { + $fail: $fail or if(unitless($col), null, true); + } @else { + $fail: true; + } + } + $return: if($fail, $return, $columns); + } + + @if $return != $columns and not($silent) { + $return: null; + $warn: '$columns must be a unitless number or list of unitless numbers.'; + @warn $warn + ' Current value [#{$type}]: #{$columns}'; + } + + @return $return; +} + + +// Valid Gutters +// ------------- +// Check that a gutter setting is valid. +@function valid-gutters( + $gutters, + $silent: false +) { + $type: type-of($gutters); + $return: null; + + @if $type == number and unitless($gutters) { + $return: $gutters; + } @else if not($silent) { + $warn: '$gutters must be a unitless number.'; + @warn $warn + ' Current value [#{$type}]: #{$gutters}'; + } + + @return $return; +} diff --git a/docs/assets/css/main.scss b/docs/assets/css/main.scss new file mode 100644 index 00000000..fbc2a31c --- /dev/null +++ b/docs/assets/css/main.scss @@ -0,0 +1,39 @@ +--- +--- + +/* + * Minimal Mistakes Jekyll Theme + * + * - Michael Rose + * - mademistakes.com + * - https://twitter.com/mmistakes + * +*/ + +@import "vendor/breakpoint/breakpoint"; // media query mixins +@import "variables"; +@import "mixins"; +@import "vendor/susy/susy"; + +@import "reset"; +@import "base"; + +@import "utilities"; +@import "animations"; +@import "tables"; +@import "buttons"; +@import "notices"; +@import "masthead"; +@import "navigation"; +@import "footer"; +@import "syntax"; + +@import "forms"; + +@import "page"; +@import "archive"; +@import "sidebar"; + +@import "vendor/font-awesome/font-awesome"; +@import "vendor/magnific-popup/magnific-popup"; +@import "print"; \ No newline at end of file diff --git a/docs/assets/fonts/FontAwesome.otf b/docs/assets/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..d4de13e832d567ff29c5b4e9561b8c370348cc9c GIT binary patch literal 124988 zcmbUJd0Z36|2U4%l4KKha{x&!By57#qh9rZpm?<2TJKtFy^$jj1QJZbecwX32_PVX zV7f9YgpFlkhA%W0jjEMtS0Jd_fh znd;+QjS%$}-ydy`PBA{D96bW+QiO!EREy0H^Md=|1;cL$g@gh`QIvF%#cZFOVYFFN zjC_5*%MT6qP=mcbgS`S*kkBC&IHbZV(j4qd1=EyB*Nq-84FB8V_@^Kh2T!&rf+x57 z_i>22@LYgTr4OPIjacN5f{+f4Koihp6ozJ@htNW_7_C5&XcLM;Mr1-MXgkV6d8i20 zpk~y8y3t{D0zHi`p_kAV^fvk!eT#lYf1x1?Q9?>W`B7?0OX;cmsj*ZT^$@j$ilm~b zWGa=)p(?0mY8TZ*9idKAXQ*@3bJR=J73v-8OX_>-XX+0MQ+IqApJ6^)pD{jRKC^um z`>gR&v{exJ{Me)YNS& zBwQ_gT)07K6xxJ&!ct+iuu-^E*el#8JSaRNd`fspcvW~q_@VHo@V1B+sYRnj<3&?M z;i6fhg`!oWCqz*qlPE>BU6d}$6%~j|L^YxYQHQ8Uv{$rGbV_tV^t|Y@=$fcs^rh%` z(GcxJOKBCYqsP*d=`eaWy?|a#ucJ57(eyStjV_|g=xW+Yx6!@yVfq>RW%@PxJ^C~H zTly#ZH~Nm47R$x=i8=8D;tArZ;&Aa|@p`dIoFy(1*NR)j-QxY?qvBKI=fu~zm-4?3?PF?px@)!?(lti0^UVXMCUYecktc z-_L!&_r2{q#83>&1TY$AG&7Ew$V_HJnQ$h8nZ-QJ%wrZYtC%PzmPunA%uePYbCfy3 zTx4Eit}t&gpDVg;<2RkK=lG;3hzv5&IRY&@I7+Sx3&kS$~D*k-na?P8x~ z53onrQ|uY`Y4#%fBKr#a4*LQ7GyA&~Nrh5BsY*IrI!ZcLI#D`BYLG@qXG`Zwmq?dO zS4$(M>!h2cTcvSQlQdbHDz!^9rMc2VX@%4wt&=uMTcsV+E@`iHzx1&5nDmtNtn|F} zIq7BT>(aNR??^w8ej@!s`nB|y^e5?W(m$mG(jgfolgJdZVKR+OCmSW3APbdElg*Sp zESoP|EL$d9C0i@oAlo8~k;Til$;>jVEM1l@%a;|)%4JouT3NHKP1Y&fBYRSIP8~OM0 zpXI;H|B?^N?M0`Iba;j3qNQIXWvUHqjcJY_u9v zjnQ_iG2UvlnfPJ(N0KeEN%6_i3A|xSHCfC?Te>AVEyWlGgWoOjz1}URrEa&zTH=f` z@TPFFM<>9aEyiL=;?I<5Yf`E;(QJ?bZQhoGw3&t?+CiE8(~s5Q?%6x^omX5QE#&wQ=?*{W0NwX zt#R?ufSh}kdsiNlsnI|~pjT?V#rhB6-Lj{LyJh1xW2_zePPbaTuXnHPnQUrunk|Z_ zY)Yc}Zpll3PopKtbJ?B-10}-aJYb?Z-r_0PVy#A_*=Di;9rdfKqU8?E+480T))WU(e@ z1LH*}1CK_<0*&qVj6`5Lt7ld`pYW{esd(8m3dXcrl8jj(WwyIhwAoE*DKWOFv{a9% zc`N+<_^L;sfpz0OBJLG!o=70E$%*D9;4LrFQqycEcnRQpqZNc0B;B0kB_@oQYRXDT zgi&HVGw}+nM;?K!W{)6xSkv44J>l}!Ja;{h-F>rrFXinp4b(ww67UJ|IFG+LtIcML zi;Drm0&>hT#^mH!9%u1@HM`LSl!@~2hNr}fqNk9S>bdam?B%DZe;Mk38a&VbPYY1g z!-037;JZjjw!|1StRRmd(zYZUC^0}vj5X019~*5m@=WLDY_r8~+@1zfZ;nqiC)%@; zjW(O7A;D?^BmoA2(bD2#jL{&^v1#^LODYIus)s!iQ*F^8$h;nj0ptfCIPKrQXqBz6g)^yuvij6<^ChI|EUA1 zfNemH*rPm%@|589Jy#x;-jWwZyjnHeY!<@U%qG@8$$} zDwS9B(J3%sv^mz8VvI{lw8!&vfUdV0?J-89)#Slv{N#9JoFxrV9|g05Umj8a)8N6^ z|Foo~{!f)h_P@`1OP+_kMbK}aj(M;+qb&*aH6R6kJp{L>SYmh^>J>6Cr+WBhdm1pG zXExrFr$=}%vl&?Jo&`<5C${kR|5Z#plK!Kd_^L4z=Hao+u@;^xHjmx5rNH3vpqtGp zMpFV9%GBsMP(B_K^M=^d5r6f_Kk#E5U=R!i?*#zg8dHa>Xe=yDryofSkbG1YEMi}4nsrcMt{P0P;aag%5S8Yc4n z@IJx6CEhKtnG%i3aracacYNL)M1iIQUPw!{nT%j(VnN_w`5GGsLhm(%9?|rO#eW;T z((&Jxe@%kt37(85drGn))@BO@<^nC|)p0zkc(rB&0|a~u@}Fpn`qu#b({#^7M1@Wc z_4q@4w_r5*3I1b&`Ods5*VC441epZ=@4b4Yn|BpF9PH7oo~eaSnd&v5d<~=$BoD;L zOYD2sC}6y(&?(c5Y1V`oun8b9)@`X-*0h);YetMcmKUghgvz54Vt5LJ{*3{>5;`^F zpEf&av6wVFs6<|Y@KFD>@Uy?y>d|`tQ{nGMg@%T~X~+UIl@??4yvW^hCQyw(|Jw%o zE;=g?=np<5@EYLit`1=(<3Cki0sV82=Z*hVy&|0oG{^v7&yrySak5$x2OA*nG+XHnL9atO7xVd& z@V16~FVI^UJQ)Tfguw`5FhUsL1`mXJA6N*37+??s^kV=}1ArO;)BvCc05t%p0VWd; zaNz(K4shWB7w(7ehiRYUEbQ-ix1JG#zIt|*UL6_5@%W2^N6AM@9avH!* z2e|0~2Q&)_Z2$)Z zGfbWg=M*@n!Wjx@7@P(;!{M9;=X5wD(vAE&zyRbjz{3V0mjTFS0CE|CTm~SQ0mx;T z0v%3;4yOVf5Xu0AG610rKqvzc$^e8i0HF*(C<7460E99Cp$tGM0|>t%6yQPuE)?K^ zK88?$3j???fC~dSAd3OWVgRxjfGh?eivh@D2m?3+zyVDRKobMd!~irg08I=)69dr1 z05mZGO$N16+7S{M7Kta01-4sc;22Acz47VweVS z(*O<#VgP~|fFK4Shye&<0D>5RAO;|a0SICMf*61x1|Wz52x0(&7=R!KAc!FX;6Q>5 zAVCI@AVb9T_^F_RLD;5F_b}^J=rtV35)Nbu_sY@K=^jp<3VnwIal(N(;UG%kK-h4g zO*qgd9B2~`vXcG>!2?yGQ18u^AHsL^N=&iTIO;(voLcUQ2^Uc1l!I!dTB#1Ii#h<2;p0?4 z^*;5rkJyLx@$(t)Gu`K5pZPw^eAfAF@rm&%@M-jE@!98dSTI%ah~RNSmteo3PjFiB z48(UY3EmfcEcjgTgWwmzZNY#rP#7YdAPg1G5Y7=U6h0zcAzUYn7A6Sug&zq&7ZMRA z5{Z08deJ12S(G8l7nO-BMYWetHfIIaPcVd zIPrrJcbz7lBYs>QC60yIt3!NDd{+FS_zUqj;_t93X{&1Gquc<%n^u}zRY|Nane5-!u-t&S(a6?GuWl<?qg4~ z&p<@|1$tKBG%ASzL z$+kmmvP{-1I|k9mcOmll4a6M(f{3FJL>$#}y?l~IG5Hg6qr5=gChwH* zl^^!R4$sT`;RkRqIqys(4kBDpi%Is#LY8dR50&7gaB* zuBcv9-B5j?`dsz3>U-5Ms@p1}7ORzNy?U&Al6t0kv3iyIarGv3oH|);SLdpW)jQPH z>IQX-xwc0zXE-rZBl6VcH3l`0Jh{0XVrQ~_y ztKkUMvm}(L;eb+BUS1YEEQC?xFs$c-U6|qX< zFzU4&ehA)5^#I3DT(^wQ%4_S?UlVt>wRP&Q(VcC1S$Z5Pd<4c%;@DXX>3@*HFiG6M znPEd2q8iV!eFqNov7;FhIg(-f%m+;D0!Gh@=P)e1MK^Z{rb|y@SaAuA>=^{!*fR>e zqGuSax;u_a7zHpRId&owJWv?H1=EESfCRg8+p}S2*}1vd`eowm_S{`Cvt8}&yY$3~ z`yXN06)+xum%YKcIs6;r;zSK)#dRgx;*!rfSG+sEm0>L~ZQ>xr6ZB>I)Ek;`3X!Go*{wbSU@{na^1^OM8RXZv**-wpjX6OoXin2v%D&g-hwHDxwux8_KSGonXlYbvXE)K=Cuig3XFYV3x<|;Uv zo2#3pBXgVI9kWx*l0V5QIR50XcoB#H#QcSI@=PyY`0}G~>F(k?cwmkf42Ht34F5+gaP45^#VZbN{-#dyvwj4qAGU4 z87%Bpzt52`$QL5g9?H0Z5pg?>q5dq#{sDr7;US#M6>_2TZ`^F-*tgfbv|tm*b~|2R z>N#N7Wx%a;BXGdARU9i`!m!UXz!ota84f7;)9}Uc<-h_r=idm`vEMT~ccd$_lfyzz z?~ZgwmT-fr%^aRdeDDKg_IJAW4NdEw(2&KGNCcTlu5!fHk zSdSmkUb)=R{G$HT)wj0(x_w{if%1bD9hL1n>pCS^z|`%|Z!O#zcQ)!|;-?b!=8YRS z*)7~1)f^5F2bBS%Iyw9RUvfpBU_j<^7{_kn7O*r37ItzD@p4XonV0NijLuVGK?U8u z0-6M?0BP4jwD2OLz>~O_B$@GID9y>nt3i*9=2+q&n_0a108q#-7;s`W;|5hnK-IZtVYuRE2LI@q zHICB<4}LBLy?aju>)FA6+{F#4=rWGnPZsL$sKjJ0evE|R(lQ-MBwIuo>20P1+QHNG zfwsP`bUjJLTSU0D0Y8RA@LbIxsNRKSGrpfVKrJ2Q0LAV|FN*O(;evx1PCl=?wmZ*}4`O1g8)c9tLWE%y1$iIx_5gLgP`FFLxi@udAW& z&s;HvNVVqe4UHN4!rH>R;<`8@3T!QJEAJ?m6hC>q^l2?F#y;4Bx9C}3>9QmW2a-o{ z4Dr=(A~WZ&TD~ARD?7K|Dsea*RhqQ=&YZ658b^)xWc|s;W6gN(Sv>g@d>@ub%FkWc zaY5@UagD+!@n3p*GJ`p=2NWL530N8!AB*vDHWe6M)CIc9S-`QAflJ&fE5kPJz-t(C z1K$uel$O*LYk4KkX0_#EiUTXa+Myp%u__kVGw#!_)6a3_v^!Efh0*ik=87bz=~o#S z+yH(A4kUJ(N0R<9ewV|C!TNl_>4ze52cvVTX#5#4L2E%yW44yX&ydA+zE45U5Cu)?{#u;@WCx#9!y6lVSUKr98b;^qRuyg)JN;(DwD)8dL3vEpffRu%sK zJ#OHl>wucPJsQ6+CLOLK5th;*ZLf(OJ)3uL)^(ljJ@3%qDd3-AA?=E0yBWM2jO6sF zxVWgo{QQEtOkNFS*R~b3S64f#wFm1C)bDHj^~qajKD{g{dhv4E6|E}>zlpQ(F&3{N zd&zooRzy@}CT@XoaBXvkv!kIksJ5}Lv8GW{OV^avmNu03MhD_hQZK^QG}v#TM+7qv z3C0^-9F^KNll+8#a?gaW9-BpiK=+YhSe>=oQg1H`vK8gnw`<&yJgI3`O~eUUO#jJX z1HJ%i_*=3G=i*KHVH$71a*Xi8&-%-Dbn8g0n8>R{DE0 z%_ckp?t=?r2S)pv!*CHl>~%)$*bWnX1uO&@@S55teNS^o&yyP7U+VYxOZgmFt1xb` zKc8d&qaoc+mot@P$8rCweq6KI{h&5keEKl918ZE+u*sbKO%FS);#nOI4_m#*V3mOP zCU~>KHZh-m`swul`wP7!Gv9)(;r%ueNSxv(Za_u915Sa*wP4j3uy1W$Q$s^_5PplU zuX2{vR-7lkfi8Q}8jie5FT^uN?3)a4C|UK#9BBSoAeZU`FcB3aU}y1G33~1$*>Lo+ z>h5cz&W7D>yR@#`bZ2v3R+&D1nJB9)GcQ}~zD;KpwRJY=S$vjpHkKC8dTr^4{FMc3 zh&426B8{wgCn#wr1DY{-u#n~v4_deor!y60W%~8&=fk)yFs|A)4u48Mb&qq8BmZ3S zr>=2)JAc))`#3xfUK-5MtDL(Zh!MtnkdY7a=AgB#W0z)ELq}^X0JJcagC)mE797Xe zW{zU9V)U;>!HRY?HB~lgTUu)Co%&tPtsS+yv2!^SShu&RH@#iL;>Vby+;|$l2`mCX zI{X#a=+tAo7>{LiKhXTE>48mLPFC#VuuRle?`&<;faBR*-dxh4D`_aKDc<2`i6oH4 zkvN_)!#u$+Aj61!0tragk8n>DS!m)nW(@HIr8koKffW=0`9LA!KRM8cDz>$`x~56r zP*+{2-61Y4E-x=BDk%tZi`-9&rno)^MWmU_y~(j}03tRpz$N&chqZ<;1=a?`3$8DF zi*vAMlMXt|&M7S@U_ML5*ca^~G8c zh1~q2ybApc^05eX*7ssC_0vV<4Y4~Cx2xR`;JGf(N#=@J9QyI3idwz1usWxtVD0R{ z@{;0ma67At>q;9X4)#0{d=B2i$n#rwm33%4b~Ws5)w2Z!Ic3?}?3{+y0zLa=PLI7= zXKS{UXJvvMfNFKZGAKTq2(cg8q$Nwighr5EWH-K#%)rTbE(>}&5+n~tCczS5->OGi zAJGzuB&;LD$#9&o4nuYvPIwj%=e06U2805}oEJf^SUj1*w;2qK0j!NrGx%%ZJPUJx zozGlczXFyWJkU%=-W|<2a5kKPA{@ei&<78C7JVQeyr9Aj?;kq=TBo6*uA#Ou2sHK_ zj@_Bx<=DA1h!t<=*u8rlr>uKf@dAbgvFoSDaFaMaHZkllM+GhiO*UJ%mBzuuR7o~C zG>#plo+Z8$CJQmnedv7khqu$Xax`Gr>(v-;+O z!p0med1fv7g`|^de~rgs`hhz%i@))_iVB1Rrp@A|uznO1SZNYiX+qCm;Q>)gZC6LD zcECxucI6b->c1ibV1`y)T>mOAdmifOpSAPsduVu?`@#2G-OKjde{< z4fsm@v`>=XTz9s9pzA73+iBO@)ABP4^=!1xnvs#7WxYKquw`d!+s+nA_g-G1_2V!Q zG+qG0V6}t8V0EKy%xI75i0X;$sqJap(<||%^SC{kA83o-onXab;|F)EsRa>JE_OC_~fCZr%nMwcG!E1bUPZIp#6BSpCw^* zacQFy3mF{d(QDw);LYI4zQ@QzrU%oZ_!`IlfMqb>V`agf{ zJ$GrSA3p;Ntc5hm9vCMg;cy)qCt3)qY5^Vz#{!Tt@C()8W3ihVa+-DZtET|v2Ay6k zvu+iz!_mAW_FnL*ceTSZogD;Huo^6MU|}T|>WYi1i?z{J?Ae54QBesAQBlVd&YnGX z?5vL6I-C6Fz7wZ$h)E1S5rL<%;{V4OM|MUYiGrw!+bLRp{{6U*fRQ@51ZLng2LIq5 z(Y;rAN4^Cd!}`|Roo$*+ThFWodI95rkGIC%MG4Hlp_JmcqsmwW1F0{ z4Gk=rLrmZns@VlEt$CXzKzbHua3C9i(w)qJvl7NoVGHMxEDOgbFv8$L2$d~o#H=`R zU+PgEM)c8r`;LMw=J0q89={rM6MoknW1~!`^(jYtGN08xyJz=7R@2th+*Ygmw(E_n zCqI+0-t{6@!FsWssM|7XbS0fdodq2d_E}Dz3G*p}vw_(UQy1BLF~#)s=-Dz!Sy@R1 z7(f-Bod+6w**NfyW>ksXO7YI@y*ZtQEZF_gFk?IY00bI13^o`?Zh@Z`h>o#hqWE<* zR)AvrfN}7uONGJvBo42|83WO~-+}jZvih>JijrcD4UZxt+4{e(HMZ(&YpQE%HEdMEF%R3HJ(du~=50&VB(|~Q z+2C%0nx-$E;a5BqSbPDSU*JgJSpe?rt`6v%?t{fL7(zbQ3$@WAlVWmyN2Y^NNz#$6G+j4{5Bwe_}h&9 zpF{z*C}0m#LL9#ksn#L&T%>*r4LgDEt4H@;K=*xy0$CKup}-X=Fdqe;M1ceaMWLY2 zkVcC%laS^qq%B6lD-b6}TrA>p5Z8>j=MncC(kYQH80i)u-A1IdB3&=ieU0=wq~D12 zg(&1c6k(D2XDh*@Za8I5=!-9HE2e;kbrMk9;R$RE*2f<`IPsCqPd2^#$; z8uK`MfI?%nXzT$rE*gywL*qY16K0_a4m9BvG~sVF@i=;LGJ0?&dhj%Q(1j)ip-Cn* zS%fC*(BvL8WhI*WJqis#VdIe@4;flexDN_njKZ&>X*1EZ5;W~Hnr=fgXf(r!W>%qD zlhCYqG^+{C4n(t`M-Q>+;a2qURWxS`n)3~sn}_BhG_MoQ??wx%(ZaoG(FL^lJG5j0 zT5=RE8A6XNMJxT$$||(-U9>6?tumw4zGyXzR?E<81zLR-tr>yVSkRiQC~_})d?i|Y zKU#Yft$hlueG@%#KU!x%>o=nf*U-i(XyYqr(;Bo{hc>@~wlHW*4~mLFQHxR3<0vW* zMeRXR-=HWL+A2a@m1yfe6g?3|Z$dH4P|OD?<_?P8hGM@!agQRS7#WLEd=84gjuM8W z1S>KPN2Y5iF#si|qQsZcwvlLC3`z<{N#{`VHkAA>O0lDqkC9n`%oC6~8ksYZxf+?f zk@W{r6QEN9;L>h)LfL>ind3f?eoy~r;xP>S+5|Q8QD^i&5CR< zBD)INCnNg{DD7F4o{BQ^P{uBlDMgtDD2ql}>rmDOl)VMzY(+V{QO*}AcL~ZpjB@`* zdEcV^DJcIcDhNRZ6Hvj|sL+ZEuc0C_Dw>0ea#7J~R2+zkO{ioJDzTxGQ>f%^RPqxl zO+=+HqcRIBbD*-9QTZrTUWUpqqKb!5#ZI(CjdnbOcI-ww{y>$BQPpTvbs9M`P_+tG zA3-&fQSAy;w;0vcqPm|^{Y+F}f$A@y1`0KdK@BTWqYO1(N6n*9YbDw_1?~I1N@Q;*JGMNiK{Pd|sAsYB<4=-hU6-hwVXiY|PDF6N_)XV9}N z(X&6I=Q;GkM)cx!^zun`c_zC22YO{Cx*|qb;P)zeH3wZyLf2-Y*QTS_$DubSqBn}r z8*idFr=sh_(Di6^Lyc~1LH)PTJ4NVS33@jdy?X(@cNo2&iQfMReb9tH9FIP{jXt`8 zK5jrC-$tK2hd#T7zL<%=Jcz#RLpSr#R~Gd3TJ-gC^v!+fn|Sn11^V_F`feopt`>ba zfNoWx?=PVrQqhld(U0fRPm|EkLFnfy^vgHs*G}|X9r}F~`a_BScn9774!I7Z!AA7A zgM!U;pKmC^QcCa{C0tJl2Pm4R=tfE`r^Kfy@f(!Hmy)cae8VY5Mlo3w^E}1ANJ;IK zY!jteO!Qqz=rD>clIx^Faf-%Tp$5~X>Z(k`L28I<-VD%ePIeU$DM zO8+|*l0yyGQNy#T;rpo(8fwHUYQ(G5{ky4=J=CaTYSa~Kw1FCZo*MlLHAYB{p{X$v zYRp1v%s12n-%w+hQDd)D<6fY~OR4cG)c7uH{MXckG-^UA6`DeYzDI=}r3_liFqJYa zp$uCnLn383M}>z{(^gQ^FH_SA6|s?;VWnoOsF|CoSs~P{<a!)?cDFh^YL~2Vq6$M|q?W49nOhpG!(NR>)Nh;Px#nw=<`>EK= zRO}B_oQ*POQSnQt`0G@{L@MDpWg1DDUZ)a!sBJT;Bm#Q>9TjehQh#erRBkc@5njNLFaTY1X50h_=>xPSd)%aXP|WYUMm66yU!rr9D+YfJR> z-Lvb-J$i@u!13#skLtd^gw_3cjYi)6pM(7Ea>5+bxL`78A_sooLlC-=<7ke84Isci z-5V@gq`t7i8L#8xj`1ssH<)|OT^V}#6iq4`a>62~i5v6;PWvJ9F#w;aiMqOa4jh1C z(kWO5fdemC4wMX0^NYTs;;J3R;E58aC^p{`AFa8w5&Lli>%}lyk;r`%D)JBqcEUnc z2HnC8G9fNLn}Hocc{jMg(1KL}yNuh*9PZ;IW0l;1Q`~LqN!yzN+ebdIH6+A(B9SbA z_q&Jw&{o68jemUi{?&K&SdS&JY8K-AvCrPFo;}^Yk|C#f@R%?>f(Vwb(-F-Gq8Uzt zhD)}t9Y1NIwu-Kz7mok-%vwDO`jcqj@3v&h+iQNtv}OUsLCTmDWl>h}a*wOG^V6XD zy*B-wep~_ggPm0|5)7({N{ydjc5^`1RI<6LR6ihe{|rIa4v6E)@n(33L7DnsQmd^_ z=dS7}X|9c;-No5^>{=7!dYlxBN?Y5?+q4H-d!NJ$8GsKKZilUm8}10V3~zMH$;N(H z1i6eax@NqJA9V%bN8JIg87oA1`z!yy^xCrzdL@6agIyaz0)y{U`*GEDrE2NT4SP?K!byyG18PVGtn1-0Sj>BOsX#W@p4oZ{LRPSbgZ(ca zu!r*i_COc`9{oQ(!Rq}f=1%0jr|~F0#tYr9hS0?Sy#voj{x7V&yDeC_m%_4OS`K1U zF}Oty!L_VT9SO$4Uo%4^henZe`25!l35J&G9KJ*DK-@AI&*k>+ZSL&UV}Khl4VXlo zoy~jqYC!MQf&lqIr=SA^@V0y1ox`5vF4%v^Am{i4pZj+VPXjc;aQ`!urw3^N@7VXo z<;Bm)fliQdo{LlEhLF-Tp6DcfH+zNO>=ApjSojSex*OK9Net+92nj+Q{qSta#nF2N z`EF0VD62mA^yBtK3?cu;)en!{g9X`k0_*U)=o+I+^=yOT3Xo+xc><5tJ$7bBVf31< zkG0NtFPdd;N_xSl{q`Jw8RQQ zp@N(Wea@<~rKKyAi<0xrxkUF@U_%N2U?S0y(c5hL^3saZVhv>0G?eO&Z#lN*=*FCs z{FI_3veFWmyQ3frQd6vANJ!bWLx-28HYc`i+m#fQxG6p=akHenbO$_JQd3f2s(b3u zw^m%*D1mrpg;VQ<;8UX>5C7{x?!kgXMM3+?a#40oM}DUkTOnNB+EJ(Pc%|XB#w&-K z5A8hA4*SFiY!v_GQLM#d4)^LCJTD9_WsSP{rxVU5Ug$W`da&g%Ua>#0qqeoPo#*jr zP!XOO##UYz@W*wK?t#ZIAWUCwj5Vs1SVzABijJjoKWp{oHvEZeFt_fz2JRyb<{?_Qe#g1rG z&`_-Vhy23I^p^afSLfE3HB~fK1v#slY8&eZmbl&t99ZIhM^xU>SlQ&+H*TtKs;h5! z^_@U@J8;Wi5V`w;8_v1HXgTn{9h?i5>$EqD0#_B(?O;I$?f4`|ZWDVP1DhVMupiX- zb9gN1$9^1X*1CKSfTYRpYhCv*dm5Z~kBy1*dAFnghwE->m@)p@X?33pF4oju^u0H1Q8 zJ+r|(I>)%x?^W?GYEZuAS7SZmS{^# zc9fOs$qjNtR94Cd5J$lVP$anxFMS(Fig&g)wbtv&@2+kG)15vDWOu&+7{nC1pd+o?RhoWXq@mU6I{st&}ET0kEAkgV6@A`Ui< zl7EH0h0*%vosQiFEri25z(H{>XsD{z z!WuGyJoW)ur*(_Sc~V8NL0{?M)AQPLVHbBJ-QMhMtJm*3)q0}$qy$g+4o7^87inPt z{|%wv>-m|N07Gr&x*=qI_ZY+Tt4aXc|Mm#TrxXrnJU^K*JM|g9eD6m!q`K#T_QT!) zSOYUR)Gvm8p8o&WC3M3g0$d3kNkP;ftVE;$)(1{CFwkvSQiyT?c-S;af_-OPMYiBA z@G5YHqY7fnNpFEm3Cp49V00i}BDZ;O%t^a0n8+cAGzmE3ck#)dy{Dhiz#Nus;iAZF zkg_S-WOIF+MgJOja*F4m3YePs*fJ8J-=1&Iv*k!K^9r(UnxSlQDA(Ft+t8wW2kY?6 z8{pcRZ$jSIaxGBU|Ai}9q(9K!({@}V2mR@N17Lrc2*m4w*#&!<0iD`4$?cDSaX$fv zKl#NyiBMg`Pd%XP+JIMV6A|jb&oeNqO`6NO`d9Hg0!iZW)7Q?9(l2fmWxiT;?F|in z0Y3+^^h@Klhs9OQVKHWZ{uomS^mxUQt_z}5KX?6! zDUJM2!C{ycUkDNuERMpgf^@~4T%b#*1h)g@Y!*^;1t7)!c|3=T>6 z!{I6ZOP3o$tlk( zk=XKbbIh7h&dDd>=rG?AbckQ!ZLb3aK?!XC={?iS%fP|^R#eK*TwoE^_%((eR0;VD ztmiz{JI*^wwMz+ZyiyDveUlpCAj#0B8s;qwsfbfO1VRE?HLwiyJi{;E)Q}nlxz!1MzQs_$-D-rb$PCq2M%_0Zv~ zhj755?_d4?&|x@kUA=Xc|99x>_qU*WRax-&rK`hSNe)+{%cMz9ccg3Gi4ONRccP}d z%dtm$wOU=y6c#xO?M$oF(W1Ro%(XN-nzeXJG1uzE`6mBSLV2kM4b>mJg;8RcD{xNpl zv-*Lkp)H~wTN}ThmAB1q*TG9~6Pb=aX?sq4^hjGzuijPQD#UYOqZ*tr-~!GQsk!hO ztX>iZ&!}^|(%bCL>MTb_Sthx3#}b%OxHUaqduI|Ixv2H!41LL-YG+fcq}AC`yHh(b zKx5^TNAZK_^myN(uI*gex$Vb-`mE92o3ukUbar-mMYg`WmMD*v5H5N}P>$V}QIWYL zt2w(eyKHUj1lzXUjI^Rsds$Aiy)wOglWA(|=Ax|3yz)#*d3JMJd1m1gi8E5x=cJ}* zSJ)~GocUEbRkn(Z%8WdtBdTMI=*LvmOh&bD{D> zZaQ&(22iIzc!XQF)dYO1cSl9@? zJ8TOqi%1wA4T-^?)e%sw8!|J3#f5^w$bsANb%OUBg?qUq_r6|$>_D)C@a@7tq$^Af zR9y#-((BgQ&o9)vo%F)lk3VA7uLEZa?rdQAgxhpRm%z|VIX%$wTW$z);S0y}ulM7G z&s~pVmd{yI9v?^?G^&-UZu#4fd^`8@gY8_0`&ztNNO@ zu7)-UnD}O3iMHBV?R09o9J{M_>((@pF}3e&PW+17pL|*8T3adVh=FNdOwh!yElq`F z-}@}09owt6Z`ag;0lBXQew0|5gOyrmH6(TH-T{YhQ|F|HZBOR4puPuK_ zl*b>&3l`zUb07~m+GP)fghV(bYw0;OIWlA-MQ(RA>|k|GGzV4A5`pp}f?ETIpIqmE z55PA3mMa#&N1E{0N|)=ocD3zgCth{^cJ-fsYMS?-aU9e_a-^n&jQdW1WNp*Z6&m<# zH4+g*IzY_XU;U7)#90W?h;r^=8!Ru zl9+_}>V^cp`@|iYx)CqJk96S0H*c2R)Z%CG>#)Q7BaSDt0UvA5z|!d&4t@hK*5I9_ z1|yQLQ{LXPxq6G16p`ZW3R0}En=Vqij#S_=rR`=(@21K-tJ5?~>hCwL)~(pSv}##S z<-|aUBo6;<7wEY`r*bO^5Z2%Pvi&Qqvir^JRaMvZRWDu6d}&X2?H+B@k%l8RM^-ei zXk6J=)frgv)CIh;`TQl^d=0mr$F0pT)nDH8{G0pwTdwyu9cVmQcTiF`e0b4tEx1wl zH8&8oK6B(NMQ=2{kP@WaY8BVcB<4Gb`HM?Uh4FUts^mo_%Q7U&?(A?8ER+?v4$Na6 znTS=y5Bmo=FzX7$Ed#AsrR)o)uY-!8Iq3X|KHIjxFIBI6g9PC4)V?T3DgU8Hh7>YSok+S#YvRAU#WB8 zP3MnDx)1!d>$r9ozOOd7P2ZYVF+WQ~e8pr-1Me+qme-Qrv<(14mm9%{QeZ@E0Lp}A|yY)4dy?8BmvJay;j|PA0ORR=a z1ncU=4T6t@MFlX0SL&QSqrjehOo|je~yNqTEF6@Wc?b4Zyb+F`UaOgwKNRb?2?!>+bHof4YPE z0{(%!KXU$~4?gAt@fK`XV+Ht!Lho-UKPUJ)Ox?*q+ppdq`8M$A2JPx67*Ed5X>yv+ z*(om3l++eClnQjC+hIAL6?&a-ioS6*3ayMJhfdx|d&645$VpQ(^J%R;k@#uxsFSJHa%B zdD4$aWCA1p0h}FArWQow#o&q603%$&KSOd^609j4!SLB!3}AcCy+|pZ#R>4=!$QDU z`iuVN8(csNM6Lw`AE?VJ%gW1j?vw75qVjU6X!DDmI~!^m>g)BcldhAZ`g*8ncRGvn z^^e1sJVX6M{UUx!;(`8wei81%{qQXXM+$JhsMofwEm51eEzf4xlNls}-|fIN-~i8I zr~o1=G7jJ5;Cqol2!Qb}Ya;UUt*iy!QMv`_6XjU1*?P^yCYT zSFdPb@ea@Ypk4&Vs~^Ju;Hrl({Jx2k6o9^iui!xCtyb3a+Y{=gj856Tx2d*2ew=5k21>|Szd@y-lMYetjJs!^`yz0F@!Zms)Bx9%gd4foE#J(4p8 zG2Kbpq}cSW`H+*_1A8pJ>t;%nTi4G_o;VtwA&@mmAZrrOT!Rif^kQ`(gZxG#Ex$O_B*B{J!f~wX?V?x44-6PJRz8F3zngb{0FU+nrAQJN`Y; z>1?ld7E3;If1}=6(o#^bE2z(}EGk;IED%_?q(lSCaRDS1)9vk*744uHT5Fxo3l{<* zRMA}7QrTSUEUuI6ijQrIg_yuHX8d57dMIotOhkZf#RFjjVIn*kPgWm4?szr+IPZf5 z#vfndh>xE%DUcV3Z@(4sL0HI!g2efRf#=~RAoz7wy|dUmmAs1L;+)*9{ET8rVOeQm zfdh&jjp6e5X>ruY4Nb z=l8p)t*NM}uHfS}rKS31%Xr#NSO)qJkyqz(x&s2 zwn^F~ZJMO%JWrI;maz)RR3=cn6_1KTJ&u*N)0N`)th8{v_n!Ove@2>QXYaLF zR`y=&9iHcT#k2d9k=<4B3iAAYK44chaPlwvM#*{-dJ=p;leyVbUF0EaT^*bHe6fS4 zL1^$5@JDpNg>TS6_qXn+*x@}1?gSi;`SN8PE;M)=d_DMs0Vdd#hX&mVuwoUY1J-&6 z76|V%&fi8tKtZ7{@g_zDmXLjHiFS!svFk;0A2Hj}j=6Ff0x<00zJq#PAcgGSi;N_x zWq5t!-Dw3@vSi@}Wr86gHI*AZ8ic?%WPaqn@n%dv3z}4;V(*nb59Vi^& zKhmM=q@;hYhW3}xp>KiQC|*Z~Vhf0Uw7>W*B)GAO41G&V`zOmte+e17j?pIHqC>Ie zB@O8>Cf}07AZdzMkWhFk6KLphDH(zWhe&AX3WN?Pte~M%It2R;5g(_a*kb|-U4boV zZ-|719w#{JI0?m3t2Onq?$3nPjFX3GF<5x`gV%m^7#RkBo*xDW4{T$vhhZxydc?a8 zTiI*2jbl6DflYXcBSj>X1R>ACg57!Ut?YJs@>g~_+;N8o#B)?lUza6hJ`XW;3X!BXx2Wb@gvoZI9!iq4E{8b{7MF>$Z4?2%%qJB_$_3?mz=Q8vr;Kc0N?drjQI)%?7ut{JQKly{TE}v{!5t1 zLDnEBwtqVUuD~`RL~wP@g{fQ*qPIuMQBiGeadV3b!276LZt{n)pF;cWrzpOM@8Lu` zvQ86HqvPCsPXO7k`RInIw&wm3H5@%k-WDN&^1+b{SNY!aVD4?hH)=yxp(Uj`s)p;~ z-TZyKEHpVPil01L6r}^PAf#5ufyVi^2z{Bl1}I!i1T&7z`+((Z=uvu96vfV68^wJz z8JO)RGDd?iklWi@Z4o-n!k?34`?vXv2V-pr65eH2;Qg}|F)J_yRv^9w?`?n%7uH;bc!Bupg(Dvzd?CT_gfn}0s^vfWNK{i>+{Df`*@>Y!Du7w20F3}t zfC)AP3^7a!pv<}i7bs#bWU%Qi&xi%!4)FZ?$Mp!!`hdg#J`FlY6lT@cWkWErpz5Z{GHBtD}$05y-l;G7eNGbtDV4tn{5zR#8%Sm4(>J)4Yu2t@u~wRzl5B`qlQvDcv$(K`CwU~1#F3}TUD%TvUT~2W z%G+CTV~EB_tXih!kQ4Fs%)Ck0&ydpn&rt`BrPo#4Y}*{cTyAXrlJo_1#mhrfF;1f^ zfm^++V*90kULfmEs1J3{PCUkMzw=XKr<#l)!w+30Y97IK4t(1+?WA2=)b708&LZn2 zNYci5*)TLvIfY?c`ZPaqdxe6h)!n5ecc>n0>)k}oWm~ecMSJG%9XXxmd9=YExr*K) zdODTtrgF}boof+=UflNG`y@}$wg_?ntMDs!`;eji1uYqh3=HN4WKAZ~-E=nnP)$EX zqq7M%@IR2J$Y8`&Mtv&XI3s4lt4ub4SYJ>2M2mL^wlJ;zZi?uU4dM6b> z_Z-#~h?aZ}7qu<}X-1BmL95@8^^~Y7q2JK;m{e!;sWBNku+Z{ARpaOxoDLrlq9%lV zL)MYAWHw(|l~)543;W>=_q!^bBCC~j+D%O2>LFz8|LPtcat(Pu>3EK`3-|8#Xe5=O zN90ekNLgUaPjhgEG0&ZkSEr^K(~SJ$XGI0`=Q`%G1mL@LEj>q9@F}r|$S75$GpZ<- z1IcP88Bd=jOU6jk5`q^es!|W2m8Ah0^}9sKdH$yVVXWV7&J?AZ@lMthEG zzh{xMA*;dEz|m%pMMS1t0b&1TGFK&NsX|$As7k5kSfKAw@+f`e^V!tLmxw0(FziFj zBBQ7YN($5I;m9e}*B6UR4VJfPvW!1?GgGR&q`*qNCymfhzpSsI_* zcbgZNfbEZ4oGz4@1(`C%l9bkWm**Gp3BqcT!RqJ+ch~|4-uymt0Wv{H+l*)s8wH){{p@HGdsk3}Dp;*w=nvnT<} z%sTw93~Hx=LBogBKpN=V^BftIW=qY?F!-@-jlqzm&rbIP4JzGb6700emloo&q)n7< z&a!5y5uD+NKZ{&>I`+y2P9@I-3vGcfQet*TMqXyV#V^|m9zDV@d}k*(PM|sZEg?%t zAs$U0J3GK-_OsZSu7cB})52LG6A618}Rgw!_#( zB*&|((bV1q`zsJ116$;MjlAi5$Uo(2+6NP-tOt83G3~VixrhxN3>*Lu3GM*wA!vJa zO16{M?S1ZjpQpKhQ18C(uDzNdGtPTW){dkv*j;X2&x1yL+j7d#cpjD+LH9p*78LCt z!BpuK@6-exK|HM!ibQyUrFtpiR+r%K!0cnDpIze~*?mY!o)|_S`<&&>b%C%j#bkIp z%U_=74}IVI-Ptdt-Q7Khl!Z8zgboivr12jM_>IqP7^xjArA1^83EE3es4Fd_fU;sa1SV*wRGXeqs!6CV-|OGS`$k4uH`GPKF?*@c$760Cd^=A=o(%W=ONe@h;#l|gzGLAV zzJz0$LkF);Xn;M+0%N_+_`z3<_d0m-@cW-3=U8sdH6Tsaq;zKGWjZ(-2uKKM;s9`Y zIuH%e!bdJKm82B_PAMov#i{Xmaq77EjO0{o@F+xSdQ(yoBwC2p6DWqi5NX=9pX&y3 z+pQ1+*8n{r1d8E2)Y%Vi;ecM8p)uGp;IFViiUr!(Kya5wxD|u%1Ll|z5x{cY|9uN5-wkvwgFQf+fX)*i zOEZ6p72PGy(-2Uzr}wmr61T6Jyd7Tw5$X>$_eO~GD~o|ksm-V{)o|Ur$v}~OTT^ab zLle%AE2^F0Vgt!G+;#PuK0+XKjDN+V%4R9a(gFA<+)^G{R`%}M<}rjPR#k)6JJo+n=m0ix3KlG<7o?L>}d8xnN&nv873j_nTe4Lk z!T$0+-0v{jo_~={O_yetSjtLOMEd>rM0(*&G1rmu*4o4sA?w%fe9LjD;6Rxa z3*3?bje8y`B4H${zrW~FlF=y>b|2M{`DCQ5YOm~F;jQn9;tDw_YiD6{#9HywGkX+w z{!IBZ;BNjp)9 z+yEzuDWWI};!;A}4Z|p21@$6GHxy%X5i^i#6}ts7+iG!o@ACk62Y!S)P52IH;ZCk_ zr*lWR3UXv)zpR$+ZZM?QbE)-)hTST15@Ez|d$h{kw272LzOGl>O!xfrx}D#@TouD( z^@KSj`lPE3r}tHna5|hkOT*}`zDF3|4JY9QK!~&5i)G=fBQ zc8X%EZar78uKD)c8XnWhdRb=7(HLeoAj-|21|bmYl27c$MYIF{gvX_vzHq^`=?l(X zhg3_q%jdzne`@5;_s=hw4!sP|OUmN3qGVuHN7SS@r0z=D<=1eqao_HPQiw1(oT>&Y zBmH*Pa&{x85`;g@Ccsl=FGLka7VOOP(}6KjY)0}{P3MY}Q<=&|$_kU#v^*j`GA%NN zO1|;U^&S`w?Cn1yVtM2r;CevyCfCR{ZEoDsurVc4ADOX}J|E?aV0coBiq4TF=cg2# zIWi*3wWBbiIKnS{Q`na9&C*OG(08hEA`7UG;((<@a>tpMgDeJ-eO;Scr?1cOs{sKd zIj2}(tR{2C#fACBh%FztpRu3Zl~aRtk~C=+Ysh(xd}8_fpVKQjvK#S;Y#(fvzqVK- zPsc~SAIRt8BZegh_Z^qnJ_;=$j~~&?xK{Wc3cz5ZG-TZOzauy^UWEjs6@UYFsVfM6 zy9;odHsRNNgD6H4#TW#&m)hk^tH{?fM&_3nw!x{1(eQE1$ltPK^ePKi6;-?{R3+bG zC!1up_?);n;E7&cLq#0@2d;H0-g|&P#8)hSe%~T>s9Vt_MuRuW!(`I=BYfSS+C2@s zfBZFsJlB3%N;EZ-p=(8D!^hFTseoquMZ;R<@azALavYr|ZhW`=!uzWCGS6?n$o;tD zsr^IL!J)};x}SQciM}u|X!C|`>w?!x(aEq)Ge&RPDW$vE?bV~e-393fe2s=%VQIVh z)wsre*OMpI=*oBEePZ&OtnP5pi4&@ttXg9=*L1Ax+)o?+Vo5^#}{<>p# z)Sk#a((`L5#^F_Us8~L)4MQV2`|ZAp)BFJ_eu?)I8DNe0po$Fma5;uWKF=O!2112< zQ&+QawF)PWGDfAwa4n$~8&|19lUKz=aoFc=OT*|bfLL0TIP`qNxzJ;rquN$mqrxdp zq@0L6%;gkkmlUhoW7;>J;Or9l;Wjca8^nr!be5X>i0MfB=;q~gD4!Poa@YoZ`_KD-JkIaAkbB{Z>izf&VefKe znwX6bNALp@jvv_bCsUvRHVzD=4u8>YrB$*`CbCKfR{4wic_}pAla;Wo=Fo{*S)Au% z&sonW!a0#Sht44rNsx-PkcIESj(&!`O2^JQ#npzNu-5LDzI%$i3LE?x_||0MeAoQcp5{H?^#~ROE zBabi#U;H!;<~>hHNLqIS0{(xpsg}Wn0tW~>M3b>Fae}r;hP4UERd*omQUZ?m2pL6v zIl(1y%9!1RyFu&~&w}m5dtjpb(nsJSzBmR`!_(p$o_JBBtw>+0#(HZlEh;L_;Z6#% zB4J7|CKYEq1D`}pM;pWv!^h^-L`$3fk#vw#p z1K_Im3QPzc43$q5iWh}7?#GpMc`JYg{{K>S5`4AMO?2R!&vV_ENQ3ejpcVY-@(tXZ z-!=ixI2vF^2tq0F7!8Ms`97Ww_&lwBJUWGhE+h$b3%Q)c9a^?OtUOuTwz7D6kSZt? zZs_o!;T)u}+#RpT+9jRC+lLPiZEtTcKGAlJD=*&Pc<7{*TrMFAWD8@rk?Kp|mAY55 zwDj}!2u9>#qIC@rO3ByCtSn=;DK|6M;>fYtYz~V(GdDBaXwH&aB|BP`Hj~wuWyb3) zvneOjo|S8L*m81n>}Ff0bi*N~B`ed41Y?fbmSfAdrAN|cJVk zw)jQnBfL26^oJ3=XVSm%|ErYwHKvBRawhHRTa=pMNJK)&3%<~Lw7{8zouMU&d1-OQ z)z_5P=JRZJU@}Y`?N1)__t_6`pKzn0IfdYi;&FsgeU1_ZV5M?rfcymnxKrILl!%qB zK(MHEBp3c7^)bAF%*ud0RJ?pu^a{0nK|okyO#^?p`pu&%xxMOEz2B+jrU0z1qLt*~g9lv))wy=7C6|{wC%Y1}W8>DOty!&FTo6&Q zk}KWlqW`rD>qL&ST~GXU=Q;EywJE)L-;w;IM^wLWxJAX>rp;-aAzURoMjuwoEtBbh zp<6aQiPi#M-9B#1jHOblr!xZSdvw1Fr+umJ)t6UCuV1A?cSn5m!cW|ZW4n(LXc&eQ zvHExNU#`7BfmI5VCz1S4zQk?uBkU7$T_hgf%7Bb0KH9pAS8kRvCRf25N=| zgVmtkIz2HdgkKR8x+rpuG<1I4yqT(z2gdIi$5qeWHNQpMMJFPBxSmXW;!N;65f`JS z+i!od`8)M{7b=?G;g8gvZK^shEom-&e;`uT^jF9ZsqWo~i|?tf9V3ITG;;a1 zCkyM3i!H_crK4xg9d4HbUEqG094B9r-TeV*d1pZPB7aerGB;vm z9_^>b6!bhu6b_z-L!ep6B~Sg-9?QM?_|6F#vC`v<8)uAHfj}~I7M&EwHAK~}o;uX> zVx%gzIO?F2BjOIA-uns@I-8h{wk$hV2ph;fW=EFIWX_cC3C6?? za*y5QusCyVxw%fW-DEdr8#1$`jcb&dSs6By)8w?~*=_dRysTV<-C)fyWlG;%k7Xb| z+u$@f%r1LwuH9w9OJh!YW~TI9q|$6m$C2qdMrRIyTP|Ck*_Gumn2pj)CZ*9}O6Srn z2D?**<-^4RXlpX4&gUz$jYea-Io+Ir1<&GiI9xgS2n(L{-&_t1zZRhi#^dPLD#;@< z9Sd^j`#O}puN zX^3rCWV4#6#pPvA#JCEJ9A%brso*jzJWs6GQGH=AaY9Qqk~ivCtEwOFhc)@o`h zp8`>2v^qo*Qop0c%n6?a3mZKfn?0XMgL4{owy2RAFE4chl~lx9Et9gW8YbF6{9|r8 zi(|MAB(Sr0%Yg1WhNc6_8Q3`d^`U`mf&y`!Fy0Wx4CB-x@ux2cIwct`#E8o56-DK0 zca6BbA|(N??r2Yp2pZ9W%3T>X8Fd_8F8n5XUpMpk6m?IHc*@Kb(~&4$?)goW5t*Tj zP|*&c1JUYZvZ`)1`A2^;SB4)KqOuB>Mh%3?&_Q(`h1#Rr0$>E9TLZ<@Y4n%$_4D-g zZ^w~>oOj8<$3Gu^>wO}b@M$Y(^A8^)KZlb;kV1Z)J}pJ84=wGHG2w2c@jSmMX)#$v z9YjQ(4N_7gAq{2VxE;56z;mEAPP%U z2tuLGUB)^;LtSiTq=U{s=G#W*I_nI(;>!KvD)oH?@Q;lMLHv}i(g#40f)EIxxRG%O16U`($9#`D&k?V06>O6 zY!^qQpEI&Dw$4cAuk>9)=Ni1b_?5@)GSoTA+&151biO09BDUV(S7+SiEU!Sajq^oL zjuRypRb*7C9nS1*2Vdu`taQ{JBlCU9+$HEfcJyOk%}}?5%=IPnkJULUE1h+I4)0f! z4kUi~ad5c?5(Ux@BjHw^z>lLxgbKr4O92A7qc*zqF1)XEuOHiz?DTZ3D}-j;s1U>%u6Rcgi% z38WL&I@gtK;4wtFWMnWCIk5DklzlUNOWXRQja6Hu=&l)nfMiurRnVd3fWI%Zm_&4u zg{X!wM&CnSP5XbvcY3k<;!pc8sp0am2q-dW|MLlai`%Z0e>)#Pt^x_> zsjAQ(giZb!ef_m|4qxTKlIEDA=)&kisjh%ZPd2D-H+|H}$?x1Iip#? zu2s_sfvorkRgp>SzFWY*9fo1uDn)0S!@r!dQU%|W^%T+tZUq|$AZjn||Ec;Sci{Iu ze-IxP8<+oZxnO8=dv6IkV8v^c#prg&#bw*#`SrSmy4C8aC`Vxo9~`G)jHJmEc!$Uv1y^DxW)D-eHg*AoM#cj>FUs|Od?cZGgL)9da zU)}FkAXb$d0Vse1*CqO_K!ouV*&!KD%8(7{3UT#doE{48+VU$GeR0cAmsG4A04}J) z-MGSVm*9J@96KWe*ffyzA6aazzgw1F-9m=pXE;WtH{bj$ zz54Bjde^bayi+liMCy`%_Ed}hznRh19G{RQ&9g)%WvkLnsa8XJhQ1&!Dc6{ybEYL1q(&#`OVTp!`ZQy% zF&jvLob19hn?(xyIMbxIr|6T@p~kJt$TG(#q((Lwq}kRGOE#aAYTp)9lx8L-Aiq@OCG;>^4Zh<8; zD=W*KR+!*OFEraCS{*sb#vS=7&X|I%-8(bmvrLAVJZZ8$H9y&z=-S~jRvJrlD$+}& z`NsIl6m_Al(U!&Qi#G1ftIV-Q!#>YV%hub|?Z8(!(hA~BqRr7MnYk62d4{4mtEpI; z12qZ!D~l}7Ele)3R;3lE7bQ7TTqfJrqeZq@Q`+0MLaEhk%~s_W8s06<)?2c6+2E#> zBxReC-pMl~iK2&Zk(INt-eSphTAW6^G%hKBcbX01EyS(Pe|ziW&NgYbBhQ+rE;r{V z6{Y9cGxM_Sw!Fd|Cwz#aoV-k<%aCWtv!E7^#jJP5q^4y`GcpaPj4TsCAeq_hH~UQA zSh}aUxd3?6e^1S@Kf(o0x zSejQ8npLLCFS1z*x%{NcLMNB+IF{xzx{M7OIqAJli}wc0GdPoyGhI3LY4JvU7qcVR z2`|xQ%CQtwJ1qEKDY?en^n$G1bg45TE3wAtG*=W@lBBtCG_zIN$&SRb9F!l4GiPze z^rW10Q*5@Suk)doVXAtN&bUoR`u6mPQR=hzGKSch>F)A9HED=l_QezwX| zT2^2w!Oc{VQoRMzjb%AN5#YzRJCPKG(`nClRMiwF=ch)d z6zOyGG7IzaO3MpkOHE}ahp|YXnOo`1$(B~+=IM*liqonM=Gc6=#CbqG6y!LJ&p%5C z&Y+qoc%C%XUmV)M%3mA|jfM7&8n>_TqLMy#>WQwUKE^Q`u&mLZPM!KuAcs`ZGG@p)s#dRFn^&@qw?*efN2^AKk6t>N`#tOXHSfJ5#hHKp{utm- zR3ZGa9C<8gQ7xv6{l)9<1>(in-nhx2Qh1}<-i?ds3uKY}wSIEQ_=@&3pZ{B#C?P&F zJyH!GN;$B68^}gz?x#WBtFf@As*($7ZrF5E9i)*z+VAA1hLC2is~o}JU%~ar>bX>d$BSsRTmS>HHYjtxJ=Dl-em`OG>7mpvAVSIzV>l$x(V6jB{C$w z@3*pnZe*>XW}MVbj?& z{8wW{i?pGWUscJg`%T*Y+Udm{YA0z>ExLsv3$@W}Ra?a6Jx(Jj^>#EYW2o17Gu%XY`{3UrRR{490Z7%C*Z17O9_mI&ASc zp7x*q`qSx88Yb+XbZ&`s+1VQr->BvD`hEYe#?!ZX^3eO&{^k13)|}a#z6Zrp5X~eH zUGa6JVVzTA>k?DjJ$~+@5H9@(MMewi;z;?!*Pgr^tzvoZ;{l!&4S$P7*o0cc&Hu2;Z z9N76<88$4LvVF@I-ZKIXY}vAX$`VzNS0Mt&2(7dgat{c>A%yB_rNK)1PuEaE>y(6k z@1CUez7jG3FzG#xA-@=s53->`AgF(V613q~-0M;@@d;r2fE`iJaSv+87YhuC6%UCRjUr}Za7d~ot{*Rc&FzRXj#-P)vCtLo;_~ylDY$% zxt=n2xoG9F9ha}F$m0M^NXQdcFNdu<#tFZ9e)qQOQdgZl+uQ1|2vC0T+B2F!`^)6`c&Rs-cu%;^X~1<&`W?;KOUpJ**iAo-tiYulLg^uNWduu3-EOzCl3#Yl)k_0iHQZGftV3p&-{xh ze%ei36?m)oX;9N26`^naS5{i^6Qf-$|_3=Fj=IEU$(sbvMN9< zS4@7Id?f*xvGqqR$on+d9YJtXf?rAEmFr?7Czt9cc*Pk15cc50hFq&1T+Z8=RQ=tP z$Kz!i;1B+EK)ceND2^x(E!$c)qj6#N%3}IN>&Um(9+9p+5`FZz>U{O_BL}&IM=n<0 zP=9(oZ0Qc_3c0{@UE6Uqsya@3dd04#i&U!<*KOa( zg>BprzAQl+zkF5tdiAO`&XSG%hT?4%;kDtl5qqKz>dO;OZn^!W*>|lZHgj9faxQnc zd1;0!MWW9&HOrwKT^h?Q5`>O?7uH==5S%;P%T7F@}&F#|dH-AVX52=5=T~OV@cT`_!JihvHG&%IiyLOpyso z_z=USSo$$86Vaj|xfLrkBRe4@#e*UNFC;X&%3!I&_cj;P%sr?`7Uf zCe6MU5-%#TRMe_I$vy1K=gNxe^A4%sYPC5I@h*wEJ-b+BNeZ{DSFf|IFfTSs<@sjq zBFjQ`;-Vb;bG&WS=Im|izRJHX;7hW)1PtE0=RD|rjiN?3iz zd>Pv{pB*)d1zvl_;@XlJYno}_4)Ygp?!OCvfYsU6Jx>{MmyrtZ28hVW!KnY0TFB8A zWCcP^i4InPhUKgLySwo};#5Y&vH+MUOy$T5x`KHCMlf|9g@wGo2)C>l++7E#y#C!s z$wKm|473biQHFSD1jN&arj*D17##gY&?^GxB6Sw<$Nj0S2v=|i8%&S9P4sc ziYd<9<;T%wi0GLz}9N=7r#!n$f2=Q?jE2#X4-Gq&-Ki-im4q-en0{$ z(ru=1si}>wBO7taxq#-{2+L>44|A8oiC9S%p_V5S6EA&0f!aCld4>X8?Rm!Y48gPT zjPMEoj3$s_>!CP*n(G^(Ftrp!uc6o&q&n@t?UWTgF|!uoc9V(Vge;_ zNwAf)nk9*mN&2XmiJ$u7XVQp>*rO#1FQg5Df?3doNI~mcAOewsa(lA~o^ggPu#{5B zEWiP=YCxt7Xnirt?f@MKoi4Z@(Ch*x5Gx(yPPqGx!P=%Dj-qI*HBdL`5IV?Yjk_b7 z>B)Oxcfk5}C?hrZ{$yB}{_O&Aor>-bs9}1v9xd*F)bfROhW7Cm$iKe*tk_TJ!0ij} zt5(pS(!f9hX%#O)T7~wT7uJYDz#j8t07?Z8Zq#&lxj{eG!-9s&x~B^w?23C`!0%y^ zM%V#-#w~q$fA6H#lZweJ7M&He(Hcx_k?4MqxA$xVdf)f4oAn-!6k;cHH17A5VIjfc zTO(m1ig2%pLFkl8=ZqgRiT3xZuhafRZoE65r{l@P^i`ynUnZh0b-}yCnx#E^5e(_> z@cHVs4+0@eKUo~GWc)Luexai4D|wW5?MFuAA5{MtQ4Nk6|AMLrh;E&HfazW+zd z^be^BnB6H;o*i+05+VaRRxy!$aN`FH@9$&l2~(1DbR2nthH>%;`uc>YXRPDp`*RR& z`Alrh9hrG=FlQy72`40tw%vKv+&i_WFWym;hmV1D#d~&<&m;pOp9xRdts5P$W)l_;=&rMcN|sM*W{O1@cUYh?K`dN6%qH05Jn(WfYO5M#amZy z4d&zH(oku3bwhMx80Sida*aAA)s&9XoxjjuMCl0pr>Ky1ccpWUVbKk%)jM@i?Bllv zuiU!0uRfsw_XwPZ)BBF?YvIc)@=^Tt=#J{JMlRh|Xev?{71~{JEzv&~CyR(k+`bv5 zx4azoKRx{(P`U5o*J4a=@0A+F6q=`k3?*o%YJ|z2XyxTKEic8q9P#86bB6AEa@U-$ zUB6Y|x_0KK;}>C&ud8KmRZBV$lP&3$+cJWs!dd$3R1Fi8#KBsMCcuW$Dur~|CT&?oIv@gkAutV5Om|7&_fKhj{yhl zrk4bFklwXrwoF;mqB^+0iA$v1+KD}T)?|8`O_WB2dsi9++=@J7mCYSyX6DA z{|51S{9uk0b!Mi;lF54lo*|QjjUpScLk?9(7Q5Y&t1d6iFUjMD{r)~iXGvC>zR(Z!nGQB- zVlHIy%p^#+rvm#AkS_xdvC`v2+c^Z3hy_3Tu1@Sc`j^(iszz8?BCx$uz|9o{uFn=gyrubMD3WUPXms z$|I-wH(*%sj0ewQLO-Fjd9}ZVfulVl65^4nJu**!8sZuFJZ~{u%~`4{jmwFkH+TB{ z=>wmufB1}8G)3xSQZKvp&JXGzZsBdQx(IJS!`shKZ(e+!H#(i**-g;&xZI&ic4F=s zNmX`rc2!lirRwiPSv?I#2v365$HEL4F$nhDw<6sxpr1hSQ1rRAfympUOo6Csucikc zZ2L9%OK@O=pkdMzs3fN(5Xn6yBEdMS*PCTGuD$@Gn0bDPP@pbB2V7c&A(-kUCg1K> zMuvr=$PmCg;)wiZ_EsUkBky+W80c#NeeC$i8Ja3h+uexQt2C^-Md09|oio?3;NqgA z5n!A)Zr)RAR3xQw;xrvj6UnN7IeMpooN8GDbq7Ej0TSWP7woP z5IuEzhRp%C6!7&3iey1nuB?~|Ht0wf!U8BP%pwt8-ZHPqH|P>^S>Q^z-=I5CnUI_m z&jGj8C2oYJjQB+t)k&B?;X*BH=<)wfeurKi0Dx*&UY60pwc@*Y8@Xj@6(@ zW=*xTpn~@d!`{L$iN2!RP^0bztgT!hu_>BI>)9sAucHK`my)pqtI^2`yae6&Xjj|&U$E;57~@v2x({YL9k`Y-m@uU)yg8emuE9ZMlcrtV&49~P zfxHY1sD9lp2{@gtV4McwT{}3eReu4%xz7Or_kSVV9>ChTf5Y1T1E}pU&JrMP1md#n zXJ-HUBfI4Vc0$SlR48QI#H?^84@hQ@O9|66%_|q%4#yRtgDWz+4VvQmF|r;V3eRH7 zIU#FmmmGwl0juI64Fs`a5{lY-r#DPhU(3RGZ^KOYmzO;X$;+o+yAi?lRHCAiyHavv z*Qt(MDyG{EqOwa&UXk%Vt!prPOu`n77_4lU@Byht!0j&;5$?Hw5oCmqUbf4#GPjQE zls($<=oSJ%)aCQwHH(S%9`C*ApYmdv@REfPiSE9FyQ>|V7A~yxWl1FoT#z^+38hwp z7$v@pYe#Kd-1umvW4h-5$4>u`HeSF4ipEgcip&JZG>(x@Vc`Q0%jnU}#COBQPlLXu zx94m2>!IH8r*@)DZV)vQ#sLNw7StZE z(m*GWbpY5hfdb%5nLxpCcsAE$a+%hvR?s1lXHFMfP54Eif*_Vh>_M0sRjp_%JaBj@ z{d#)`ue#UgXS2v({C-8RYz5njnM>}jLJ(l;{UAWL!;YHpEC}E$zuRWdEdXmpN?yQE z&!PaZwiNEb(;6}s1^`wwp;d|FnS3a&I@*D-z_u0Mu)y6mZ(JZUGIqr_6|OHZ$-RL9 zF|eCY;30Mbz^Q=u)c2Y&3I8hm!mL-`D836G9XvTJL*b&6m`VhkSbkTJbK@;ekJqpR zbu7t?^;d$8_Y{LeaSJzzF_P>a4#Yhi$nN0|3F-3Q!=ZTB9@xv4G@-s{>) zSCa@j7}h4MmqU*Ws2!RxPm{Rj}CVm1ue9sQZ~>_q|hoMRM+8gVaH9d zg*W4OL{zL}vkXoqVm^TZ8t-lpwdd0q?0a`6A!2J?m;RD^?sZ!!2Oxa|k0$WRD?Jl?&6K)*q! zoPljVGrZfTc(-AhoypwPnVNz3{`8(xxQTOi>y)m{ytSIYo}_PwBJAL8zg@F@Iac~i zEVmiCOm$Y!cr@f!S>HBRgU867SYGHoTeWbL^`HwqU>!Q`ed}(;$zew@Ivzucdm#v^ z7yzXIbFkn+?bWLQ+k<27Pc_CA1=52>YQER&x+b zKmtxMh}{90A{6p9LLf-*-5m}#mGhc=9b05QKzoO}yOc0Qx;rp0fa}*NyVqg%S~xm{ z*xPW04i_)^VBJ?7<|~v#N7<}SiTva}pW!eVkW>ZL=1(im)J{S*ShWY>-rtCkBuKXO zpq*|lY}F330?C>r_Tn+wy;SQl5_k+kuTAXhb_yMx0|fA$m8{%2c?T5GP3&Ng3uWAJ zFfJW$x2V?rH3NyGh6hrqt)(AfkIyytT)j1^1=l5r!?}^%N6{59Y4CmjfyIek>@K0B z440vxDC?~w*B>%^eV-t7QOXSJ%&-f1eXfbc1pd2G6avNrIR#LW0aRa{|WWwFzl@8n9V3YrRPqzHPwkJ=Ccm_VrF2V9yu zOrbEK15t{&VUfL-bL@`0wf8hh3vDsDo!DOrES-=vq*&<%UzAjR5-&Q_%qh^x>1kI7E0g zf>KAy)R39@vmWBbzWj+_3lNnZfbW7^tXpvxca8V{K!g}G0yC{RB;lBv8Q-lXGuS3C(W zsV1$8YY&^TX9mQ3FyoUcG7m&c`t(rH(l@04srS$E0DJx^+SO9==3$tqcwjy+)Ck(k zxah)#^~!>lxV<3-!3A66^uf}Akf*0oAB3=;{@`v1uW#8}5uy*)$89SJmeR2&z=P>W zCa9tB_!J^8V^8p&bYaF=4eHfsQMAU}Ai1CXe@`L)PV+$dc`%V3 zzxfRh#k^O)A+i-@FqHo_Omo9Zz^cZgiGI6q74(^DY>WI}6EG`+kJ4purgJFKr~o{q zNJDjEOqIhW44VPh??V}m?7F`X7TrMXBY(VKzn-qY?C0+KP}cL8{r-K-Z!&r0roH)BN`bsP#**h{@Nqt(1&8e*LN$33C7i6 zCXV9PGr0IYFQdYw@oJ-xTA~1H5_*SEk zC>FH^Jav+eRLegH{rlCWbEz*cbV7;+HsB?q1W|@amo2%=N56GEt&MbOJRS)`$?is_ zd`&QzJSnT{Hyns&g^i|Y(!YHC}5+$=-@Ar8hE~928eI$(zT}`EnrDTqTNY0U`j+21} zQe05NI3N0mi9WHE%H~SR0ttEOB6<29GRPsNC{Wtr+4$i528THc5L}%vNy$yIr#PhN zAp7>nX*%3!1Ra({N^;6dvrE-v`1gw!5D8yoEHV{kO5w;8)dn)=y*o#wbhbp8E3DLDS z_)ATIFUFHCApAYgfrSi>feyO6LP|>7z&3;cZ35wz-5&7^^=Y9q!)d)G$(3AUl0wMa zYEu^$I122%vj`FXcgQAy%UI3S8sUa=#j3(LE&%a(oxD1KkEna81d8MzHO{+|Muepz zvb0cn_^sqO=ebaY)z@2wbyspialG0piH}c?Na1O;XQjvT+Pw7S^>3~76Z+A+V?9}- zwT9B2d(;KRxp^hLu$bt*C0jE}fSXtEDXl+j;KvGC!dPocD#SCb zzCGVUNN%PKfhL^on62&N&yto9X7q*V4K3S0pV? zSQaUj6Tv7s*L?8Z>ngMsBJ=LV^;`tLYGKHxInz{+e>t{Vc74;k3!Axm$&aUM$(R!y znTRj@sg3kVdyn*DGPUz#gur$IzU|joG62UUU*CTxPt*%Rr2LAEOxQrCVmM$iKcSK9 z_5MD;pwl0ReXtl%$gj!Q31x9bv4wu|AXo3A4Sk?Xpf|T}4a(lS&yUt)b4Gk&Y*AcU zf*)EX|D<2_VH!XF-~piV%<0AtK2~{p+}o7$zxPY6OsPmHqyHpd`SzkHCr*6;q0}x8 zn>tZ7v2p5YKq$YaUza6Rq*SJ|mdl9&oX1^&aMtG6tLtmMK+t+@$|x7P|1loj_q5_$ zAbT;KOt>P0dtzlanwDvZyA{k%JFG$G4N|O{F^JxI6hTmP4c`V3D|s5LB6MGrsHunu zJC?@PNDzXC{x4zv09ZDy-Vb#6;2{~`2>*9)_Kw}#SV_%oJHoeR^9?;N(YEZyaLB2@ zr)k{17hBve5ilsP2w`N6U#qF{!Sx#Q{#Tr z{ZAzw^a@Q97b6;dyOJ1G#BbPb`sBE|p&>-8X(>OTZhL#%QXU6(YT|N|Ia`ECD1g41 z3rV8Ei2A*b6j%m%6(?HUccKotfD?7#MC>eLoaO%`>^^(Em%-&yF-&*qJ|Jg}jaVN?D*@^!a>|{sjp3a?M7tw||E~|4F z;zSP@1x~ypTpPCCBn538IK&`oJ;6GQJs9C#zg&g2n|xxohGLq0WAfdY{AIbft9Ql0 zz@sW`x2vhRt_t!?Hq(yXdB-CUf}OG?q9y_u>N(woa56_8gh_KY`)bjzRK`)c=b+D3 zKK_+eVSM2B)C2pJ_bm4c?s7(R?%B*N#we5TN<~go8cb!X=~L_O0jfzHL8YQ3UB;a4 z*J}_YHqyY-#&X2a1t9O>GK%DiqW(&g-fKY4hCxWEP=`GZ7p8zO`y;9NtT&YO4> zJ?t_BX*<@qUq=*6FtJE#Rk|aaIk6-CjVB^-d^*_#?TwCjuma#laze~SR|${Uq~_G! zdqADh*~=$I(`sjNfBYe_{Vx12&R7%fDKJa9(P8*iV4k`+K~a!Ut}iGcxg=L{ea)S~ z`$^1o7&)Eo=Q~gRtgLZ92Wqv%ox4(YtFT+7D`bE{v`g&o5e2G{S5fDmC+B;`kj8}z@iXN{xkKS zJ%E0hrit|{*tk8GNi&(XX0TF-^N7&^qWG=EM};p^N_(syitoLTvb_c41foI6o_EF6 z+rNQ(37(ZWOG04=Pz8e}|6yg#&OvfJFDJ`n7X8IAAmFy(C9SCmWWm8ij+iStXX|&j-pe!2eY^#lPC4}MLg$N zTA!iLOw3DiMI`E(a}IF3kgsteVWylMv%&0IF1&l=+~u=pPP>8wD(NXeJNID$f^c{q zxr30L^bY-=d@sN6CcSRWV(W+^kho6#jrna7efJcQ|88L4B17pN((Fw3pg<6_gtWOK zF`|SojmY*(_MxA*w<*X&DU$Ewtyvvn4VlOwWrEkg7wN^41@3k)!Ak+-Md(;Abbi@S zK}I^$bM%}7x{c@X+*PO)dUcdAl7HG-*LJoAqdi)J{_UIsTb>h5pqDSnLbUL*dv&zz z(u#)5oI4u=3}!@6*r~WRnqaZO-L>D#4%-R)|L>-x68reCwh(^N{P*#`#J(3|-yO$^ zePgdL`-%G`mCM9~{U1U7NYpkX)8M-nyW8H_K4II(N{gW4U{y$$+gm98P@+qh(Kj!` z$#w~uCM`fM^0F_<^5c~xN@5qJD+L%?jMR;$kwb{Ey4ltVH|SX578#2dk}_bft&V_f zEg?s{L7&=V=otIQWK2C7AfZR4)2U#c zPs^>X@b$~wBxA(>U<|=e6`jTp1vLUvYes&%J8yHxjx(bYq=YMo#Z7s;xAVt$A zz2ZC!`KFKE!PK||NH~9y)BgN zgMn`nmyQU%!2|zmC~HVcPf8`b-3v-|d>p8NCXfkqZ4nb=NFaNhb4*z#9l01oAbDFt zFERqC^bE+Prl3Kg*gzNsHuNX7tH5{nBLxn7MrLyh{2%xn!GnV*Ou)9NDImS0hx&y`!MA$*L)d7GkKosSZO zu*8T+HT0n9YB#Bw?j!rUpAco0{&^wKwwY|#So<~mHFAw!6Y!AOtJ)DNeXFCkx8v4) zBfP1q+NZAybrmawJ8rV7GWN(3{XMUv@NV8$czDomdXHNkxAdgjty@sp6Dh@)ADy80 zTJ9?MdBeZqmM_;&IO^pJ{)_InZjo;KTOO{rJoL1ihX(+P-4#c??&*&nvGKN^3Vio& zQiq))ipUozFR|*`hX0-6b!73pJGe>2S;pl)X6mrT?(J>Jsex8alpkV)F?n~Az_oS8 zo}qIF)hRdv_)5h{s-rE_Hi5NNrq{-nAG?LayrU{FHpigHMF7fm^M*vT&OPJcWs*4A~0w-w3-iF)>*U zG}jG-Xdu#YfsWRxodY4Y5t}&t{xcA6rkfSQW?}Px4TKs}2@N0@BzI2X zx+=jn{m(N;;X}cLUAj~v3W3SK0uG}{*u$pe#cLq}c7Ps$1ei7+C7#KJMw5vgAO|1; zW-Lt31vh5<=PYeO#!YAuuz*w670SR_XNj=g+Uz)YFnZ%T~0wF4{OT4-M;<5W`ym)&sVxfm8R91t6aC4w-wi@ zgfOkMJxolynL2tNE!s1qJMPw3pft2;P-2NvcL?x6@h&rk4>iXEuLWjlx}aCU=kxhb zCq&Uf4K&plpB$f%#(>gJm##`m%F0XOQ}a*{x0HA*iT*MmZZ`lRk<}D$t1@%j%yns{ zQ6fk|oEjOBy*%jY?&~a4!5}t=5u_uyjNl%u3^6t*L9l5(i*%AnV&5afC4sCK>BIIx z7Rk*i+WL~kms=33YIl)_h9}@cP)8Vp3&jh;QxTJ2rm0X>l$lEqb8Qnm3(Jf(>Izq) zYG2fZphstR!X^SR-gt_sDNivqg-(TWtffL*6E9xTo{EyhD074=B1#j}LBH)8AEgbp zM7V}qDif+yRu^ff6As>${QrBWwl+lWD>P*>`5=abM0;VdF+%Mcu1*LKRl+_DEeNkv za~0|uV_6}ltTshSzPYRdv^MrI#5mtTEy(7%*4^gmjpzRysCWlP!Jhr>73Sp>64B*% zlI3XIK%!Y~URqvqb~0+llQS6I^w7~N5JmL;4K+i&@PV|bz*3aSR}m+pNo!8cbInaf zUAfA>TB_Zn+nL$O2yxQle>RaCO&R9YT-UtRq%3UWBP9c`kX}#7q#IXb462f}5_49` zelkj7%+s0D!C;k=lWb%R>0>JUs8G^mqVwsFk^Df2cS!p>Uy*8k^cxL+%q+3KL(*B_ z@r#rm`VqRJ3(40i^7hY-z?c>lgDARGl)=-4`2?RA%4=A-(Dq>KOW4`8MvG@2tY!xRs?YUN#qK1 zfeu>sOm-@`E&xnY(Ok$`OrTLb4ILswhadEH{>3gIBp&CWzRtFVh>Nv@|NAP*{hh3M z1p!doCh`|cQt5`fbnXp~_C86w9eS;N^5`PKRD;MnJ+aTcRD5(svmq}h+jN)oSLEhv zLFb;Hg>ZUTx_TQ!rsFtO03C=`05fHD<9YzJhtRo7nnl7!keSoLKlBB0UO8AvCB2po zgmgqtqBLkZh=gV)>F`KTOX&-)prk}Yj5#qo6`|;!B*B-V(`4Y`FF|Vz;L~KprwPvS z7_vs$t-T#q@OU5<`;w0V3GCr$>tQ>FPw^9}`eejmzZQnXPjr5{0K-4NFxSrShx7wi z&f|?9yLtPFLC*d9It!mjX_r9Sbs>eSw3GM=$z}h5rWV1q`;dM{#?UXA5Y1C>_B_vIwPt4YkoAz4@TxCV>efnYq z8vE3_uehW?AoN8%r10=?Tw#c%IFl{7FSm$Pud%{$P|VuuY^zzS95RCT;>1w`;Py7u zcmFbiDtV&mLCkbMnMunzy}cRNRQtb3i#r{NzQaIB6NXRNrQ^A$xSxsmsyqdwc=fu# zgD_%eKTBc8q5}ddOL#A^WDlW6+QCtS`zboEcWFG{N#_UQ9ZIDm z#CI|h#CP1K8ciCe{8aENWNLn*zba^#aqgtIbO(-&PQ%j;Krh(slK4!}1gLN}MID6Q z2qFQCxlu|!7T?SI=e@!Lk<6Qn7vI~03&)#=DVKVs=s+Fx@r_-(DiC%m?hi1!kzP@^Ygm|fsK_Z_= z$0ONbgj=n=Siad0jD~wr(W2MofW2Iwrn2{!MP?-WuTklZS}HMe{&bE+K8LK7?rPRG zt7x7~uEzmnOLhBN^m|k^3wyxpJSnjhl9^v`Bk84N=|>M~|0YJh?@{ZiI|;;y# zEO^eouk6E-C$hiD_uwSurwc(W>d&gnM|0$y>>;VHrL&NPLe;#~0Zaup1bh9ZNrg%I z8nX!dRA|hJrg#$rA~pjnw6y=jr;Aj+2oZwkFvZ!{Vi(sU)7h09K6vo?v3*Gh~si-pVta#;4K`%ktvWTU%O-tIwW zA$?E(tCN5Ct8o4ceI@_9E87UFLlbO1(#`1^I@O`m3`wTUVn(Mjv8OocpMYDq!rFa4 z06aVHwifCl+P$M;?2<&}AMwNmPwbwf#YAT!B2-XWF^TyRS25S+hdZTX%|uvFq^+Y5 z>u3RebhZ%hXR9ZA?C9t}ui85LSD-EVRZK%lg)Na}g)_9umtq|4>?P@%!9Bpb_9A>X zY+&mxZn*;c{1Mx@QBCJY8)(u+=LR=PjX^{-fPQhbqe#xSIdH4b=B;(jO?CCnV1k0h z1zBd=0`#5>LbxqMkoSO3%>Fg%Q6G*rNb?%aW=kbg`&Ip!d&=8-uPU9{$smaOU|d>s;(;AVcuogtKX{zDRa>w?NO#My+Pf`?c7sw`Z(f5 zHW#wS8EVf!9XAKo;rO?1_NfbO-U~#5-6Zne)0SJ}w^4v$S&K7~+1klK*3y{OP^dH> zjXM;u*Rl(p@73&z+7VKfb1UZj#@02*X4Q-`FzNC7Xw@gu7%A;TRVz192Yzn&f(RcS zvqcxM)ki!L-@2`!h}@O&oW6BnQM32XHQW97Y_KfIUu0RBKX3n9rX1rnKA7A00?q_~ z#j7hd=Hy0(G)Vt?_~~#MmfZ+Xx)4Xw^E_cr-amKjI&rxor2c}CLm(M_^YP_X zPx7xMUdq0bb~696`fS$a%UAA^KzVc9F56%d&-!X&qtxnbiyA3mT=bS~i>k~V_+0Lus6eZPHey6>)XR(S<>((6IR6 z2%e0YY1dq7mIYOAi{GZIEiJ6eq*zs$x@0H+HF5n` zwkM@7zKpAm4l3|fZ3#*UiQ?m(yHi~n5w3~e0;Gp*i#evU!cwx66B_I%kdVK*W~_dA!?2|Ct=72s(DCt#JnOGZs%Tk)-z6!k_cQEE)+(G6$>2bRB7%CQTNy!TP zJM4y(fOwomRB!@LFu0&PnvX9_sYmR&2MD?A3vuqHH3d6WJ8BX_%J{;l+(4Xr52%yT zx7oe2fS{1L5LHB+sWgR8&)1f~cRF~5R?FmF8HZSXGVD3E0oJLipwL`V#FOSLcBxF5 zNlwEVGok46le4#o^wzCsWa?btvV(=&>Kh8eyg9l_W?kQ&%n}CSm0;q;MSnm0%oGz-4liK7 zp3Z}CB9@WRaGjhqXHnE7CWJca5D8~+)liw9zFPxo%hE|-FS?z~MBo;kuP5_VD7Kuh zuYktg?Yv88%D!i+iIV{nolN;A#?8sj&Y;E9NwK7tv|?W6+{$^4!^%H1K|r{G|US~jE-EOWTF}iBAiY7zIB@KphipCJ1n*g)EQK5q% zflftp?4BtJhJ+lAt0u<+DNK?qZ7P8i3`0toV=mDvt%sn#V@_3P$E#?nbaPyISORai zyy+VgpjV;?^0d7R7hx$2Z5EprTC&Z#e2!UPm{LH05~xC_HyBhxwe92F0<1H;b|Y?> zBW<@xD1tTCd{&>50MO42{LI!iWO z+-y@;zKYD1))hv_0wL0!2J3Y=OeZ0g%}&;9(lqv=?VA-iG-Rd<>_IsitV?!HPD@IM zTQOG}7++S561O5D43Z2=eZe-NxAjY|)SO>Zt0D`emb~<2Q1V974|{f$ca=Gdnv|Gn z!_^T{YE*L~#F(N<%t%zJH60;FOG0I5h_L`AWE~;K@&q7`+Z1JL3*an*sR!w!Cqw*E zoD}}sK*o>qdiaffKuwJ0cFJ>=1HYU0OwELl z5E2etg$nLVxW1Z%@XsvYeN*up(@1#qP5K}$B7XhOT`pBSI|}`+P!D)QtAqsl4f%!a zmI!K^$2tCR7MV_`Gf1>D`U~Af2RxTh2bmBL1y`NSU@+(;2APl`>b%}^bNY$3 zi(NdS+k_-?S|TLT(=4jz&XDJHw-8Uhk=Wy{;0G38;Vq0v+a%q-CZoE*&KreH(Z2?> z0zihSb+WC)tUp?ePE8joSZfs>zk>{KuY&a2brQf@x6mh7NWbD7an31`~*M=KODb| zlpogvl1$T4p%jP*q%y>1hh#<|rgN+(fgEuVhOx)iwJckxlc zAWV{CTK@;%6kiil8&n%q5?tuR?CqZ0ZCxm%N)py3{?!PaWx! zL*8X_Uh7`HR*C`CT456DiN9Kxpv~^~L+wc7_H`G|_rQNq_||0Wj|rBZl?eT%5J3rJ z`;gHRdzrKk9W5Cu6;@kk2&>y?NRaC=b!3>pX!;lmKciqxh2t*=x3W_g;V}sjdR94F zPgy6h-wir3a~(H%v!2TD_}p0Y^0N9zhB#KRMYP)xNSSq0i@(f^G}0~o=Tnb<*hM}# zOU4W>rM(%FjEL;Kc^@T@*U%56=nw<_uxx^PxM|M0J*Tc)E||%J9mG>d76e>Y-_jgd z#GHOp&Kh<$onBdpK-O~m7(G2kmPaQkQe%q;77wf*?0R}2>E`=a6j|;=0xV?4?|+?+ zC5pP=7&6QD1)JTJwaXfsL4+Kg44#Wv9~-$+UNkN5QD7bvL4~sc$4+&(2rm=MaC| zn;h2@KhoQErzT`wD2yebB|_+^Ad2g6M6&nl;Ej<~HG_^&(+`UWSo+p}d|_jQ{%G>P z5Hc{342UL!Oqbf~PE;`8)Z8w(olC|RlZmNhr1$BVb78wzl!T`RriU`5~)Ii^F6I>W+j*qA?*)LkLnDNQI*ukt}mI z^2|nL7G0rDh|;2e_h+kPv-7nD$!1EB{Sfu%lEhX?Ab(8d=%03%WQ|tL zx+G>>QVK9PV0VCbVb^d#3M_dD)^#HnoiCw3Xk&}nAZ!3wSV6Kyoz0=#TdPU3yU@QC zV!cC>k~lhdmNy74^iOkgfi^$eH9tGoQlLc7=o5%B^oF$ialoRFLwy|$P*0JX!`WTP zpPIY`V`7?XVp@tCdT-*P0C$FFK%6DysV!+73c^7jgQVi$iX6ZSOrjVF$w9GiFlLHi za+6(H`sF_F%Z&Hsuv_<(-&S7Re}SuN+P&wi16%g_?DVN(_RpJMIZ@@cC^38%A2w@+ zI#3nnZ7%iz==c|73HJly+Z_4kbZZ8s+~o2!FHo-Rk5t2I$3Xq?yb zY0IYtkI{a3C~IfVw%q3Y=BnoAefzc_EI-PW9Wftlf#aJhs#;p72(_%feTw~r%sOSL z#7z?7)Q+Y7f^~|_<~xpk!?zEV+IafDq}ti(jks(dVdF*CFB{^9xc}E;tXvBpXC0>b zwT^AZa#Rt7l zpKd*PniD>io$@}ogtN6qv2O;o50lP6;&q<8DK*eY2{t-)`XDwUksxP}>}=He`j+h6 zkt64M8fQDj-XI@9-@=rV<(iV2q)ktm2EF6j`7?^9siw_{3!2YQBZ~CgBx6d3Yf8En z{J}Tq2MXG2+7Q6^M=5P1q-4|(bl>wEP6)Qgv8TOT7ccQ%wV3NX%FY8oXynN1mO~Yh z&&h)l;pmkE zozvzp@*WQ79nzP?dL}OkFl1Jkwlngs4(~abY72H48VwB@rO8nJP(w6ni|5qP&y!~) z&B@)eTU`(tqlJi6VUi`1kvj~RIuvg$TD>vS@P}WH?*$x!{9jD(YnO6OSN-clt10)= zXKzetm?^0u{BYd0+9NP})6=7wj^haLeRWLH0ZW7CM9u+pr>Qm!PDcyQv#Fxlh+#O7>gRbYZ7v^%1cVkrs|x63dWdO zTvA}l%G7_i0j#`T9eTdE#h?i`1T(?L!f=zS)DRP?$%spfyqMWwY%D&tSJ$koS*4rI zB%CQLkKhX9=fQC0EX^rRiG}0Rk_#7wrvxR%n2T%7HJZzw=}R*5J}lA}X?F+JrZEp= z<}A0&XXNiWWIGhhXf17_v-8wDH9Kg}diwslkFMtx8>+I+%{5Qg6UX(p!VZMjCz=li zogG~`hbbMKzd2|GQ=GB~LL%*q^(vbIXcZ^-aLRB<(t+@pHyP7%(h(<4)oM%gMK<8* z^bkfEN0+miP`*kuMrN%%T(OOjGhG}U@HH`A9UO9Vvm(n9i#3J0Sy2rAoNQq;H0egA zwkWv}Ni%e1OwTER_gayt3uR6qHk76ggL+INsr*LO#03@p?89guA&2%;q-9?1GmIzCeNNUi#pd-;Nxq{ zIU9X3sUdxDPOarceR2J=Qs117moganLMI1@7wP4HG-g+1R-TXjE&A0wGGWq>j9l&D z;56&{y7R#g!*3?u$hwyE$cwx?`HWZdl=9DY%!W;=aa(!H%#9sk>}wpHNxNG5B&?V* ze9e+Yivy|S#zB$Gd_yy4>7ooPN(!%jb)PDLB3p%%soL-m{4PTxmZeN+o>V@)00V8xu;@HR_s-a+8J0F%@QR)7ED+<&@=bFDu#;f0$Vr8?!N-+Z^dx z5*!u~-12$GvW$)ESC?++yevyM+)sNHO}YoSd7shV&nUQ06q$PryN$aI%>Mm)-2whl zMu7L}z#}0K%@yT!wclPkU5{&C?cmY2i%h;q-~G13=5i7qy^KYqwv;%*WpHu>&xDiw zuFcfU`c4`XHCz;8=y&>OD&_U2)SNU9h}2pE>UYpV10T2QDNWf;SDF_wbe`}Ro16jV z9SFW5I_GURd=ay$7C@`NwjRJy5n6VsCbIed3Ky-I5{ zV^sUWs^ErVoH-9niR2wRo=EXQT0Q7DYyh3phmNEJK1|u;L%tXT@SD#LGG|d?I@5m8 z8qLCe)AJw+hsHV-RQj>njA67l)qjK>-a7C{j?)w{`A5IXJ+6`?J4lAi>xU8r5^9fT zlMOWV2#pA2G^4v_{O-#xa}nW^(!*OXnabYPSQR``Vm8%Qeef;At|=WVy-q& zBugV-TX&PMfVOio3jr)$O_vR&3&AP1@CAAIHxgW>2iR~vBjAjZE?1TY(#oc zc&JJrqNg`EYz^ALt(9%4+q#F8)gkIoTN@CFTvy;$+CL+fiOq=G>Z{TR>8a1^#8jUE zP9M057SXF5*x?PCO4|d#UFsXHQ)|VRRUv*UJXu@^?U_2Co3w|j9ex>XR@!azM~hIT zyU5Mfs+`pnTAs|6C!a{!u^S_f5R;pyS6a*louz_|)q_J*T6*tLK5uRzj>6?#WG16` z+C*nkNBd>Xx{eFF#nwj7IRkCtg1^x&u9U#N2J^Ue*ykP<1AuN!q~FZGEET&5U-2m?D~0!r>g8O(y8-SEL@K|Hc_iQ zE){yTi=7)AifcV=OaMA0fkh~=3isI(!r5d_Kh(bkp>XW0K82SWh%59{~^64zvHBPL{Dq}A@c zeKh$6^|qJZ^d%p;3mY!kH(+V&dx^fndfH-rmEjCuwU8vR^ra9Gw9AjY^~V+0ho|nX z*}t5LF0Kv#O7&G;Woa?L|LDE_50<=~=||rR+QbMWX5w-OPp6yoe-Q5YraOsx8s+>{ zzROK=9FZS-gIe&oAufr9+`!{MOL0AvgJ}Z`&>E7fbS5z6BatwR;!#)-vS^@*{r_*xCL^_eD1qfJV6O-@bIXq5Di1-*9?sTf&s`v8_M+OpR-%CNIU5L0ShZurac_d8wQ!6&TrivL*=Wjf1)9NZR^qTo>vM@b2$UlL-Z9WGhV==YJit4zIs`?3 z$NU8-^xJgSDEftpzNUN0=kCblFD4nJ?0bG@uT8MH8ArdPkL{zB zq}7=mLy^QZ6nni7cpk0_&yL6zfH$5UX(W>rvdI8)nzYVB8%iR;Q#uN0n!zAs9pZk; zO`--q+vX4tegWsAPR7LxJ zDaD#lXV-hqL|idTKY+TxqY>rq!=#kiHnIsqNvmjNSP%pjLS5AbMQKGUQH2aK(>Wjj z*AoS1#aSGR48$7wDIhX@ThD{Aak+#zyJJ@%=iaE;d!zOlc^|G7DkH-HHYcCaKBNyI z7l)liy&9AyRz}$L^~t&2-DF#fgM5rvG`_JUtP*g{_(lu9Bo zX*S*`p){W46eBkylQluy2dj!pbvrmM8TQRKz4ChHWBSSSS&Y7I`AG|;LbD`9Wtc;p z^vX1o-!;q@eHi&Q3jN`VQ1T`2DQ7a`(DS$!sEUnw*@o=$46p(A>)?8uO6rMwccJI6 zWSQkASuAWK&aVk4C-<%6NH!bjJulL`VpT=_@%q-f1Lw+HqYgzDeYw?}c}Cu0HPKEwa1DLzutqr!W1roafXkN_HumA-i->8VGMNHeMW-I2W42(U zP068~^ETye+7-Ghk4US?yFNb-`|+bnD&I^U@wR$%`NrnN=EU9Q`OOH>IUgm%{UH?R zOnQh@kelSsZ{g+#Y+-TfI^hzYyn=YG1iMEcoW*Cb+ILDk)@+wP0hdSG)CK4a;3q==rPkMzpMN7cU+zhLx& zzJHMr&(R04IwsKX^h#rs{;oC$iKAFyrhNq&!J&%bp`f6ZdSyl`{UCKdE`7jog%$Q0 zbQ;%epDpCx(JNzm2M^jj@-v`y=a9Ab-mu$7fQhL202y=!M439e7M%5oIwmACDkKDY zZ#-!-V4(B_spMBUh6s9+cnj$qOp*e!?FPwf6MwfsFT?2;!c)&lGwVhN&5}~dBM=yJ zLJh5yA}&}dIV~j)$O}q%!Hqm~7Ve1ucqigC>Irq=+8;{6JTsg+@iWm6hz5I$8H;>i z;X!W&aOOYkR;cUm1F()WIp~ZT(^Fa!R|Kjok?JB-q`ClA);Ir9WsL;r0mJ`!pb?&T zfHQ$ifo0*IkdU5?B#0-HATf!W$Vg>`IjSTPl_OY@Y$-@DP>F-GD1i9?4#=#5T_PgY zVPLd?+Mx(Fsu-OA2JkqKykx1l6vTN!6lgObPCf@}m5lp_k0BpOXykY#M*L}-l3pkI z;2paTn$Qq3jwIdYgvEcc)ayeUC9IHCXu=9ZRrVFqSRkKJLg!+iDBVQ%NuFx%eD|cI zc4qpVRi8(3aM!{On&<813cswnkVX|SHze5}EQv60i?70L*+Gd9{Ax#4NDDxvEtnAJ z*q)IL1gqY*^`xamAlDsCT?Y11&HmyXd21CPK)MEyF8I%ow|qCB+o(zo zjNY=GUwY-_;p0b69CH2U(y7MgtcQ8W7nalRmDIgxTpr5vB{elm8dTewnr|NB54KgG z%G}Ld$_;5;q6!L1N!-exAT$1YNQR{mY5IvzQ)oX1*Hnn8S*|DHbWMZ^k_rR5B}^V9 z-v#71@G5k)bbve1kY4ymGh=um_ILN6e+QBV=)2K?tY!Y@O#CiOhJofcNPJ=^${I=CW7|q&#lin=2VmX+{5YNU-ml~Cgb1s1`hx5*xX_;EUy!lPK z_w%7uy+KPe$LPL!H7{?C&Wy>5=cZ^ECB!OY&m`Q|a`M~h@fq;$R~K$Bu&Nky;M&F zcGKj29CB38_59%Hn9xT1H8PEUU=>&CXY2jBVd%D7PXs%WoO6@Buo~F7*o?F|o{nGA z8=v=x6OvP9hrha@yfgF6md zq$EpxXXx>hbev>C`N<6zRd+63`K~ylIIW2HB;(1&*C*)&ymJcge1GZk_r+TAoh2yF z^f)UySFxk@lJef%a}&7sCR)VyCYQ;@zh8mlqMHzQ33rLf1{>aSvwP#4mX5Mv^4Pr- zW;Ro{Ev7VlTinlcep~$W9LD$1nayVrcIkYaJ=4775dZU~U(YR#w3fccA%9b?ux1_DQQ_^OsCI;HK1+K}qCLK+AD^Q0DqX3E>~+-hE#G<50pk@yC6!9L zkp|dLaP?eZDFcgp(%BIMZ8>HRIGSsnWj@;jcLU-0w{-XR`X*Fx;=Trj1x0a`X`yVR zKZ>5`R6AdiHTlnU zLN@mXL!czxkfBE$K%f40-#4$o*qD%(lo+p!HzgJzj`X0sDIsm|PQe0Cy6GEO+lPN1VhtJ8)H0ex>gwGUB+qUg#RUQi2yRnkXBdWcm z>*-c&Pr6Q#g|gpF6jNrs-Pb1WzaZO`UkE+~v%7UTS?*|k0Zs%EqOQT;YVsCYeU1F< zGI{$BCMEHHOWL#{ZKG=Q=4=xx$CcpU9zjzvo27yHB?Ds2sYnwUnB>hHQ#PqKZO*|) zDC)XErlFQ{KE0XHzEqLZ)Rf(%YHmtP-HEBf1-9vrq(pd&G-Cj01xu4PiKQh1pzxAt zgvSEuX%!+Rz9aw^UIh`CMP%TMIi9C^vXOX8aFZ$Nr{B``D*I%B37*?0+b08J@LZTI zEPyrmwJ`fw+U}G+eESy2^pN@k5Ga`e`nru>gx7fDPi8pU?g$b#IWJzHoXl+6G$qkf zRfl^sJM<~k+<2ELF+d}a@oaIj_zIO<+Xkt z_Otg0-6gJ-l?{bERhLhEIg2N@0Jhe7tTWe*+}%aq!M z(>{mH>@WbAhGBWm(e{Zj7{y9ZY)oeS{b#Cyyqam*?$39wN=eZt=B6-SN1mnEsp_6( z9XZ11=IZlPP`p%3hC{;InLL4nH4KA4+4W&QzA;=@tPzys2<*(54pUDP)c6YZ4>NxNC=h-u`FSIZ~lOWmK*?gDhIBs41u^X;AHJ@>#pq2Y*|3 z?$hz~lRaP1^glD6`Cnh*T2@w*U#B{K5VOD_%j)VU-H<|`nPo+ zyP!^TLRJ$|5fU5`5zNsYvYsQy^rT%zJtSQ?1VYI>N=S&mEe$S@sHv%_sNqPn?DgXx zU%!4lwigE$m~zhy@?G3W-~aP>*U@&!`ZY^Fm`|3Tkq|c-iKRp9kc(mnKU`#hoE<|mW;JJ2=l=g59kRg>{7S=&C3u9e#SoXA?Kd@0_eYh`5b z1h##iO#bLNxjTX0rQ?JK+ow{x*4`jC+lyxHDB+$!@8F$!+o!UB-og3&WPPtp5Xek? z=m*JWTx^@k3RJOIIoh@h1?&Uzx$}J<1A_;9A5S0f!dd$?7Ot`i0jiJJY{)6_fwY;7 zZeAy`z9+krb*uT*`CWTz4i+6_j0FV-a@Cc0+Fd|897f%$IH3 zf280D_yPXeTCkCs_|(dCBlZ`AV7>>5KahD5lw&fkx_8YM|pr>hf{^7quAl7Sa{ zD(4`A({Jup)YW|2WZ(?NWcFT3c~*W&nQ~iXad-lC_e%@sN>ie?hoim~Rj#~zklHWl z6Wxvl_LyFZsPx3>C}l)hOhuhA_4k5PoJpOlwj?vluOq@?Jfr%NIDdEbAa6mz9zbjc+ zpSF|RQ+~v--%K>8Q70sSO+qRTlpi!6Nl8+CNI#ABhDLx3bp#s2llEASY?nIRAo*67 zsPoE*JGZ6Eb@sGXpAFf(Iwmwad>zwx^`_;P>YMGE>MDMlrX+mNDh5DE8vJG`TSZ4m zQd;(bX|tgC^2NS1_OM@q#sU@?z2(5M&80r_Q1_4;kdk7ei}6_%UNSerY13w zkyj@tPyXVgq~Xc*z0|2!6Z5l5@^YD66Npw-X01Lwn-AW3EQ~m)h{Lzrt9SD9w&HvQ zkW-iqM8@XEq-f$(5>s`ViIq%cqNZ}8YGG7FSRlVORGo}8ki1$`m|0L(QdZJXTaUW+ z`XX(usicHGH+88dYK0&d;Hknj~*^RrO4zGQMHlQ|GNCmZM_ zRe%4&ZCiMG^|GeWlZKl{+?DUb^c`*>UPeG|ynaWW;C)zyAKy{Qcii7LYAG)cL|{w0 zPgZ}igBy8jY~|QfOPfBuKfet}q^AG!S+Ul4?2IoWJk~RFed*71m3^ktK1*<)N9dY$Ks=IUa zh{d81-%U&$H7bCB0gFmVl!9yT;62(}gdI|*dl zrm&+Q(08^|$6)5y*m1Y|s;K0nkEnFu)d^1{c^~?(I{LxW;SB)_n77z3@Ux@E)}p6} zS3?5py^iSb9y#KAWGs+d3W@~zy^ibptB*K zjm9$+1vdm7@zPK9@^bAwpTvBe2pwWc#BsZBB}}ucUN*Gshv_d=MDp}0k@8v_iYTQY zJ*AR9W2Ov%yU6UMJpzXh4-7!}c;NUXI8;0pPf$FVhK9~#bM4$wA`TII$j^WBq@J+8 zMCSUU@Vf_pVMa0SwhhMc^>r8h9_#D_!u36l*51M@)|jV0m}*Ql(zlMr6f&;OBp zG559VM``_zoSb?d!OFdNzuG%XaRS#S*>AfIu7p!y1aYurY@1Tzz$C7cfnkY~Z>%QSv!y?La)4_OdlURAB7yBL|Nj3Rz|c1?qT57AUqe_?+6}=! zL<&GcP2Lg_yok2p@s_jvt3O0S4D|b7WZFaAtDXIw+uLXh>)|Y)S}|ugIIf%)Im<^J z|J=Rvg@^OMm-5y3#iuTC6*~mG=5*?HUFwwUy40!Gg{ro(?jYZ>9cRabv=}esQ-%}M zo3{VIHi+EP6gTNYQJ^9WNlHX*t8GE-uHE``n|5#9wLrgd6X1wZ3cHh(MvKE+VNLp#DqWxA28K7g2uzDk zwC8WoNE%DnGYA179Po=hk|q71e6buOVV9--2GM>H!dQlTz3Z_*e&qzNmZe(yBO-Os zb$HCp-R*?o8fr@NM2v|Ll=WeO2*?&lhP(W@( z7r{hS!aGQ(L;TI^GMLERtsdbFQtP*V?4k2D zhf&MLfk12RsQJ`gCC_z0`rQdm_~+0ce+!rGQ~<_lFFFZjCOQpo|42Ig@E1=xxyC^w zbY(r3uk=XcNv`x(%7#OeRq~!5P>?EPr;u-M%fyn6$3n*AFUTO_Z!)O6o79&KlDE1^ zhaq-`Ii@S=g0P4RB57UlA53g8R>dqD))N(i-tCt57#1qoj(G5c$DjCqEhukWVq0Qb zVqdN$%+Z#YEiac7S-+M(`xIHFrN&Z`p0#6R-g*NtA|&YCA?7(rTy_AFz^;eKWONPl z+#PRD;>n;M;NZ=|*t3RaAx^XgiEpEpqr2>bB?fh(AyGAVVT}JW9?+W+68lsciTOwZ zHo&1f&|XHys!(Oo9|!GG%nP$nE`kus8pNZ3OGeCS^o^53+)<&&A$*LG`?-FWe0oIq zKzs$>WvB0L@31{blN;_2NB83Ff7|b~r0b|hv}=5vHY0(%=X=+0&qsa}U41|PXv4%t z-$K6v-vVatj>~JlRgtcb9zp)p=4L&|4s<57o$Wp{a+JO$soHy};Hb)M((52f6;5tR z$Z{j-6h@QfDoEUnfz>1?F2~TZ(6^z#(QFBIOQ5ozw5Ldl@9>1Y6Uj<$%FjiHce*G4E<4b|WsmEV6sCoAkas$a-6F zWbM<7r{wFE0V9{vu6u`-t={kTRk|=fP+_br5}YLV4}>3B`)4Jj=NQQ(`o7Ox1e1N{ z?pef<#ndW6h1wFFhM6M+K9bm)DaY#Rl;QMg3zq`m!e;u0#Mm8^FYPZ_+tL~0stiN!KmFwP5b6im^+Dc=b91n0o#^9+x{P`#oQx#Z@>$L zGYG1MP0~LwsY}Uxce2`D{O>|mq4K*yk1pM0JrR$^R=BSAp>Uf_!KSi5+~;a17a#Q* zpB|T-9Z53*G;}+XN)3YW%Xg($%en}A4xRjpsE+P_^6I*ywHiUB1f52cpi0z$ z1BQ<$sfGWGvG)Lr;%eWovug+DNBcCfrVXq z?*a;_2=-oL)Wj&Z6ia%nd1E=VoW=LM2hIC?f8YQ5uIul*?36QS&dixP<$3PszQtlD zCo3yECsP}t=kqPa4B127I32_`5@X}y`S^GQj6lFCEhA1y!0bL<)e&2$C6Q7jV5WFm zpUz|&OhyB5NHsu6&5&g1(#IGNL3dTQj!y(Rk`PL53TO`|UZ0v^ zP#aRy40@p$QhZktxnj`4V4{vsNQg)DqCed%l+pD}Tv~#`kcMP@C2?U$2GwzrF`h04 z(RN0>AubLD)bW8dsf0!`ae701x;ote9>xk11$_|%XVk?RV%4~k7$J}vN@ya$UGW(i z=?0^oFC&S}b>QBNI#5%oV`5`tgdiGGOmz%M%8ka143nNOAvy*mWpQuMdeGd7%ZxEb zN5z7>3kJpH5KA|{5C=r*Gh#BKK4r`VeqK7JRoup9MH{2En6Y%E++}g&^Kp8u-WUTb zg~^zOltn1PccOvI)VVs_iJnTjw88 zC3Lkpg3Hxrg@D;LM*kr?Ja?o_@`n~gzUWaKWL5NXk7 zQ!Nvw&yLJf=VfQ-Azd!fGGw)FxLFB2US_nxJ~bgOB_6i~btc3j(nS|7Pn1QrcT1=5 zr^5{us?QBCP#5Ip7T{p%@Lf#XlOhhVBPCJN&$euf33um-(H}PcwKP{fe_>>RlMoOS z7Za*_^RX->H=-bkmnK)0P@Gia)&2}t`d3opBu!}Wh0ZwqAto*oEtqwr0+_A>jL{-XXXd1f*IeoDDqVu(%UQ&RM)`qcEg z#L~!IIgZPWi8O>kh%=B43Jdd%6+-4_QtLX}$#1ON$o0cFPjH>*EuRv#E-@%gYlu%t(kG?r$|LRKO~81oFMjus%=lY)-AMY?5+P6Sa{tNp%j#2k z#f7OryXup9gq8wComCF>Ri?bjcZ_k4+I34({6@j6a7UqUu^dA~ORHrVm$&!G)m!K1 z_uH_+J6taIZW{tinm$FPwC01A59IQy@~ZQ&+D+bYz4}VgmwTtTEIPIUyRA(znX#EMQo?~D19yyc zlbcofoW5h`tix-IHg|ny;c9_&stk_DfJNeQeXS5DWRTwv`dAK12~s2M^|2{2ajG;nr9_{TBBgmI z&SQqZMm959I<9>nLr1b06Nkj->+%zG?GwwH1U5#851+IP(G+1If(fyc(u^|?WM)dU z=r$7`jPG6yfAI~;f@X6^+1|Le*K*&ma5OZ4iL!#3{hBoQoXWnUBaP99*tA&tl*E)o zeS$oN)tU0Li}=6ENM_n=QrB}13yfPm92J$!H@#RTr7f>+vpvb^*vz=}1fxA1)TwY# zC$WifVZo6?A3B=3)r;=!n9N7OT#nFp5|82(k?aVmH0|2A#qmdReiu&;do5bChYu%& z?Gx^~ogPa&sc5HVpAPrpBk(M2kjNk={?Utq3FDP$%YjU$w$hMUA{;C!Za%9z71ZQf z!e#eXsKKs@QKrNpwBByt6D1!#lGReIG9dJ&=Np$Ic$mA!gmDtQVK zf>sL@n00;(2=q1SscM(evs`tIZ_#%3B(Mf!z@wb*IDq~XxDcqxPzmM&US_KaFp3T! zRzHx=g^8eUS04ZJwI zeI^$kZpe%jc9bR@D65uV`M&R9k$j|SeiGNq}ayt2GWSH4qz zc2Vt=@v8A&Qzn<3d0oX~S7;?rC5e>(HMQZM>v0-)@ES zwWv+v^a%<21T}f65ojSTVus6z^n-XzaI(I;z}9ych*OZhfo*pGEn7DVxx)#1I!2qk z%c!*{Sj-A9PRz}+Kd~=2E45ggYY+OW1Wd>ivT_rP!?Wz2_l0K#Vf18gZl*+V%f8*pvXT2L zsvxl-E49#`@a7w-1=@m;RQm;)uqtR1L+mNvej_n7D-;CaUBxi6S^Sx#b~1;Md`u8Z zFq*we2bsJa*b$lBjA4&HJ6lEWqll&S zSJdbh7|+%ZWj*sO8g^u1DnF?p-Xp| z&B)Lhp)dlN?kxB{$M=EWbl;1DL)#UKG0AwMc?8uAa^)P1hwkcIXOG?acJ7h6OV|5u z*(`W9csF|1%ddUgT8#<92x317Z}K>5H;{fN(AKqx>h)32`eM!WXWU|opp`y(O=GQTbD$ou?nAnzlW;<9Tl=7%4xA`N#?S`6}%X1 zdCKAPKiYE+Bu?m|u=~{6sPpOzXEF;Q<-Pa ztIkKA4LOB;rIS-DglSS+u=IG)k8qS^-u5T{o$81`IC5c|WglQ(D9%D}KrN##@iZ9b z*2TmJinW(iQYZsHul@;XxI}zNHaT>GC&4nysD-qZQp+rrWvBQtCgMBs`52#_IE4c< zH>fnIM-d4G3u_p@AJmWQ22S7!DYIFBs_rIv4r&1x@H2G8@vhWU zad}Cx+>jcVgeh1doetb;K@{B&pglFUv;Y_c!^GO4Jy%;=dL*|rlc7>%+|cG0B{^k& z)0f+%-(=X5QSi`?_S;QuZV!DuZ>gP6t?!<|dbnSfxD&{yfOT&OsgJR@JQDxl{I5pb zxT(6CeWUCuKfXF=f5E<@di$k&n1z&e1&l;cN%LE~OO)l$?Fnw!)fm3t{$4eh!GEDM zxj;8x4xNoNm7@?06IHv$7U1jeiYIo&Eg-~zsK zKeyo+haKS8NR0Ioj?&o0k~ z>`C}UCfX-{hqubxu)_p-*szHu3-&H;1{X6DHEuZJeIe3*4UJ>sYWF0NpA~88wZa+_ zcOm;kO=C0C&@s)&_MR*G%ASUO&zPzV)itV``08j#=@*>W%WbvL;>q`cZ6Km{?FJH04l zqs#JWr)8I8n=vM_YB`pDT5!cg@`(RI=cPegSFSAeJcD72)#>8;;{us*i`x|+ny@QD zo*tTpF;4G!lllhnUhyH}9xAt^LDlj6y|CZB`>SZL!E32aFZy8vQQkb%{7osJD%)NV zS+z%1m%hI)7i$YkHa)zgBJyAF6L$Z;sNg;P;lnxk&4{*_U9gPhQY(_tgo_TcvgC@y zG9G#&N&deW<#XS8`1|s_v+&b3{Yu0Q# zc;sk9^RZ*~E^C4OISO_mj4r1kj%vLa3s~J$GPlP!u(B=(c;Y>PEI&akXMeIDt*Zyz zbl%E89*Dn}a-$}POrO;!>(^g?%Deu}lgN<(J|=JzJeQ3c>3Z_s{kkuIzt=F^kw>q3 zhx3^=Eyz(_yL@4O2MJbR46YaTyGn(>+=T?$N`LJFXVvl&m%}@F@cegjoj!|pQPE9g z>(itN(dxBWQcD=W^O4(aGb+8P^bh=cQT2!1`oDDtI>+^&PL=(DTmuZ*K`*_iKIu zTs~5i{oS_oMUQhYoL{tQUMTM<|1jTcbLL);df2Py=+QlW3_G*@_>C^>m#?3Lj%7Yx z+pqRp=E;3h%YrIX^vNme>eP~oq}|@+?lp1{(4VCJ=MNlf*e?&L+ZWM4+>{h>1{GjHcG#!w6f zh;yxKo5?%ZgHK9Nj4`V9?D_PQXG%}V4JoO48EQjf-sex~^lQ5?0b~+&$vPdci%-zS zt6h`)L%rhUTU;Y|Ekkcgj>O-7NCp;u{Uu+S*pOBpD|aWdXPyv*`JD{SdU#GSW`Q0g zEA-K@_@!sAT&llYch8V!hnQrYUf7x2JY>K6Y!T^NPex28{Ai*CiCLU6rM$4JN_BeY z$?Yu=yjn#fSC9oX@|peK@q_ae=2M_%Hcwu{_yS68RyP7SBeoWZxj)rmLnvZQg_u+`PIp|Jt~u+^2P zS}{#ZyWD9x(w%O=e<|%pQrc~<*zq>)=|(ASktD@&Xd%4{j}!XyPw02F93Fu+@WG5j zAFLEU2bEMhQ8FRF-3a+jT~?}3DHFnu#+(3$+ck_(Gs%a~TZEJK=5bOU7b^=?S`;e`ECWiv#nD%ZP#s9S~oM zaZ!@C_Zz3c$Vh*^pM8pNUSL_YD4^eKJKZ+C{pFh$hW<_6q@2AkU0YfD#GCX(P5mq$8*YW@*yQQ~5)S zhA0$r7C5sgj*r46!OU&Q>G|v&cYlDckZloK&N(4uZ6st(r9;k;@a|uaNu6JNF zFmm1Frn&(XpdPj?5UT zb`9U`J?8m=mL5WgNz5i{}KC#x<2fjW-^P{gO@XJ_T7$x7sVHW)oHTIIlvZ);Gu%Zpujx9iuKtdOL{jt{{$o-ygumdY*fA)f%dX9o_& zBmng3WD33?Y9MZ5^8iohpB#OE@L+%>6oVg=_l;miHS#o$bYa}KItMIMW9K7;xGEk$ zBJZC)5#Y8@Akt19-czHBypIqg1^&K09)FiPmo{w0@w5x0$LJ$DCOJkI8-r_*wlwTJ zQF<0$ZX{Pg^VD37;Y1szi%@Px%o2uX;~lJzl3|9+1_(XD)v9b2ziFGz<$CPe<`GV< z*AE}Q9X?|6)EL1dC#*4N&v~#q%kk-RUap+CC#Nwi$3xyWoroM}w28C7 z@vYdD?CWbke?D`zAANrhAWasqG9Zf6{vYlI@MVCd0e`!DkoTAUC0xE-QIXu_TVb!< zI{O>MtR*m8|Hb8GCznKI5C6?BqC>DSG9o!BJL0$D;KhQ5mfC0}BNZf+hH`IZ4L|$U zE;1)DIWmG=(fsh2mJQQLYO#Zx z-evIiEW&Fn!X*iLSuPO1I2-bXLVRW30yi`Lg(0B0?gZt&17r&$zO?R` z3yc4DXgk7rBf9&$%@`M)Ao5v^uj7R9vFfoCaw{Bxg}sI`_zC*m0dH!@3?(*B@CZ!N zg8)ZP${u>iAHRt zPD?bTt3nxTH9~>VmY1BUWE*zxZV(7($pXo*>+bE1JV2_JrX?EXC9D7Yu%8@9pdlBZ za9;x;dbd5ly#RLDyL0#mF)LHnSa+HHtp}G`O5L1oswgo_W)Z9*Kna4Rf}8kLO|s0=iUZy>Ij|*&glvL4n7jlJ z1_1}!KWiObAz1hw*zXZ-wd(kUA-aBSNX z_EqD0Dihj=$;em(S9jFy#ENaP@zO_bo+o?!`P~r^ftRcn_Ygp0f z=3KYt@+8uA5cy&%UDZC)JfWwSJdwxg;Wz$7RhW>Mke4W@z4dfix=Kr*m?ylZtIQ+G z7q>~*Czrp2W#Jc+-nN(Y?erW2rM_hD4g8T7@CB|5#4EHfU{ZZqv9~zupJn=;wWT*p zy{R{Yf!B9!dmXH6+Z$x0Z<{0M&^8)s74#r5nW18D>P@_52qQwm?^tn`IE(4}rv`-g zD>|EVVJOnqgj9Rvcx1cA1o_Gr&(tM@9AO=ej@HJ9C&na2>!VX(>dw?20e)iKjqD0T zVXm>nkb_>8)XPctN<(n1ceZ@Y9t><%L_wP))5FvO`XFt1!1i?!w13vX zRL^uD&{b?m zsE8{I$@fj4Tue`nby^w{66bFSlqY9~iq@99{MnH$Ik{yo5m=NYOpj%AVaH?z~S zjYT=8lB5dICjw*vBRdI%i=;*x%-LW}r=)*%=oLs_7Q_@nQK}uCwGBFJ8@A2HI=LO| zW*eaQB$K=eJ}naqbKd`JiB&RMqyU(-y_F*i6m3rMgyIyC$f;1+f;wJ$05XcxN=sF3 ztqT-yT5&$9op3N)vC24ug!YsvgEzcsCHZLkp?Q5D!^RpERcb0bzMT#_$oAMgXfx$- zm9R_qtU5+*sagJ`4Q+}mho8_ zbGeZ-80ZpVDthJdLIUFcVC^l(Y0Lg|TEMN+EuCOhd#$FgEuGNSU;|EGW;CW5z!vF3 zc99f#+Mu#?g`{BKgbhMGx=y1S(Q!Q_FHZ-3%Nc3BEZW!-Cq*9(P%EEn%qEM?=WiGP z?{y5OP29{SOJ>5{GjqxLZz017+dCT4Z_h8838)LiAj~GH(xRP~2w32@0ushVav((p z(2Yq(Tdi>t)b}mmfwlJ}Q1Dv^jH}`+O(s_VCb>OK4$Lz|h$xh32A{Wezz02Hmm)1MffEOA=EmAcJBCV z9V#tb%XcIc`d6z-8oRf;VsD0!l6QtYODkgbrejsz!V(a!qBFmDMaaFCdM)B2OqO7q zsOQL#$>6K#eTJ``GoWaL+VY6q;=X+=#LU7R+NLqv6H0g1U@*uUQ&ThaLjLnJ>qZMA!nZwtCM6f7}u(97v234Al5%M4brS!TxfpDS>9)N z?(z=I7szC^Sqhr*J*}0COWAp(jzX>jG`TVI{K%lpAhmdwnz^xLGr)yj00aaj(qUnA z;7$O06?Dl1>U@fBJx-wh{qY{6mOq0($1yg!a2zPEg|t_EpW>u$JTj~p?u_-7{9QsdcFNh+Bp!(G7(vFs`Avj& zTkeI~mLU_^Pugu6Isx6fndSVc5N7nw-JG>tXFtz-hmUuC;Q8&sqjiUzrmK>Gvtvfl z>3X^2jQqka0^Y(>E#rHtA?9oKk&{Ku)qy4RYJ~;0<4)**M~ki}P+A$MzI-w~VvitB z&IepiI?<u%IUUfEqE!2vu!er4ehS8HqUL z=$g~3nl>F~*U2eAb!#^QX^{ zVaHCMC-T#04tbs0e{$~yguEsw&-B0i%sf(j&Uxx~1^BBYVof zxgjUFP+b@2o*;<6uJ4jX#&jgB6O`S1mRO}pX~~UBZbR_)ox#z$)dvfAR}^K1`=G5{ z1BFm0IyQ-nWhSsLG!MZ}R*qJupa`@!jjm<(v)9QwPr8md%eIg_-1(kdlW)oDpy0%q z9ek`yast9MOr;ss>W&jtW`e8$OIC{$b&0xIULPHk9H(Bm%^Nz--K?y7x|jIXRumZv zb9r3=v)>5*1bu$iRYR>jr7$HYOGQ3A&vhJ~8Wy0BP%jAd-0YJRQWGweYSR*<08r6d zSw}?01%&QOHH7f7Ym*_;lbD^IxL18aS6y~YwL7wKM-K0onUtET$}*)FX65OU@_6Gh z=4adVI>w0w1*VmC0PT?&l&ne!NbrqTdFk_Z?N;Yxrx@}C;}J-i#_M3djWcAWXP!tu zAnax{PD0gmI(NjoX5F$)E2b~3^Z2T$C>7IJ(`hCuC?p|B?HQC)3vHs#tf3?&9||18 zP0r5%=krc|R%(_mOYY3Z&ehJ*&P@!rJIfXmTSG-{VtSRSEF)V^7Bz7l7nK^bJ=0I^ zxN_dmnfo?e%+Eywa+>l~sOjLR7I}I>(SP z{iO<76Br^@h|;lVH>;SATEU{+Dix=xQcJahp!1|yK_3IUPPGyYoK_26y;r&y`_)!T z)gegLk%8(+$thP*b3K)y73L1SN{1T~X!MRFapGpU)=-GpE>QJWXe)EeE16 z%oyou7*Uy~Ys1j1+_`@Kx0-*+SFzs1S4^0-aMq<2KY0I&)tbKNKf5ynP#!BQw9T`I zQDzhUNR1;C$OsMIr$llZ9z|x;tlxpp8t=GhAZRG%$JyP_&ir)q>zi}VjM_Z_tJ_KE zMNh}yLJrq{CrlIhNR7j!62POF0LGb)7x=RH^VJiWSq6X`-M`&3`+RtL9|X%GH0u56_?fAbltF z7Z7+hjdNo`9R7$=TFb4jv%gUPUx`0+o!t#(4DygHSV}*bMr6yVY&iK~nT%|<9Zu|- zXlg%?JY=Q(p0Kx?T^Bg}c&v^Rz}0H?lJ-OprFk-UbMeLLyn`rbr!QVKO>m%HWYaDz zYULedBHMc5B8=i<4JmJMJ-_G7+B56UtUPlR_SMyAPyalU42(UyjL4}RQ4QP3HtKlR z<;=csmY(a8e0|1UGP(5hmBU4sFNYN$xq9>pS$Ji|<-??NpW^-3mfVs@kR$31(^Kv)IA;lnwp zQM1C=H$>}?#v$>&XsnLAcAqURjP?`A!8Fb%5YfOBq}C5@u$9%9Kgx41xzoRi9>sK zlmYIjOlB}v@rGJigOi_@LyWHCBFNm>3c$tfh#UJSbpu1ypTv!!ZdYaEDY}pQW=#nQ zw5+Nq4URG8CGUZ|{S!t~bi}t2fsQ=kcW(KeY zWi0+M1wl4nip9lGi>4HTqyGx*-FqtjI3*4)h<8b8Ef~$Pb5#6H|Shv~JEQ!Hbfi=jR?l!JyQ3CxC!6zP)(PvcoR-zcmb>QgHQD(!H7Z&oy5czF zN}dkYGqn8j({E)r!Zt6_3&`W$lXFVe5LdP>hgT{(UWvuKvkPi!Rbr*(72<~V%s)@h z;Ip6-D<@tu%M^1UHCVgmmbi8>f&byeUELqG9peC3$5WhBv9Y)=m?d(cz-Qhnjg?*zFE-a7@+qCwx zQ3uxjBHZeD=TvNE$2;f3lCBiB?5LHVsl~su5>md249Fwz*D1uUWJsGAFcL?Bj0-b| zn_-;RR0TF3+uwMM2U2+;qBfehrnvJVY;1fÐT?>-5aYhU|+1c>&YMpPK5x#-mbV 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'NS^o{z1ZKlHsAybrl=JE7AP369ntV%vB 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 CDx5C> literal 0 HcmV?d00001 diff --git a/docs/assets/fonts/fontawesome-webfont.eot b/docs/assets/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..c7b00d2ba8896fd29de846b19f89fcf0d56ad152 GIT binary patch literal 76518 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%0DyT{kunD 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⋙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 z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/assets/fonts/fontawesome-webfont.ttf b/docs/assets/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f221e50a2ef60738ba30932d834530cdfe55cb3e GIT binary patch literal 152796 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

=v_rA!CPE#mM^4@)}X7qf;At+v)G*FZd&; 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 ALjV8( literal 0 HcmV?d00001 diff --git a/docs/assets/fonts/fontawesome-webfont.woff b/docs/assets/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..6e7483cf61b490c08ed644d6ef802c69472eb247 GIT binary patch literal 90412 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%0Ded40&XED0GYFoIh+AV*?9!MR5pBW?X_8Bp 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 IH>08b4`|GD*#H0l literal 0 HcmV?d00001 diff --git a/docs/assets/fonts/fontawesome-webfont.woff2 b/docs/assets/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7eb74fd127ee5eddf3b95fee6a20dc1684b0963b GIT binary patch literal 71896 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≠dR0E9ICQ{-tcR;@{R^I5P#1GUH!p=-{c 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 literal 0 HcmV?d00001 diff --git a/example/assets/images/3953273590_704e3899d5_m.jpg b/docs/assets/images/3953273590_704e3899d5_m.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/3953273590_704e3899d5_m.jpg rename to docs/assets/images/3953273590_704e3899d5_m.jpg diff --git a/example/assets/images/500x300.png b/docs/assets/images/500x300.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/500x300.png rename to docs/assets/images/500x300.png diff --git a/docs/assets/images/android-chrome-144x144.png b/docs/assets/images/android-chrome-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..1f191ec7a88bfaad4b9fcd9a81e37c97afefbad6 GIT binary patch literal 1164 zcmeAS@N?(olHy`uVBq!ia0vp^6F`^)NH84I-J1fWSkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`vVqXJ~h@W)3zEhFfbc>x;TbZ+P9iFjgE?GJXPUf$@J-V;(~2_EEDqhmt1Cg%8_wj%Huf8C5{u1x4StUzT)sa zj4il3Rb7GCLF-7tZJ$225CuL3X_hPD4r%h!WE(%UJyq;eQ)RBok>KX2D%)>2@oDkq zf*!UlnM_lK*Q;(x-jy3BKDRNTo3HM)*24>H!ag>hyK4IKbnxD-f444T{%JcsqhSuEMuFtS_h=)vEeFbcj<}FgNJ(JBMkjO)|Yoz6<@F%JQPM$kh3pbzdsW0;Zio zx=Pzp>pEHHzOY@_#o)Bfndya8r&^SZ#hmRb{>973Pi<~WCBEjaXuC-?MZ=CfO78)jH%+H@&{N?~_%6nE8|33}|e^+eHc$g)?E>K$D?eD+F;l4jpNkMtWO>TjY zYZm`z+_n9Mc~ZvmPbTY2$-(kW+VIaIHRHDo$iQQRJDvhnFg#zwYp+t1}VJh9e} zmNLJv&rbI?x4_SThbJB735ip_UDud) zzqzA7p@=zA-fuy0=(mgd6Am3aS9^lv%LmY_j&U|N3>fPk~;mC9b&It^h7wlP~2^vhP{bj8$-||<=J~0QFpHxd+BT7;dOH!?p zi&B9UgOP!unXZ9}uAya!p^25Tg_VJ+wtUDIrp9GLl)=a)>1Ui>tx6W5 zLZeb?ky>qPYn!5VibtX|>k_6YmkEoQ%4~MdIe+!X`Q!WE=Y8MjeZGIb=l#KV2Zv;6 zW(WWzuBW@d4i*0yecghTTbufHfQw@BSOC{g618D?9j8Wk`ttzN*8!ma1o)_v&{2S7 zI>5LHfLRJ)A}PD$w^?Uk!o4}}u$XhQ?Y@rbNx3`^Jr!=n(slUf#W(E%@HSj`7C*Ij z;_R16YG-l_51adByZ6Ic(igO^$J?4dU^refopPdyoxRX*QXn8P-(_QiQ*jVLLd+fjW z%%2Qn$-0l2MWsiV4I9xAg^!UXt1lG-K~z$+-yXXPM8(x`oa`1?5k(dinyX6n0bgq2 zT=YgGR6+D5LIqJpf@UlBCt)TOVnkT2x|-C4L?a50?0eSyMIb(o+(&m3~MkL%Y1 zfALYXG@sa&-=McKpea26h9Jl4;iF$Al~WGTMrNmD37{^8yX1umXSFtab48BwySZ7cvVV3&%CSeAOBH^hH|%R+mL!pHs@;v zHnD2ngMh}Co)}0_m*$(VDwsdG5lv3U^}M=6cK_q)8H#G<+Q@@hgA=#LYe2#n zK3!Na-=#FS(NnbAHZ6~A@ULs6CaW^#m4Qh9MIZzilJBxj2wXl3mE@t=YoT(h%;d#-BIhW_uv#rP|%PKA(s z5Sbqay847IjTS=K`Wip#7C05l>dwv_eoXXD07BZ4{DRAko~E#mA5d2EQe?9ii}HA@ zyPjJ6w(1v|L;IHM@*QKlO-EeY_3Kq25jZF-3>AXW!&dXLDSP(`W$zO~d6PX++x29u z{xlMu>r_(y+tK;&utC*_a!ATO%h5Uekq zfhdf3$_wO=Yd&O7Bz? z26456k9iBew^M=_lSsn+a|`EzU^=Fx?u*wRcm&P|Uiwh9eKulb@(QATrbz#Dz=R+w z=jOTGA>7fVaj^=G`>n&%Jm@%T)LU+i{E3c_-I)4)`VkUpe0Z_Jm0`#>rs3t=@E(}Z z^XYjLUvVvVwBCLb<-@A-v5k zAgSh;<1d`|2c^TiPD)F!kZ%Srx)W9h``Mv-MVh#r!Gv76@(`>uV<7u}xG=*6b@V!P zBi>KTh8+>F) zTm5|Sk3k3J%0YRCu1u|@9zoK`FsYaskto&y*wgL4q0t>^b_~9q19OuzlkWHx-JVIO z7oE&8_$;tLJ~C!++W!x{?sUDW3+zhg2TA?IQmB%|_`NZ4VyZMvBBsVjq!9qAWkWMd z^b-QDt)KX`wsBwk19lD3CW5$P%?j^ABkT&QJL=FBiCyzEpW52}{9ny&%@)mit*EEm Z%Lc|xmPu#Wj;C}dfa|fty^bxC{S6-_#wh>* literal 0 HcmV?d00001 diff --git a/docs/assets/images/android-chrome-36x36.png b/docs/assets/images/android-chrome-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb8625f93d3b433fcc0cb7040ccd9eb76b37827 GIT binary patch literal 459 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>`OBp8llA9n##Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4@w4O{?@9K)Y2-Tq8Jc1ICAEQ%n|m}4IT@;^cY@=3zmFxGMx&vg2B_( K&t;ucLK6Uv6qw5Z literal 0 HcmV?d00001 diff --git a/docs/assets/images/android-chrome-48x48.png b/docs/assets/images/android-chrome-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..5f2d6912a251dab4bbccf4c0d48205b879ed9bcc GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZANS%G|oWRD45dJguM!v-tY$DUh!@P+6=(yLU`q0KcVYP7-hXC4kjGx) z>Fdh=fJK;3jrGd3twunhqn<8~As)xyPTnYZ$biSSe)cWdwX?p&wObi)V2UkUkj$HQ zg6)l>jJnaG_TH10jY|K|70sEiK3`e###jGGfd+PN>)+;FW4PfWrq67_=u@`b_8D`r zainHKz`Z?Zn5%woSoWP^QH~;K-+iX#EDU1rRN1wdL@cHrN@Li}@}gn&>^m<`Ggx|8 ztl+n)pI(w(+7Rk^jbTpZ`=`(5cyk^1a-I4u{+`}bhDFJ17#wa{U-zDtF{dL+UU8#p zR*aHT_u8ZKTP-)d-d@GvQPp?TY2GG9podgTTq8Jc1ICAEQ%n|m}4IT@;^cY@=3zmFxGMx&vg2B_(&t;ucLK6VSKf4V8 literal 0 HcmV?d00001 diff --git a/docs/assets/images/android-chrome-72x72.png b/docs/assets/images/android-chrome-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..681dbe7dfc9693e4729f7d79716d8f99038cce58 GIT binary patch literal 670 zcmeAS@N?(olHy`uVBq!ia0vp^9w5vCBp3?X-pmG4Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4V?cNT29u)_G@UI$N4 z{(x!4Q>IOS!o%pO+HG~&c*R%0Cmy?}m8<&m+^T&M>HlxfzsO$3S+izM6LVuVTCuHQ zadQDv$h!x*)Em|2X>LnfJuW4`GC;L_A)3JS@9DK`JFG%hTi~Q$#vH0j(!;cm| z$2B|VCD-Nu{V2S2xspcZqU&2``|v7kX_~a&Z%I}L!$Mh=@@L%<0h_XQ6?D?IG#(RVmSl(vFk51)aKcgB-s6;|o7tx? z|JsjR_6G@6I3CZ4WBhiJ#eBsn9qy)uGeyN%{wCVaTH0`7&42c+tgKyg>llLmzxevo zK>j!|gjGviBT7;dOH!?pi&B9UgOP!unXZ9}uAya!p^25Tg_VJ+wtq`cMD> literal 0 HcmV?d00001 diff --git a/docs/assets/images/android-chrome-96x96.png b/docs/assets/images/android-chrome-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..1a40b1d252c19a2e77c2d6ae2d9e0449a7552ac5 GIT binary patch literal 745 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/apple-touch-icon-152x152.png b/docs/assets/images/apple-touch-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..a768b28f3ff27c53ae29be25eb5da40d7fa00d0a GIT binary patch literal 1229 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/apple-touch-icon-57x57.png b/docs/assets/images/apple-touch-icon-57x57.png new file mode 100644 index 0000000000000000000000000000000000000000..c726de4cae2f5c9a3632c0d73a30633d2e357418 GIT binary patch literal 595 zcmeAS@N?(olHy`uVBq!ia0vp^mLSXlBp6l}--!fLEa{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Zzmt*Z8qR>Eq=R@+raT%&qYqHuV;Anmb9Nc zs3Y5$>_642nOnCohvVUFXK&SgEiyU#CD@Pe^qswBh4Ac<6+SI(OWMt!8n908&{5a) zXX`w`slY!!VWqHA>0FiHExT%^M0Xt76!~f8KCf*CzF~%s&F)>CetC(FTcFX7)s>et zC*6I{qj_9)8c$q{4cDdQloi)z@2=WBAw~VS{NlNvRi-Omwee`+QQTORE@f?w`3nJk3}I7zU~(t`Q|Ei6yC4$wjF^iowXh&`j6B zMAy(V#L&db*uu)dSlhtJ%D~`z{3c@*4Y~O#nQ4`{HMB8t^#e78SA|5B1SOU$6cpvB zW#*(RlvEa^Dr6RvBr`Bn%z6BYhodk|L*tbH=`)^BgBX~Vx%HB{g_VW9CyOu(E4Vb6 y98O_Y-W;NE`o@(LN6s9PIl_Lr!DE4!9>Xhf!IDo-rc;4dFnGH9xvX!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvnvo}5L1%3y9>kr_Wm>bfjssS zPhVH|2Q0#TYAlN z%PQlefbYaq?WFm$Qy1?j@!8GP_Te6H#l9If`*t49IP&_KSC`N+f$wQ^_6mKRJ881u z;(%L%zum7b>5pwayykx57asmE4cQ-mpFheTRrp2ERF3D}zN;2LtPZMM>=!B6t;=rQ z_Lh~y=-)+$(m(v`0+ahIm^S|qDlb#WnF|a7)e_f;l9a@fRIB8oR3OD*WMF8fYha>l zXc=N?Vr6V$WniLhU}R-rVDzJBFN%iT{FKbJO57TpmzppFHH24%M3e+2mMat#<)>xl zq$-qD7Nja<7L+72FjUNW{E3I7Fib<^l>g~7o=<}qn3cKplDUPIg}o<>FbgZVG?*Mt wVOHK8qHy}gl@mwK9FaM~e!9V9ftMb`D{;Y+Pfn&&fmSehy85}Sb4q9e0Kc-@!T!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4V?cNT29u)_G@UI$N4 z{(x!4Q>IOS!o%pO+HG~&c*R%0Cmy?}m8<&m+^T&M>HlxfzsO$3S+izM6LVuVTCuHQ zadQDv$h!x*)Em|2X>LnfJuW4`GC;L_A)3JS@9DK`JFG%hTi~Q$#vH0j(!;cm| z$2B|VCD-Nu{V2S2xspcZqU&2``|v7kX_~a&Z%I}L!$Mh=@@L%<0h_XQ6?D?IG#(RVmSl(vFk51)aKcgB-s6;|o7tx? z|JsjR_6G@6I3CZ4WBhiJ#eBsn9qy)uGeyN%{wCVaTH0`7&42c+tgKyg>llLmzxevo zK>j!|gjGviBT7;dOH!?pi&B9UgOP!unXZ9}uAya!p^25Tg_VJcwt6%tVrlvu7%P?VpRnUkteQdy9ykXcZY%)n4F=kX^Vj>0ev zjZ^-o&v-r!VqjM0)=TCVRu=Z2EW#|T;L>1nIE7hxbBMy}8&^&oIdeqj2>a;_pj`HKJm literal 0 HcmV?d00001 diff --git a/docs/assets/images/apple-touch-icon-76x76.png b/docs/assets/images/apple-touch-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..db89393252e522c04e0fb1c6e1a2de06689938a7 GIT binary patch literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^J|N5iBp4q3;rkAxSkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`vVqXJ~fub6I+)sFff*Rx;TbJ9DX}Zx9ErgPpfNnpX%x2ozCcf9?xgZ$jbWl^;K`oh2nV^Q`#<^ zO4O&iQT4nOnjV(eM1 z)B3Wsk^5ZHji8GcJBx0Jge2&m5wD-G6vmrltJ5yIeE0ryicuWQKD=Cs$9^RpJ}uL~ z)gVDi_~47gEz4hPNOUF2^1pW3@WO15-c_R;surGlySNe))g8S}H*j_yF}Qx^`jg13 z21Pwf48HlNtM+uNY&a|@V$NzZ>F_)ELk~WFVzT+{Z*3y0F7jgk;aRh0{aaSY(DvOs zTV1;+5Ev<{C9V-ADTyViR>?)FK#IZ0z|c(Bz(m*3GQ`lt%Gkonz(m`?$jZRL=ts|9 z6b-rgDVb@NxHUL0HDLs52(Jo>C<#g|S12gTPs_|nRVb+}NL9!zC`o2usF?Hk6AwpW zn1;qF|I=qYp9V27D|725a|bP0l+XkK>^v8# literal 0 HcmV?d00001 diff --git a/docs/assets/images/apple-touch-icon-precomposed.png b/docs/assets/images/apple-touch-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c379014fe7b5b18e15180745dffbcd0c330ea4 GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/apple-touch-icon.png b/docs/assets/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..51f879190642d89b76de187ab500ad6dffa9a7f3 GIT binary patch literal 1464 zcmZ{kdoL$H-;OxF-yTlFMMsSht^y+_DYEh;2`R1boTmK7Js{&>Yw*#dN^Gq7#7#M7O9cevQN~HO-7>2O@BK697t1iDb zuuL?&{Zi^Xp0ZLwZT3W`zhG5*Yd+!T=e=1wh2w#pK6Fyj(1ogG#)Ze)Aa)0LM;bNJ-5`m~kq#Tf7!4Zh+-W`w=dC?~8LYplW3 z4hqr7p4bdehQHM17=w(_AmZJ=hY;pe_YT2BKD9+G`?e`AQHdTG@Z~y zc;mFwiam-LWUaWIWvfQ5ef<~wDRL7kIJ$7fv6yi4ocjT7k=6%O zw18XBs&e|MoUrLc{B*8N)0;Xyh_9qUg)t6*a$ zUfe>&^&o6ItoN;&XPvx~&l{Xf?vT%DPcIIt8!Fl{ZZX^+pQ)@~6xAT4!#`|l{?zbD?nN;IAJL|DaX>ECHY?VI zy5ikPDqH8}Erj^uP{JU2ky2tLJ8mY!WUDcR#vdEA?_yi=0}W*G_!Yfb*uq-3tUyeN z2k8{X<&5moo&Aytzv!Ev^cuB1?gYtt_ZOB(iF#$X+^p6RHiK~a)0Srs|E6@&%5){( zmHyS?xJp%B2xj!}y3BL@#_?bMFMKc*5@UrFcv)9VekDMc=@`I_pfYLr@Dnr%05goK zr4a^eWNPJWip87b@EEKC#te_an0-3i@*hELd_+`a>i-Lfl~^f>z(375fJvq%>wqWX zBcozyI?Pm%rV|A+!vP?rY-U+eK7pdI-|N};*!2w=kVY#Qhby4aDEAAyrBOO07Pc)y t8eQ+J)AxM1yZv#yX1iP;%Z2A=49ux0F_#@IE=pPeu8v1Ye>j9@{S6yPdQAWT literal 0 HcmV?d00001 diff --git a/example/assets/images/bio-photo-2.jpg b/docs/assets/images/bio-photo-2.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/bio-photo-2.jpg rename to docs/assets/images/bio-photo-2.jpg diff --git a/example/assets/images/bio-photo.jpg b/docs/assets/images/bio-photo.jpg similarity index 100% rename from example/assets/images/bio-photo.jpg rename to docs/assets/images/bio-photo.jpg diff --git a/docs/assets/images/browserconfig.xml b/docs/assets/images/browserconfig.xml new file mode 100644 index 00000000..ff77e234 --- /dev/null +++ b/docs/assets/images/browserconfig.xml @@ -0,0 +1,12 @@ + + + + + + + + + #000000 + + + diff --git a/example/assets/images/facebook-share-example.jpg b/docs/assets/images/facebook-share-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/facebook-share-example.jpg rename to docs/assets/images/facebook-share-example.jpg diff --git a/docs/assets/images/favicon-16x16.png b/docs/assets/images/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..65909d64448fcabe90993013cbce8e1343e596e5 GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx*Bp9q_EZ7UASkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY0t>0)3IFPO6{&;}^Ml;rL1!tlSn|IB_MkG;gx z*OmPNi!h%W%i@WxOMpVoo-U3d5|@(`6xjd#*Z(8$BmMtBzhJ_TdeIY1f(48dL?*0g z;M8b7(h&84>5vOY1EU{fG8-GOz}kbFIXtBjOcS0OGuWni?C-Xfz5z5&wZt`|BqgyV z)hf9t6-Y4{85o-B8kp!BT80>!SQ%Sb8JK7r7+Dz@82#u0c@Ci=H$NpatrE8e=cOi$ zKn>wlArU1(iRB6fMfqu&IjIUIl?AB^nFS@u3=9=>9)IHDC=AokIOTu(jOWuJ24-b$ zy<~1-Wnu5hBFw@HE)6D!Q<#-EhbWxBaplC3Ge=~Ou%B-5Sm33{@Jd{;RG<|M Mp00i_>zopr056z&dH?_b literal 0 HcmV?d00001 diff --git a/docs/assets/images/favicon-32x32.png b/docs/assets/images/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..013c338f9cfda013981c699b12c95d1e92b97a43 GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk@BpAX3RW*PVOS+@4BLl<6e(pbstRTr`k04(L zhAK4%hK3dfhF?ITh8GMBr3MTPuM!v-tY$DUh!@P+6=(yLU`q0KcVYP7-hXC4kjGx) z>Fdh=fJK;3jb-t~)+IopNKY5X5R22v2@*yR{{R1<&@oR^v~0yTtJg+!DDC6+4`6y>L7=ASkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`vVqXJ~fub6I+)sFfjIcx;Tbp+ zs>jW%CCI6(dz#Zo_=0fG@>>0ZlJoK|^BJ@>$>00*gpnzG&zb407A%u0{%SKc)-F46j5#Ki@x01Q*Sixp zX!CKnT;J3n+xhLYPUc-7ebxrPJyjG`@!Dj?LDVF#z=_eVWR4El2uA2NQp z^yuBT`MY`*4suBA1onqx1%r2f43)t1M4R-ruj(@FF=$`M_$O1NGM% z63tYYIXrkS{7%2`=gcEesVv6y=5O-9HG!4~?*G5-!MH9$+DbOi;k3JZQ2YinT?W~+ zR(HR%2G}+%h~f%p00p01@ck1X_)6c@E8Yf1mTHM>L`h0wNvc(HQ7VvPFfuSS(={;B zHM9&dG_f+aure^wHZZa>FfjVjvlm4}ZhlH;S|x4`&Pz=gff~ZALLy3n63Z0|it^Jk zb5a#bDhpB-G7CzQ85k<&JpRPPQ5dG7amxSn8PBId49v>hddb|v%EI20MVN&ZTpCOc xr!XsT4pBILI3yGcGzq-==FMNx7+A;yBG`xm`o-PR!^r!fX}Rb z_l^g7NYk5dz77&=XZlm7(fXX-cmLn<5EHVE`DIY&>!`eSNph@ zlrm-bUursFIGFf6-JRHjUxH!<?a=L%Ht>0o)C3Os)sKIiEyal-%_4pzmPly$r76#c`UP(%6Ra0J}{u>5< E0bfZZ+9T*w-y8qhW;yH81O#= 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 E4=bqP1poj5 literal 0 HcmV?d00001 diff --git a/example/assets/images/mm-archive-grid-view-example.jpg b/docs/assets/images/mm-archive-grid-view-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-archive-grid-view-example.jpg rename to docs/assets/images/mm-archive-grid-view-example.jpg diff --git a/example/assets/images/mm-author-profile-reddit-color.png b/docs/assets/images/mm-author-profile-reddit-color.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-author-profile-reddit-color.png rename to docs/assets/images/mm-author-profile-reddit-color.png diff --git a/example/assets/images/mm-author-profile-reddit-gs.png b/docs/assets/images/mm-author-profile-reddit-gs.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-author-profile-reddit-gs.png rename to docs/assets/images/mm-author-profile-reddit-gs.png diff --git a/example/assets/images/mm-author-sidebar-example.jpg b/docs/assets/images/mm-author-sidebar-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-author-sidebar-example.jpg rename to docs/assets/images/mm-author-sidebar-example.jpg diff --git a/example/assets/images/mm-breadcrumbs-example.jpg b/docs/assets/images/mm-breadcrumbs-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-breadcrumbs-example.jpg rename to docs/assets/images/mm-breadcrumbs-example.jpg diff --git a/example/assets/images/mm-browser-mockups.png b/docs/assets/images/mm-browser-mockups.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-browser-mockups.png rename to docs/assets/images/mm-browser-mockups.png diff --git a/example/assets/images/mm-bundle-install.gif b/docs/assets/images/mm-bundle-install.gif old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-bundle-install.gif rename to docs/assets/images/mm-bundle-install.gif diff --git a/example/assets/images/mm-custom-sidebar-example.jpg b/docs/assets/images/mm-custom-sidebar-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-custom-sidebar-example.jpg rename to docs/assets/images/mm-custom-sidebar-example.jpg diff --git a/example/assets/images/mm-custom-sidebar-nav.jpg b/docs/assets/images/mm-custom-sidebar-nav.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-custom-sidebar-nav.jpg rename to docs/assets/images/mm-custom-sidebar-nav.jpg diff --git a/example/assets/images/mm-customizable-feature.png b/docs/assets/images/mm-customizable-feature.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-customizable-feature.png rename to docs/assets/images/mm-customizable-feature.png diff --git a/example/assets/images/mm-free-feature.png b/docs/assets/images/mm-free-feature.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-free-feature.png rename to docs/assets/images/mm-free-feature.png diff --git a/example/assets/images/mm-gh-pages.gif b/docs/assets/images/mm-gh-pages.gif old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-gh-pages.gif rename to docs/assets/images/mm-gh-pages.gif diff --git a/example/assets/images/mm-github-copy-repo-url.jpg b/docs/assets/images/mm-github-copy-repo-url.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-github-copy-repo-url.jpg rename to docs/assets/images/mm-github-copy-repo-url.jpg diff --git a/example/assets/images/mm-github-edit-config.gif b/docs/assets/images/mm-github-edit-config.gif old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-github-edit-config.gif rename to docs/assets/images/mm-github-edit-config.gif diff --git a/example/assets/images/mm-header-overlay-black-filter.jpg b/docs/assets/images/mm-header-overlay-black-filter.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-header-overlay-black-filter.jpg rename to docs/assets/images/mm-header-overlay-black-filter.jpg diff --git a/example/assets/images/mm-header-overlay-red-filter.jpg b/docs/assets/images/mm-header-overlay-red-filter.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-header-overlay-red-filter.jpg rename to docs/assets/images/mm-header-overlay-red-filter.jpg diff --git a/example/assets/images/mm-home-page-feature.jpg b/docs/assets/images/mm-home-page-feature.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-home-page-feature.jpg rename to docs/assets/images/mm-home-page-feature.jpg diff --git a/example/assets/images/mm-home-post-pagination-example.jpg b/docs/assets/images/mm-home-post-pagination-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-home-post-pagination-example.jpg rename to docs/assets/images/mm-home-post-pagination-example.jpg diff --git a/example/assets/images/mm-layout-archive-taxonomy.png b/docs/assets/images/mm-layout-archive-taxonomy.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-layout-archive-taxonomy.png rename to docs/assets/images/mm-layout-archive-taxonomy.png diff --git a/example/assets/images/mm-layout-archive.png b/docs/assets/images/mm-layout-archive.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-layout-archive.png rename to docs/assets/images/mm-layout-archive.png diff --git a/example/assets/images/mm-layout-examples.png b/docs/assets/images/mm-layout-examples.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-layout-examples.png rename to docs/assets/images/mm-layout-examples.png diff --git a/example/assets/images/mm-layout-single-header.png b/docs/assets/images/mm-layout-single-header.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-layout-single-header.png rename to docs/assets/images/mm-layout-single-header.png diff --git a/example/assets/images/mm-layout-single-meta.png b/docs/assets/images/mm-layout-single-meta.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-layout-single-meta.png rename to docs/assets/images/mm-layout-single-meta.png diff --git a/example/assets/images/mm-layout-single.png b/docs/assets/images/mm-layout-single.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-layout-single.png rename to docs/assets/images/mm-layout-single.png diff --git a/example/assets/images/mm-layout-splash.png b/docs/assets/images/mm-layout-splash.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-layout-splash.png rename to docs/assets/images/mm-layout-splash.png diff --git a/example/assets/images/mm-paragraph-indent-example.jpg b/docs/assets/images/mm-paragraph-indent-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-paragraph-indent-example.jpg rename to docs/assets/images/mm-paragraph-indent-example.jpg diff --git a/example/assets/images/mm-portfolio-collection-example.jpg b/docs/assets/images/mm-portfolio-collection-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-portfolio-collection-example.jpg rename to docs/assets/images/mm-portfolio-collection-example.jpg diff --git a/example/assets/images/mm-priority-plus-masthead.gif b/docs/assets/images/mm-priority-plus-masthead.gif old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-priority-plus-masthead.gif rename to docs/assets/images/mm-priority-plus-masthead.gif diff --git a/example/assets/images/mm-read-time-example.jpg b/docs/assets/images/mm-read-time-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-read-time-example.jpg rename to docs/assets/images/mm-read-time-example.jpg diff --git a/example/assets/images/mm-responsive-feature.png b/docs/assets/images/mm-responsive-feature.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-responsive-feature.png rename to docs/assets/images/mm-responsive-feature.png diff --git a/example/assets/images/mm-single-header-example.jpg b/docs/assets/images/mm-single-header-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-single-header-example.jpg rename to docs/assets/images/mm-single-header-example.jpg diff --git a/example/assets/images/mm-single-header-overlay-example.jpg b/docs/assets/images/mm-single-header-overlay-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-single-header-overlay-example.jpg rename to docs/assets/images/mm-single-header-overlay-example.jpg diff --git a/example/assets/images/mm-single-header-overlay-fill-example.jpg b/docs/assets/images/mm-single-header-overlay-fill-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-single-header-overlay-fill-example.jpg rename to docs/assets/images/mm-single-header-overlay-fill-example.jpg diff --git a/example/assets/images/mm-social-share-links-default.png b/docs/assets/images/mm-social-share-links-default.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-social-share-links-default.png rename to docs/assets/images/mm-social-share-links-default.png diff --git a/example/assets/images/mm-social-share-links-reddit-color.png b/docs/assets/images/mm-social-share-links-reddit-color.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-social-share-links-reddit-color.png rename to docs/assets/images/mm-social-share-links-reddit-color.png diff --git a/example/assets/images/mm-social-share-links-reddit-gs.png b/docs/assets/images/mm-social-share-links-reddit-gs.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-social-share-links-reddit-gs.png rename to docs/assets/images/mm-social-share-links-reddit-gs.png diff --git a/example/assets/images/mm-staticman-pr-webhook.jpg b/docs/assets/images/mm-staticman-pr-webhook.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-staticman-pr-webhook.jpg rename to docs/assets/images/mm-staticman-pr-webhook.jpg diff --git a/example/assets/images/mm-susy-grid-overlay.jpg b/docs/assets/images/mm-susy-grid-overlay.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-susy-grid-overlay.jpg rename to docs/assets/images/mm-susy-grid-overlay.jpg diff --git a/example/assets/images/mm-teaser-images-example.jpg b/docs/assets/images/mm-teaser-images-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-teaser-images-example.jpg rename to docs/assets/images/mm-teaser-images-example.jpg diff --git a/example/assets/images/mm-theme-fork-repo.png b/docs/assets/images/mm-theme-fork-repo.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-theme-fork-repo.png rename to docs/assets/images/mm-theme-fork-repo.png diff --git a/example/assets/images/mm-theme-post-600.jpg b/docs/assets/images/mm-theme-post-600.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-theme-post-600.jpg rename to docs/assets/images/mm-theme-post-600.jpg diff --git a/example/assets/images/mm-theme-post-750.jpg b/docs/assets/images/mm-theme-post-750.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-theme-post-750.jpg rename to docs/assets/images/mm-theme-post-750.jpg diff --git a/example/assets/images/mm-toc-helper-example.jpg b/docs/assets/images/mm-toc-helper-example.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-toc-helper-example.jpg rename to docs/assets/images/mm-toc-helper-example.jpg diff --git a/example/assets/images/mm-twitter-card-summary-image.jpg b/docs/assets/images/mm-twitter-card-summary-image.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-twitter-card-summary-image.jpg rename to docs/assets/images/mm-twitter-card-summary-image.jpg diff --git a/example/assets/images/mm-twitter-card-summary-large.jpg b/docs/assets/images/mm-twitter-card-summary-large.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-twitter-card-summary-large.jpg rename to docs/assets/images/mm-twitter-card-summary-large.jpg diff --git a/example/assets/images/mm-ui-text-labels.jpg b/docs/assets/images/mm-ui-text-labels.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/mm-ui-text-labels.jpg rename to docs/assets/images/mm-ui-text-labels.jpg diff --git a/docs/assets/images/mstile-144x144.png b/docs/assets/images/mstile-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..c3d8317699f19bb7a6875c0f0b7d97ea285be984 GIT binary patch literal 1164 zcmeAS@N?(olHy`uVBq!ia0vp^6F`^)NH84I-J1fWSkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{Xiaj ziKnkC`vVqXJ~fub6I+)sFfbc>x;TbZ+P9iFjgE?GJXPUf$@J-V;(~2_EEDqhmt1Cg%8_wj%Huf8C5{u1x4StUzT)sa zj4il3Rb7GCLF-7tZJ$225CuL3X_hPD4r%h!WE(%UJyq;eQ)RBok>KX2D%)>2@oDkq zf*!UlnM_lK*Q;(x-jy3BKDRNTo3HM)*24>H!ag>hyK4IKbnxD-f444T{%JcsqhSuEMuFtS_h=)vEeFbcj<}FgNJ(JBMkjO)|Yoz6<@F%JQPM$kh3pbzdsW0;Zio zx=Pzp>pEHHzOY@_#o)Bfndya8r&^SZ#hmRb{>973Pi<~WCBEjaXuC-?MZ=CfO78)jH%+H@&{N?~_%6nE8|33}|e^+eHc$g)?E>K$D?eD+F;l4jpNkMtWO>TjY zYZm`z+_n9Mc~ZvmPbTY2$-(kW+VIaIHRHDo$iQQRJDvhnFg#zwYp+t1}VJh9e} zmNLJv&rbI?x4_SThbJB735ip_UDud) zzqzA7p@=zA-fuy0=(mgd6Am3aS9^lv%LmY_j&U|N3>fPk~;mC9b&It^h7wlP~2^vhP{bj8$-||<=J~0QFpHxd+BT7;dOH!?p zi&B9UgOP!unXZ9}uAya!p^25Tg_VJcwt z6%tVrlvu7%P?VpRnUkteQdy9ykXcZY%)n4F=kX^Vj>0evjZ^-o&v-r!VqjM0)=TCV zRu=Z2EW#|T;L>1nIE7hxbBMy}8&^&oIdeqj2>a;`31*^vMM literal 0 HcmV?d00001 diff --git a/docs/assets/images/mstile-150x150.png b/docs/assets/images/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..c7a3c08d0675ad307f8f368c977eab425c8f1a14 GIT binary patch literal 1926 zcmbW2Yf#ha6~_Nu1eFyes3`o!tYBoY#DLinzz`uIhDZY8x$0U<_gpbZe^wg?I}8n9f&luJUnZ~WBhbUJnV&YU^({ND4-yziIi z)zqB>-@#0047pRlEOL?S<}TytgN?lUw+rL#qsFIA1Tr_xfhW zFnw+jn+E^}r*NL`fsC<*x0tJ-*8$mL+jiU?uqAtJK%U{W13WoAD0xhLwuw%<1XuD1$A1r|?Lr<#?Pc4jDK7mC^7i$A<5;)};F=~F88SZGM zB_0V2O$RH}k88UZ-krF>8qmSQ)^{h;kg?zF|xdBUfB#R{G=XEcL zBJ--V_sYB_!X~gL@%kFt)U>ThV>GC>>|YyUY?gJZ+7ro`+E>i z^8=&YM1@BxrT!Lvl-2l#2N|@v8i8ayVLt+NB}m+A?M;5ab-&jHm9WLvBnjQ0Q}Z_4 z-Y-3{>fbOA>s%Gl)9gKRI>jpA)}t@S55iIX16F*AJi*iv^u1G!dm7HXZTR(fsHA{c z^o@~>lw2#6tNp^|7R#tkCAp&=`!0v-#ZmnzS+gvLf$gIcWpm&Z>$l>=z=_3YKgiRPzPqumfTb~R$gOhNSGy-AvBs?2Lehe6n# z$Burx65KFDVq=MdI&q7jN7e`VVXPoV`Hz#KY4sWdW1q*=neeJ{v5+=h?z9h!?2*=r zOe$vkgto09jRObQ|ER2M;|bClH1(8-cItQ2uA@&$%m62N6bjCN_Pq@x2WuiL7ryFd zL0pRvAT2e8;|QkzwkDw9#ESKi@dBQ5K;v?@*uR)MbEfci8EM%RUE*E(Mi-5fHjU{g zr^5-W)^Q|j4l|*f2JE^^~_0h-R0HB^Cd9w zC4)h4Ep?T{aaQ@#T1+Tx=T(mz?hmvwmcWYjSd(A%fAJp89X<-l(yh^TQIY)| zg-~)!ugDR6>Cai~dsJ?zZgc6VC*|n9wb>^N#y8?w#<5<|X{_TLTI2guK>A|yR9ltzl8L#fv&SIAdmp|mt=ER;;8MFRk%YI5nT z-O0hWw!K983*6sHfS$DxJle?2+6-TEK+g>7nThO-(X(z2gvwtJcXz$$0=o?5nHTQ+ Zz=1h)Q`(ZpH=NJ^#(5Du1s<2OegU!9KW6{{ literal 0 HcmV?d00001 diff --git a/docs/assets/images/mstile-310x150.png b/docs/assets/images/mstile-310x150.png new file mode 100644 index 0000000000000000000000000000000000000000..25fd7bad276511ffbf1918ae0be36f513d11ac7e GIT binary patch literal 2063 zcmbW1c~Fz*7REmi3>p!_(zGlRR-u+OY>F%*$QnQ}bwv6ZUW+3F&A5yVL2+9p8V>d!94T`<^*x=En*> z>8H8ZU@rgwngRaa7ywX30)WbX4K+|vgJ6{(LV{}|9?RlPBx3^Vu{xj3t<$o;_Rnww4EB>Cx+vqj;A zCBaEF`1?m3Zql#EfOu+)R0TWrF#W+;s0^U@THxqr3}`5WqLQzTJPzZlTYK>U9}Re& z#)PV#>Hl3cB)LXOwlZR|9{rKZbd`=4a)%aiVU+t02|lZtc__@oZIkRAEz|qjl+Uq& z*l#?U9aAzZvU(QloBeo>)5SrG!uk%{Z*#FvHOgO1ZGWj%qD$$Msg|0;1Mm`pq;|xk&?TG1~bM<*)vX0gvad4ym*dNTdY#oF!XqPPxxE+ z7yoT}%zU+0tHmk7wBD2&f=!j@U2I!+mv+70VU5;?*l?(6;v+d6ZDjD)H~h6H5_tiw zY63c7XCZmFl{w51Ka>`%<3tEtmil)xXJ-p5h85wmb1^oIK!W6zFeF!c zCTwY|H;A@`y?{>xcOx&m+ZB*2vr7KV!+tusgJ$#QlZk=q>ki4vZEU3C#$AsvS@YK} zprl)o)rJ`N5HBO(+C1r0I_rJoPh*NqaE|P7+?O$%H$w~9&i_ev^+fY?uQ{h$MmJt+ z-TX%jtfM)Q*JxgZW5Mrx1lpv_Y*QM(B}TTOd8luzj2#y-q~>5AYSlNfi=6@=JXm47 z9ywx(2 z*S}ZJgus1^-}A;^nG+JPP)s=`1Ac79>f9;ixkF?__k4$ZtKxZ%EkD=TE;{v|;fB_a zu3<9Ah|fS_m)Tgq3|IEsw?_(C1= z2#Aue!X>inegy&|y#_iw(v4*8u6!Of_BHH2yk zUNB`j_hno(Y1wF!0rkxGcXP-Rc9_vS)4ch)b;`-!`8PLr^i}rNnCl>^^0%2Yi;spN zT&=5I1a5Aw?{fo_piT6h z!g}@HJ{>x+{h;ZWiAO_A^R=u<>Y1v0Ci}%}_}HKS)tr5wMiTw1Cg(QjD_e$wdvvcU zz^loXzv3|ImYAAZxO47xHvc~2Z>e}Ap*2~MA0Ir|@)7v_D|kPG?;l}_Vedfn_4J1Z zbFP(xc1x;H1T_v%CAtt&iC_TiQFe!IQI58DN3nK}E)LEvD5paxdlwX{q?ozqe+=iy zaisXnzc)+|cyK{OcosH-ios_fD5>OlQW6nC&7=?!Bnp)P0OzYGSNCb8d}VFj9nvER zn8pCR%%MmERM%WL@VeeEU4%E?@mbt1^Cm2!XGHk&x!}3cb4U-}zYdKA7T_@Is+Uvg PhZzL;ob+z+iplu{@lk5V literal 0 HcmV?d00001 diff --git a/docs/assets/images/mstile-310x310.png b/docs/assets/images/mstile-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..1a75b7f297dd2a49fa0ce6aba6d4fb52cd7e9d35 GIT binary patch literal 4718 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/mstile-70x70.png b/docs/assets/images/mstile-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..88b5c256b2be7f35b40ebe23c2aac77eb2351f72 GIT binary patch literal 1115 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGmUKs7M+SzC{oH>NS%G|oWRDFdh=fJK;3jb-t~)+G!K%nY6`jv*Dd-p*cIEaE6|v|2O7g+*R%)*>$6dPXx%6Qu9)|bQ`r|uZ+{k(DS-?WpzT~pTQr+qs+d*0pM_pAh+ zI22n1K*SxBww!L$s7HG~?`{q2Xk%Nzx?mw=24hABLllFQRD)Ops?e<4mvV1eDovVd#2lW zI^*`w{@pTlMw-J-*_r~WwK;VS@0qIqE&pQtV4@Je_@nkqX-l_EZ>q397Oil#CLrpZ zW!TR@XSN?;R{a+@^HtmSgC92<9qZc~F;kKGRF>u89_6cN`9lOcm$&UUI5&Z@aJu5< zTSaqz{XFQE#^D5EoawXUbI4#O4sH2q8O!2)GX3Dk_YZz#7wplGvq*J#clX;r?vo95 zg~kfovwreK?qJ;eDC0l`U(5RST*o#Yeye10Z_(cOi}adQtAF1Ko?wyg@V30x_eGMi zL;U@-?DGG$8og~7Y`u57s)1RL?a1osyDqLx-EEThpF?H6Zm*~3nzt+8*Kc7pk=?y^ zS9*9^Z(!h-l&i;o>DVxDTWu@N=kml;sZOiTV%kyfyxOY%qv;3s$Nc;IpI6;+j(pFQ z+CRDV373rQBiR0M^-Z*7s5V(y?=S#S0G;ge4bUG8nqp<3b^QIe8al4_M)lnSI6j0_CTbPY^&4J|_qO{|P9tPD)F4UDV|42*vC>_yR# zo1c=IR*74K^HLK=poZ|Okcg6?#Bzm#qWrYXoK%I9%7Rpd%z~0+28N0`k3aEn6ozSN zobo??#`9?q1G6%>UNX0^vat7L5oTcpmj;u=Da^{7LljQmxN_pinIkes*iScjEb!7} YcqJ}a^2y0`D$oiBPgg&ebxsLQ016M!LI3~& literal 0 HcmV?d00001 diff --git a/example/assets/images/paragraph-indent.png b/docs/assets/images/paragraph-indent.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/paragraph-indent.png rename to docs/assets/images/paragraph-indent.png diff --git a/example/assets/images/paragraph-no-indent.png b/docs/assets/images/paragraph-no-indent.png old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/paragraph-no-indent.png rename to docs/assets/images/paragraph-no-indent.png diff --git a/example/assets/images/safari-pinned-tab.svg b/docs/assets/images/safari-pinned-tab.svg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/safari-pinned-tab.svg rename to docs/assets/images/safari-pinned-tab.svg diff --git a/docs/assets/images/site-logo.png b/docs/assets/images/site-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..251dd22ae96bab5e5d2c40f46d47af168a60c940 GIT binary patch literal 4653 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 literal 0 HcmV?d00001 diff --git a/example/assets/images/unsplash-gallery-image-1-th.jpg b/docs/assets/images/unsplash-gallery-image-1-th.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-gallery-image-1-th.jpg rename to docs/assets/images/unsplash-gallery-image-1-th.jpg diff --git a/example/assets/images/unsplash-gallery-image-1.jpg b/docs/assets/images/unsplash-gallery-image-1.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-gallery-image-1.jpg rename to docs/assets/images/unsplash-gallery-image-1.jpg diff --git a/example/assets/images/unsplash-gallery-image-2-th.jpg b/docs/assets/images/unsplash-gallery-image-2-th.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-gallery-image-2-th.jpg rename to docs/assets/images/unsplash-gallery-image-2-th.jpg diff --git a/example/assets/images/unsplash-gallery-image-2.jpg b/docs/assets/images/unsplash-gallery-image-2.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-gallery-image-2.jpg rename to docs/assets/images/unsplash-gallery-image-2.jpg diff --git a/example/assets/images/unsplash-gallery-image-3-th.jpg b/docs/assets/images/unsplash-gallery-image-3-th.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-gallery-image-3-th.jpg rename to docs/assets/images/unsplash-gallery-image-3-th.jpg diff --git a/example/assets/images/unsplash-gallery-image-3.jpg b/docs/assets/images/unsplash-gallery-image-3.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-gallery-image-3.jpg rename to docs/assets/images/unsplash-gallery-image-3.jpg diff --git a/example/assets/images/unsplash-gallery-image-4-th.jpg b/docs/assets/images/unsplash-gallery-image-4-th.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-gallery-image-4-th.jpg rename to docs/assets/images/unsplash-gallery-image-4-th.jpg diff --git a/example/assets/images/unsplash-gallery-image-4.jpg b/docs/assets/images/unsplash-gallery-image-4.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-gallery-image-4.jpg rename to docs/assets/images/unsplash-gallery-image-4.jpg diff --git a/example/assets/images/unsplash-image-1.jpg b/docs/assets/images/unsplash-image-1.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-1.jpg rename to docs/assets/images/unsplash-image-1.jpg diff --git a/example/assets/images/unsplash-image-10.jpg b/docs/assets/images/unsplash-image-10.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-10.jpg rename to docs/assets/images/unsplash-image-10.jpg diff --git a/example/assets/images/unsplash-image-11.jpg b/docs/assets/images/unsplash-image-11.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-11.jpg rename to docs/assets/images/unsplash-image-11.jpg diff --git a/example/assets/images/unsplash-image-2.jpg b/docs/assets/images/unsplash-image-2.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-2.jpg rename to docs/assets/images/unsplash-image-2.jpg diff --git a/example/assets/images/unsplash-image-3.jpg b/docs/assets/images/unsplash-image-3.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-3.jpg rename to docs/assets/images/unsplash-image-3.jpg diff --git a/example/assets/images/unsplash-image-4.jpg b/docs/assets/images/unsplash-image-4.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-4.jpg rename to docs/assets/images/unsplash-image-4.jpg diff --git a/example/assets/images/unsplash-image-5.jpg b/docs/assets/images/unsplash-image-5.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-5.jpg rename to docs/assets/images/unsplash-image-5.jpg diff --git a/example/assets/images/unsplash-image-6.jpg b/docs/assets/images/unsplash-image-6.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-6.jpg rename to docs/assets/images/unsplash-image-6.jpg diff --git a/example/assets/images/unsplash-image-7.jpg b/docs/assets/images/unsplash-image-7.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-7.jpg rename to docs/assets/images/unsplash-image-7.jpg diff --git a/example/assets/images/unsplash-image-8.jpg b/docs/assets/images/unsplash-image-8.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-8.jpg rename to docs/assets/images/unsplash-image-8.jpg diff --git a/example/assets/images/unsplash-image-9.jpg b/docs/assets/images/unsplash-image-9.jpg old mode 100755 new mode 100644 similarity index 100% rename from example/assets/images/unsplash-image-9.jpg rename to docs/assets/images/unsplash-image-9.jpg diff --git a/docs/assets/js/_main.js b/docs/assets/js/_main.js new file mode 100644 index 00000000..4f71a5dd --- /dev/null +++ b/docs/assets/js/_main.js @@ -0,0 +1,100 @@ +/* ========================================================================== + jQuery plugin settings and other scripts + ========================================================================== */ + +$(document).ready(function(){ + + // Sticky footer + var bumpIt = function() { + $('body').css('margin-bottom', $('.page__footer').outerHeight(true)); + }, + didResize = false; + + bumpIt(); + + $(window).resize(function() { + didResize = true; + }); + setInterval(function() { + if(didResize) { + didResize = false; + bumpIt(); + } + }, 250); + + // FitVids init + $("#main").fitVids(); + + // init sticky sidebar + $(".sticky").Stickyfill(); + + var stickySideBar = function(){ + var show = $(".author__urls-wrapper button").length === 0 ? $(window).width() > 1024 : !$(".author__urls-wrapper button").is(":visible"); + // console.log("has button: " + $(".author__urls-wrapper button").length === 0); + // console.log("Window Width: " + windowWidth); + // console.log("show: " + show); + //old code was if($(window).width() > 1024) + if (show) { + // fix + Stickyfill.rebuild(); + Stickyfill.init(); + $(".author__urls").show(); + } else { + // unfix + Stickyfill.stop(); + $(".author__urls").hide(); + } + }; + + stickySideBar(); + + $(window).resize(function(){ + stickySideBar(); + }); + + // Follow menu drop down + + $(".author__urls-wrapper button").on("click", function() { + $(".author__urls").fadeToggle("fast", function() {}); + $(".author__urls-wrapper button").toggleClass("open"); + }); + + // init smooth scroll + $("a").smoothScroll({offset: -20}); + + // add lightbox class to all image links + $("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup"); + + // Magnific-Popup options + $(".image-popup").magnificPopup({ + // disableOn: function() { + // if( $(window).width() < 500 ) { + // return false; + // } + // return true; + // }, + type: 'image', + tLoading: 'Loading image #%curr%...', + gallery: { + enabled: true, + navigateByImgClick: true, + preload: [0,1] // Will preload 0 - before current, and 1 after the current image + }, + image: { + tError: 'Image #%curr% could not be loaded.', + }, + removalDelay: 500, // Delay in milliseconds before popup is removed + // Class that is added to body when popup is open. + // make it unique to apply your CSS animations just to this exact popup + mainClass: 'mfp-zoom-in', + callbacks: { + beforeOpen: function() { + // just a hack that adds mfp-anim class to markup + this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim'); + } + }, + closeOnContentClick: true, + midClick: true // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source. + }); + +}); diff --git a/docs/assets/js/main.min.js b/docs/assets/js/main.min.js new file mode 100644 index 00000000..7c4f130e --- /dev/null +++ b/docs/assets/js/main.min.js @@ -0,0 +1,5 @@ +function updateNav(){var e=$btn.hasClass("hidden")?$nav.width():$nav.width()-$btn.width()-30;$vlinks.width()>e?(breaks.push($vlinks.width()),$vlinks.children().last().prependTo($hlinks),$btn.hasClass("hidden")&&$btn.removeClass("hidden")):(e>breaks[breaks.length-1]&&($hlinks.children().first().appendTo($vlinks),breaks.pop()),breaks.length<1&&($btn.addClass("hidden"),$hlinks.addClass("hidden"))),$btn.attr("count",breaks.length),$vlinks.width()>e&&updateNav()}!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"===n||pe.isWindow(e)?!1:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function i(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Te.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function r(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(Ae)||[],function(e,n){t[n]=!0}),t}function a(){ie.addEventListener?(ie.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(ie.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(ie.addEventListener||"load"===e.event.type||"complete"===ie.readyState)&&(a(),pe.ready())}function l(e,t,n){if(void 0===n&&1===e.nodeType){var i="data-"+t.replace(He,"-$1").toLowerCase();if(n=e.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:De.test(n)?pe.parseJSON(n):n}catch(r){}pe.data(e,t,n)}else n=void 0}return n}function u(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,i){if(Ie(e)){var r,o,a=pe.expando,s=e.nodeType,l=s?pe.cache:e,u=s?e[a]:e[a]&&a;if(u&&l[u]&&(i||l[u].data)||void 0!==n||"string"!=typeof t)return u||(u=s?e[a]=ne.pop()||pe.guid++:a),l[u]||(l[u]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(i?l[u]=pe.extend(l[u],t):l[u].data=pe.extend(l[u].data,t)),o=l[u],i||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(r=o[t],null==r&&(r=o[pe.camelCase(t)])):r=o,r}}function d(e,t,n){if(Ie(e)){var i,r,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(i=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in i?t=[t]:(t=pe.camelCase(t),t=t in i?[t]:t.split(" ")),r=t.length;for(;r--;)delete i[t[r]];if(n?!u(i):!pe.isEmptyObject(i))return}(n||(delete a[s].data,u(a[s])))&&(o?pe.cleanData([e],!0):de.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function f(e,t,n,i){var r,o=1,a=20,s=i?function(){return i.cur()}:function(){return pe.css(e,t,"")},l=s(),u=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==u&&+l)&&Me.exec(pe.css(e,t));if(c&&c[3]!==u){u=u||c[3],n=n||[],c=+l||1;do o=o||".5",c/=o,pe.style(e,t,c+u);while(o!==(o=s()/l)&&1!==o&&--a)}return n&&(c=+c||+l||0,r=n[1]?c+(n[1]+1)*n[2]:+n[2],i&&(i.unit=u,i.start=c,i.end=r)),r}function p(e){var t=We.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,i,r=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(i=n[r]);r++)!t||pe.nodeName(i,t)?o.push(i):pe.merge(o,h(i,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function m(e,t){for(var n,i=0;null!=(n=e[i]);i++)pe._data(n,"globalEval",!t||pe._data(t[i],"globalEval"))}function g(e){qe.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t,n,i,r){for(var o,a,s,l,u,c,d,f=e.length,v=p(t),y=[],b=0;f>b;b++)if(a=e[b],a||0===a)if("object"===pe.type(a))pe.merge(y,a.nodeType?[a]:a);else if(Ye.test(a)){for(l=l||v.appendChild(t.createElement("div")),u=($e.exec(a)||["",""])[1].toLowerCase(),d=Xe[u]||Xe._default,l.innerHTML=d[1]+pe.htmlPrefilter(a)+d[2],o=d[0];o--;)l=l.lastChild;if(!de.leadingWhitespace&&Re.test(a)&&y.push(t.createTextNode(Re.exec(a)[0])),!de.tbody)for(a="table"!==u||Ue.test(a)?""!==d[1]||Ue.test(a)?0:l:l.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(y,l.childNodes),l.textContent="";l.firstChild;)l.removeChild(l.firstChild);l=v.lastChild}else y.push(t.createTextNode(a));for(l&&v.removeChild(l),de.appendChecked||pe.grep(h(y,"input"),g),b=0;a=y[b++];)if(i&&pe.inArray(a,i)>-1)r&&r.push(a);else if(s=pe.contains(a.ownerDocument,a),l=h(v.appendChild(a),"script"),s&&m(l),n)for(o=0;a=l[o++];)ze.test(a.type||"")&&n.push(a);return l=null,v}function y(){return!0}function b(){return!1}function x(){try{return ie.activeElement}catch(e){}}function w(e,t,n,i,r,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(i=i||n,n=void 0);for(s in t)w(e,s,n,i,t[s],o);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),r===!1)r=b;else if(!r)return e;return 1===o&&(a=r,r=function(e){return pe().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,r,i,n)})}function C(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function T(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function k(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function E(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,i,r,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(i=0,r=s[n].length;r>i;i++)pe.event.add(t,n,s[n][i])}a.data&&(a.data=pe.extend({},a.data))}}function S(e,t){var n,i,r;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!de.noCloneEvent&&t[pe.expando]){r=pe._data(t);for(i in r.events)pe.removeEvent(t,i,r.handle);t.removeAttribute(pe.expando)}"script"===n&&t.text!==e.text?(T(t).text=e.text,k(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),de.html5Clone&&e.innerHTML&&!pe.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&qe.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}}function N(e,t,n,i){t=oe.apply([],t);var r,o,a,s,l,u,c=0,d=e.length,f=d-1,p=t[0],m=pe.isFunction(p);if(m||d>1&&"string"==typeof p&&!de.checkClone&&it.test(p))return e.each(function(r){var o=e.eq(r);m&&(t[0]=p.call(this,r,o.html())),N(o,t,n,i)});if(d&&(u=v(t,e[0].ownerDocument,!1,e,i),r=u.firstChild,1===u.childNodes.length&&(u=r),r||i)){for(s=pe.map(h(u,"script"),T),a=s.length;d>c;c++)o=u,c!==f&&(o=pe.clone(o,!0,!0),a&&pe.merge(s,h(o,"script"))),n.call(e[c],o,c);if(a)for(l=s[s.length-1].ownerDocument,pe.map(s,k),c=0;a>c;c++)o=s[c],ze.test(o.type||"")&&!pe._data(o,"globalEval")&&pe.contains(l,o)&&(o.src?pe._evalUrl&&pe._evalUrl(o.src):pe.globalEval((o.text||o.textContent||o.innerHTML||"").replace(ot,"")));u=r=null}return e}function L(e,t,n){for(var i,r=t?pe.filter(t,e):e,o=0;null!=(i=r[o]);o++)n||1!==i.nodeType||pe.cleanData(h(i)),i.parentNode&&(n&&pe.contains(i.ownerDocument,i)&&m(h(i,"script")),i.parentNode.removeChild(i));return e}function A(e,t){var n=pe(t.createElement(e)).appendTo(t.body),i=pe.css(n[0],"display");return n.detach(),i}function j(e){var t=ie,n=ut[e];return n||(n=A(e,t),"none"!==n&&n||(lt=(lt||pe("',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(z),T("BeforeChange",function(e,t,n){t!==n&&(t===z?W():n===z&&W(!0))}),T(l+"."+z,function(){W()})},getIframe:function(n,i){var r=n.src,o=t.st.iframe;e.each(o.patterns,function(){return r.indexOf(this.index)>-1?(this.id&&(r="string"==typeof this.id?r.substr(r.lastIndexOf(this.id)+this.id.length,r.length):this.id.call(this,r)),r=this.src.replace("%id%",r),!1):void 0});var a={};return o.srcAction&&(a[o.srcAction]=r),t._parseMarkup(i,a,n),t.updateStatus("ready"),i}}});var X=function(e){var n=t.items.length;return e>n-1?e-n:0>e?n+e:e},Y=function(e,t,n){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,n)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var n=t.st.gallery,i=".mfp-gallery",o=Boolean(e.fn.mfpFastClick);return t.direction=!0,n&&n.enabled?(a+=" mfp-gallery",T(p+i,function(){n.navigateByImgClick&&t.wrap.on("click"+i,".mfp-img",function(){return t.items.length>1?(t.next(),!1):void 0}),r.on("keydown"+i,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),T("UpdateStatus"+i,function(e,n){n.text&&(n.text=Y(n.text,t.currItem.index,t.items.length))}),T(f+i,function(e,i,r,o){var a=t.items.length;r.counter=a>1?Y(n.tCounter,o.index,a):""}),T("BuildControls"+i,function(){if(t.items.length>1&&n.arrows&&!t.arrowLeft){var i=n.arrowMarkup,r=t.arrowLeft=e(i.replace(/%title%/gi,n.tPrev).replace(/%dir%/gi,"left")).addClass(b),a=t.arrowRight=e(i.replace(/%title%/gi,n.tNext).replace(/%dir%/gi,"right")).addClass(b),s=o?"mfpFastClick":"click";r[s](function(){t.prev()}),a[s](function(){t.next()}),t.isIE7&&(k("b",r[0],!1,!0),k("a",r[0],!1,!0),k("b",a[0],!1,!0),k("a",a[0],!1,!0)),t.container.append(r.add(a))}}),T(h+i,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),void T(l+i,function(){r.off(i),t.wrap.off("click"+i),t.arrowLeft&&o&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null})):!1},next:function(){t.direction=!0,t.index=X(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=X(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,n=t.st.gallery.preload,i=Math.min(n[0],t.items.length),r=Math.min(n[1],t.items.length);for(e=1;e<=(t.direction?r:i);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?i:r);e++)t._preloadItem(t.index-e)},_preloadItem:function(n){if(n=X(n),!t.items[n].preloaded){var i=t.items[n];i.parsed||(i=t.parseEl(n)),E("LazyLoad",i),"image"===i.type&&(i.img=e('').on("load.mfploader",function(){i.hasSize=!0}).on("error.mfploader",function(){i.hasSize=!0,i.loadError=!0,E("LazyLoadError",i)}).attr("src",i.src)),i.preloaded=!0}}}});var U="retina";e.magnificPopup.registerModule(U,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,n=e.ratio;n=isNaN(n)?n():n,n>1&&(T("ImageHasSize."+U,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/n,width:"100%"})}),T("ElementParse."+U,function(t,i){i.src=e.replaceSrc(i,n)}))}}}}),function(){var t=1e3,n="ontouchstart"in window,i=function(){C.off("touchmove"+o+" touchend"+o)},r="mfpFastClick",o="."+r;e.fn.mfpFastClick=function(r){return e(this).each(function(){var a,s=e(this);if(n){var l,u,c,d,f,p;s.on("touchstart"+o,function(e){d=!1,p=1,f=e.originalEvent?e.originalEvent.touches[0]:e.touches[0],u=f.clientX,c=f.clientY,C.on("touchmove"+o,function(e){f=e.originalEvent?e.originalEvent.touches:e.touches,p=f.length,f=f[0],(Math.abs(f.clientX-u)>10||Math.abs(f.clientY-c)>10)&&(d=!0,i())}).on("touchend"+o,function(e){i(),d||p>1||(a=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function(){a=!1},t),r())})})}s.on("click"+o,function(){a||r()})})},e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+o+" click"+o),n&&C.off("touchmove"+o+" touchend"+o)}}(),N()}(window.jQuery||window.Zepto),!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof module&&module.exports?require("jquery"):jQuery)}(function(e){var t="1.7.2",n={},i={exclude:[],excludeWithin:[],offset:0,direction:"top",delegateSelector:null,scrollElement:null,scrollTarget:null,beforeScroll:function(){},afterScroll:function(){},easing:"swing",speed:400,autoCoefficient:2,preventDefault:!0},r=function(t){var n=[],i=!1,r=t.dir&&"left"===t.dir?"scrollLeft":"scrollTop";return this.each(function(){var t=e(this);return this!==document&&this!==window?!document.scrollingElement||this!==document.documentElement&&this!==document.body?void(t[r]()>0?n.push(this):(t[r](1),i=t[r]()>0,i&&n.push(this),t[r](0))):(n.push(document.scrollingElement),!1):void 0}),n.length||this.each(function(){this===document.documentElement&&"smooth"===e(this).css("scrollBehavior")&&(n=[this]),n.length||"BODY"!==this.nodeName||(n=[this])}),"first"===t.el&&n.length>1&&(n=[n[0]]),n};e.fn.extend({scrollable:function(e){var t=r.call(this,{dir:e});return this.pushStack(t)},firstScrollable:function(e){var t=r.call(this,{el:"first",dir:e});return this.pushStack(t)},smoothScroll:function(t,n){if(t=t||{},"options"===t)return n?this.each(function(){var t=e(this),i=e.extend(t.data("ssOpts")||{},n);e(this).data("ssOpts",i)}):this.first().data("ssOpts");var i=e.extend({},e.fn.smoothScroll.defaults,t),r=function(t){var n=function(e){return e.replace(/(:|\.|\/)/g,"\\$1")},r=this,o=e(this),a=e.extend({},i,o.data("ssOpts")||{}),s=i.exclude,l=a.excludeWithin,u=0,c=0,d=!0,f={},p=e.smoothScroll.filterPath(location.pathname),h=e.smoothScroll.filterPath(r.pathname),m=location.hostname===r.hostname||!r.hostname,g=a.scrollTarget||h===p,v=n(r.hash);if(v&&!e(v).length&&(d=!1),a.scrollTarget||m&&g&&v){for(;d&&u=0;e--)u(D[e])}function u(e){if(e.inited){var t=_.top<=e.limit.start?0:_.top>=e.limit.end?2:1;e.mode!=t&&m(e,t)}}function c(){for(var e=D.length-1;e>=0;e--)if(D[e].inited){var t=Math.abs(b(D[e].clone)-D[e].docOffsetTop),n=Math.abs(D[e].parent.node.offsetHeight-D[e].parent.height);if(t>=2||n>=2)return!1}return!0}function d(e){isNaN(parseFloat(e.computed.top))||e.isCell||"none"==e.computed.display||(e.inited=!0,e.clone||g(e),"absolute"!=e.parent.computed.position&&"relative"!=e.parent.computed.position&&(e.parent.node.style.position="relative"),u(e),e.parent.height=e.parent.node.offsetHeight,e.docOffsetTop=b(e.clone))}function f(e){var t=!0;e.clone&&v(e),i(e.node.style,e.css);for(var n=D.length-1;n>=0;n--)if(D[n].node!==e.node&&D[n].parent.node===e.parent.node){t=!1;break}t&&(e.parent.node.style.position=e.parent.css.position),e.mode=-1}function p(){for(var e=D.length-1;e>=0;e--)d(D[e])}function h(){for(var e=D.length-1;e>=0;e--)f(D[e])}function m(e,t){var n=e.node.style;switch(t){case 0:n.position="absolute",n.left=e.offset.left+"px",n.right=e.offset.right+"px",n.top=e.offset.top+"px",n.bottom="auto",n.width="auto",n.marginLeft=0,n.marginRight=0,n.marginTop=0;break;case 1:n.position="fixed",n.left=e.box.left+"px",n.right=e.box.right+"px",n.top=e.css.top,n.bottom="auto",n.width="auto",n.marginLeft=0,n.marginRight=0,n.marginTop=0;break;case 2:n.position="absolute",n.left=e.offset.left+"px",n.right=e.offset.right+"px",n.top="auto",n.bottom=0,n.width="auto",n.marginLeft=0,n.marginRight=0}e.mode=t}function g(e){e.clone=document.createElement("div");var t=e.node.nextSibling||e.node,n=e.clone.style;n.height=e.height+"px",n.width=e.width+"px",n.marginTop=e.computed.marginTop,n.marginBottom=e.computed.marginBottom,n.marginLeft=e.computed.marginLeft,n.marginRight=e.computed.marginRight,n.padding=n.border=n.borderSpacing=0,n.fontSize="1em",n.position="static",n.cssFloat=e.computed.cssFloat,e.node.parentNode.insertBefore(e.clone,t)}function v(e){e.clone.parentNode.removeChild(e.clone),e.clone=void 0}function y(e){var t=getComputedStyle(e),n=e.parentNode,i=getComputedStyle(n),o=e.style.position;e.style.position="relative";var a={top:t.top,marginTop:t.marginTop,marginBottom:t.marginBottom,marginLeft:t.marginLeft,marginRight:t.marginRight,cssFloat:t.cssFloat,display:t.display},s={top:r(t.top),marginBottom:r(t.marginBottom),paddingLeft:r(t.paddingLeft),paddingRight:r(t.paddingRight),borderLeftWidth:r(t.borderLeftWidth),borderRightWidth:r(t.borderRightWidth)};e.style.position=o;var l={position:e.style.position,top:e.style.top,bottom:e.style.bottom,left:e.style.left,right:e.style.right,width:e.style.width,marginTop:e.style.marginTop,marginLeft:e.style.marginLeft,marginRight:e.style.marginRight},u=x(e),c=x(n),d={node:n,css:{position:n.style.position},computed:{position:i.position},numeric:{borderLeftWidth:r(i.borderLeftWidth),borderRightWidth:r(i.borderRightWidth),borderTopWidth:r(i.borderTopWidth),borderBottomWidth:r(i.borderBottomWidth)}},f={node:e,box:{left:u.win.left,right:O.clientWidth-u.win.right},offset:{top:u.win.top-c.win.top-d.numeric.borderTopWidth,left:u.win.left-c.win.left-d.numeric.borderLeftWidth,right:-u.win.right+c.win.right-d.numeric.borderRightWidth +},css:l,isCell:"table-cell"==t.display,computed:a,numeric:s,width:u.win.right-u.win.left,height:u.win.bottom-u.win.top,mode:-1,inited:!1,parent:d,limit:{start:u.doc.top-s.top,end:c.doc.top+n.offsetHeight-d.numeric.borderBottomWidth-e.offsetHeight-s.top-s.marginBottom}};return f}function b(e){for(var t=0;e;)t+=e.offsetTop,e=e.offsetParent;return t}function x(e){var n=e.getBoundingClientRect();return{doc:{top:n.top+t.pageYOffset,left:n.left+t.pageXOffset},win:n}}function w(){I=setInterval(function(){!c()&&E()},500)}function C(){clearInterval(I)}function T(){H&&(document[P]?C():w())}function k(){H||(o(),p(),t.addEventListener("scroll",a),t.addEventListener("wheel",s),t.addEventListener("resize",E),t.addEventListener("orientationchange",E),e.addEventListener(B,T),w(),H=!0)}function E(){if(H){h();for(var e=D.length-1;e>=0;e--)D[e]=y(D[e].node);p()}}function S(){t.removeEventListener("scroll",a),t.removeEventListener("wheel",s),t.removeEventListener("resize",E),t.removeEventListener("orientationchange",E),e.removeEventListener(B,T),C(),H=!1}function N(){S(),h()}function L(){for(N();D.length;)D.pop()}function A(e){for(var t=D.length-1;t>=0;t--)if(D[t].node===e)return;var n=y(e);D.push(n),H?d(n):k()}function j(e){for(var t=D.length-1;t>=0;t--)D[t].node===e&&(f(D[t]),D.splice(t,1))}var _,I,D=[],H=!1,O=e.documentElement,M=function(){},P="hidden",B="visibilitychange";void 0!==e.webkitHidden&&(P="webkitHidden",B="webkitvisibilitychange"),t.getComputedStyle||n();for(var F=["","-webkit-","-moz-","-ms-"],q=document.createElement("div"),$=F.length-1;$>=0;$--){try{q.style.position=F[$]+"sticky"}catch(z){}""!=q.style.position&&n()}o(),t.Stickyfill={stickies:D,add:A,remove:j,init:k,rebuild:E,pause:S,stop:N,kill:L}}(document,window),window.jQuery&&!function(e){e.fn.Stickyfill=function(e){return this.each(function(){Stickyfill.add(this)}),this}}(window.jQuery),$(document).ready(function(){var e=function(){$("body").css("margin-bottom",$(".page__footer").outerHeight(!0))},t=!1;e(),$(window).resize(function(){t=!0}),setInterval(function(){t&&(t=!1,e())},250),$("#main").fitVids(),$(".sticky").Stickyfill();var n=function(){var e=0===$(".author__urls-wrapper button").length?$(window).width()>1024:!$(".author__urls-wrapper button").is(":visible");e?(Stickyfill.rebuild(),Stickyfill.init(),$(".author__urls").show()):(Stickyfill.stop(),$(".author__urls").hide())};n(),$(window).resize(function(){n()}),$(".author__urls-wrapper button").on("click",function(){$(".author__urls").fadeToggle("fast",function(){}),$(".author__urls-wrapper button").toggleClass("open")}),$("a").smoothScroll({offset:-20}),$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup"),$(".image-popup").magnificPopup({type:"image",tLoading:"Loading image #%curr%...",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'Image #%curr% could not be loaded.'},removalDelay:500,mainClass:"mfp-zoom-in",callbacks:{beforeOpen:function(){this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim")}},closeOnContentClick:!0,midClick:!0})}); \ No newline at end of file diff --git a/docs/assets/js/plugins/jquery.fitvids.js b/docs/assets/js/plugins/jquery.fitvids.js new file mode 100644 index 00000000..5c2f85c9 --- /dev/null +++ b/docs/assets/js/plugins/jquery.fitvids.js @@ -0,0 +1,82 @@ +/*jshint browser:true */ +/*! +* FitVids 1.1 +* +* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com +* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ +* Released under the WTFPL license - http://sam.zoy.org/wtfpl/ +* +*/ + +;(function( $ ){ + + 'use strict'; + + $.fn.fitVids = function( options ) { + var settings = { + customSelector: null, + ignore: null + }; + + if(!document.getElementById('fit-vids-style')) { + // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js + var head = document.head || document.getElementsByTagName('head')[0]; + var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}'; + var div = document.createElement("div"); + div.innerHTML = '

x

'; + head.appendChild(div.childNodes[1]); + } + + if ( options ) { + $.extend( settings, options ); + } + + return this.each(function(){ + var selectors = [ + 'iframe[src*="player.vimeo.com"]', + 'iframe[src*="youtube.com"]', + 'iframe[src*="youtube-nocookie.com"]', + 'iframe[src*="kickstarter.com"][src*="video.html"]', + 'object', + 'embed' + ]; + + if (settings.customSelector) { + selectors.push(settings.customSelector); + } + + var ignoreList = '.fitvidsignore'; + + if(settings.ignore) { + ignoreList = ignoreList + ', ' + settings.ignore; + } + + var $allVideos = $(this).find(selectors.join(',')); + $allVideos = $allVideos.not('object object'); // SwfObj conflict patch + $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. + + $allVideos.each(function(count){ + var $this = $(this); + if($this.parents(ignoreList).length > 0) { + return; // Disable FitVids on this video. + } + if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } + if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) + { + $this.attr('height', 9); + $this.attr('width', 16); + } + var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), + width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), + aspectRatio = height / width; + if(!$this.attr('id')){ + var videoID = 'fitvid' + count; + $this.attr('id', videoID); + } + $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%'); + $this.removeAttr('height').removeAttr('width'); + }); + }); + }; +// Works with either jQuery or Zepto +})( window.jQuery || window.Zepto ); \ No newline at end of file diff --git a/docs/assets/js/plugins/jquery.greedy-navigation.js b/docs/assets/js/plugins/jquery.greedy-navigation.js new file mode 100644 index 00000000..3f6c5415 --- /dev/null +++ b/docs/assets/js/plugins/jquery.greedy-navigation.js @@ -0,0 +1,72 @@ +/* +* Greedy Navigation +* +* http://codepen.io/lukejacksonn/pen/PwmwWV +* +*/ + +var $nav = $('#site-nav'); +var $btn = $('#site-nav button'); +var $vlinks = $('#site-nav .visible-links'); +var $hlinks = $('#site-nav .hidden-links'); + +var breaks = []; + +function updateNav() { + + var availableSpace = $btn.hasClass('hidden') ? $nav.width() : $nav.width() - $btn.width() - 30; + + // The visible list is overflowing the nav + if($vlinks.width() > availableSpace) { + + // Record the width of the list + breaks.push($vlinks.width()); + + // Move item to the hidden list + $vlinks.children().last().prependTo($hlinks); + + // Show the dropdown btn + if($btn.hasClass('hidden')) { + $btn.removeClass('hidden'); + } + + // The visible list is not overflowing + } else { + + // There is space for another item in the nav + if(availableSpace > breaks[breaks.length-1]) { + + // Move the item to the visible list + $hlinks.children().first().appendTo($vlinks); + breaks.pop(); + } + + // Hide the dropdown btn if hidden list is empty + if(breaks.length < 1) { + $btn.addClass('hidden'); + $hlinks.addClass('hidden'); + } + } + + // Keep counter updated + $btn.attr("count", breaks.length); + + // Recur if the visible list is still overflowing the nav + if($vlinks.width() > availableSpace) { + updateNav(); + } + +} + +// Window listeners + +$(window).resize(function() { + updateNav(); +}); + +$btn.on('click', function() { + $hlinks.toggleClass('hidden'); + $(this).toggleClass('close'); +}); + +updateNav(); \ No newline at end of file diff --git a/docs/assets/js/plugins/jquery.magnific-popup.js b/docs/assets/js/plugins/jquery.magnific-popup.js new file mode 100644 index 00000000..27fce06b --- /dev/null +++ b/docs/assets/js/plugins/jquery.magnific-popup.js @@ -0,0 +1,2049 @@ +/*! Magnific Popup - v0.9.9 - 2013-12-27 +* http://dimsemenov.com/plugins/magnific-popup/ +* Copyright (c) 2013 Dmitry Semenov; */ +;(function($) { + +/*>>core*/ +/** + * + * Magnific Popup Core JS file + * + */ + + +/** + * Private static constants + */ +var CLOSE_EVENT = 'Close', + BEFORE_CLOSE_EVENT = 'BeforeClose', + AFTER_CLOSE_EVENT = 'AfterClose', + BEFORE_APPEND_EVENT = 'BeforeAppend', + MARKUP_PARSE_EVENT = 'MarkupParse', + OPEN_EVENT = 'Open', + CHANGE_EVENT = 'Change', + NS = 'mfp', + EVENT_NS = '.' + NS, + READY_CLASS = 'mfp-ready', + REMOVING_CLASS = 'mfp-removing', + PREVENT_CLOSE_CLASS = 'mfp-prevent-close'; + + +/** + * Private vars + */ +var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this' + MagnificPopup = function(){}, + _isJQ = !!(window.jQuery), + _prevStatus, + _window = $(window), + _body, + _document, + _prevContentType, + _wrapClasses, + _currPopupType; + + +/** + * Private functions + */ +var _mfpOn = function(name, f) { + mfp.ev.on(NS + name + EVENT_NS, f); + }, + _getEl = function(className, appendTo, html, raw) { + var el = document.createElement('div'); + el.className = 'mfp-'+className; + if(html) { + el.innerHTML = html; + } + if(!raw) { + el = $(el); + if(appendTo) { + el.appendTo(appendTo); + } + } else if(appendTo) { + appendTo.appendChild(el); + } + return el; + }, + _mfpTrigger = function(e, data) { + mfp.ev.triggerHandler(NS + e, data); + + if(mfp.st.callbacks) { + // converts "mfpEventName" to "eventName" callback and triggers it if it's present + e = e.charAt(0).toLowerCase() + e.slice(1); + if(mfp.st.callbacks[e]) { + mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]); + } + } + }, + _getCloseBtn = function(type) { + if(type !== _currPopupType || !mfp.currTemplate.closeBtn) { + mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) ); + _currPopupType = type; + } + return mfp.currTemplate.closeBtn; + }, + // Initialize Magnific Popup only when called at least once + _checkInstance = function() { + if(!$.magnificPopup.instance) { + mfp = new MagnificPopup(); + mfp.init(); + $.magnificPopup.instance = mfp; + } + }, + // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr + supportsTransitions = function() { + var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist + v = ['ms','O','Moz','Webkit']; // 'v' for vendor + + if( s['transition'] !== undefined ) { + return true; + } + + while( v.length ) { + if( v.pop() + 'Transition' in s ) { + return true; + } + } + + return false; + }; + + + +/** + * Public functions + */ +MagnificPopup.prototype = { + + constructor: MagnificPopup, + + /** + * Initializes Magnific Popup plugin. + * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed + */ + init: function() { + var appVersion = navigator.appVersion; + mfp.isIE7 = appVersion.indexOf("MSIE 7.") !== -1; + mfp.isIE8 = appVersion.indexOf("MSIE 8.") !== -1; + mfp.isLowIE = mfp.isIE7 || mfp.isIE8; + mfp.isAndroid = (/android/gi).test(appVersion); + mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion); + mfp.supportsTransition = supportsTransitions(); + + // We disable fixed positioned lightbox on devices that don't handle it nicely. + // If you know a better way of detecting this - let me know. + mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) ); + _document = $(document); + + mfp.popupsCache = {}; + }, + + /** + * Opens popup + * @param data [description] + */ + open: function(data) { + + if(!_body) { + _body = $(document.body); + } + + var i; + + if(data.isObj === false) { + // convert jQuery collection to array to avoid conflicts later + mfp.items = data.items.toArray(); + + mfp.index = 0; + var items = data.items, + item; + for(i = 0; i < items.length; i++) { + item = items[i]; + if(item.parsed) { + item = item.el[0]; + } + if(item === data.el[0]) { + mfp.index = i; + break; + } + } + } else { + mfp.items = $.isArray(data.items) ? data.items : [data.items]; + mfp.index = data.index || 0; + } + + // if popup is already opened - we just update the content + if(mfp.isOpen) { + mfp.updateItemHTML(); + return; + } + + mfp.types = []; + _wrapClasses = ''; + if(data.mainEl && data.mainEl.length) { + mfp.ev = data.mainEl.eq(0); + } else { + mfp.ev = _document; + } + + if(data.key) { + if(!mfp.popupsCache[data.key]) { + mfp.popupsCache[data.key] = {}; + } + mfp.currTemplate = mfp.popupsCache[data.key]; + } else { + mfp.currTemplate = {}; + } + + + + mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); + mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos; + + if(mfp.st.modal) { + mfp.st.closeOnContentClick = false; + mfp.st.closeOnBgClick = false; + mfp.st.showCloseBtn = false; + mfp.st.enableEscapeKey = false; + } + + + // Building markup + // main containers are created only once + if(!mfp.bgOverlay) { + + // Dark overlay + mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() { + mfp.close(); + }); + + mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) { + if(mfp._checkIfClose(e.target)) { + mfp.close(); + } + }); + + mfp.container = _getEl('container', mfp.wrap); + } + + mfp.contentContainer = _getEl('content'); + if(mfp.st.preloader) { + mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading); + } + + + // Initializing modules + var modules = $.magnificPopup.modules; + for(i = 0; i < modules.length; i++) { + var n = modules[i]; + n = n.charAt(0).toUpperCase() + n.slice(1); + mfp['init'+n].call(mfp); + } + _mfpTrigger('BeforeOpen'); + + + if(mfp.st.showCloseBtn) { + // Close button + if(!mfp.st.closeBtnInside) { + mfp.wrap.append( _getCloseBtn() ); + } else { + _mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) { + values.close_replaceWith = _getCloseBtn(item.type); + }); + _wrapClasses += ' mfp-close-btn-in'; + } + } + + if(mfp.st.alignTop) { + _wrapClasses += ' mfp-align-top'; + } + + + + if(mfp.fixedContentPos) { + mfp.wrap.css({ + overflow: mfp.st.overflowY, + overflowX: 'hidden', + overflowY: mfp.st.overflowY + }); + } else { + mfp.wrap.css({ + top: _window.scrollTop(), + position: 'absolute' + }); + } + if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) { + mfp.bgOverlay.css({ + height: _document.height(), + position: 'absolute' + }); + } + + + + if(mfp.st.enableEscapeKey) { + // Close on ESC key + _document.on('keyup' + EVENT_NS, function(e) { + if(e.keyCode === 27) { + mfp.close(); + } + }); + } + + _window.on('resize' + EVENT_NS, function() { + mfp.updateSize(); + }); + + + if(!mfp.st.closeOnContentClick) { + _wrapClasses += ' mfp-auto-cursor'; + } + + if(_wrapClasses) + mfp.wrap.addClass(_wrapClasses); + + + // this triggers recalculation of layout, so we get it once to not to trigger twice + var windowHeight = mfp.wH = _window.height(); + + + var windowStyles = {}; + + if( mfp.fixedContentPos ) { + if(mfp._hasScrollBar(windowHeight)){ + var s = mfp._getScrollbarSize(); + if(s) { + windowStyles.marginRight = s; + } + } + } + + if(mfp.fixedContentPos) { + if(!mfp.isIE7) { + windowStyles.overflow = 'hidden'; + } else { + // ie7 double-scroll bug + $('body, html').css('overflow', 'hidden'); + } + } + + + + var classesToadd = mfp.st.mainClass; + if(mfp.isIE7) { + classesToadd += ' mfp-ie7'; + } + if(classesToadd) { + mfp._addClassToMFP( classesToadd ); + } + + // add content + mfp.updateItemHTML(); + + _mfpTrigger('BuildControls'); + + // remove scrollbar, add margin e.t.c + $('html').css(windowStyles); + + // add everything to DOM + mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || _body ); + + // Save last focused element + mfp._lastFocusedEl = document.activeElement; + + // Wait for next cycle to allow CSS transition + setTimeout(function() { + + if(mfp.content) { + mfp._addClassToMFP(READY_CLASS); + mfp._setFocus(); + } else { + // if content is not defined (not loaded e.t.c) we add class only for BG + mfp.bgOverlay.addClass(READY_CLASS); + } + + // Trap the focus in popup + _document.on('focusin' + EVENT_NS, mfp._onFocusIn); + + }, 16); + + mfp.isOpen = true; + mfp.updateSize(windowHeight); + _mfpTrigger(OPEN_EVENT); + + return data; + }, + + /** + * Closes the popup + */ + close: function() { + if(!mfp.isOpen) return; + _mfpTrigger(BEFORE_CLOSE_EVENT); + + mfp.isOpen = false; + // for CSS3 animation + if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) { + mfp._addClassToMFP(REMOVING_CLASS); + setTimeout(function() { + mfp._close(); + }, mfp.st.removalDelay); + } else { + mfp._close(); + } + }, + + /** + * Helper for close() function + */ + _close: function() { + _mfpTrigger(CLOSE_EVENT); + + var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' '; + + mfp.bgOverlay.detach(); + mfp.wrap.detach(); + mfp.container.empty(); + + if(mfp.st.mainClass) { + classesToRemove += mfp.st.mainClass + ' '; + } + + mfp._removeClassFromMFP(classesToRemove); + + if(mfp.fixedContentPos) { + var windowStyles = {marginRight: ''}; + if(mfp.isIE7) { + $('body, html').css('overflow', ''); + } else { + windowStyles.overflow = ''; + } + $('html').css(windowStyles); + } + + _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS); + mfp.ev.off(EVENT_NS); + + // clean up DOM elements that aren't removed + mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style'); + mfp.bgOverlay.attr('class', 'mfp-bg'); + mfp.container.attr('class', 'mfp-container'); + + // remove close button from target element + if(mfp.st.showCloseBtn && + (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) { + if(mfp.currTemplate.closeBtn) + mfp.currTemplate.closeBtn.detach(); + } + + + if(mfp._lastFocusedEl) { + $(mfp._lastFocusedEl).focus(); // put tab focus back + } + mfp.currItem = null; + mfp.content = null; + mfp.currTemplate = null; + mfp.prevHeight = 0; + + _mfpTrigger(AFTER_CLOSE_EVENT); + }, + + updateSize: function(winHeight) { + + if(mfp.isIOS) { + // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2 + var zoomLevel = document.documentElement.clientWidth / window.innerWidth; + var height = window.innerHeight * zoomLevel; + mfp.wrap.css('height', height); + mfp.wH = height; + } else { + mfp.wH = winHeight || _window.height(); + } + // Fixes #84: popup incorrectly positioned with position:relative on body + if(!mfp.fixedContentPos) { + mfp.wrap.css('height', mfp.wH); + } + + _mfpTrigger('Resize'); + + }, + + /** + * Set content of popup based on current index + */ + updateItemHTML: function() { + var item = mfp.items[mfp.index]; + + // Detach and perform modifications + mfp.contentContainer.detach(); + + if(mfp.content) + mfp.content.detach(); + + if(!item.parsed) { + item = mfp.parseEl( mfp.index ); + } + + var type = item.type; + + _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]); + // BeforeChange event works like so: + // _mfpOn('BeforeChange', function(e, prevType, newType) { }); + + mfp.currItem = item; + + + + + + if(!mfp.currTemplate[type]) { + var markup = mfp.st[type] ? mfp.st[type].markup : false; + + // allows to modify markup + _mfpTrigger('FirstMarkupParse', markup); + + if(markup) { + mfp.currTemplate[type] = $(markup); + } else { + // if there is no markup found we just define that template is parsed + mfp.currTemplate[type] = true; + } + } + + if(_prevContentType && _prevContentType !== item.type) { + mfp.container.removeClass('mfp-'+_prevContentType+'-holder'); + } + + var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]); + mfp.appendContent(newContent, type); + + item.preloaded = true; + + _mfpTrigger(CHANGE_EVENT, item); + _prevContentType = item.type; + + // Append container back after its content changed + mfp.container.prepend(mfp.contentContainer); + + _mfpTrigger('AfterChange'); + }, + + + /** + * Set HTML content of popup + */ + appendContent: function(newContent, type) { + mfp.content = newContent; + + if(newContent) { + if(mfp.st.showCloseBtn && mfp.st.closeBtnInside && + mfp.currTemplate[type] === true) { + // if there is no markup, we just append close button element inside + if(!mfp.content.find('.mfp-close').length) { + mfp.content.append(_getCloseBtn()); + } + } else { + mfp.content = newContent; + } + } else { + mfp.content = ''; + } + + _mfpTrigger(BEFORE_APPEND_EVENT); + mfp.container.addClass('mfp-'+type+'-holder'); + + mfp.contentContainer.append(mfp.content); + }, + + + + + /** + * Creates Magnific Popup data object based on given data + * @param {int} index Index of item to parse + */ + parseEl: function(index) { + var item = mfp.items[index], + type; + + if(item.tagName) { + item = { el: $(item) }; + } else { + type = item.type; + item = { data: item, src: item.src }; + } + + if(item.el) { + var types = mfp.types; + + // check for 'mfp-TYPE' class + for(var i = 0; i < types.length; i++) { + if( item.el.hasClass('mfp-'+types[i]) ) { + type = types[i]; + break; + } + } + + item.src = item.el.attr('data-mfp-src'); + if(!item.src) { + item.src = item.el.attr('href'); + } + } + + item.type = type || mfp.st.type || 'inline'; + item.index = index; + item.parsed = true; + mfp.items[index] = item; + _mfpTrigger('ElementParse', item); + + return mfp.items[index]; + }, + + + /** + * Initializes single popup or a group of popups + */ + addGroup: function(el, options) { + var eHandler = function(e) { + e.mfpEl = this; + mfp._openClick(e, el, options); + }; + + if(!options) { + options = {}; + } + + var eName = 'click.magnificPopup'; + options.mainEl = el; + + if(options.items) { + options.isObj = true; + el.off(eName).on(eName, eHandler); + } else { + options.isObj = false; + if(options.delegate) { + el.off(eName).on(eName, options.delegate , eHandler); + } else { + options.items = el; + el.off(eName).on(eName, eHandler); + } + } + }, + _openClick: function(e, el, options) { + var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick; + + + if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey ) ) { + return; + } + + var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn; + + if(disableOn) { + if($.isFunction(disableOn)) { + if( !disableOn.call(mfp) ) { + return true; + } + } else { // else it's number + if( _window.width() < disableOn ) { + return true; + } + } + } + + if(e.type) { + e.preventDefault(); + + // This will prevent popup from closing if element is inside and popup is already opened + if(mfp.isOpen) { + e.stopPropagation(); + } + } + + + options.el = $(e.mfpEl); + if(options.delegate) { + options.items = el.find(options.delegate); + } + mfp.open(options); + }, + + + /** + * Updates text on preloader + */ + updateStatus: function(status, text) { + + if(mfp.preloader) { + if(_prevStatus !== status) { + mfp.container.removeClass('mfp-s-'+_prevStatus); + } + + if(!text && status === 'loading') { + text = mfp.st.tLoading; + } + + var data = { + status: status, + text: text + }; + // allows to modify status + _mfpTrigger('UpdateStatus', data); + + status = data.status; + text = data.text; + + mfp.preloader.html(text); + + mfp.preloader.find('a').on('click', function(e) { + e.stopImmediatePropagation(); + }); + + mfp.container.addClass('mfp-s-'+status); + _prevStatus = status; + } + }, + + + /* + "Private" helpers that aren't private at all + */ + // Check to close popup or not + // "target" is an element that was clicked + _checkIfClose: function(target) { + + if($(target).hasClass(PREVENT_CLOSE_CLASS)) { + return; + } + + var closeOnContent = mfp.st.closeOnContentClick; + var closeOnBg = mfp.st.closeOnBgClick; + + if(closeOnContent && closeOnBg) { + return true; + } else { + + // We close the popup if click is on close button or on preloader. Or if there is no content. + if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) { + return true; + } + + // if click is outside the content + if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) { + if(closeOnBg) { + // last check, if the clicked element is in DOM, (in case it's removed onclick) + if( $.contains(document, target) ) { + return true; + } + } + } else if(closeOnContent) { + return true; + } + + } + return false; + }, + _addClassToMFP: function(cName) { + mfp.bgOverlay.addClass(cName); + mfp.wrap.addClass(cName); + }, + _removeClassFromMFP: function(cName) { + this.bgOverlay.removeClass(cName); + mfp.wrap.removeClass(cName); + }, + _hasScrollBar: function(winHeight) { + return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) ); + }, + _setFocus: function() { + (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus(); + }, + _onFocusIn: function(e) { + if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) { + mfp._setFocus(); + return false; + } + }, + _parseMarkup: function(template, values, item) { + var arr; + if(item.data) { + values = $.extend(item.data, values); + } + _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] ); + + $.each(values, function(key, value) { + if(value === undefined || value === false) { + return true; + } + arr = key.split('_'); + if(arr.length > 1) { + var el = template.find(EVENT_NS + '-'+arr[0]); + + if(el.length > 0) { + var attr = arr[1]; + if(attr === 'replaceWith') { + if(el[0] !== value[0]) { + el.replaceWith(value); + } + } else if(attr === 'img') { + if(el.is('img')) { + el.attr('src', value); + } else { + el.replaceWith( '' ); + } + } else { + el.attr(arr[1], value); + } + } + + } else { + template.find(EVENT_NS + '-'+key).html(value); + } + }); + }, + + _getScrollbarSize: function() { + // thx David + if(mfp.scrollbarSize === undefined) { + var scrollDiv = document.createElement("div"); + scrollDiv.id = "mfp-sbm"; + scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;'; + document.body.appendChild(scrollDiv); + mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + } + return mfp.scrollbarSize; + } + +}; /* MagnificPopup core prototype end */ + + + + +/** + * Public static functions + */ +$.magnificPopup = { + instance: null, + proto: MagnificPopup.prototype, + modules: [], + + open: function(options, index) { + _checkInstance(); + + if(!options) { + options = {}; + } else { + options = $.extend(true, {}, options); + } + + + options.isObj = true; + options.index = index || 0; + return this.instance.open(options); + }, + + close: function() { + return $.magnificPopup.instance && $.magnificPopup.instance.close(); + }, + + registerModule: function(name, module) { + if(module.options) { + $.magnificPopup.defaults[name] = module.options; + } + $.extend(this.proto, module.proto); + this.modules.push(name); + }, + + defaults: { + + // Info about options is in docs: + // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options + + disableOn: 0, + + key: null, + + midClick: false, + + mainClass: '', + + preloader: true, + + focus: '', // CSS selector of input to focus after popup is opened + + closeOnContentClick: false, + + closeOnBgClick: true, + + closeBtnInside: true, + + showCloseBtn: true, + + enableEscapeKey: true, + + modal: false, + + alignTop: false, + + removalDelay: 0, + + prependTo: null, + + fixedContentPos: 'auto', + + fixedBgPos: 'auto', + + overflowY: 'auto', + + closeMarkup: '', + + tClose: 'Close (Esc)', + + tLoading: 'Loading...' + + } +}; + + + +$.fn.magnificPopup = function(options) { + _checkInstance(); + + var jqEl = $(this); + + // We call some API method of first param is a string + if (typeof options === "string" ) { + + if(options === 'open') { + var items, + itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup, + index = parseInt(arguments[1], 10) || 0; + + if(itemOpts.items) { + items = itemOpts.items[index]; + } else { + items = jqEl; + if(itemOpts.delegate) { + items = items.find(itemOpts.delegate); + } + items = items.eq( index ); + } + mfp._openClick({mfpEl:items}, jqEl, itemOpts); + } else { + if(mfp.isOpen) + mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1)); + } + + } else { + // clone options obj + options = $.extend(true, {}, options); + + /* + * As Zepto doesn't support .data() method for objects + * and it works only in normal browsers + * we assign "options" object directly to the DOM element. FTW! + */ + if(_isJQ) { + jqEl.data('magnificPopup', options); + } else { + jqEl[0].magnificPopup = options; + } + + mfp.addGroup(jqEl, options); + + } + return jqEl; +}; + + +//Quick benchmark +/* +var start = performance.now(), + i, + rounds = 1000; + +for(i = 0; i < rounds; i++) { + +} +console.log('Test #1:', performance.now() - start); + +start = performance.now(); +for(i = 0; i < rounds; i++) { + +} +console.log('Test #2:', performance.now() - start); +*/ + + +/*>>core*/ + +/*>>inline*/ + +var INLINE_NS = 'inline', + _hiddenClass, + _inlinePlaceholder, + _lastInlineElement, + _putInlineElementsBack = function() { + if(_lastInlineElement) { + _inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach(); + _lastInlineElement = null; + } + }; + +$.magnificPopup.registerModule(INLINE_NS, { + options: { + hiddenClass: 'hide', // will be appended with `mfp-` prefix + markup: '', + tNotFound: 'Content not found' + }, + proto: { + + initInline: function() { + mfp.types.push(INLINE_NS); + + _mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() { + _putInlineElementsBack(); + }); + }, + + getInline: function(item, template) { + + _putInlineElementsBack(); + + if(item.src) { + var inlineSt = mfp.st.inline, + el = $(item.src); + + if(el.length) { + + // If target element has parent - we replace it with placeholder and put it back after popup is closed + var parent = el[0].parentNode; + if(parent && parent.tagName) { + if(!_inlinePlaceholder) { + _hiddenClass = inlineSt.hiddenClass; + _inlinePlaceholder = _getEl(_hiddenClass); + _hiddenClass = 'mfp-'+_hiddenClass; + } + // replace target inline element with placeholder + _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass); + } + + mfp.updateStatus('ready'); + } else { + mfp.updateStatus('error', inlineSt.tNotFound); + el = $('
'); + } + + item.inlineElement = el; + return el; + } + + mfp.updateStatus('ready'); + mfp._parseMarkup(template, {}, item); + return template; + } + } +}); + +/*>>inline*/ + +/*>>ajax*/ +var AJAX_NS = 'ajax', + _ajaxCur, + _removeAjaxCursor = function() { + if(_ajaxCur) { + _body.removeClass(_ajaxCur); + } + }, + _destroyAjaxRequest = function() { + _removeAjaxCursor(); + if(mfp.req) { + mfp.req.abort(); + } + }; + +$.magnificPopup.registerModule(AJAX_NS, { + + options: { + settings: null, + cursor: 'mfp-ajax-cur', + tError: 'The content could not be loaded.' + }, + + proto: { + initAjax: function() { + mfp.types.push(AJAX_NS); + _ajaxCur = mfp.st.ajax.cursor; + + _mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest); + _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest); + }, + getAjax: function(item) { + + if(_ajaxCur) + _body.addClass(_ajaxCur); + + mfp.updateStatus('loading'); + + var opts = $.extend({ + url: item.src, + success: function(data, textStatus, jqXHR) { + var temp = { + data:data, + xhr:jqXHR + }; + + _mfpTrigger('ParseAjax', temp); + + mfp.appendContent( $(temp.data), AJAX_NS ); + + item.finished = true; + + _removeAjaxCursor(); + + mfp._setFocus(); + + setTimeout(function() { + mfp.wrap.addClass(READY_CLASS); + }, 16); + + mfp.updateStatus('ready'); + + _mfpTrigger('AjaxContentAdded'); + }, + error: function() { + _removeAjaxCursor(); + item.finished = item.loadError = true; + mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src)); + } + }, mfp.st.ajax.settings); + + mfp.req = $.ajax(opts); + + return ''; + } + } +}); + + + + + + + +/*>>ajax*/ + +/*>>image*/ +var _imgInterval, + _getTitle = function(item) { + if(item.data && item.data.title !== undefined) + return item.data.title; + + var src = mfp.st.image.titleSrc; + + if(src) { + if($.isFunction(src)) { + return src.call(mfp, item); + } else if(item.el) { + return item.el.attr(src) || ''; + } + } + return ''; + }; + +$.magnificPopup.registerModule('image', { + + options: { + markup: '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
', + cursor: 'mfp-zoom-out-cur', + titleSrc: 'title', + verticalFit: true, + tError: 'The image could not be loaded.' + }, + + proto: { + initImage: function() { + var imgSt = mfp.st.image, + ns = '.image'; + + mfp.types.push('image'); + + _mfpOn(OPEN_EVENT+ns, function() { + if(mfp.currItem.type === 'image' && imgSt.cursor) { + _body.addClass(imgSt.cursor); + } + }); + + _mfpOn(CLOSE_EVENT+ns, function() { + if(imgSt.cursor) { + _body.removeClass(imgSt.cursor); + } + _window.off('resize' + EVENT_NS); + }); + + _mfpOn('Resize'+ns, mfp.resizeImage); + if(mfp.isLowIE) { + _mfpOn('AfterChange', mfp.resizeImage); + } + }, + resizeImage: function() { + var item = mfp.currItem; + if(!item || !item.img) return; + + if(mfp.st.image.verticalFit) { + var decr = 0; + // fix box-sizing in ie7/8 + if(mfp.isLowIE) { + decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10); + } + item.img.css('max-height', mfp.wH-decr); + } + }, + _onImageHasSize: function(item) { + if(item.img) { + + item.hasSize = true; + + if(_imgInterval) { + clearInterval(_imgInterval); + } + + item.isCheckingImgSize = false; + + _mfpTrigger('ImageHasSize', item); + + if(item.imgHidden) { + if(mfp.content) + mfp.content.removeClass('mfp-loading'); + + item.imgHidden = false; + } + + } + }, + + /** + * Function that loops until the image has size to display elements that rely on it asap + */ + findImageSize: function(item) { + + var counter = 0, + img = item.img[0], + mfpSetInterval = function(delay) { + + if(_imgInterval) { + clearInterval(_imgInterval); + } + // decelerating interval that checks for size of an image + _imgInterval = setInterval(function() { + if(img.naturalWidth > 0) { + mfp._onImageHasSize(item); + return; + } + + if(counter > 200) { + clearInterval(_imgInterval); + } + + counter++; + if(counter === 3) { + mfpSetInterval(10); + } else if(counter === 40) { + mfpSetInterval(50); + } else if(counter === 100) { + mfpSetInterval(500); + } + }, delay); + }; + + mfpSetInterval(1); + }, + + getImage: function(item, template) { + + var guard = 0, + + // image load complete handler + onLoadComplete = function() { + if(item) { + if (item.img[0].complete) { + item.img.off('.mfploader'); + + if(item === mfp.currItem){ + mfp._onImageHasSize(item); + + mfp.updateStatus('ready'); + } + + item.hasSize = true; + item.loaded = true; + + _mfpTrigger('ImageLoadComplete'); + + } + else { + // if image complete check fails 200 times (20 sec), we assume that there was an error. + guard++; + if(guard < 200) { + setTimeout(onLoadComplete,100); + } else { + onLoadError(); + } + } + } + }, + + // image error handler + onLoadError = function() { + if(item) { + item.img.off('.mfploader'); + if(item === mfp.currItem){ + mfp._onImageHasSize(item); + mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) ); + } + + item.hasSize = true; + item.loaded = true; + item.loadError = true; + } + }, + imgSt = mfp.st.image; + + + var el = template.find('.mfp-img'); + if(el.length) { + var img = document.createElement('img'); + img.className = 'mfp-img'; + item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError); + img.src = item.src; + + // without clone() "error" event is not firing when IMG is replaced by new IMG + // TODO: find a way to avoid such cloning + if(el.is('img')) { + item.img = item.img.clone(); + } + + img = item.img[0]; + if(img.naturalWidth > 0) { + item.hasSize = true; + } else if(!img.width) { + item.hasSize = false; + } + } + + mfp._parseMarkup(template, { + title: _getTitle(item), + img_replaceWith: item.img + }, item); + + mfp.resizeImage(); + + if(item.hasSize) { + if(_imgInterval) clearInterval(_imgInterval); + + if(item.loadError) { + template.addClass('mfp-loading'); + mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) ); + } else { + template.removeClass('mfp-loading'); + mfp.updateStatus('ready'); + } + return template; + } + + mfp.updateStatus('loading'); + item.loading = true; + + if(!item.hasSize) { + item.imgHidden = true; + template.addClass('mfp-loading'); + mfp.findImageSize(item); + } + + return template; + } + } +}); + + + +/*>>image*/ + +/*>>zoom*/ +var hasMozTransform, + getHasMozTransform = function() { + if(hasMozTransform === undefined) { + hasMozTransform = document.createElement('p').style.MozTransform !== undefined; + } + return hasMozTransform; + }; + +$.magnificPopup.registerModule('zoom', { + + options: { + enabled: false, + easing: 'ease-in-out', + duration: 300, + opener: function(element) { + return element.is('img') ? element : element.find('img'); + } + }, + + proto: { + + initZoom: function() { + var zoomSt = mfp.st.zoom, + ns = '.zoom', + image; + + if(!zoomSt.enabled || !mfp.supportsTransition) { + return; + } + + var duration = zoomSt.duration, + getElToAnimate = function(image) { + var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'), + transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing, + cssObj = { + position: 'fixed', + zIndex: 9999, + left: 0, + top: 0, + '-webkit-backface-visibility': 'hidden' + }, + t = 'transition'; + + cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition; + + newImg.css(cssObj); + return newImg; + }, + showMainContent = function() { + mfp.content.css('visibility', 'visible'); + }, + openTimeout, + animatedImg; + + _mfpOn('BuildControls'+ns, function() { + if(mfp._allowZoom()) { + + clearTimeout(openTimeout); + mfp.content.css('visibility', 'hidden'); + + // Basically, all code below does is clones existing image, puts in on top of the current one and animated it + + image = mfp._getItemToZoom(); + + if(!image) { + showMainContent(); + return; + } + + animatedImg = getElToAnimate(image); + + animatedImg.css( mfp._getOffset() ); + + mfp.wrap.append(animatedImg); + + openTimeout = setTimeout(function() { + animatedImg.css( mfp._getOffset( true ) ); + openTimeout = setTimeout(function() { + + showMainContent(); + + setTimeout(function() { + animatedImg.remove(); + image = animatedImg = null; + _mfpTrigger('ZoomAnimationEnded'); + }, 16); // avoid blink when switching images + + }, duration); // this timeout equals animation duration + + }, 16); // by adding this timeout we avoid short glitch at the beginning of animation + + + // Lots of timeouts... + } + }); + _mfpOn(BEFORE_CLOSE_EVENT+ns, function() { + if(mfp._allowZoom()) { + + clearTimeout(openTimeout); + + mfp.st.removalDelay = duration; + + if(!image) { + image = mfp._getItemToZoom(); + if(!image) { + return; + } + animatedImg = getElToAnimate(image); + } + + + animatedImg.css( mfp._getOffset(true) ); + mfp.wrap.append(animatedImg); + mfp.content.css('visibility', 'hidden'); + + setTimeout(function() { + animatedImg.css( mfp._getOffset() ); + }, 16); + } + + }); + + _mfpOn(CLOSE_EVENT+ns, function() { + if(mfp._allowZoom()) { + showMainContent(); + if(animatedImg) { + animatedImg.remove(); + } + image = null; + } + }); + }, + + _allowZoom: function() { + return mfp.currItem.type === 'image'; + }, + + _getItemToZoom: function() { + if(mfp.currItem.hasSize) { + return mfp.currItem.img; + } else { + return false; + } + }, + + // Get element postion relative to viewport + _getOffset: function(isLarge) { + var el; + if(isLarge) { + el = mfp.currItem.img; + } else { + el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem); + } + + var offset = el.offset(); + var paddingTop = parseInt(el.css('padding-top'),10); + var paddingBottom = parseInt(el.css('padding-bottom'),10); + offset.top -= ( $(window).scrollTop() - paddingTop ); + + + /* + + Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa. + + */ + var obj = { + width: el.width(), + // fix Zepto height+padding issue + height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop + }; + + // I hate to do this, but there is no another option + if( getHasMozTransform() ) { + obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)'; + } else { + obj.left = offset.left; + obj.top = offset.top; + } + return obj; + } + + } +}); + + + +/*>>zoom*/ + +/*>>iframe*/ + +var IFRAME_NS = 'iframe', + _emptyPage = '//about:blank', + + _fixIframeBugs = function(isShowing) { + if(mfp.currTemplate[IFRAME_NS]) { + var el = mfp.currTemplate[IFRAME_NS].find('iframe'); + if(el.length) { + // reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug + if(!isShowing) { + el[0].src = _emptyPage; + } + + // IE8 black screen bug fix + if(mfp.isIE8) { + el.css('display', isShowing ? 'block' : 'none'); + } + } + } + }; + +$.magnificPopup.registerModule(IFRAME_NS, { + + options: { + markup: '
'+ + '
'+ + ''+ + '
', + + srcAction: 'iframe_src', + + // we don't care and support only one default type of URL by default + patterns: { + youtube: { + index: 'youtube.com', + id: 'v=', + src: '//www.youtube.com/embed/%id%?autoplay=1' + }, + vimeo: { + index: 'vimeo.com/', + id: '/', + src: '//player.vimeo.com/video/%id%?autoplay=1' + }, + gmaps: { + index: '//maps.google.', + src: '%id%&output=embed' + } + } + }, + + proto: { + initIframe: function() { + mfp.types.push(IFRAME_NS); + + _mfpOn('BeforeChange', function(e, prevType, newType) { + if(prevType !== newType) { + if(prevType === IFRAME_NS) { + _fixIframeBugs(); // iframe if removed + } else if(newType === IFRAME_NS) { + _fixIframeBugs(true); // iframe is showing + } + }// else { + // iframe source is switched, don't do anything + //} + }); + + _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() { + _fixIframeBugs(); + }); + }, + + getIframe: function(item, template) { + var embedSrc = item.src; + var iframeSt = mfp.st.iframe; + + $.each(iframeSt.patterns, function() { + if(embedSrc.indexOf( this.index ) > -1) { + if(this.id) { + if(typeof this.id === 'string') { + embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length); + } else { + embedSrc = this.id.call( this, embedSrc ); + } + } + embedSrc = this.src.replace('%id%', embedSrc ); + return false; // break; + } + }); + + var dataObj = {}; + if(iframeSt.srcAction) { + dataObj[iframeSt.srcAction] = embedSrc; + } + mfp._parseMarkup(template, dataObj, item); + + mfp.updateStatus('ready'); + + return template; + } + } +}); + + + +/*>>iframe*/ + +/*>>gallery*/ +/** + * Get looped index depending on number of slides + */ +var _getLoopedId = function(index) { + var numSlides = mfp.items.length; + if(index > numSlides - 1) { + return index - numSlides; + } else if(index < 0) { + return numSlides + index; + } + return index; + }, + _replaceCurrTotal = function(text, curr, total) { + return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total); + }; + +$.magnificPopup.registerModule('gallery', { + + options: { + enabled: false, + arrowMarkup: '', + preload: [0,2], + navigateByImgClick: true, + arrows: true, + + tPrev: 'Previous (Left arrow key)', + tNext: 'Next (Right arrow key)', + tCounter: '%curr% of %total%' + }, + + proto: { + initGallery: function() { + + var gSt = mfp.st.gallery, + ns = '.mfp-gallery', + supportsFastClick = Boolean($.fn.mfpFastClick); + + mfp.direction = true; // true - next, false - prev + + if(!gSt || !gSt.enabled ) return false; + + _wrapClasses += ' mfp-gallery'; + + _mfpOn(OPEN_EVENT+ns, function() { + + if(gSt.navigateByImgClick) { + mfp.wrap.on('click'+ns, '.mfp-img', function() { + if(mfp.items.length > 1) { + mfp.next(); + return false; + } + }); + } + + _document.on('keydown'+ns, function(e) { + if (e.keyCode === 37) { + mfp.prev(); + } else if (e.keyCode === 39) { + mfp.next(); + } + }); + }); + + _mfpOn('UpdateStatus'+ns, function(e, data) { + if(data.text) { + data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length); + } + }); + + _mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) { + var l = mfp.items.length; + values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : ''; + }); + + _mfpOn('BuildControls' + ns, function() { + if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) { + var markup = gSt.arrowMarkup, + arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS), + arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS); + + var eName = supportsFastClick ? 'mfpFastClick' : 'click'; + arrowLeft[eName](function() { + mfp.prev(); + }); + arrowRight[eName](function() { + mfp.next(); + }); + + // Polyfill for :before and :after (adds elements with classes mfp-a and mfp-b) + if(mfp.isIE7) { + _getEl('b', arrowLeft[0], false, true); + _getEl('a', arrowLeft[0], false, true); + _getEl('b', arrowRight[0], false, true); + _getEl('a', arrowRight[0], false, true); + } + + mfp.container.append(arrowLeft.add(arrowRight)); + } + }); + + _mfpOn(CHANGE_EVENT+ns, function() { + if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout); + + mfp._preloadTimeout = setTimeout(function() { + mfp.preloadNearbyImages(); + mfp._preloadTimeout = null; + }, 16); + }); + + + _mfpOn(CLOSE_EVENT+ns, function() { + _document.off(ns); + mfp.wrap.off('click'+ns); + + if(mfp.arrowLeft && supportsFastClick) { + mfp.arrowLeft.add(mfp.arrowRight).destroyMfpFastClick(); + } + mfp.arrowRight = mfp.arrowLeft = null; + }); + + }, + next: function() { + mfp.direction = true; + mfp.index = _getLoopedId(mfp.index + 1); + mfp.updateItemHTML(); + }, + prev: function() { + mfp.direction = false; + mfp.index = _getLoopedId(mfp.index - 1); + mfp.updateItemHTML(); + }, + goTo: function(newIndex) { + mfp.direction = (newIndex >= mfp.index); + mfp.index = newIndex; + mfp.updateItemHTML(); + }, + preloadNearbyImages: function() { + var p = mfp.st.gallery.preload, + preloadBefore = Math.min(p[0], mfp.items.length), + preloadAfter = Math.min(p[1], mfp.items.length), + i; + + for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) { + mfp._preloadItem(mfp.index+i); + } + for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) { + mfp._preloadItem(mfp.index-i); + } + }, + _preloadItem: function(index) { + index = _getLoopedId(index); + + if(mfp.items[index].preloaded) { + return; + } + + var item = mfp.items[index]; + if(!item.parsed) { + item = mfp.parseEl( index ); + } + + _mfpTrigger('LazyLoad', item); + + if(item.type === 'image') { + item.img = $('').on('load.mfploader', function() { + item.hasSize = true; + }).on('error.mfploader', function() { + item.hasSize = true; + item.loadError = true; + _mfpTrigger('LazyLoadError', item); + }).attr('src', item.src); + } + + + item.preloaded = true; + } + } +}); + +/* +Touch Support that might be implemented some day + +addSwipeGesture: function() { + var startX, + moved, + multipleTouches; + + return; + + var namespace = '.mfp', + addEventNames = function(pref, down, move, up, cancel) { + mfp._tStart = pref + down + namespace; + mfp._tMove = pref + move + namespace; + mfp._tEnd = pref + up + namespace; + mfp._tCancel = pref + cancel + namespace; + }; + + if(window.navigator.msPointerEnabled) { + addEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel'); + } else if('ontouchstart' in window) { + addEventNames('touch', 'start', 'move', 'end', 'cancel'); + } else { + return; + } + _window.on(mfp._tStart, function(e) { + var oE = e.originalEvent; + multipleTouches = moved = false; + startX = oE.pageX || oE.changedTouches[0].pageX; + }).on(mfp._tMove, function(e) { + if(e.originalEvent.touches.length > 1) { + multipleTouches = e.originalEvent.touches.length; + } else { + //e.preventDefault(); + moved = true; + } + }).on(mfp._tEnd + ' ' + mfp._tCancel, function(e) { + if(moved && !multipleTouches) { + var oE = e.originalEvent, + diff = startX - (oE.pageX || oE.changedTouches[0].pageX); + + if(diff > 20) { + mfp.next(); + } else if(diff < -20) { + mfp.prev(); + } + } + }); +}, +*/ + + +/*>>gallery*/ + +/*>>retina*/ + +var RETINA_NS = 'retina'; + +$.magnificPopup.registerModule(RETINA_NS, { + options: { + replaceSrc: function(item) { + return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; }); + }, + ratio: 1 // Function or number. Set to 1 to disable. + }, + proto: { + initRetina: function() { + if(window.devicePixelRatio > 1) { + + var st = mfp.st.retina, + ratio = st.ratio; + + ratio = !isNaN(ratio) ? ratio : ratio(); + + if(ratio > 1) { + _mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) { + item.img.css({ + 'max-width': item.img[0].naturalWidth / ratio, + 'width': '100%' + }); + }); + _mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) { + item.src = st.replaceSrc(item, ratio); + }); + } + } + + } + } +}); + +/*>>retina*/ + +/*>>fastclick*/ +/** + * FastClick event implementation. (removes 300ms delay on touch devices) + * Based on https://developers.google.com/mobile/articles/fast_buttons + * + * You may use it outside the Magnific Popup by calling just: + * + * $('.your-el').mfpFastClick(function() { + * console.log('Clicked!'); + * }); + * + * To unbind: + * $('.your-el').destroyMfpFastClick(); + * + * + * Note that it's a very basic and simple implementation, it blocks ghost click on the same element where it was bound. + * If you need something more advanced, use plugin by FT Labs https://github.com/ftlabs/fastclick + * + */ + +(function() { + var ghostClickDelay = 1000, + supportsTouch = 'ontouchstart' in window, + unbindTouchMove = function() { + _window.off('touchmove'+ns+' touchend'+ns); + }, + eName = 'mfpFastClick', + ns = '.'+eName; + + + // As Zepto.js doesn't have an easy way to add custom events (like jQuery), so we implement it in this way + $.fn.mfpFastClick = function(callback) { + + return $(this).each(function() { + + var elem = $(this), + lock; + + if( supportsTouch ) { + + var timeout, + startX, + startY, + pointerMoved, + point, + numPointers; + + elem.on('touchstart' + ns, function(e) { + pointerMoved = false; + numPointers = 1; + + point = e.originalEvent ? e.originalEvent.touches[0] : e.touches[0]; + startX = point.clientX; + startY = point.clientY; + + _window.on('touchmove'+ns, function(e) { + point = e.originalEvent ? e.originalEvent.touches : e.touches; + numPointers = point.length; + point = point[0]; + if (Math.abs(point.clientX - startX) > 10 || + Math.abs(point.clientY - startY) > 10) { + pointerMoved = true; + unbindTouchMove(); + } + }).on('touchend'+ns, function(e) { + unbindTouchMove(); + if(pointerMoved || numPointers > 1) { + return; + } + lock = true; + e.preventDefault(); + clearTimeout(timeout); + timeout = setTimeout(function() { + lock = false; + }, ghostClickDelay); + callback(); + }); + }); + + } + + elem.on('click' + ns, function() { + if(!lock) { + callback(); + } + }); + }); + }; + + $.fn.destroyMfpFastClick = function() { + $(this).off('touchstart' + ns + ' click' + ns); + if(supportsTouch) _window.off('touchmove'+ns+' touchend'+ns); + }; +})(); + +/*>>fastclick*/ + _checkInstance(); })(window.jQuery || window.Zepto); diff --git a/docs/assets/js/plugins/jquery.smooth-scroll.min.js b/docs/assets/js/plugins/jquery.smooth-scroll.min.js new file mode 100644 index 00000000..3576b049 --- /dev/null +++ b/docs/assets/js/plugins/jquery.smooth-scroll.min.js @@ -0,0 +1,8 @@ +/*! + * jQuery Smooth Scroll - v1.7.2 - 2016-01-23 + * https://github.com/kswedberg/jquery-smooth-scroll + * Copyright (c) 2016 Karl Swedberg + * Licensed MIT + */ + +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof module&&module.exports?require("jquery"):jQuery)}(function(a){var b="1.7.2",c={},d={exclude:[],excludeWithin:[],offset:0,direction:"top",delegateSelector:null,scrollElement:null,scrollTarget:null,beforeScroll:function(){},afterScroll:function(){},easing:"swing",speed:400,autoCoefficient:2,preventDefault:!0},e=function(b){var c=[],d=!1,e=b.dir&&"left"===b.dir?"scrollLeft":"scrollTop";return this.each(function(){var b=a(this);if(this!==document&&this!==window)return!document.scrollingElement||this!==document.documentElement&&this!==document.body?void(b[e]()>0?c.push(this):(b[e](1),d=b[e]()>0,d&&c.push(this),b[e](0))):(c.push(document.scrollingElement),!1)}),c.length||this.each(function(){this===document.documentElement&&"smooth"===a(this).css("scrollBehavior")&&(c=[this]),c.length||"BODY"!==this.nodeName||(c=[this])}),"first"===b.el&&c.length>1&&(c=[c[0]]),c};a.fn.extend({scrollable:function(a){var b=e.call(this,{dir:a});return this.pushStack(b)},firstScrollable:function(a){var b=e.call(this,{el:"first",dir:a});return this.pushStack(b)},smoothScroll:function(b,c){if(b=b||{},"options"===b)return c?this.each(function(){var b=a(this),d=a.extend(b.data("ssOpts")||{},c);a(this).data("ssOpts",d)}):this.first().data("ssOpts");var d=a.extend({},a.fn.smoothScroll.defaults,b),e=function(b){var c=function(a){return a.replace(/(:|\.|\/)/g,"\\$1")},e=this,f=a(this),g=a.extend({},d,f.data("ssOpts")||{}),h=d.exclude,i=g.excludeWithin,j=0,k=0,l=!0,m={},n=a.smoothScroll.filterPath(location.pathname),o=a.smoothScroll.filterPath(e.pathname),p=location.hostname===e.hostname||!e.hostname,q=g.scrollTarget||o===n,r=c(e.hash);if(r&&!a(r).length&&(l=!1),g.scrollTarget||p&&q&&r){for(;l&&j=0;a--)j(H[a])}function j(a){if(a.inited){var b=F.top<=a.limit.start?0:F.top>=a.limit.end?2:1;a.mode!=b&&p(a,b)}}function k(){for(var a=H.length-1;a>=0;a--)if(H[a].inited){var b=Math.abs(t(H[a].clone)-H[a].docOffsetTop),c=Math.abs(H[a].parent.node.offsetHeight-H[a].parent.height);if(b>=2||c>=2)return!1}return!0}function l(a){isNaN(parseFloat(a.computed.top))||a.isCell||"none"==a.computed.display||(a.inited=!0,a.clone||q(a),"absolute"!=a.parent.computed.position&&"relative"!=a.parent.computed.position&&(a.parent.node.style.position="relative"),j(a),a.parent.height=a.parent.node.offsetHeight,a.docOffsetTop=t(a.clone))}function m(a){var b=!0;a.clone&&r(a),d(a.node.style,a.css);for(var c=H.length-1;c>=0;c--)if(H[c].node!==a.node&&H[c].parent.node===a.parent.node){b=!1;break}b&&(a.parent.node.style.position=a.parent.css.position),a.mode=-1}function n(){for(var a=H.length-1;a>=0;a--)l(H[a])}function o(){for(var a=H.length-1;a>=0;a--)m(H[a])}function p(a,b){var c=a.node.style;switch(b){case 0:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top=a.offset.top+"px",c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 1:c.position="fixed",c.left=a.box.left+"px",c.right=a.box.right+"px",c.top=a.css.top,c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 2:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top="auto",c.bottom=0,c.width="auto",c.marginLeft=0,c.marginRight=0}a.mode=b}function q(a){a.clone=document.createElement("div");var b=a.node.nextSibling||a.node,c=a.clone.style;c.height=a.height+"px",c.width=a.width+"px",c.marginTop=a.computed.marginTop,c.marginBottom=a.computed.marginBottom,c.marginLeft=a.computed.marginLeft,c.marginRight=a.computed.marginRight,c.padding=c.border=c.borderSpacing=0,c.fontSize="1em",c.position="static",c.cssFloat=a.computed.cssFloat,a.node.parentNode.insertBefore(a.clone,b)}function r(a){a.clone.parentNode.removeChild(a.clone),a.clone=void 0}function s(a){var b=getComputedStyle(a),c=a.parentNode,d=getComputedStyle(c),f=a.style.position;a.style.position="relative";var g={top:b.top,marginTop:b.marginTop,marginBottom:b.marginBottom,marginLeft:b.marginLeft,marginRight:b.marginRight,cssFloat:b.cssFloat,display:b.display},h={top:e(b.top),marginBottom:e(b.marginBottom),paddingLeft:e(b.paddingLeft),paddingRight:e(b.paddingRight),borderLeftWidth:e(b.borderLeftWidth),borderRightWidth:e(b.borderRightWidth)};a.style.position=f;var i={position:a.style.position,top:a.style.top,bottom:a.style.bottom,left:a.style.left,right:a.style.right,width:a.style.width,marginTop:a.style.marginTop,marginLeft:a.style.marginLeft,marginRight:a.style.marginRight},j=u(a),k=u(c),l={node:c,css:{position:c.style.position},computed:{position:d.position},numeric:{borderLeftWidth:e(d.borderLeftWidth),borderRightWidth:e(d.borderRightWidth),borderTopWidth:e(d.borderTopWidth),borderBottomWidth:e(d.borderBottomWidth)}},m={node:a,box:{left:j.win.left,right:J.clientWidth-j.win.right},offset:{top:j.win.top-k.win.top-l.numeric.borderTopWidth,left:j.win.left-k.win.left-l.numeric.borderLeftWidth,right:-j.win.right+k.win.right-l.numeric.borderRightWidth},css:i,isCell:"table-cell"==b.display,computed:g,numeric:h,width:j.win.right-j.win.left,height:j.win.bottom-j.win.top,mode:-1,inited:!1,parent:l,limit:{start:j.doc.top-h.top,end:k.doc.top+c.offsetHeight-l.numeric.borderBottomWidth-a.offsetHeight-h.top-h.marginBottom}};return m}function t(a){for(var b=0;a;)b+=a.offsetTop,a=a.offsetParent;return b}function u(a){var c=a.getBoundingClientRect();return{doc:{top:c.top+b.pageYOffset,left:c.left+b.pageXOffset},win:c}}function v(){G=setInterval(function(){!k()&&z()},500)}function w(){clearInterval(G)}function x(){I&&(document[L]?w():v())}function y(){I||(f(),n(),b.addEventListener("scroll",g),b.addEventListener("wheel",h),b.addEventListener("resize",z),b.addEventListener("orientationchange",z),a.addEventListener(M,x),v(),I=!0)}function z(){if(I){o();for(var a=H.length-1;a>=0;a--)H[a]=s(H[a].node);n()}}function A(){b.removeEventListener("scroll",g),b.removeEventListener("wheel",h),b.removeEventListener("resize",z),b.removeEventListener("orientationchange",z),a.removeEventListener(M,x),w(),I=!1}function B(){A(),o()}function C(){for(B();H.length;)H.pop()}function D(a){for(var b=H.length-1;b>=0;b--)if(H[b].node===a)return;var c=s(a);H.push(c),I?l(c):y()}function E(a){for(var b=H.length-1;b>=0;b--)H[b].node===a&&(m(H[b]),H.splice(b,1))}var F,G,H=[],I=!1,J=a.documentElement,K=function(){},L="hidden",M="visibilitychange";void 0!==a.webkitHidden&&(L="webkitHidden",M="webkitvisibilitychange"),b.getComputedStyle||c();for(var N=["","-webkit-","-moz-","-ms-"],O=document.createElement("div"),P=N.length-1;P>=0;P--){try{O.style.position=N[P]+"sticky"}catch(Q){}""!=O.style.position&&c()}f(),b.Stickyfill={stickies:H,add:D,remove:E,init:y,rebuild:z,pause:A,stop:B,kill:C}}(document,window),window.jQuery&&!function($){$.fn.Stickyfill=function(a){return this.each(function(){Stickyfill.add(this)}),this}}(window.jQuery); \ No newline at end of file diff --git a/docs/assets/js/vendor/jquery/jquery-1.12.4.min.js b/docs/assets/js/vendor/jquery/jquery-1.12.4.min.js new file mode 100644 index 00000000..b0ecadde --- /dev/null +++ b/docs/assets/js/vendor/jquery/jquery-1.12.4.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; +}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML="
a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,"

","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:l.htmlSerialize?[0,"",""]:[1,"X
","
"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n(" \ No newline at end of file diff --git a/test/_posts/2010-08-05-post-image-linked.md b/test/_posts/2010-08-05-post-image-linked.md new file mode 100644 index 00000000..af3f3fe9 --- /dev/null +++ b/test/_posts/2010-08-05-post-image-linked.md @@ -0,0 +1,10 @@ +--- +title: "Post: Image (with Link)" +categories: + - Post Formats +tags: + - image + - Post Formats +--- + +[![foo](https://farm5.staticflickr.com/4073/4939853213_33ffc0290b_b.jpg)](https://flic.kr/p/8ww3fZ) \ No newline at end of file diff --git a/test/_posts/2010-08-05-post-image-standard.md b/test/_posts/2010-08-05-post-image-standard.md new file mode 100644 index 00000000..097e235b --- /dev/null +++ b/test/_posts/2010-08-05-post-image-standard.md @@ -0,0 +1,44 @@ +--- +title: "Post: Image (Standard)" +categories: + - Post Formats +tags: + - image + - Post Formats +--- + +The preferred way of using images is placing them in the `/assets/images/` directory and referencing them with an absolute path. Prepending the filename with `{% raw %}{{ site.url }}{{ site.baseurl }}/assets/images/{% endraw %}` will make sure your images display properly in feeds and such. + +Standard image with no width modifier classes applied. + +**HTML:** + +```html +{% raw %}{% endraw %} +``` + +**or Kramdown:** + +```markdown +{% raw %}![alt]({{ site.url }}{{ site.baseurl }}/assets/images/filename.jpg){% endraw %} +``` + +![Unsplash image 9]({{ site.url }}{{ site.baseurl }}/assets/images/unsplash-image-9.jpg) + +Image that fills page content container by adding the `.full` class with: + +**HTML:** + +```html +{% raw %}{% endraw %} +``` + +**or Kramdown:** + +```markdown +{% raw %}![alt]({{ site.url }}{{ site.baseurl }}/assets/images/filename.jpg) +{: .full}{% endraw %} +``` + +![Unsplash image 10]({{ site.url }}{{ site.baseurl }}/assets/images/unsplash-image-10.jpg) +{: .full} \ No newline at end of file diff --git a/test/_posts/2010-08-06-post-image-linked-caption.md b/test/_posts/2010-08-06-post-image-linked-caption.md new file mode 100644 index 00000000..ada6f6a7 --- /dev/null +++ b/test/_posts/2010-08-06-post-image-linked-caption.md @@ -0,0 +1,21 @@ +--- +title: "Post: Image (Linked with Caption)" +categories: + - Post Formats +tags: + - image + - Post Formats +--- + +{% capture fig_img %} +[![Foo](https://farm5.staticflickr.com/4134/4940462712_7c28420b27_b.jpg)](https://flic.kr/p/8wzarA) +{% endcapture %} + +{% capture fig_caption %} +Stairs? Were we're going we don't need no stairs. +{% endcapture %} + +
+ {{ fig_img | markdownify | remove: "

" | remove: "

" }} +
{{ fig_caption | markdownify | remove: "

" | remove: "

" }}
+
\ No newline at end of file diff --git a/test/_posts/2010-08-07-post-image-caption.md b/test/_posts/2010-08-07-post-image-caption.md new file mode 100644 index 00000000..227f7ece --- /dev/null +++ b/test/_posts/2010-08-07-post-image-caption.md @@ -0,0 +1,19 @@ +--- +title: "Post: Image (Caption)" +categories: + - Post Formats +tags: + - image + - Post Formats +--- + +{% include base_path %} + +{% capture fig_img %} +![Foo]({{ basepath }}/assets/images/unsplash-gallery-image-3.jpg) +{% endcapture %} + +
+ {{ fig_img | markdownify | remove: "

" | remove: "

" }} +
Photo from Unsplash.
+
\ No newline at end of file diff --git a/test/_posts/2010-09-09-post-gallery.md b/test/_posts/2010-09-09-post-gallery.md new file mode 100644 index 00000000..f7a9e91c --- /dev/null +++ b/test/_posts/2010-09-09-post-gallery.md @@ -0,0 +1,134 @@ +--- +title: "Post: Gallery" +categories: + - Post Formats +tags: + - gallery + - Post Formats + - tiled +gallery: + - url: /assets/images/unsplash-gallery-image-1.jpg + image_path: /assets/images/unsplash-gallery-image-1-th.jpg + alt: "placeholder image 1" + title: "Image 1 title caption" + - url: /assets/images/unsplash-gallery-image-2.jpg + image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Image 2 title caption" + - url: /assets/images/unsplash-gallery-image-3.jpg + image_path: /assets/images/unsplash-gallery-image-3-th.jpg + alt: "placeholder image 3" + title: "Image 3 title caption" + - url: /assets/images/unsplash-gallery-image-1.jpg + image_path: /assets/images/unsplash-gallery-image-1-th.jpg + alt: "placeholder image 4" + title: "Image 4 title caption" + - url: /assets/images/unsplash-gallery-image-2.jpg + image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 5" + title: "Image 5 title caption" + - url: /assets/images/unsplash-gallery-image-3.jpg + image_path: /assets/images/unsplash-gallery-image-3-th.jpg + alt: "placeholder image 6" + title: "Image 6 title caption" + - url: /assets/images/unsplash-gallery-image-1.jpg + image_path: /assets/images/unsplash-gallery-image-1-th.jpg + alt: "placeholder image 7" + title: "Image 7 title caption" + - url: /assets/images/unsplash-gallery-image-2.jpg + image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 8" + title: "Image 8 title caption" + - url: /assets/images/unsplash-gallery-image-3.jpg + image_path: /assets/images/unsplash-gallery-image-3-th.jpg + alt: "placeholder image 9" + title: "Image 9 title caption" + - url: /assets/images/unsplash-gallery-image-1.jpg + image_path: /assets/images/unsplash-gallery-image-1-th.jpg + alt: "placeholder image 10" + title: "Image 10 title caption" + - url: /assets/images/unsplash-gallery-image-2.jpg + image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 11" + title: "Image 11 title caption" + - url: /assets/images/unsplash-gallery-image-3.jpg + image_path: /assets/images/unsplash-gallery-image-3-th.jpg + alt: "placeholder image 12" + title: "Image 12 title caption" +gallery2: + - url: https://flic.kr/p/8a6Ven + image_path: https://farm2.staticflickr.com/1272/4697500467_8294dac099_q.jpg + alt: "Black and grays with a hint of green" + - url: https://flic.kr/p/8a738X + image_path: https://farm5.staticflickr.com/4029/4697523701_249e93ba23_q.jpg + alt: "Made for open text placement" + - url: https://flic.kr/p/8a6VXP + image_path: https://farm5.staticflickr.com/4046/4697502929_72c612c636_q.jpg + alt: "Fog in the trees" +gallery3: + - image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + - image_path: /assets/images/unsplash-gallery-image-4-th.jpg + alt: "placeholder image 4" +--- + +These are gallery tests for image wrapped in `
` elements. + +To place a gallery add the necessary YAML Front Matter: + +```yaml +gallery: + - url: /assets/images/unsplash-gallery-image-1.jpg + image_path: /assets/images/unsplash-gallery-image-1-th.jpg + alt: "placeholder image 1" + title: "Image 1 title caption" + - url: /assets/images/unsplash-gallery-image-2.jpg + image_path: /assets/images/unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Image 2 title caption" + - url: /assets/images/unsplash-gallery-image-3.jpg + image_path: /assets/images/unsplash-gallery-image-3-th.jpg + alt: "placeholder image 3" + title: "Image 3 title caption" + - url: /assets/images/unsplash-gallery-image-4.jpg + image_path: /assets/images/unsplash-gallery-image-4-th.jpg + alt: "placeholder image 4" + title: "Image 4 title caption" +``` + +And then drop-in the gallery include --- gallery `caption` is optional. + +```liquid +{% raw %}{% include gallery caption="This is a sample gallery with **Markdown support**." %}{% endraw %} +``` + +{% include gallery caption="This is a sample gallery with **Markdown support**." %} + +This is some text after the gallery just to make sure that everything aligns properly. + +Here comes another gallery, this time set the `id` to match 2nd gallery hash in YAML Front Matter. + +```yaml +gallery2: + - url: https://flic.kr/p/8a6Ven + image_path: https://farm2.staticflickr.com/1272/4697500467_8294dac099_q.jpg + alt: "Black and grays with a hint of green" + - url: https://flic.kr/p/8a738X + image_path: https://farm5.staticflickr.com/4029/4697523701_249e93ba23_q.jpg + alt: "Made for open text placement" + - url: https://flic.kr/p/8a6VXP + image_path: https://farm5.staticflickr.com/4046/4697502929_72c612c636_q.jpg + alt: "Fog in the trees" +``` + +And place it like so: + +```liquid +{% raw %}{% include gallery id="gallery2" caption="This is a second gallery example with images hosted externally." %}{% endraw %} +``` + +{% include gallery id="gallery2" caption="This is a second gallery example with images hosted externally." %} + +And for giggles one more gallery just to make sure this works. To fill page content container add `class="full"`. + +{% include gallery id="gallery3" class="full" caption="This is a third gallery example with two images and fills the entire content container." %} \ No newline at end of file diff --git a/test/_posts/2010-09-10-post-twitter-embeds.md b/test/_posts/2010-09-10-post-twitter-embeds.md new file mode 100644 index 00000000..7c5c4187 --- /dev/null +++ b/test/_posts/2010-09-10-post-twitter-embeds.md @@ -0,0 +1,15 @@ +--- +title: "Post: Twitter Embed" +categories: + - Media +tags: + - content + - embeds + - media + - twitter +--- + + + + +This post tests Twitter Embeds. \ No newline at end of file diff --git a/test/_posts/2010-10-25-post-future-date.md b/test/_posts/2010-10-25-post-future-date.md new file mode 100644 index 00000000..7d1b203a --- /dev/null +++ b/test/_posts/2010-10-25-post-future-date.md @@ -0,0 +1,8 @@ +--- +title: "Post: Future Date" +date: 9999-12-31 +categories: + - Post +--- + +This post lives in the future and is dated {{ page.date | date: "%c" }}. When building Jekyll with the `--future` flag it should appear. \ No newline at end of file diff --git a/test/_posts/2012-01-02-layout-comments-disabled.md b/test/_posts/2012-01-02-layout-comments-disabled.md new file mode 100644 index 00000000..ab69a527 --- /dev/null +++ b/test/_posts/2012-01-02-layout-comments-disabled.md @@ -0,0 +1,14 @@ +--- +title: "Layout: Comments Disabled" +comments: false +categories: + - Layout + - Uncategorized +tags: + - comments + - layout +--- + +This post has its comments disabled. + +There should be no comment form. \ No newline at end of file diff --git a/test/_posts/2012-01-02-layout-comments.md b/test/_posts/2012-01-02-layout-comments.md new file mode 100644 index 00000000..cf697b80 --- /dev/null +++ b/test/_posts/2012-01-02-layout-comments.md @@ -0,0 +1,12 @@ +--- +title: "Layout: Comments Enabled" +comments: true +categories: + - Layout + - Uncategorized +tags: + - comments + - layout +--- + +This post should display comments. \ No newline at end of file diff --git a/test/_posts/2012-01-02-layout-read-time-disabled.md b/test/_posts/2012-01-02-layout-read-time-disabled.md new file mode 100644 index 00000000..d8899224 --- /dev/null +++ b/test/_posts/2012-01-02-layout-read-time-disabled.md @@ -0,0 +1,18 @@ +--- +title: "Layout: Read Time Disabled" +read_time: false +tags: + - read time +--- + +This post has reading time disabled. The estimated time that it takes to read this post should not be showing if `read_time: false` is set in `_config.yml` or in this post's YAML Front Matter. + +If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. + +I don't know whether you have ever seen a map of a person's mind. Doctors sometimes draw maps of other parts of you, and your own map can become intensely interesting, but catch them trying to draw a map of a child's mind, which is not only confused, but keeps going round all the time. There are zigzag lines on it, just like your temperature on a card, and these are probably roads in the island, for the Neverland is always more or less an island, with astonishing splashes of colour here and there, and coral reefs and rakish-looking craft in the offing, and savages and lonely lairs, and gnomes who are mostly tailors, and caves through which a river runs, and princes with six elder brothers, and a hut fast going to decay, and one very small old lady with a hooked nose. It would be an easy map if that were all, but there is also first day at school, religion, fathers, the round pond, needle-work, murders, hangings, verbs that take the dative, chocolate pudding day, getting into braces, say ninety-nine, three-pence for pulling out your tooth yourself, and so on, and either these are part of the island or they are another map showing through, and it is all rather confusing, especially as nothing will stand still. + +Of course the Neverlands vary a good deal. John's, for instance, had a lagoon with flamingoes flying over it at which John was shooting, while Michael, who was very small, had a flamingo with lagoons flying over it. John lived in a boat turned upside down on the sands, Michael in a wigwam, Wendy in a house of leaves deftly sewn together. John had no friends, Michael had friends at night, Wendy had a pet wolf forsaken by its parents, but on the whole the Neverlands have a family resemblance, and if they stood still in a row you could say of them that they have each other's nose, and so forth. On these magic shores children at play are for ever beaching their coracles [simple boat]. We too have been there; we can still hear the sound of the surf, though we shall land no more. + +Of all delectable islands the Neverland is the snuggest and most compact, not large and sprawly, you know, with tedious distances between one adventure and another, but nicely crammed. When you play at it by day with the chairs and table-cloth, it is not in the least alarming, but in the two minutes before you go to sleep it becomes very real. That is why there are night-lights. + +Occasionally in her travels through her children's minds Mrs. Darling found things she could not understand, and of these quite the most perplexing was the word Peter. She knew of no Peter, and yet he was here and there in John and Michael's minds, while Wendy's began to be scrawled all over with him. The name stood out in bolder letters than any of the other words, and as Mrs. Darling gazed she felt that it had an oddly cocky appearance. \ No newline at end of file diff --git a/test/_posts/2012-01-02-layout-read-time.md b/test/_posts/2012-01-02-layout-read-time.md new file mode 100644 index 00000000..a636e0a4 --- /dev/null +++ b/test/_posts/2012-01-02-layout-read-time.md @@ -0,0 +1,18 @@ +--- +title: "Layout: Read Time Enabled" +read_time: true +tags: + - read time +--- + +This post has reading time enabled. The estimated time that it takes to read this post should show if also enabled in `_config.yml` with `read_time: true`. + +If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. + +I don't know whether you have ever seen a map of a person's mind. Doctors sometimes draw maps of other parts of you, and your own map can become intensely interesting, but catch them trying to draw a map of a child's mind, which is not only confused, but keeps going round all the time. There are zigzag lines on it, just like your temperature on a card, and these are probably roads in the island, for the Neverland is always more or less an island, with astonishing splashes of colour here and there, and coral reefs and rakish-looking craft in the offing, and savages and lonely lairs, and gnomes who are mostly tailors, and caves through which a river runs, and princes with six elder brothers, and a hut fast going to decay, and one very small old lady with a hooked nose. It would be an easy map if that were all, but there is also first day at school, religion, fathers, the round pond, needle-work, murders, hangings, verbs that take the dative, chocolate pudding day, getting into braces, say ninety-nine, three-pence for pulling out your tooth yourself, and so on, and either these are part of the island or they are another map showing through, and it is all rather confusing, especially as nothing will stand still. + +Of course the Neverlands vary a good deal. John's, for instance, had a lagoon with flamingoes flying over it at which John was shooting, while Michael, who was very small, had a flamingo with lagoons flying over it. John lived in a boat turned upside down on the sands, Michael in a wigwam, Wendy in a house of leaves deftly sewn together. John had no friends, Michael had friends at night, Wendy had a pet wolf forsaken by its parents, but on the whole the Neverlands have a family resemblance, and if they stood still in a row you could say of them that they have each other's nose, and so forth. On these magic shores children at play are for ever beaching their coracles [simple boat]. We too have been there; we can still hear the sound of the surf, though we shall land no more. + +Of all delectable islands the Neverland is the snuggest and most compact, not large and sprawly, you know, with tedious distances between one adventure and another, but nicely crammed. When you play at it by day with the chairs and table-cloth, it is not in the least alarming, but in the two minutes before you go to sleep it becomes very real. That is why there are night-lights. + +Occasionally in her travels through her children's minds Mrs. Darling found things she could not understand, and of these quite the most perplexing was the word Peter. She knew of no Peter, and yet he was here and there in John and Michael's minds, while Wendy's began to be scrawled all over with him. The name stood out in bolder letters than any of the other words, and as Mrs. Darling gazed she felt that it had an oddly cocky appearance. \ No newline at end of file diff --git a/test/_posts/2012-01-02-layout-related-posts-disabled.md b/test/_posts/2012-01-02-layout-related-posts-disabled.md new file mode 100644 index 00000000..3831e740 --- /dev/null +++ b/test/_posts/2012-01-02-layout-related-posts-disabled.md @@ -0,0 +1,14 @@ +--- +title: "Layout: Related Posts Disabled" +related: false +categories: + - Layout + - Uncategorized +tags: + - related posts + - layout +--- + +This post has related posts disabled. + +Related post links should not appear. \ No newline at end of file diff --git a/test/_posts/2012-01-02-layout-related-posts.md b/test/_posts/2012-01-02-layout-related-posts.md new file mode 100644 index 00000000..0293bc6f --- /dev/null +++ b/test/_posts/2012-01-02-layout-related-posts.md @@ -0,0 +1,12 @@ +--- +title: "Layout: Related Posts Enabled" +related: true +categories: + - Layout + - Uncategorized +tags: + - related posts + - layout +--- + +This post has related posts enabled. \ No newline at end of file diff --git a/test/_posts/2012-01-02-layout-sharing-disabled.md b/test/_posts/2012-01-02-layout-sharing-disabled.md new file mode 100644 index 00000000..c69d8bbf --- /dev/null +++ b/test/_posts/2012-01-02-layout-sharing-disabled.md @@ -0,0 +1,14 @@ +--- +title: "Layout: Social Sharing Links Disabled" +share: false +categories: + - Layout + - Uncategorized +tags: + - social + - layout +--- + +This post has social sharing disabled. + +Social sharing links should not appear. \ No newline at end of file diff --git a/test/_posts/2012-01-02-layout-sharing.md b/test/_posts/2012-01-02-layout-sharing.md new file mode 100644 index 00000000..09808f14 --- /dev/null +++ b/test/_posts/2012-01-02-layout-sharing.md @@ -0,0 +1,12 @@ +--- +title: "Layout: Social Sharing Links Enabled" +share: true +categories: + - Layout + - Uncategorized +tags: + - social + - layout +--- + +This post should display social sharing links. \ No newline at end of file diff --git a/test/_posts/2012-01-03-layout-read-time-comments-sharing-related-posts-disabled.md b/test/_posts/2012-01-03-layout-read-time-comments-sharing-related-posts-disabled.md new file mode 100644 index 00000000..dacb207a --- /dev/null +++ b/test/_posts/2012-01-03-layout-read-time-comments-sharing-related-posts-disabled.md @@ -0,0 +1,19 @@ +--- +title: "Layout: Reading Time, Comments, Social Sharing Links, and Related Posts Disabled" +read_time: false +comments: false +share: false +related: false +categories: + - Layout + - Uncategorized +tags: + - related posts + - social + - comments + - layout +--- + +This post has reading time, comments, social sharing links, and related posts disabled. + +Reading time, comments, social sharing and related post links should not appear. \ No newline at end of file diff --git a/test/_posts/2012-01-03-layout-table-of-contents-post.md b/test/_posts/2012-01-03-layout-table-of-contents-post.md new file mode 100644 index 00000000..a8fc7988 --- /dev/null +++ b/test/_posts/2012-01-03-layout-table-of-contents-post.md @@ -0,0 +1,100 @@ +--- +title: "Layout: Post with Table Of Contents" +header: + image: assets/images/unsplash-image-9.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +tags: + - table of contents +--- + +{% include toc title="Unique Title" icon="file-text" %} + +Testing Kramdown auto-generated table of contents with unique title and icon assigned in the include like so: + +```liquid +{% raw %}{% include toc title="Unique Title" icon="file-text" %}{% endraw %} +``` + +## HTML Elements + +Below is just about everything you'll need to style in the theme. Check the source code to see the many embedded elements within paragraphs. + +

Heading 1

+

Heading 2

+

Heading 3

+

Heading 4

+
Heading 5
+
Heading 6
+ +## Body text + +Lorem ipsum dolor sit amet, test link adipiscing elit. **This is strong**. Nullam dignissim convallis est. Quisque aliquam. + +![Smithsonian Image]({{ site.url }}{{ site.baseurl }}/assets/images/3953273590_704e3899d5_m.jpg) +{: .image-right} + +*This is emphasized*. Donec faucibus. Nunc iaculis suscipit dui. 53 = 125. Water is H2O. Nam sit amet sem. Aliquam libero nisi, imperdiet at, tincidunt nec, gravida vehicula, nisl. The New York Times (That’s a citation). Underline.Maecenas ornare tortor. Donec sed tellus eget sapien fringilla nonummy. Mauris a ante. Suspendisse quam sem, consequat at, commodo vitae, feugiat in, nunc. Morbi imperdiet augue quis tellus. + +HTML and CSS are our tools. Mauris a ante. Suspendisse quam sem, consequat at, commodo vitae, feugiat in, nunc. Morbi imperdiet augue quis tellus. Praesent mattis, massa quis luctus fermentum, turpis mi volutpat justo, eu volutpat enim diam eget metus. + +### Blockquotes + +> Lorem ipsum dolor sit amet, test link adipiscing elit. Nullam dignissim convallis est. Quisque aliquam. + +## List Types + +### Ordered Lists + +1. Item one + 1. sub item one + 2. sub item two + 3. sub item three +2. Item two + +### Unordered Lists + +* Item one +* Item two +* Item three + +## Tables + +| Header1 | Header2 | Header3 | +|:--------|:-------:|--------:| +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|---- +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|===== +| Foot1 | Foot2 | Foot3 +{: rules="groups"} + +## Code Snippets + +```css +#container { + float: left; + margin: 0 -240px 0 0; + width: 100%; +} +``` + +## Buttons + +Make any link standout more when applying the `.btn` class. + +```html +Success Button +``` + + + + + + + +## Notices + +**Watch out!** You can also add notices by appending `{: .notice}` to a paragraph. +{: .notice} diff --git a/test/_posts/2012-03-14-layout-code-excerpt-generated.md b/test/_posts/2012-03-14-layout-code-excerpt-generated.md new file mode 100644 index 00000000..0bdc595e --- /dev/null +++ b/test/_posts/2012-03-14-layout-code-excerpt-generated.md @@ -0,0 +1,14 @@ +--- +title: "Layout: Code Excerpt (Generated)" +categories: + - Layout + - Uncategorized +tags: + - content + - excerpt + - layout +--- + +This is the post content with inline code, (e.g. `red`. It should be displayed in place of the auto-generated excerpt in single-page views. Archive-index pages should display an auto-generated excerpt of this content. + +Be sure to test the formatting of the auto-generated excerpt, to ensure that it doesn't create any layout problems. \ No newline at end of file diff --git a/test/_posts/2012-03-14-layout-excerpt-defined.md b/test/_posts/2012-03-14-layout-excerpt-defined.md new file mode 100644 index 00000000..7091cf8f --- /dev/null +++ b/test/_posts/2012-03-14-layout-excerpt-defined.md @@ -0,0 +1,15 @@ +--- +title: "Layout: Excerpt (Defined)" +excerpt: "This is a user-defined post excerpt. It should be displayed in place of the post content in archive-index pages." +categories: + - Layout + - Uncategorized +tags: + - content + - excerpt + - layout +--- + +This is the post content. It should be displayed in place of the user-defined excerpt in archive-index pages. + +This paragraph should be absent from an archive-index page where `post.excerpt` is shown. \ No newline at end of file diff --git a/test/_posts/2012-03-14-layout-excerpt-generated.md b/test/_posts/2012-03-14-layout-excerpt-generated.md new file mode 100644 index 00000000..5f26140e --- /dev/null +++ b/test/_posts/2012-03-14-layout-excerpt-generated.md @@ -0,0 +1,17 @@ +--- +title: "Layout: Excerpt (Generated)" +excerpt_separator: "" +categories: + - Layout + - Uncategorized +tags: + - content + - excerpt + - layout +--- + +This is the post content. Archive-index pages should display an auto-generated excerpt of this content. + + + +Be sure to test the formatting of the auto-generated excerpt, to ensure that it doesn't create any layout problems. \ No newline at end of file diff --git a/test/_posts/2012-03-15-layout-author-override.md b/test/_posts/2012-03-15-layout-author-override.md new file mode 100644 index 00000000..50635b9d --- /dev/null +++ b/test/_posts/2012-03-15-layout-author-override.md @@ -0,0 +1,38 @@ +--- +title: "Layout: Author Override" +author: Billy Rick +excerpt: "A post to test author overrides using a data file." +--- + +Sites that may have content authored from various individuals can be accommodated by using [data files](https://jekyllrb.com/docs/datafiles/). + +To attribute an author to a post or page that is different from the site author specified in `_config.yml`: + +**Step 1.** Create `_data/authors.yml` and add authors using the following format. Anything variables found under `author` in `_config.yml` can be used (e.g. `name`, `avatar`, `uri`, social media profiles, etc.). + +```yaml +# /_data/authors.yml + +Billy Rick: + name: "Billy Rick" + uri: "http://thewhip.com" + email: "billy@rick.com" + bio: "What do you want, jewels? I am a very extravagant man." + avatar: "/assets/images/bio-photo-2.jpg" + twitter: "extravagantman" + +Cornelius Fiddlebone: + name: "Cornelius Fiddlebone" + email: "cornelius@thewhip.com" + bio: "I ordered what?" + avatar: "/assets/images/bio-photo.jpg" + twitter: "rhymeswithsackit" +``` + +**Step 2.** Assign one of the authors in `authors.yml` to a post or page you wish to override the `site.author` with. + +Example: To assign `Billy Rick` as an author for a post the following YAML Front Matter would be applied: + +```yaml +author: Billy Rick +``` \ No newline at end of file diff --git a/test/_posts/2012-03-15-layout-author-sidebar-disabled.md b/test/_posts/2012-03-15-layout-author-sidebar-disabled.md new file mode 100644 index 00000000..a4d0dc19 --- /dev/null +++ b/test/_posts/2012-03-15-layout-author-sidebar-disabled.md @@ -0,0 +1,9 @@ +--- +title: "Layout: Author Sidebar Disabled" +excerpt: "A post to test disabling author sidebar." +author_profile: false +--- + +This post has the author sidebar disabled. + +To disable add `author_profile: false` to YAML Front Matter. \ No newline at end of file diff --git a/test/_posts/2012-03-15-layout-header-image-external.md b/test/_posts/2012-03-15-layout-header-image-external.md new file mode 100644 index 00000000..8dd7a01e --- /dev/null +++ b/test/_posts/2012-03-15-layout-header-image-external.md @@ -0,0 +1,17 @@ +--- +title: "Layout: Header Image (External URL)" +header: + image: https://farm5.staticflickr.com/4140/4939863887_84705982fd_b.jpg +categories: + - Layout + - Uncategorized +tags: + - edge case + - featured image + - image + - layout +--- + +This post should display a **header image**, if the theme supports it. + +Featured image is an external asset and should load. \ No newline at end of file diff --git a/test/_posts/2012-03-15-layout-header-image-horizontal.md b/test/_posts/2012-03-15-layout-header-image-horizontal.md new file mode 100644 index 00000000..5a177aa7 --- /dev/null +++ b/test/_posts/2012-03-15-layout-header-image-horizontal.md @@ -0,0 +1,20 @@ +--- +title: "Layout: Header Image (Horizontal)" +header: + image: /assets/images/unsplash-image-1.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +categories: + - Layout + - Uncategorized +tags: + - edge case + - featured image + - image + - layout +--- + +This post should display a **header image**, if the theme supports it. + +Non-square images can provide some unique styling issues. + +This post tests a horizontal header image. \ No newline at end of file diff --git a/test/_posts/2012-03-15-layout-header-image-text-readability.md b/test/_posts/2012-03-15-layout-header-image-text-readability.md new file mode 100644 index 00000000..56df3473 --- /dev/null +++ b/test/_posts/2012-03-15-layout-header-image-text-readability.md @@ -0,0 +1,49 @@ +--- +title: "Layout: Header Image and Text Readability" +header: + image: /assets/images/unsplash-image-4.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +tags: + - sample post + - readability + - test +--- + +This is a sample post with a large feature image[^1] up top and tons of text. Odio ad blue bottle vinyl, 90's narwhal commodo bitters pour-over nostrud. Ugh est hashtag in, fingerstache adipisicing laboris esse Pinterest shabby chic Portland. Shoreditch bicycle rights anim, flexitarian laboris put a bird on it vinyl cupidatat narwhal. Hashtag artisan skateboard, flannel Bushwick nesciunt salvia aute fixie do plaid post-ironic dolor McSweeney's. Cliche pour-over chambray nulla four loko skateboard sapiente hashtag. + +Vero laborum commodo occupy. Semiotics voluptate mumblecore pug. Cosby sweater ullamco quinoa ennui assumenda, sapiente occupy delectus lo-fi. *Ea fashion axe [Marfa cillum aliquip](#). Retro Bushwick keytar cliche.* Before they sold out sustainable gastropub Marfa readymade, ethical Williamsburg skateboard brunch qui consectetur gentrify semiotics. Mustache cillum irony, fingerstache magna pour-over keffiyeh tousled selfies. + +## Cupidatat 90's lo-fi authentic try-hard + +In pug Portland incididunt mlkshk put a bird on it vinyl quinoa. **[Terry Richardson](#) shabby chic +1**, scenester Tonx excepteur tempor fugiat voluptate fingerstache aliquip nisi next level. Farm-to-table hashtag Truffaut, Odd Future ex meggings gentrify single-origin coffee try-hard 90's. + + * Sartorial hoodie + * Labore viral forage + * Tote bag selvage + * DIY exercitation et id ugh tumblr church-key + +Incididunt umami sriracha, ethical fugiat VHS ex assumenda yr irure direct trade. Marfa Truffaut bicycle rights, kitsch placeat Etsy kogi asymmetrical. Beard locavore flexitarian, kitsch photo booth hoodie plaid ethical readymade leggings yr. + +Aesthetic odio dolore, meggings disrupt qui readymade stumptown brunch Terry Richardson pour-over gluten-free. Banksy american apparel in selfies, biodiesel flexitarian organic meh wolf quinoa gentrify banjo kogi. Readymade tofu ex, scenester dolor umami fingerstache occaecat fashion axe Carles jean shorts minim. Keffiyeh fashion axe nisi Godard mlkshk dolore. Lomo you probably haven't heard of them eu non, Odd Future Truffaut pug keytar meggings McSweeney's Pinterest cred. Etsy literally aute esse, eu bicycle rights qui meggings fanny pack. Gentrify leggings pug flannel duis. + +## Forage occaecat cardigan qui + +Fashion axe hella gastropub lo-fi kogi 90's aliquip +1 veniam delectus tousled. Cred sriracha locavore gastropub kale chips, iPhone mollit sartorial. Anim dolore 8-bit, pork belly dolor photo booth aute flannel small batch. Dolor disrupt ennui, tattooed whatever salvia Banksy sartorial roof party selfies raw denim sint meh pour-over. Ennui eu cardigan sint, gentrify iPhone cornhole. + +> Whatever velit occaecat quis deserunt gastropub, leggings elit tousled roof party 3 wolf moon kogi pug blue bottle ea. Fashion axe shabby chic Austin quinoa pickled laborum bitters next level, disrupt deep v accusamus non fingerstache. + +Tote bag asymmetrical elit sunt. Occaecat authentic Marfa, hella McSweeney's next level irure veniam master cleanse. Sed hoodie letterpress artisan wolf leggings, 3 wolf moon commodo ullamco. Anim occupy ea labore Terry Richardson. Tofu ex master cleanse in whatever pitchfork banh mi, occupy fugiat fanny pack Austin authentic. Magna fugiat 3 wolf moon, labore McSweeney's sustainable vero consectetur. Gluten-free disrupt enim, aesthetic fugiat jean shorts trust fund keffiyeh magna try-hard. + +## Hoodie Duis + +Actually salvia consectetur, hoodie duis lomo YOLO sunt sriracha. Aute pop-up brunch farm-to-table odio, salvia irure occaecat. Sriracha small batch literally skateboard. Echo Park nihil hoodie, aliquip forage artisan laboris. Trust fund reprehenderit nulla locavore. Stumptown raw denim kitsch, keffiyeh nulla twee dreamcatcher fanny pack ullamco 90's pop-up est culpa farm-to-table. Selfies 8-bit do pug odio. + +### Thundercats Ho! + +Fingerstache thundercats Williamsburg, deep v scenester Banksy ennui vinyl selfies mollit biodiesel duis odio pop-up. Banksy 3 wolf moon try-hard, sapiente enim stumptown deep v ad letterpress. Squid beard brunch, exercitation raw denim yr sint direct trade. Raw denim narwhal id, flannel DIY McSweeney's seitan. Letterpress artisan bespoke accusamus, meggings laboris consequat Truffaut qui in seitan. Sustainable cornhole Schlitz, twee Cosby sweater banh mi deep v forage letterpress flannel whatever keffiyeh. Sartorial cred irure, semiotics ethical sed blue bottle nihil letterpress. + +Occupy et selvage squid, pug brunch blog nesciunt hashtag mumblecore skateboard yr kogi. Ugh small batch swag four loko. Fap post-ironic qui tote bag farm-to-table american apparel scenester keffiyeh vero, swag non pour-over gentrify authentic pitchfork. Schlitz scenester lo-fi voluptate, tote bag irony bicycle rights pariatur vero Vice freegan wayfarers exercitation nisi shoreditch. Chambray tofu vero sed. Street art swag literally leggings, Cosby sweater mixtape PBR lomo Banksy non in pitchfork ennui McSweeney's selfies. Odd Future Banksy non authentic. + +Aliquip enim artisan dolor post-ironic. Pug tote bag Marfa, deserunt pour-over Portland wolf eu odio intelligentsia american apparel ugh ea. Sunt viral et, 3 wolf moon gastropub pug id. Id fashion axe est typewriter, mlkshk Portland art party aute brunch. Sint pork belly Cosby sweater, deep v mumblecore kitsch american apparel. Try-hard direct trade tumblr sint skateboard. Adipisicing bitters excepteur biodiesel, pickled gastropub aute veniam. + +[^1]: Texture image courtesty of [Lovetextures](http://www.lovetextures.com/) diff --git a/test/_posts/2012-03-15-layout-header-image-vertical.md b/test/_posts/2012-03-15-layout-header-image-vertical.md new file mode 100644 index 00000000..97154fe0 --- /dev/null +++ b/test/_posts/2012-03-15-layout-header-image-vertical.md @@ -0,0 +1,20 @@ +--- +title: "Layout: Header Image (Vertical)" +header: + image: /assets/images/unsplash-image-6.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +categories: + - Layout + - Uncategorized +tags: + - edge case + - featured image + - image + - layout +--- + +This post should display a **header image**, if the theme supports it. + +Non-square images can provide some unique styling issues. + +This post tests a vertical header image. \ No newline at end of file diff --git a/test/_posts/2012-03-15-layout-header-overlay-color.md b/test/_posts/2012-03-15-layout-header-overlay-color.md new file mode 100644 index 00000000..69a85219 --- /dev/null +++ b/test/_posts/2012-03-15-layout-header-overlay-color.md @@ -0,0 +1,18 @@ +--- +title: "Layout: Header Overlay with Background Fill" +header: + overlay_color: "#333" +categories: + - Layout + - Uncategorized +tags: + - edge case + - image + - layout +--- + +This post should display a **header with a solid background color**, if the theme supports it. + +Non-square images can provide some unique styling issues. + +This post tests overlay headers. \ No newline at end of file diff --git a/example/_posts/2012-03-15-layout-header-overlay-image.md b/test/_posts/2012-03-15-layout-header-overlay-image.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2012-03-15-layout-header-overlay-image.md rename to test/_posts/2012-03-15-layout-header-overlay-image.md diff --git a/test/_posts/2012-03-15-layout-more-tag.md b/test/_posts/2012-03-15-layout-more-tag.md new file mode 100644 index 00000000..45940a6e --- /dev/null +++ b/test/_posts/2012-03-15-layout-more-tag.md @@ -0,0 +1,18 @@ +--- +title: "Layout: More Tag" +categories: + - Layout + - Uncategorized +tags: + - content + - read more + - layout +--- + +This content is before the [excerpt separator tag](http://jekyllrb.com/docs/posts/#post-excerpts). + +Right after this sentence there should be a **continue reading** link of some sort in archive-index pages. + + + +And this content is after the more tag. \ No newline at end of file diff --git a/test/_posts/2012-03-15-layout-sidebar-custom.md b/test/_posts/2012-03-15-layout-sidebar-custom.md new file mode 100644 index 00000000..0dcbbfe2 --- /dev/null +++ b/test/_posts/2012-03-15-layout-sidebar-custom.md @@ -0,0 +1,26 @@ +--- +title: "Layout: Sidebar Custom" +excerpt: "A post to custom sidebar content." +author_profile: false +sidebar: + - title: "Title" + image: http://placehold.it/350x250 + image_alt: "image" + text: "Some text here." + - title: "Another Title" + text: "More text here." +--- + +This post has a custom sidebar set in the post's YAML Front Matter.. + +An example of how that YAML could look is: + +```yaml +sidebar: + - title: "Title" + image: http://placehold.it/350x250 + image_alt: "image" + text: "Some text here." + - title: "Another Title" + text: "More text here." +``` \ No newline at end of file diff --git a/test/_posts/2012-05-22-markup-text-readability.md b/test/_posts/2012-05-22-markup-text-readability.md new file mode 100644 index 00000000..e0dde8ee --- /dev/null +++ b/test/_posts/2012-05-22-markup-text-readability.md @@ -0,0 +1,45 @@ +--- +title: "Markup: Text Readability Test" +excerpt: "A bunch of text to test readability." +tags: + - sample post + - readability + - test +--- + +Portland in shoreditch Vice, labore typewriter pariatur hoodie fap sartorial Austin. Pinterest literally occupy Schlitz forage. Odio ad blue bottle vinyl, 90's narwhal commodo bitters pour-over nostrud. Ugh est hashtag in, fingerstache adipisicing laboris esse Pinterest shabby chic Portland. Shoreditch bicycle rights anim, flexitarian laboris put a bird on it vinyl cupidatat narwhal. Hashtag artisan skateboard, flannel Bushwick nesciunt salvia aute fixie do plaid post-ironic dolor McSweeney's. Cliche pour-over chambray nulla four loko skateboard sapiente hashtag. + +Vero laborum commodo occupy. Semiotics voluptate mumblecore pug. Cosby sweater ullamco quinoa ennui assumenda, sapiente occupy delectus lo-fi. Ea fashion axe Marfa cillum aliquip. Retro Bushwick keytar cliche. Before they sold out sustainable gastropub Marfa readymade, ethical Williamsburg skateboard brunch qui consectetur gentrify semiotics. Mustache cillum irony, fingerstache magna pour-over keffiyeh tousled selfies. + +## Cupidatat 90's lo-fi authentic try-hard + +In pug Portland incididunt mlkshk put a bird on it vinyl quinoa. Terry Richardson shabby chic +1, scenester Tonx excepteur tempor fugiat voluptate fingerstache aliquip nisi next level. Farm-to-table hashtag Truffaut, Odd Future ex meggings gentrify single-origin coffee try-hard 90's. + + * Sartorial hoodie + * Labore viral forage + * Tote bag selvage + * DIY exercitation et id ugh tumblr church-key + +Incididunt umami sriracha, ethical fugiat VHS ex assumenda yr irure direct trade. Marfa Truffaut bicycle rights, kitsch placeat Etsy kogi asymmetrical. Beard locavore flexitarian, kitsch photo booth hoodie plaid ethical readymade leggings yr. + +Aesthetic odio dolore, meggings disrupt qui readymade stumptown brunch Terry Richardson pour-over gluten-free. Banksy american apparel in selfies, biodiesel flexitarian organic meh wolf quinoa gentrify banjo kogi. Readymade tofu ex, scenester dolor umami fingerstache occaecat fashion axe Carles jean shorts minim. Keffiyeh fashion axe nisi Godard mlkshk dolore. Lomo you probably haven't heard of them eu non, Odd Future Truffaut pug keytar meggings McSweeney's Pinterest cred. Etsy literally aute esse, eu bicycle rights qui meggings fanny pack. Gentrify leggings pug flannel duis. + +## Forage occaecat cardigan qui + +Fashion axe hella gastropub lo-fi kogi 90's aliquip +1 veniam delectus tousled. Cred sriracha locavore gastropub kale chips, iPhone mollit sartorial. Anim dolore 8-bit, pork belly dolor photo booth aute flannel small batch. Dolor disrupt ennui, tattooed whatever salvia Banksy sartorial roof party selfies raw denim sint meh pour-over. Ennui eu cardigan sint, gentrify iPhone cornhole. + +> Whatever velit occaecat quis deserunt gastropub, leggings elit tousled roof party 3 wolf moon kogi pug blue bottle ea. Fashion axe shabby chic Austin quinoa pickled laborum bitters next level, disrupt deep v accusamus non fingerstache. + +Tote bag asymmetrical elit sunt. Occaecat authentic Marfa, hella McSweeney's next level irure veniam master cleanse. Sed hoodie letterpress artisan wolf leggings, 3 wolf moon commodo ullamco. Anim occupy ea labore Terry Richardson. Tofu ex master cleanse in whatever pitchfork banh mi, occupy fugiat fanny pack Austin authentic. Magna fugiat 3 wolf moon, labore McSweeney's sustainable vero consectetur. Gluten-free disrupt enim, aesthetic fugiat jean shorts trust fund keffiyeh magna try-hard. + +## Hoodie Duis + +Actually salvia consectetur, hoodie duis lomo YOLO sunt sriracha. Aute pop-up brunch farm-to-table odio, salvia irure occaecat. Sriracha small batch literally skateboard. Echo Park nihil hoodie, aliquip forage artisan laboris. Trust fund reprehenderit nulla locavore. Stumptown raw denim kitsch, keffiyeh nulla twee dreamcatcher fanny pack ullamco 90's pop-up est culpa farm-to-table. Selfies 8-bit do pug odio. + +### Thundercats Ho! + +Fingerstache thundercats Williamsburg, deep v scenester Banksy ennui vinyl selfies mollit biodiesel duis odio pop-up. Banksy 3 wolf moon try-hard, sapiente enim stumptown deep v ad letterpress. Squid beard brunch, exercitation raw denim yr sint direct trade. Raw denim narwhal id, flannel DIY McSweeney's seitan. Letterpress artisan bespoke accusamus, meggings laboris consequat Truffaut qui in seitan. Sustainable cornhole Schlitz, twee Cosby sweater banh mi deep v forage letterpress flannel whatever keffiyeh. Sartorial cred irure, semiotics ethical sed blue bottle nihil letterpress. + +Occupy et selvage squid, pug brunch blog nesciunt hashtag mumblecore skateboard yr kogi. Ugh small batch swag four loko. Fap post-ironic qui tote bag farm-to-table american apparel scenester keffiyeh vero, swag non pour-over gentrify authentic pitchfork. Schlitz scenester lo-fi voluptate, tote bag irony bicycle rights pariatur vero Vice freegan wayfarers exercitation nisi shoreditch. Chambray tofu vero sed. Street art swag literally leggings, Cosby sweater mixtape PBR lomo Banksy non in pitchfork ennui McSweeney's selfies. Odd Future Banksy non authentic. + +Aliquip enim artisan dolor post-ironic. Pug tote bag Marfa, deserunt pour-over Portland wolf eu odio intelligentsia american apparel ugh ea. Sunt viral et, 3 wolf moon gastropub pug id. Id fashion axe est typewriter, mlkshk Portland art party aute brunch. Sint pork belly Cosby sweater, deep v mumblecore kitsch american apparel. Try-hard direct trade tumblr sint skateboard. Adipisicing bitters excepteur biodiesel, pickled gastropub aute veniam. diff --git a/test/_posts/2013-01-05-markup-title-with-markup.md b/test/_posts/2013-01-05-markup-title-with-markup.md new file mode 100644 index 00000000..2ead3fc9 --- /dev/null +++ b/test/_posts/2013-01-05-markup-title-with-markup.md @@ -0,0 +1,14 @@ +--- +title: "Markup: Title *with* **Markdown**" +categories: + - Markdown +tags: + - css + - html + - title +--- + +Verify that: + +* The post title renders the word "with" in *italics* and the word "Markdown" in **bold**. +* The post title markup should be removed from the browser window / tab. \ No newline at end of file diff --git a/test/_posts/2013-01-05-markup-title-with-special-characters.md b/test/_posts/2013-01-05-markup-title-with-special-characters.md new file mode 100644 index 00000000..075828af --- /dev/null +++ b/test/_posts/2013-01-05-markup-title-with-special-characters.md @@ -0,0 +1,432 @@ +--- +title: "Markup: Title with Special --- Characters" +categories: + - Markup +tags: + - html + - markup + - post + - title +--- + +Putting special characters in the title should have no adverse effect on the layout or functionality. + +Special characters in the post title have been known to cause issues with JavaScript and XML when not properly encoded and escaped. + +## Latin Character Tests + +This is a test to see if the fonts used in this theme support basic Latin characters. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ! + + “ + + # + + $ + + % + + & + + ‘ + + ( + + ) + + * +
+ + + + , + + – + + . + + / + + + 1 + + 2 + + 3 + + 4 +
+ 5 + + 6 + + 7 + + 8 + + 9 + + : + + ; + + > + + = + + < +
+ ? + + @ + + A + + B + + C + + D + + E + + F + + G + + H +
+ I + + J + + K + + L + + M + + N + + O + + P + + Q + + R +
+ S + + T + + U + + V + + W + + X + + Y + + Z + + [ + +
+ ] + + ^ + + _ + + ` + + a + + b + + c + + d + + e + + f +
+ g + + h + + i + + j + + k + + l + + m + + n + + o + + p +
+ q + + r + + s + + t + + u + + v + + w + + x + + y + + z +
+ { + + | + + } + + ~ + + + + + + +
\ No newline at end of file diff --git a/test/_posts/2013-01-09-markup-text-alignment.md b/test/_posts/2013-01-09-markup-text-alignment.md new file mode 100644 index 00000000..e6fd09b3 --- /dev/null +++ b/test/_posts/2013-01-09-markup-text-alignment.md @@ -0,0 +1,34 @@ +--- +title: "Markup: Text Alignment" +categories: + - Markup +tags: + - alignment + - content + - css + - markup +--- + +### Default + +This is a paragraph. It should not have any alignment of any kind. It should just flow like you would normally expect. Nothing fancy. Just straight up text, free flowing, with love. Completely neutral and not picking a side or sitting on the fence. It just is. It just freaking is. It likes where it is. It does not feel compelled to pick a side. Leave him be. It will just be better that way. Trust me. + +### Left Align + +This is a paragraph. It is left aligned. Because of this, it is a bit more liberal in it's views. It's favorite color is green. Left align tends to be more eco-friendly, but it provides no concrete evidence that it really is. Even though it likes share the wealth evenly, it leaves the equal distribution up to justified alignment. +{: style="text-align: left;"} + +### Center Align + +This is a paragraph. It is center aligned. Center is, but nature, a fence sitter. A flip flopper. It has a difficult time making up its mind. It wants to pick a side. Really, it does. It has the best intentions, but it tends to complicate matters more than help. The best you can do is try to win it over and hope for the best. I hear center align does take bribes. +{: style="text-align: center;"} + +### Right Align + +This is a paragraph. It is right aligned. It is a bit more conservative in it's views. It's prefers to not be told what to do or how to do it. Right align totally owns a slew of guns and loves to head to the range for some practice. Which is cool and all. I mean, it's a pretty good shot from at least four or five football fields away. Dead on. So boss. +{: style="text-align: right;"} + +### Justify Align + +This is a paragraph. It is justify aligned. It gets really mad when people associate it with Justin Timberlake. Typically, justified is pretty straight laced. It likes everything to be in it's place and not all cattywampus like the rest of the aligns. I am not saying that makes it better than the rest of the aligns, but it does tend to put off more of an elitist attitude. +{: style="text-align: justify;"} \ No newline at end of file diff --git a/test/_posts/2013-01-10-markup-image-alignment.md b/test/_posts/2013-01-10-markup-image-alignment.md new file mode 100644 index 00000000..b92dab67 --- /dev/null +++ b/test/_posts/2013-01-10-markup-image-alignment.md @@ -0,0 +1,72 @@ +--- +title: "Markup: Image Alignment" +categories: + - Markup +tags: + - alignment + - captions + - content + - css + - image + - markup +--- + +Welcome to image alignment! The best way to demonstrate the ebb and flow of the various image positioning options is to nestle them snuggly among an ocean of words. Grab a paddle and let's get started. + +![image-center]({{ site.url }}{{ site.baseurl }}/assets/images/image-alignment-580x300.jpg){: .align-center} + +The image above happens to be **centered**. + +![image-left]({{ site.url }}{{ site.baseurl }}/assets/images/image-alignment-150x150.jpg){: .align-left} The rest of this paragraph is filler for the sake of seeing the text wrap around the 150×150 image, which is **left aligned**. + +As you can see the should be some space above, below, and to the right of the image. The text should not be creeping on the image. Creeping is just not right. Images need breathing room too. Let them speak like you words. Let them do their jobs without any hassle from the text. In about one more sentence here, we'll see that the text moves from the right of the image down below the image in seamless transition. Again, letting the do it's thing. Mission accomplished! + +And now for a **massively large image**. It also has **no alignment**. + +![no-alignment]({{ site.url }}{{ site.baseurl }}/assets/images/image-alignment-1200x4002.jpg) + +The image above, though 1200px wide, should not overflow the content area. It should remain contained with no visible disruption to the flow of content. + +![image-right]({{ site.url }}{{ site.baseurl }}/assets/images/image-alignment-300x200.jpg){: .align-right} + +And now we're going to shift things to the **right align**. Again, there should be plenty of room above, below, and to the left of the image. Just look at him there --- Hey guy! Way to rock that right side. I don't care what the left aligned image says, you look great. Don't let anyone else tell you differently. + +In just a bit here, you should see the text start to wrap below the right aligned image and settle in nicely. There should still be plenty of room and everything should be sitting pretty. Yeah --- Just like that. It never felt so good to be right. + +And just when you thought we were done, we're going to do them all over again with captions! + +
+ +
Look at 580 x 300 getting some love.
+
+ +The figure above happens to be **centered**. The caption also has a link in it, just to see if it does anything funky. + +
+ +
Itty-bitty caption.
+
+ +The rest of this paragraph is filler for the sake of seeing the text wrap around the 150×150 image, which is **left aligned**. + +As you can see the should be some space above, below, and to the right of the image. The text should not be creeping on the image. Creeping is just not right. Images need breathing room too. Let them speak like you words. Let them do their jobs without any hassle from the text. In about one more sentence here, we'll see that the text moves from the right of the image down below the image in seamless transition. Again, letting the do it's thing. Mission accomplished! + +And now for a **massively large image**. It also has **no alignment**. + +
+ +
Massive image comment for your eyeballs.
+
+ +The figure element above has an inline style of `width: 1200px` set which should break it outside of the normal content flow. + +
+ +
Feels good to be right all the time.
+
+ +And now we're going to shift things to the **right align**. Again, there should be plenty of room above, below, and to the left of the image. Just look at him there --- Hey guy! Way to rock that right side. I don't care what the left aligned image says, you look great. Don't let anyone else tell you differently. + +In just a bit here, you should see the text start to wrap below the right aligned image and settle in nicely. There should still be plenty of room and everything should be sitting pretty. Yeah --- Just like that. It never felt so good to be right. + +And that's a wrap, yo! You survived the tumultuous waters of alignment. Image alignment achievement unlocked! diff --git a/example/_posts/2013-01-11-markup-html-tags-and-formatting.md b/test/_posts/2013-01-11-markup-html-tags-and-formatting.md old mode 100755 new mode 100644 similarity index 100% rename from example/_posts/2013-01-11-markup-html-tags-and-formatting.md rename to test/_posts/2013-01-11-markup-html-tags-and-formatting.md diff --git a/test/_posts/2013-05-22-markup-more-images.md b/test/_posts/2013-05-22-markup-more-images.md new file mode 100644 index 00000000..c6a85554 --- /dev/null +++ b/test/_posts/2013-05-22-markup-more-images.md @@ -0,0 +1,65 @@ +--- +title: "Markup: Another Post with Images" +excerpt: "Examples and code for displaying images in posts." +header: + teaser: "http://farm9.staticflickr.com/8426/7758832526_cc8f681e48_c.jpg" +tags: + - sample post + - images + - test +--- + +Here are some examples of what a post with images might look like. If you want to display two or three images next to each other responsively use `figure` with the appropriate `class`. Each instance of `figure` is auto-numbered and displayed in the caption. + +### Figures (for images or video) + +#### One Up + +
+ +
Morning Fog Emerging From Trees by A Guy Taking Pictures, on Flickr.
+
+ +Vero laborum commodo occupy. Semiotics voluptate mumblecore pug. Cosby sweater ullamco quinoa ennui assumenda, sapiente occupy delectus lo-fi. Ea fashion axe Marfa cillum aliquip. Retro Bushwick keytar cliche. Before they sold out sustainable gastropub Marfa readymade, ethical Williamsburg skateboard brunch qui consectetur gentrify semiotics. Mustache cillum irony, fingerstache magna pour-over keffiyeh tousled selfies. + +#### Two Up + +Apply the `half` class like so to display two images side by side that share the same caption. + +```html +
+ + +
Caption describing these two images.
+
+``` + +And you'll get something that looks like this: + +
+ + +
Two images.
+
+ +#### Three Up + +Apply the `third` class like so to display three images side by side that share the same caption. + +```html +
+ + + +
Caption describing these three images.
+
+``` + +And you'll get something that looks like this: + +
+ + + +
Three images.
+
diff --git a/test/_posts/2013-08-16-markup-syntax-highlighting.md b/test/_posts/2013-08-16-markup-syntax-highlighting.md new file mode 100644 index 00000000..86582c58 --- /dev/null +++ b/test/_posts/2013-08-16-markup-syntax-highlighting.md @@ -0,0 +1,101 @@ +--- +title: "Markup: Syntax Highlighting" +excerpt: "Post displaying the various ways of highlighting code in Markdown." +modified: 2016-09-09T09:55:10-04:00 +header: + teaser: "assets/images/markup-syntax-highlighting-teaser.jpg" +tags: + - code + - syntax highlighting +--- + +Syntax highlighting is a feature that displays source code, in different colors and fonts according to the category of terms. This feature facilitates writing in a structured language such as a programming language or a markup language as both structures and syntax errors are visually distinct. Highlighting does not affect the meaning of the text itself; it is intended only for human readers.[^1] + +[^1]: + +### GFM Code Blocks + +GitHub Flavored Markdown [fenced code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks/) are supported. To modify styling and highlight colors edit `/_sass/syntax.scss`. + +```css +#container { + float: left; + margin: 0 -240px 0 0; + width: 100%; +} +``` + +{% highlight scss %} +.highlight { + margin: 0; + padding: 1em; + font-family: $monospace; + font-size: $type-size-7; + line-height: 1.8; +} +{% endhighlight %} + +```html +{% raw %}{% endraw %} +``` + +{% highlight html linenos %} +{% raw %}{% endraw %} +{% endhighlight %} + +```ruby +module Jekyll + class TagIndex < Page + def initialize(site, base, dir, tag) + @site = site + @base = base + @dir = dir + @name = 'index.html' + self.process(@name) + self.read_yaml(File.join(base, '_layouts'), 'tag_index.html') + self.data['tag'] = tag + tag_title_prefix = site.config['tag_title_prefix'] || 'Tagged: ' + tag_title_suffix = site.config['tag_title_suffix'] || '–' + self.data['title'] = "#{tag_title_prefix}#{tag}" + self.data['description'] = "An archive of posts tagged #{tag}." + end + end +end +``` + +### Code Blocks in Lists + +Indentation matters. Be sure the indent of the code block aligns with the first non-space character after the list item marker (e.g., `1.`). Usually this will mean indenting 3 spaces instead of 4. + +1. Do step 1. +2. Now do this: + + ```ruby + def print_hi(name) + puts "Hi, #{name}" + end + print_hi('Tom') + #=> prints 'Hi, Tom' to STDOUT. + ``` + +3. Now you can do this. + +### GitHub Gist Embed + +An example of a Gist embed below. + +{% gist mmistakes/6589546 %} diff --git a/test/_posts/2016-02-24-welcome-to-jekyll.md b/test/_posts/2016-02-24-welcome-to-jekyll.md new file mode 100644 index 00000000..52159364 --- /dev/null +++ b/test/_posts/2016-02-24-welcome-to-jekyll.md @@ -0,0 +1,29 @@ +--- +title: "Welcome to Jekyll!" +header: + teaser: "https://farm5.staticflickr.com/4076/4940499208_b79b77fb0a_z.jpg" +categories: + - Jekyll +tags: + - update +--- + +You'll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. + +To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works. + +Jekyll also offers powerful support for code snippets: + +```ruby +def print_hi(name) + puts "Hi, #{name}" +end +print_hi('Tom') +#=> prints 'Hi, Tom' to STDOUT. +``` + +Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll's GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. + +[jekyll-docs]: http://jekyllrb.com/docs/home +[jekyll-gh]: https://github.com/jekyll/jekyll +[jekyll-talk]: https://talk.jekyllrb.com/ \ No newline at end of file diff --git a/test/_recipes/chocolate-chip-cookies.md b/test/_recipes/chocolate-chip-cookies.md new file mode 100644 index 00000000..ddd52d78 --- /dev/null +++ b/test/_recipes/chocolate-chip-cookies.md @@ -0,0 +1,31 @@ +--- +title: "Chocolate Chip Cookies" +--- + +A chocolate chip cookie is a drop cookie that originated in the United States and features chocolate chips as its distinguishing ingredient. + +The traditional recipe combines a dough composed of butter and both brown and white sugar with semi-sweet chocolate chips. Variations include recipes with other types of chocolate as well as additional ingredients such as nuts or oatmeal. + +This recipe makes 4 dozen cookies. + +## Ingredients + +* 2 1/4 cups all-purpose flour +* 1 teaspoon baking soda +* 1/2 teaspoon salt +* 1 cup butter, softened and cut to pieces +* 1 cup sugar +* 1 cup light brown sugar, packed +* 2 teaspoons vanilla extract +* 2 large eggs +* 2 cups semi-sweet chocolate chips +* 1/2 teaspoon nutmeg (optional) +* 1 cup chopped pecans or walnuts (optional) + +## Directions + +1. Preheat the oven to 350 F. +2. In a medium bowl, whisk flour with baking soda, nutmeg and salt. +3. In a large bowl, beat butter with sugar and brown sugar until creamy and light. Add vanilla and eggs, one at a time, and mix until incorporated. +4. Gradually add dry mixture into the butter-sugar wet blend, mixing with a spatula until combined. Add chocolate chips and nuts until just mixed. +5. Drop tablespoon-sized clumps onto un-greased cookie sheets. Bake for 8-12 minutes, or until pale brown. Allow to cool on the pan for a minute or three, then transfer cookies to a wire rack to finish cooling. \ No newline at end of file diff --git a/test/_recipes/oatmeal-cookies.md b/test/_recipes/oatmeal-cookies.md new file mode 100644 index 00000000..978ad4fe --- /dev/null +++ b/test/_recipes/oatmeal-cookies.md @@ -0,0 +1,23 @@ +--- +title: "Oatmeal Cookies" +--- + +Oatmeal cookies are a proverbial favorite with both kids and adults. This crisp and chewy cookie is loaded with oats, dried fruit, and chopped nuts. + +## Ingredients + +* 1 cup butter, softened 1 cup white sugar +* 1 cup packed brown sugar +* 2 eggs +* 1 teaspoon vanilla extract +* 2 cups all-purpose flour +* 1 teaspoon baking soda +* 1 teaspoon salt +* 1 1/2 teaspoons ground cinnamon +* 3 cups quick cooking oats + +## Directions + +1. In a medium bowl, cream together butter, white sugar, and brown sugar. Beat in eggs one at a time, then stir in vanilla. Combine flour, baking soda, salt, and cinnamon; stir into the creamed mixture. Mix in oats. Cover, and chill dough for at least one hour. +2. Preheat the oven to 375 degrees F (190 degrees C). Grease cookie sheets. Roll the dough into walnut sized balls, and place 2 inches apart on cookie sheets. Flatten each cookie with a large fork dipped in sugar. +3. Bake for 8 to 10 minutes in preheated oven. Allow cookies to cool on baking sheet for 5 minutes before transferring to a wire rack to cool completely. \ No newline at end of file diff --git a/test/_recipes/peanut-butter-cookies.md b/test/_recipes/peanut-butter-cookies.md new file mode 100644 index 00000000..b5eaae81 --- /dev/null +++ b/test/_recipes/peanut-butter-cookies.md @@ -0,0 +1,23 @@ +--- +title: "Peanut Butter Cookies" +--- + +A peanut butter cookie is a type of cookie that is distinguished for having peanut butter as a principal ingredient. The cookie generally originated in the United States, its development dating back to the 1910s. + +## Ingredients + +* 1 cup unsalted butter +* 1 cup crunchy peanut butter +* 1 cup white sugar +* 1 cup packed brown sugar +* 2 eggs 2 +* 1/2 cups all-purpose flour +* 1 teaspoon baking powder +* 1/2 teaspoon salt +* 1 1/2 teaspoons baking soda + +## Directions + +1. Cream butter, peanut butter, and sugars together in a bowl; beat in eggs. +2. In a separate bowl, sift flour, baking powder, baking soda, and salt; stir into butter mixture. Put dough in refrigerator for 1 hour. +3. Roll dough into 1 inch balls and put on baking sheets. Flatten each ball with a fork, making a crisscross pattern. Bake in a preheated 375 degrees F oven for about 10 minutes or until cookies begin to brown. \ No newline at end of file diff --git a/test/assets/images/3953273590_704e3899d5_m.jpg b/test/assets/images/3953273590_704e3899d5_m.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50d2155aa8cfd268e772f2f0e841e81e4e55cfc7 GIT binary patch literal 14037 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 literal 0 HcmV?d00001 diff --git a/test/assets/images/bio-photo-2.jpg b/test/assets/images/bio-photo-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a6f20359381fdb879d81075d3074a98da3d4fb3c GIT binary patch literal 1806 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 N#G?RMeuEU;1OTJ`a#jEU literal 0 HcmV?d00001 diff --git a/test/assets/images/facebook-share-example.jpg b/test/assets/images/facebook-share-example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dddff9e509b78f931a1303a003fd71f8d78c2d49 GIT binary patch literal 74978 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%0D~>j8wFCfw81zlob`4nL>y>`hZSB_@V$b9 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 literal 0 HcmV?d00001 diff --git a/test/assets/images/foo-bar-identity-th.jpg b/test/assets/images/foo-bar-identity-th.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49906ac64f28f41ddfe3866535f1e07a2a17abae GIT binary patch literal 75014 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

+>b}juY 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

ktr@0qHTk5Ql7#~# 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 b-NX@PH#*VAzf$ChNHe#A?qEIT@8bUezJixg literal 0 HcmV?d00001 diff --git a/test/assets/images/image-alignment-1200x4002.jpg b/test/assets/images/image-alignment-1200x4002.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8e3137cbeb1dd814d2aef411a30b5434a69b83bd GIT binary patch literal 35514 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 IK&d+a11~%bH2?qr literal 0 HcmV?d00001 diff --git a/test/assets/images/image-alignment-300x200.jpg b/test/assets/images/image-alignment-300x200.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3921878b2e096cd8b2f37cc26fcca3e6ca43666c GIT binary patch literal 6446 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 E13w_|qW}N^ literal 0 HcmV?d00001 diff --git a/test/assets/images/image-alignment-580x300.jpg b/test/assets/images/image-alignment-580x300.jpg new file mode 100644 index 0000000000000000000000000000000000000000..75bf08e90a97103d3ea497b3c9d8e17f061336c7 GIT binary patch literal 9082 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 literal 0 HcmV?d00001 diff --git a/test/assets/images/markup-syntax-highlighting-teaser.jpg b/test/assets/images/markup-syntax-highlighting-teaser.jpg new file mode 100644 index 0000000000000000000000000000000000000000..36cb1f9db5940ac5f2904c3535e39f88a3e69e72 GIT binary patch literal 93588 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