From 77545385a81f0bbae40ba35cd8b7b2ddbe0e04da Mon Sep 17 00:00:00 2001 From: yann Date: Mon, 23 Dec 2024 11:11:15 +0100 Subject: [PATCH] first commit --- .env_file | 58 + .gitignore | 9 + Gemfile | 6 + Gemfile.lock | 187 ++ _config.yml | 97 + _data/authors.yml | 0 _data/licenses.yml | 16 + _data/locale.yml | 66 + _data/navigation.yml | 25 + _data/variables.yml | 54 + _includes/article-footer.html | 58 + _includes/article-header.html | 49 + _includes/article-info.html | 101 + _includes/article-list.html | 143 ++ _includes/article-section-navigator.html | 54 + _includes/article/footer/author-profile.html | 47 + _includes/article/footer/custom.html | 3 + _includes/article/footer/license.html | 7 + _includes/article/footer/subscribe.html | 7 + _includes/article/top/custom.html | 50 + _includes/chart.html | 14 + _includes/footer.html | 15 + _includes/head.html | 25 + _includes/head/custom.html | 4 + _includes/head/favicon.html | 24 + _includes/header.html | 76 + _includes/main/bottom/custom.html | 2 + _includes/main/top/custom.html | 6 + _includes/mathjax.html | 3 + _includes/mermaid.html | 8 + _includes/paginator.html | 100 + _includes/scripts/archieve.js | 135 + _includes/scripts/article.js | 24 + _includes/scripts/aside/affix.js | 26 + _includes/scripts/aside/toc.js | 35 + _includes/scripts/common.js | 7 + _includes/scripts/components/lightbox.js | 49 + _includes/scripts/components/search.js | 86 + _includes/scripts/components/sidebar.js | 30 + _includes/scripts/home.js | 3 + _includes/scripts/lib/affix.js | 111 + _includes/scripts/lib/gallery.js | 192 ++ _includes/scripts/lib/lazyload.js | 143 ++ _includes/scripts/lib/modal.js | 64 + _includes/scripts/lib/scroll-to.js | 13 + _includes/scripts/lib/swiper.js | 203 ++ _includes/scripts/lib/throttle.js | 28 + _includes/scripts/lib/toc.js | 107 + _includes/scripts/page.js | 3 + _includes/scripts/utils/imagesLoad.js | 28 + _includes/scripts/utils/utils.js | 39 + _includes/scripts/variables.html | 33 + .../search-providers/custom/search-script.js | 433 ++++ _includes/search-providers/custom/search.html | 31 + .../search-providers/default/search-data.js | 17 + .../search-providers/default/search.html | 18 + _includes/search-providers/default/search.js | 112 + _includes/search.html | 20 + _includes/sidebar/toc.html | 25 + _includes/snippets/assign.html | 9 + _includes/snippets/get-article-title.html | 11 + _includes/snippets/get-lang.html | 6 + _includes/snippets/get-locale-string.html | 12 + _includes/snippets/get-nav-url.html | 8 + _includes/snippets/get-sources.html | 2 + .../get-string-from-locale-config.html | 7 + _includes/snippets/is_collection.html | 6 + _includes/snippets/page-url.html | 2 + _includes/snippets/prepend-baseurl.html | 4 + _includes/snippets/prepend-path.html | 1 + _includes/svg/icon/social/behance.svg | 3 + _includes/svg/icon/social/douban.svg | 5 + _includes/svg/icon/social/facebook.svg | 3 + _includes/svg/icon/social/flicker.svg | 5 + _includes/svg/icon/social/github.svg | 3 + _includes/svg/icon/social/googleplus.svg | 3 + _includes/svg/icon/social/linkedin.svg | 3 + _includes/svg/icon/social/mail.svg | 6 + _includes/svg/icon/social/medium.svg | 3 + _includes/svg/icon/social/npm.svg | 9 + _includes/svg/icon/social/pinterest.svg | 3 + _includes/svg/icon/social/qq.svg | 3 + _includes/svg/icon/social/telegram.svg | 4 + _includes/svg/icon/social/twitter.svg | 3 + _includes/svg/icon/social/weibo.svg | 6 + _includes/svg/icon/social/weixin.svg | 3 + _includes/svg/icon/social/zhihu.svg | 3 + _includes/svg/logo.svg | 1 + _includes/svg/logo_.svg | 65 + _includes/tags.html | 52 + _layouts/404.html | 13 + _layouts/archive.html | 30 + _layouts/article.html | 41 + _layouts/articles.html | 90 + _layouts/base.html | 25 + _layouts/home.html | 30 + _layouts/landing.html | 178 ++ _layouts/none.html | 1 + _layouts/page.html | 270 ++ _sass/additional/_alert.scss | 29 + _sass/additional/_photo-frame.scss | 17 + _sass/additional/_tag.scss | 21 + _sass/animate/_fade-in-down.scss | 10 + _sass/animate/_fade-in-up.scss | 10 + _sass/animate/_fade-in.scss | 8 + _sass/common/_classes.scss | 24 + _sass/common/_function.scss | 15 + _sass/common/_print.scss | 20 + _sass/common/_reset.scss | 170 ++ _sass/common/_variables.scss | 152 ++ _sass/common/classes/_animation.scss | 13 + _sass/common/classes/_clearfix.scss | 19 + _sass/common/classes/_clickable.scss | 159 ++ _sass/common/classes/_display.scss | 13 + _sass/common/classes/_flex.scss | 396 +++ _sass/common/classes/_grid.scss | 82 + _sass/common/classes/_horizontal-rules.scss | 14 + _sass/common/classes/_link.scss | 12 + _sass/common/classes/_media.scss | 17 + _sass/common/classes/_overflow.scss | 26 + _sass/common/classes/_pseudo.scss | 33 + _sass/common/classes/_shadow.scss | 22 + _sass/common/classes/_spacing.scss | 81 + _sass/common/classes/_split-line.scss | 24 + _sass/common/classes/_text.scss | 37 + _sass/common/classes/_transform.scss | 4 + _sass/common/classes/_transition.scss | 4 + _sass/common/classes/_user-select.scss | 6 + _sass/common/components/_button.scss | 163 ++ _sass/common/components/_card.scss | 103 + _sass/common/components/_gallery.scss | 21 + _sass/common/components/_hero.scss | 70 + _sass/common/components/_image.scss | 19 + _sass/common/components/_item.scss | 100 + _sass/common/components/_menu.scss | 67 + _sass/common/components/_modal.scss | 39 + _sass/common/components/_swiper.scss | 48 + _sass/common/components/_toc.scss | 124 + _sass/components/_article-content.scss | 221 ++ _sass/components/_article-footer.scss | 17 + _sass/components/_article-header.scss | 50 + _sass/components/_article-info.scss | 25 + _sass/components/_article-list.scss | 18 + _sass/components/_author-links.scss | 43 + _sass/components/_author-profile.scss | 26 + _sass/components/_extensions.scss | 36 + _sass/components/_footer.scss | 33 + _sass/components/_header.scss | 123 + _sass/components/_lightbox.scss | 7 + _sass/components/_main.scss | 28 + _sass/components/_search.scss | 186 ++ _sass/components/_tags.scss | 24 + _sass/custom.scss | 3 + _sass/layout/_404.scss | 14 + _sass/layout/_archive.scss | 5 + _sass/layout/_article.scss | 29 + _sass/layout/_articles.scss | 17 + _sass/layout/_base.scss | 6 + _sass/layout/_home.scss | 15 + _sass/layout/_landing.scss | 23 + _sass/layout/_page.scss | 165 ++ _sass/skins/_chocolate.scss | 74 + _sass/skins/_dark.scss | 74 + _sass/skins/_default.scss | 74 + _sass/skins/_forest.scss | 74 + _sass/skins/_ocean.scss | 74 + _sass/skins/_orange.scss | 74 + _sass/skins/highlight/_default.scss | 0 .../skins/highlight/_tomorrow-night-blue.scss | 2 + .../highlight/_tomorrow-night-bright.scss | 2 + .../highlight/_tomorrow-night-eighties.scss | 2 + _sass/skins/highlight/_tomorrow-night.scss | 2 + _sass/skins/highlight/_tomorrow.scss | 2 + _sass/skins/highlight/tomorrow/_default.scss | 10 + .../skins/highlight/tomorrow/_highlight.scss | 74 + .../skins/highlight/tomorrow/_night-blue.scss | 10 + .../highlight/tomorrow/_night-bright.scss | 10 + .../highlight/tomorrow/_night-eighties.scss | 10 + _sass/skins/highlight/tomorrow/_night.scss | 10 + aide-jekyll-text-theme.md | 2186 +++++++++++++++++ archive.html | 3 + assets/css/all.css | 5 + assets/css/all.min.css | 9 + assets/css/expand.css | 101 + assets/favicon/android-chrome-192x192.png | Bin 0 -> 26899 bytes assets/favicon/android-chrome-512x512.png | Bin 0 -> 118561 bytes assets/favicon/apple-touch-icon.png | Bin 0 -> 24260 bytes assets/favicon/favicon-16x16.png | Bin 0 -> 707 bytes assets/favicon/favicon-32x32.png | Bin 0 -> 1828 bytes assets/favicon/favicon.ico | Bin 0 -> 15406 bytes assets/favicon/favicon.png | Bin 0 -> 1828 bytes assets/favicon/site.webmanifest | 1 + assets/js/Chart.bundle.min.js | Bin 0 -> 70202 bytes assets/js/jquery.min.js | 4 + env_file | 65 + favicon.png | Bin 0 -> 1828 bytes index.html | 5 + liens_ttrss.md | 550 +++++ search.json | 18 + syntaxe-markdown.md | 2012 +++++++++++++++ yannstatic.sh | 4 + 201 files changed, 13108 insertions(+) create mode 100644 .env_file create mode 100644 .gitignore create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 _config.yml create mode 100644 _data/authors.yml create mode 100644 _data/licenses.yml create mode 100644 _data/locale.yml create mode 100644 _data/navigation.yml create mode 100644 _data/variables.yml create mode 100644 _includes/article-footer.html create mode 100644 _includes/article-header.html create mode 100644 _includes/article-info.html create mode 100644 _includes/article-list.html create mode 100644 _includes/article-section-navigator.html create mode 100644 _includes/article/footer/author-profile.html create mode 100644 _includes/article/footer/custom.html create mode 100644 _includes/article/footer/license.html create mode 100644 _includes/article/footer/subscribe.html create mode 100644 _includes/article/top/custom.html create mode 100644 _includes/chart.html create mode 100644 _includes/footer.html create mode 100644 _includes/head.html create mode 100644 _includes/head/custom.html create mode 100644 _includes/head/favicon.html create mode 100644 _includes/header.html create mode 100644 _includes/main/bottom/custom.html create mode 100644 _includes/main/top/custom.html create mode 100644 _includes/mathjax.html create mode 100644 _includes/mermaid.html create mode 100644 _includes/paginator.html create mode 100644 _includes/scripts/archieve.js create mode 100644 _includes/scripts/article.js create mode 100644 _includes/scripts/aside/affix.js create mode 100644 _includes/scripts/aside/toc.js create mode 100644 _includes/scripts/common.js create mode 100644 _includes/scripts/components/lightbox.js create mode 100644 _includes/scripts/components/search.js create mode 100644 _includes/scripts/components/sidebar.js create mode 100644 _includes/scripts/home.js create mode 100644 _includes/scripts/lib/affix.js create mode 100644 _includes/scripts/lib/gallery.js create mode 100644 _includes/scripts/lib/lazyload.js create mode 100644 _includes/scripts/lib/modal.js create mode 100644 _includes/scripts/lib/scroll-to.js create mode 100644 _includes/scripts/lib/swiper.js create mode 100644 _includes/scripts/lib/throttle.js create mode 100644 _includes/scripts/lib/toc.js create mode 100644 _includes/scripts/page.js create mode 100644 _includes/scripts/utils/imagesLoad.js create mode 100644 _includes/scripts/utils/utils.js create mode 100644 _includes/scripts/variables.html create mode 100644 _includes/search-providers/custom/search-script.js create mode 100644 _includes/search-providers/custom/search.html create mode 100644 _includes/search-providers/default/search-data.js create mode 100644 _includes/search-providers/default/search.html create mode 100644 _includes/search-providers/default/search.js create mode 100644 _includes/search.html create mode 100644 _includes/sidebar/toc.html create mode 100644 _includes/snippets/assign.html create mode 100644 _includes/snippets/get-article-title.html create mode 100644 _includes/snippets/get-lang.html create mode 100644 _includes/snippets/get-locale-string.html create mode 100644 _includes/snippets/get-nav-url.html create mode 100644 _includes/snippets/get-sources.html create mode 100644 _includes/snippets/get-string-from-locale-config.html create mode 100644 _includes/snippets/is_collection.html create mode 100644 _includes/snippets/page-url.html create mode 100644 _includes/snippets/prepend-baseurl.html create mode 100644 _includes/snippets/prepend-path.html create mode 100644 _includes/svg/icon/social/behance.svg create mode 100644 _includes/svg/icon/social/douban.svg create mode 100644 _includes/svg/icon/social/facebook.svg create mode 100644 _includes/svg/icon/social/flicker.svg create mode 100644 _includes/svg/icon/social/github.svg create mode 100644 _includes/svg/icon/social/googleplus.svg create mode 100644 _includes/svg/icon/social/linkedin.svg create mode 100644 _includes/svg/icon/social/mail.svg create mode 100644 _includes/svg/icon/social/medium.svg create mode 100644 _includes/svg/icon/social/npm.svg create mode 100644 _includes/svg/icon/social/pinterest.svg create mode 100644 _includes/svg/icon/social/qq.svg create mode 100644 _includes/svg/icon/social/telegram.svg create mode 100644 _includes/svg/icon/social/twitter.svg create mode 100644 _includes/svg/icon/social/weibo.svg create mode 100644 _includes/svg/icon/social/weixin.svg create mode 100644 _includes/svg/icon/social/zhihu.svg create mode 100644 _includes/svg/logo.svg create mode 100644 _includes/svg/logo_.svg create mode 100644 _includes/tags.html create mode 100644 _layouts/404.html create mode 100644 _layouts/archive.html create mode 100644 _layouts/article.html create mode 100644 _layouts/articles.html create mode 100644 _layouts/base.html create mode 100644 _layouts/home.html create mode 100644 _layouts/landing.html create mode 100644 _layouts/none.html create mode 100644 _layouts/page.html create mode 100644 _sass/additional/_alert.scss create mode 100644 _sass/additional/_photo-frame.scss create mode 100644 _sass/additional/_tag.scss create mode 100644 _sass/animate/_fade-in-down.scss create mode 100644 _sass/animate/_fade-in-up.scss create mode 100644 _sass/animate/_fade-in.scss create mode 100644 _sass/common/_classes.scss create mode 100644 _sass/common/_function.scss create mode 100644 _sass/common/_print.scss create mode 100644 _sass/common/_reset.scss create mode 100644 _sass/common/_variables.scss create mode 100644 _sass/common/classes/_animation.scss create mode 100644 _sass/common/classes/_clearfix.scss create mode 100644 _sass/common/classes/_clickable.scss create mode 100644 _sass/common/classes/_display.scss create mode 100644 _sass/common/classes/_flex.scss create mode 100644 _sass/common/classes/_grid.scss create mode 100644 _sass/common/classes/_horizontal-rules.scss create mode 100644 _sass/common/classes/_link.scss create mode 100644 _sass/common/classes/_media.scss create mode 100644 _sass/common/classes/_overflow.scss create mode 100644 _sass/common/classes/_pseudo.scss create mode 100644 _sass/common/classes/_shadow.scss create mode 100644 _sass/common/classes/_spacing.scss create mode 100644 _sass/common/classes/_split-line.scss create mode 100644 _sass/common/classes/_text.scss create mode 100644 _sass/common/classes/_transform.scss create mode 100644 _sass/common/classes/_transition.scss create mode 100644 _sass/common/classes/_user-select.scss create mode 100644 _sass/common/components/_button.scss create mode 100644 _sass/common/components/_card.scss create mode 100644 _sass/common/components/_gallery.scss create mode 100644 _sass/common/components/_hero.scss create mode 100644 _sass/common/components/_image.scss create mode 100644 _sass/common/components/_item.scss create mode 100644 _sass/common/components/_menu.scss create mode 100644 _sass/common/components/_modal.scss create mode 100644 _sass/common/components/_swiper.scss create mode 100644 _sass/common/components/_toc.scss create mode 100644 _sass/components/_article-content.scss create mode 100644 _sass/components/_article-footer.scss create mode 100644 _sass/components/_article-header.scss create mode 100644 _sass/components/_article-info.scss create mode 100644 _sass/components/_article-list.scss create mode 100644 _sass/components/_author-links.scss create mode 100644 _sass/components/_author-profile.scss create mode 100644 _sass/components/_extensions.scss create mode 100644 _sass/components/_footer.scss create mode 100644 _sass/components/_header.scss create mode 100644 _sass/components/_lightbox.scss create mode 100644 _sass/components/_main.scss create mode 100644 _sass/components/_search.scss create mode 100644 _sass/components/_tags.scss create mode 100644 _sass/custom.scss create mode 100644 _sass/layout/_404.scss create mode 100644 _sass/layout/_archive.scss create mode 100644 _sass/layout/_article.scss create mode 100644 _sass/layout/_articles.scss create mode 100644 _sass/layout/_base.scss create mode 100644 _sass/layout/_home.scss create mode 100644 _sass/layout/_landing.scss create mode 100644 _sass/layout/_page.scss create mode 100644 _sass/skins/_chocolate.scss create mode 100644 _sass/skins/_dark.scss create mode 100644 _sass/skins/_default.scss create mode 100644 _sass/skins/_forest.scss create mode 100644 _sass/skins/_ocean.scss create mode 100644 _sass/skins/_orange.scss create mode 100644 _sass/skins/highlight/_default.scss create mode 100644 _sass/skins/highlight/_tomorrow-night-blue.scss create mode 100644 _sass/skins/highlight/_tomorrow-night-bright.scss create mode 100644 _sass/skins/highlight/_tomorrow-night-eighties.scss create mode 100644 _sass/skins/highlight/_tomorrow-night.scss create mode 100644 _sass/skins/highlight/_tomorrow.scss create mode 100644 _sass/skins/highlight/tomorrow/_default.scss create mode 100644 _sass/skins/highlight/tomorrow/_highlight.scss create mode 100644 _sass/skins/highlight/tomorrow/_night-blue.scss create mode 100644 _sass/skins/highlight/tomorrow/_night-bright.scss create mode 100644 _sass/skins/highlight/tomorrow/_night-eighties.scss create mode 100644 _sass/skins/highlight/tomorrow/_night.scss create mode 100644 aide-jekyll-text-theme.md create mode 100755 archive.html create mode 100644 assets/css/all.css create mode 100644 assets/css/all.min.css create mode 100644 assets/css/expand.css create mode 100644 assets/favicon/android-chrome-192x192.png create mode 100644 assets/favicon/android-chrome-512x512.png create mode 100644 assets/favicon/apple-touch-icon.png create mode 100644 assets/favicon/favicon-16x16.png create mode 100644 assets/favicon/favicon-32x32.png create mode 100644 assets/favicon/favicon.ico create mode 100644 assets/favicon/favicon.png create mode 100644 assets/favicon/site.webmanifest create mode 100644 assets/js/Chart.bundle.min.js create mode 100644 assets/js/jquery.min.js create mode 100644 env_file create mode 100644 favicon.png create mode 100644 index.html create mode 100644 liens_ttrss.md create mode 100644 search.json create mode 100644 syntaxe-markdown.md create mode 100755 yannstatic.sh diff --git a/.env_file b/.env_file new file mode 100644 index 0000000..2cad54c --- /dev/null +++ b/.env_file @@ -0,0 +1,58 @@ +SHELL=/bin/bash +SESSION_MANAGER=local/PC1:@/tmp/.ICE-unix/1441,unix/PC1:/tmp/.ICE-unix/1441 +COLORTERM=truecolor +XDG_CONFIG_DIRS=/etc/xdg +XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0 +XDG_MENU_PREFIX=xfce- +TERMINATOR_DBUS_PATH=/net/tenshu/Terminator2 +LC_ADDRESS=fr_FR.UTF-8 +LC_NAME=fr_FR.UTF-8 +SSH_AUTH_SOCK=/tmp/ssh-XXXXXXQ9lzqM/agent.1536 +XDG_CONFIG_HOME=/home/yann/.config +TERMINATOR_UUID=urn:uuid:9fd3d9b2-ff47-4e04-9a81-7405d5374258 +DESKTOP_SESSION=xfce +LC_MONETARY=fr_FR.UTF-8 +SSH_AGENT_PID=1538 +EDITOR=nano +GTK_MODULES=canberra-gtk-module:canberra-gtk-module +XDG_SEAT=seat0 +PWD=/home/yann/media/yannstatic +LOGNAME=yann +XDG_SESSION_DESKTOP=xfce +XDG_SESSION_TYPE=x11 +PANEL_GDK_CORE_DEVICE_EVENTS=0 +XAUTHORITY=/home/yann/.Xauthority +XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/yann +MOTD_SHOWN=pam +HOME=/home/yann +LC_PAPER=fr_FR.UTF-8 +LANG=fr_FR.UTF-8 +XDG_CURRENT_DESKTOP=XFCE +VTE_VERSION=7801 +XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 +TERMINATOR_DBUS_NAME=net.tenshu.Terminator21a9d5db22c73a993ff0b42f64b396873 +XDG_CACHE_HOME=/home/yann/.cache +GEM_HOME=/home/yann/.local/share/gem/ruby/3.3.0/gems +XDG_SESSION_CLASS=user +TERM=xterm-256color +LC_IDENTIFICATION=fr_FR.UTF-8 +USER=yann +DISPLAY=:0.0 +SHLVL=1 +LC_TELEPHONE=fr_FR.UTF-8 +LC_MEASUREMENT=fr_FR.UTF-8 +XDG_VTNR=7 +XDG_SESSION_ID=2 +XDG_RUNTIME_DIR=/run/user/1000 +DEBUGINFOD_URLS=https://debuginfod.archlinux.org +LC_TIME=fr_FR.UTF-8 +GTK3_MODULES=xapp-gtk3-module:xapp-gtk3-module +XDG_DATA_DIRS=/usr/local/share:/usr/share +BROWSER=firefox +PATH=/home/yann/.local/share/gem/ruby/3.3.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl +GDMSESSION=xfce +DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus +MAIL=/var/spool/mail/yann +LC_NUMERIC=fr_FR.UTF-8 +_=/usr/bin/env +OLDPWD=/home/yann diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..68b4215 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +files +_posts +images +htmldoc +htmldoc.md +.jekyll-cache +.jekyll-metadata +static + diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..764a8a7 --- /dev/null +++ b/Gemfile @@ -0,0 +1,6 @@ +source "https://rubygems.org" + +# gem "github-pages", group: :jekyll_plugins +gem "jekyll-text-theme" +gem "html-pipeline" +gem "sass-embedded", "1.76.0" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..701f8f7 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,187 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (8.0.0) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + base64 (0.2.0) + benchmark (0.4.0) + bigdecimal (3.1.8) + colorator (1.1.0) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + drb (2.2.1) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.17.0-aarch64-linux-gnu) + ffi (1.17.0-aarch64-linux-musl) + ffi (1.17.0-arm-linux-gnu) + ffi (1.17.0-arm-linux-musl) + ffi (1.17.0-arm64-darwin) + ffi (1.17.0-x86-linux-gnu) + ffi (1.17.0-x86-linux-musl) + ffi (1.17.0-x86_64-darwin) + ffi (1.17.0-x86_64-linux-gnu) + ffi (1.17.0-x86_64-linux-musl) + forwardable-extended (2.6.0) + gemoji (4.1.0) + google-protobuf (4.28.3) + bigdecimal + rake (>= 13) + google-protobuf (4.28.3-aarch64-linux) + bigdecimal + rake (>= 13) + google-protobuf (4.28.3-arm64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.28.3-x86-linux) + bigdecimal + rake (>= 13) + google-protobuf (4.28.3-x86_64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.28.3-x86_64-linux) + bigdecimal + rake (>= 13) + html-pipeline (2.14.3) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.8.0) + i18n (1.14.6) + concurrent-ruby (~> 1.0) + jekyll (4.3.4) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (>= 0.3.6, < 0.5) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-paginate (1.1.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-text-theme (2.2.6) + jekyll (>= 3.6, < 5.0) + jekyll-feed (~> 0.1) + jekyll-paginate (~> 1.1) + jekyll-sitemap (~> 1.0) + jemoji (~> 0.8) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.13.0) + gemoji (>= 3, < 5) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + kramdown (2.5.1) + rexml (>= 3.3.9) + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + logger (1.6.1) + mercenary (0.4.0) + minitest (5.25.1) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.7-arm-linux) + racc (~> 1.4) + nokogiri (1.16.7-arm64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86-linux) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (6.0.1) + racc (1.8.1) + rake (13.2.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + rexml (3.3.9) + rouge (4.5.1) + safe_yaml (1.0.5) + sass-embedded (1.76.0-aarch64-linux-gnu) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-aarch64-linux-musl) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-arm-linux-gnueabihf) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-arm-linux-musleabihf) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-arm64-darwin) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-x86-linux-gnu) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-x86-linux-musl) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-x86_64-darwin) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-x86_64-linux-gnu) + google-protobuf (>= 3.25, < 5.0) + sass-embedded (1.76.0-x86_64-linux-musl) + google-protobuf (>= 3.25, < 5.0) + securerandom (0.3.2) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.6.0) + uri (1.0.2) + webrick (1.9.0) + +PLATFORMS + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm-linux + arm-linux-gnu + arm-linux-gnueabihf + arm-linux-musl + arm-linux-musleabihf + arm64-darwin + x86-linux + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux-gnu + x86_64-linux-musl + +DEPENDENCIES + html-pipeline + jekyll-text-theme + sass-embedded (= 1.76.0) + +BUNDLED WITH + 2.5.23 diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..1091e06 --- /dev/null +++ b/_config.yml @@ -0,0 +1,97 @@ +# Bienvenue à Jekyll ! +# +# Ce fichier de configuration est destiné aux paramètres qui affectent l'ensemble de votre blog, des valeurs +# que vous êtes censé configurer une fois et rarement besoin de modifier par la suite. +# Pour des raisons techniques, ce fichier n'est *PAS* rechargé automatiquement lorsque vous utilisez +# 'jekyll serve'. Si vous modifiez ce fichier, veuillez redémarrer le processus de serveur. +# +# Modification octobre 2024 + +## => Paramètres du site +############################## +theme : jekyll-text-theme +text_skin : dark # "default" (par défaut), "dark", "forest", "ocean", "chocolate", "orange". +highlight_theme : tomorrow-night-bright # "default" (par défaut), "tomorrow", "tomorrow-night", "tomorrow-night-eighties", "tomorrow-night-blue", "tomorrow-night-bright". +url : https://static.rnmkcy.eu # le nom d'hôte et le protocole de base pour votre site, par exemple https://www.someone.com +baseurl : # ne comprend pas le nom d'hôte +title : YannStatic +description : > # cela signifie qu'il faut ignorer les nouvelles lignes jusqu'à "Language & timezone". + Expérimentations et tests + +## => Language and Timezone +############################## +lang : fr # le language du site, par défaut "en" +timezone : Europe/Paris # voir https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + + +## => Chemins +############################## +paths: + root : # title link url, "/" (default) + home : # home layout url, "/" (default) + archive : # "/archive.html" (default) + rss : # "/feed.xml" (default) + + +## => Post +############################## +## excerpt +excerpt_separator: + +## license +license: # "CC-BY-4.0", "CC-BY-SA-4.0", "CC-BY-NC-4.0", "CC-BY-ND-4.0" + +## TOC +toc: + selectors: h1,h2,h3,h4 # "h1,h2,h3" (default) + + +## => Paginate +############################## +paginate: 10 +## paginate_path: /page:num # don't change this unless for special need + + +## => Sources +############################## +sources: # bootcdn (default), unpkg + + +## => Recherche +############################## +search: + provider: "custom" # "default" (default), false, "custom" + +## => Build +############################## +markdown : kramdown +highlighter : rouge +permalink : date + +# http://jekyllrb.com/docs/configuration/options/ +exclude: [LISEZMOI.md,.jekyll-cache/,.git/,Gemfile,Gemfile.lock,static,aide-jekyll-text-theme.md] +include: [search.json] + +defaults: + - scope: + path: "" + type: posts + values: + layout: article + sharing: true + license: false # true + aside: + toc: true + show_edit_on_github: true + show_subscribe: true + pageview: true + + +## => Plugins +############################## +plugins: + - jekyll-feed + - jekyll-paginate + - jekyll-sitemap + - jemoji + diff --git a/_data/authors.yml b/_data/authors.yml new file mode 100644 index 0000000..e69de29 diff --git a/_data/licenses.yml b/_data/licenses.yml new file mode 100644 index 0000000..dda29f1 --- /dev/null +++ b/_data/licenses.yml @@ -0,0 +1,16 @@ +CC-BY-4.0: + name: Attribution 4.0 International + url: https://creativecommons.org/licenses/by/4.0/deed.fr + image: https://i.creativecommons.org/l/by/4.0/88x31.png +CC-BY-SA-4.0: + name: Attribution-ShareAlike 4.0 International + url: https://creativecommons.org/licenses/by-sa/4.0/deed.fr + image: https://i.creativecommons.org/l/by-sa/4.0/88x31.png +CC-BY-NC-4.0: + name: Attribution-NonCommercial 4.0 International + url: https://creativecommons.org/licenses/by-nc/4.0/deed.fr + image: https://i.creativecommons.org/l/by-nc/4.0/88x31.png +CC-BY-ND-4.0: + name: Attribution-NoDerivatives 4.0 International + url: https://creativecommons.org/licenses/by-nd/4.0/deed.fr + image: https://i.creativecommons.org/l/by-nd/4.0/88x31.png diff --git a/_data/locale.yml b/_data/locale.yml new file mode 100644 index 0000000..ce8c029 --- /dev/null +++ b/_data/locale.yml @@ -0,0 +1,66 @@ +# @start locale config +## => English +######################## +en: &EN + SUBSCRIBE : "Subscribe" + READMORE : "Read more" + SEARCH : "Search" + CANCEL : "Cancel" + VIEWS : "views" + LAST_UPDATED : "Last updated" + PREVIOUS : "PREVIOUS" + NEXT : "NEXT" + ARTICLE_DATE_FORMAT : "%b %d, %Y" + ARTICLE_LIST_DATE_FORMAT: "%b %d" + STATISTICS : "[POST_COUNT] post articles, [PAGE_COUNT] pages." + LICENSE_ANNOUNCE : "This work is licensed under a [LICENSE] license." + POST_ON_GITHUB : "Edit on Github" + FOLLOW_ME : "Follow me on [NAME]." + FOLLOW_US : "Follow us on [NAME]." + EMAIL_ME : "Send me an Email." + EMAIL_US : "Send us an Email." + COPYRIGHT_DATES : "2020" + +en-GB: + <<: *EN +en-US: + <<: *EN +en-CA: + <<: *EN +en-AU: + <<: *EN + +## => French +######################## +fr: &FR + SUBSCRIBE : "S'abonner" + READMORE : "Plus" + SEARCH : "Recherche" + CANCEL : "Annuler" + VIEWS : "vues" + LAST_UPDATED : "Dernière modification" + PREVIOUS : "PRÉCÉDENT" + NEXT : "SUIVANT" + ARTICLE_DATE_FORMAT : "%d %b, %Y" + ARTICLE_LIST_DATE_FORMAT: "%d %b" + STATISTICS : "[POST_COUNT] articles, [PAGE_COUNT] pages." + LICENSE_ANNOUNCE : "[LICENSE]" + POST_ON_GITHUB : "Modifier sur Github" + FOLLOW_ME : "Suivez-moi sur [NAME]." + FOLLOW_US : "Suivez-nous sur [NAME]." + EMAIL_ME : "Envoyez-moi un courriel." + EMAIL_US : "Envoyez-nous un courriel" + COPYRIGHT_DATES : "2020" + DONATE : "Faites un don de [NAME]." + +fr-BE: + <<: *FR +fr-CA: + <<: *FR +fr-CH: + <<: *FR +fr-FR: + <<: *FR +fr-LU: + <<: *FR +# @end locale config diff --git a/_data/navigation.yml b/_data/navigation.yml new file mode 100644 index 0000000..c67c623 --- /dev/null +++ b/_data/navigation.yml @@ -0,0 +1,25 @@ +header: + - titles: + # @start locale config + fr : &FR Etiquettes + # @end locale config + url: /archive.html + + - titles: + # @start locale config + fr : &FR Documents + # @end locale config + url: /htmldoc.html + + - titles: + # @start locale config + fr : &FR Liens + # @end locale config + url: /liens_ttrss.html + + - titles: + # @start locale config + fr : &FR Aide + # @end locale config + url: /syntaxe-markdown.html + diff --git a/_data/variables.yml b/_data/variables.yml new file mode 100644 index 0000000..8322ee6 --- /dev/null +++ b/_data/variables.yml @@ -0,0 +1,54 @@ +default: + text_skin: default + highlight_theme: default + lang: fr + paths: + root: / + home: / + archive: /archive.html + rss: /feed.xml + toc: + selectors: 'h1,h2,h3' + sources: bootcdn + + page: + mode: normal + type: webpage + article_header: + align: left + theme: light + articles: + show_cover: true + show_excerpt: false + show_readmore: false + show_info: false + show_title: true + show_edit_on_github: false + show_date: true + show_tags: true + show_author_profile: false + show_subscribe: false + full_width: false + sharing: false + comment: true + license: false + pageview: false + search: default + +sources: + bootcdn: + font_awesome: 'https://use.fontawesome.com/releases/v5.0.13/css/all.css' # '/assets/css/all.css' + jquery: '/assets/js/jquery.min.js' + #leancloud_js_sdk: '//cdn.jsdelivr.net/npm/leancloud-storage@3.13.2/dist/av-min.js' + #gitalk: + # js: 'https://cdn.bootcss.com/gitalk/1.2.2/gitalk.min.js' + # css: 'https://cdn.bootcss.com/gitalk/1.2.2/gitalk.min.css' + #valine: 'https://unpkg.com/valine/dist/Valine.min.js' # bootcdn not available + unpkg: + font_awesome: 'https://unpkg.com/browse/@fortawesome/fontawesome-free@6.4.2/css/all.min.css' # 'https://use.fontawesome.com/releases/v5.0.13/css/all.css' + jquery: '/assets/js/jquery.min.js' + leancloud_js_sdk: '//cdn.jsdelivr.net/npm/leancloud-storage@3.13.2/dist/av-min.js' + gitalk: + js: 'https://unpkg.com/gitalk@1.2.2/dist/gitalk.min.js' + css: 'https://unpkg.com/gitalk@1.2.2/dist/gitalk.css' + valine: 'https//unpkg.com/valine/dist/Valine.min.js' diff --git a/_includes/article-footer.html b/_includes/article-footer.html new file mode 100644 index 0000000..c66e7c9 --- /dev/null +++ b/_includes/article-footer.html @@ -0,0 +1,58 @@ +{%- include snippets/assign.html + target=site.data.variables.default.page.show_author_profile + source0=layout.show_author_profile source1=page.show_author_profile -%} +{%- assign _show_author_profile = __return -%} + +{%- include snippets/assign.html + target=site.data.variables.default.page.show_subscribe + source0=layout.show_subscribe source1=page.show_subscribe -%} +{%- assign _show_subscribe = __return -%} + +{%- include snippets/assign.html + target=site.data.variables.default.page.license + source0=layout.license source1=page.license -%} +{%- assign _license = __return -%} + + diff --git a/_includes/article-header.html b/_includes/article-header.html new file mode 100644 index 0000000..a98a6c6 --- /dev/null +++ b/_includes/article-header.html @@ -0,0 +1,49 @@ +{%- include snippets/get-article-title.html article=include.article-%} +{%- assign _article_title = __return -%} + +{%- if include.html != false -%} + + {%- include snippets/assign.html + target=site.data.variables.default.page.show_title + source0=layout.show_title source1=include.article.show_title -%} + {%- assign _show_title = __return -%} + + {%- include snippets/assign.html + target=site.data.variables.default.page.show_edit_on_github + source0=layout.show_edit_on_github source1=include.article.show_edit_on_github -%} + {%- assign _show_edit_on_github = __return -%} + + {%- if _show_title or _show_edit_on_github -%} +
+ {%- if _show_title -%} +

{{ _article_title }}

+ {%- endif -%} + {%- if _show_edit_on_github -%} + {%- if site.repository and site.repository_tree -%} + {%- include snippets/is_collection.html page=include.article -%} + {%- assign _is_article_collection = __return -%} + {%- include snippets/get-locale-string.html key='POST_ON_GITHUB' -%} + {%- assign _locale_post_on_github = __return -%} + {%- if _is_article_collection -%} + {%- include snippets/prepend-path.html path=include.article.path prepend_path=site.collections_dir -%} + {%- assign _article_path = __return -%} + {%- else -%} + {%- assign _article_path = include.article.path -%} + {%- endif -%} + {%- assign _github_path = site.repository | append: '/tree/' | append: site.repository_tree | append: '/' | append: _article_path | replace:'//','/' -%} +   + + + {%- endif -%} + {%- endif -%} +
+ {%- else -%} +

{{ _article_title }}

+ {%- endif -%} +{%- endif -%} + +{%- if include.semantic != false -%} + +{%- endif -%} diff --git a/_includes/article-info.html b/_includes/article-info.html new file mode 100644 index 0000000..b43c45e --- /dev/null +++ b/_includes/article-info.html @@ -0,0 +1,101 @@ +{%- assign _author = site.data.authors[include.article.author] | default: site.author -%} + +{%- if include.html != false -%} + + {%- include snippets/assign.html + target=site.data.variables.default.page.show_date + source0=layout.show_date source1=include.article.show_date -%} + {%- assign _show_date = __return -%} + {%- if _show_date and include.article.modif -%} + {%- assign _show_date = true -%} + {%- else -%} + {%- assign _show_date = false -%} + {%- endif -%} + + {%- include snippets/assign.html + target=site.data.variables.default.page.show_tags + source0=layout.show_tags source1=include.article.show_tags -%} + {%- assign _show_tags = __return -%} + {%- if _show_tags and include.article.tags[0] -%} + {%- assign _show_tags = true -%} + {%- else -%} + {%- assign _show_tags = false -%} + {%- endif -%} + + {%- assign _show_author = include.article.author -%} + + {%- include snippets/assign.html target=site.data.variables.default.page.pageview + source0=layout.pageview source1=page.pageview -%} + {%- assign _pageview = __return -%} + {%- if _pageview or include.show_pageview -%} + {%- assign _pageview = true -%} + {%- else -%} + {%- assign _pageview = false -%} + {%- endif -%} + + {%- assign _paths_archive = site.paths.archive | default: site.data.variables.default.paths.archive -%} + + {%- if _show_tags or _show_author or _show_date or _pageview -%} +
+ {%- if _show_tags -%} + + + {%- endif -%} + + {%- if _show_author or _show_date or _pageview -%} + + {%- endif -%} + +
+ {%- endif -%} +{%- endif -%} + + +{%- if include.semantic != false -%} + {%- if _author -%} + + {%- endif -%} + {%- if include.article.modif -%} + + {%- endif -%} + {%- if include.article.tags[0] -%} + {%- assign _keywords = include.article.tags | join: ',' %} + + {%- endif -%} +{%- endif -%} diff --git a/_includes/article-list.html b/_includes/article-list.html new file mode 100644 index 0000000..748de5a --- /dev/null +++ b/_includes/article-list.html @@ -0,0 +1,143 @@ +{%- assign _excerpt_truncate = include.excerpt_truncate | default: 350 -%} + +{%- assign _excerpt_type = include.excerpt_type -%} + +{%- include snippets/get-locale-string.html key='READMORE' -%} +{%- assign _locale_readmore = __return -%} + +{%- assign _sorted_list = site.posts | sort_natural: "modif" | reverse -%} + +{%- if include.type == 'item' -%} +
+{%- elsif include.type == 'brief' -%} +
+{%- elsif include.type == 'grid' -%} + {%- if include.size == 'sm' -%} +
+ {%- else -%} +
+ {%- endif -%} +{%- endif -%} + + {%- for _article in _sorted_list -%} + + {%- include snippets/prepend-baseurl.html path=_article.url -%} + {%- assign _article_url = __return -%} + + {%- if _article.cover -%} + {%- include snippets/get-nav-url.html path=_article.cover -%} + {%- assign _article_cover = __return -%} + {%- endif -%} + + {%- if include.type == 'item' -%} + {%- if include.article_type == 'BlogPosting' -%} + +
+ {%- else -%} + +
+ {%- endif -%} + {%- if _article.cover and include.show_cover-%} + {%- include snippets/get-nav-url.html path=_article.cover -%} + {%- assign _article_cover = __return -%} +
+ {%- if include.cover_size == 'lg' -%} + + {%- elsif include.cover_size == 'sm' -%} + + {%- else -%} + + {%- endif -%} +
+ {%- endif -%} +
+

{{ _article.title }}

+
+ {%- if _article.excerpt and include.show_excerpt -%} +
+ {%- if _excerpt_type == 'html' -%} + {{ _article.excerpt }} + {%- else -%} + {{ _article.excerpt | strip_html | strip | truncate: _excerpt_truncate }} + {%- endif -%} +
+ {%- endif -%} + {%- if include.show_readmore -%} +

{{ _locale_readmore }}

+ {%- endif -%} +
+ + {%- if include.show_info -%} + {%- include snippets/assign.html target=site.data.variables.default.page.pageview + source0=_article.pageview -%} + {%- assign _show_pageview = __return -%} + {%- include article-info.html article=_article show_pageview=_show_pageview -%} + {%- endif -%} + +
+
+
+ + + {%- elsif include.type == 'brief' -%} + {%- assign _tags = '' -%} + {%- for _tag in _article.tags -%} + {%- assign _tag_encode = _tag | strip | url_encode -%} + {%- if forloop.last -%} + {%- assign _tags = _tags | append: _tag_encode -%} + {%- else -%} + {%- assign _tags = _tags | append: _tag_encode | append: ',' -%} + {%- endif -%} + {%- endfor -%} + {%- if include.group_by == 'year' -%} + {%- assign _currentdate = _article.modif | date: '%Y' -%} + {%- if _currentdate != _date -%} + {%- unless forloop.first -%}{%- endunless -%} +

{{ _currentdate }}

    + {%- assign _date = _currentdate -%} + {%- endif -%} + {%- endif -%} +
  • +
    + {%- if include.show_info -%} + {%- assign d = _article.modif | date: "%-d" -%}{%- case d -%}{%- when '1' -%}{{ d }}r{%- when '2' -%} {{ d }}{%- when '3' -%} {{ d }}{%- when '4' -%} {{ d }}{%- when '5' -%} {{ d }}{%- when '6' -%} {{ d }}{%- when '7' -%} {{ d }}{%- when '8' -%} {{ d }}{%- when '9' -%} {{ d }}{%- else -%}{{ d }}{%- endcase -%}  {%- assign m = _article.modif | date: "%-m" -%}{%- case m -%}{%- when '1' -%}janv.{%- when '2' -%}févr.{%- when '3' -%}mars {%- when '4' -%}avr. {%- when '5' -%}mai   {%- when '6' -%}juin  {%- when '7' -%}juil.{%- when '8' -%}août  {%- when '9' -%}sept.{%- when '10' -%}oct. {%- when '11' -%}nov. {%- when '12' -%}déc. {%- endcase -%} + + {%- endif -%} + {{ _article.title }}
    +
  • + + {%- elsif include.type == 'grid' -%} + {%- if include.size == 'sm' -%} +
    +
    + {%- if _article.cover -%} +
    + + +
    + {%- endif -%} +
    +
    + {%- else -%} + +
    +
    + {%- if _article.cover -%} +
    + {%- endif -%} + +
    +
    + {%- endif -%} + {%- endif -%} + {%- endfor -%} + +
diff --git a/_includes/article-section-navigator.html b/_includes/article-section-navigator.html new file mode 100644 index 0000000..a88aaf9 --- /dev/null +++ b/_includes/article-section-navigator.html @@ -0,0 +1,54 @@ +{%- if page.sidebar.nav -%} + {%- assign _sidebar_nav = site.data.navigation[page.sidebar.nav] -%} + {%- if _sidebar_nav -%} + {%- assign _find_cur = false -%} + {%- assign _find_next = false -%} + + {%- for _item in _sidebar_nav -%} + {%- if _find_next -%} {%- break -%} {%- endif -%} + {%- if _item.children -%} + + {%- for _child in _item.children -%} + {%- include snippets/get-nav-url.html path=_child.url -%} + {%- assign _nav_url = __return -%} + {%- include snippets/get-nav-url.html path=page.url -%} + {%- assign _page_url = __return -%} + + {%- if _nav_url == _page_url -%} + {%- assign _find_cur = true -%} + {%- elsif _find_cur and _find_next != true -%} + {%- assign _find_next = true -%} + {%- assign _next = _child -%} + {%- break -%} + {%- else -%} + {%- assign _previous = _child -%} + {%- endif -%} + {%- endfor -%} + + {%- endif -%} + {%- endfor -%} + {%- endif -%} + +{%- else -%} + {%- assign _previous = page.previous -%} + {%- assign _next = page.next -%} +{%- endif -%} + +{%- if _next or _previous -%} +
+ {%- if _previous -%} + {%- include snippets/prepend-baseurl.html path=_previous.url -%} + {%- assign _href = __return -%} + {%- include snippets/get-locale-string.html key='PREVIOUS' -%} + {%- assign _locale_previous = __return -%} + + {%- endif -%} + {%- if _next -%} + {%- include snippets/prepend-baseurl.html path=_next.url -%} + {%- assign _href = __return -%} + {%- include snippets/get-locale-string.html key='NEXT' -%} + {%- assign _locale_next = __return -%} + + {%- endif -%} +
+{%- endif -%} diff --git a/_includes/article/footer/author-profile.html b/_includes/article/footer/author-profile.html new file mode 100644 index 0000000..8b0d72d --- /dev/null +++ b/_includes/article/footer/author-profile.html @@ -0,0 +1,47 @@ +{%- assign _author = include.author -%} + +{%- if _author.type == 'organization' -%} + {%- assign _author_itemtype = 'http://schema.org/Organization' -%} +{%- else -%} + {%- assign _author_itemtype = 'http://schema.org/Person' -%} +{%- endif -%} + +
+ {%- if _author.avatar -%} + {%- if _author.url -%} + + {%- endif -%} + {%- include snippets/get-nav-url.html path=_author.avatar -%} + {%- assign _author_avatar = __return -%} + + {%- if _author.url -%} + + {%- endif -%} + {%- endif -%} + + +
+ + {%- if _author.name -%} + +

+ {%- if _author.url -%} + + + {%- endif -%} + {{ _author.name }} + {%- if _author.url -%} + + {%- endif -%} +

+ {%- endif -%} + + {%- if _author.bio -%} +

{{ _author.bio }}

+ {%- endif -%} + + +
+
diff --git a/_includes/article/footer/custom.html b/_includes/article/footer/custom.html new file mode 100644 index 0000000..edcd06d --- /dev/null +++ b/_includes/article/footer/custom.html @@ -0,0 +1,3 @@ + + + diff --git a/_includes/article/footer/license.html b/_includes/article/footer/license.html new file mode 100644 index 0000000..5e66136 --- /dev/null +++ b/_includes/article/footer/license.html @@ -0,0 +1,7 @@ +{%- include snippets/get-locale-string.html key='LICENSE_ANNOUNCE' -%} +{%- assign _license_announce = __return -%} + +{%- if include.license -%} + + {{ include.license.name }} +{%- endif -%} diff --git a/_includes/article/footer/subscribe.html b/_includes/article/footer/subscribe.html new file mode 100644 index 0000000..a91a2ab --- /dev/null +++ b/_includes/article/footer/subscribe.html @@ -0,0 +1,7 @@ +{%- assign _paths_rss = site.paths.rss | default: site.data.variables.default.paths.rss -%} +{%- include snippets/get-nav-url.html path=_paths_rss -%} +{%- assign _paths_rss = __return -%} +{%- include snippets/get-locale-string.html key='SUBSCRIBE' -%} +{%- assign _locale_nav_subscribe = __return -%} + + diff --git a/_includes/article/top/custom.html b/_includes/article/top/custom.html new file mode 100644 index 0000000..a1197ab --- /dev/null +++ b/_includes/article/top/custom.html @@ -0,0 +1,50 @@ + + + + + + + + + diff --git a/_includes/chart.html b/_includes/chart.html new file mode 100644 index 0000000..1d40edc --- /dev/null +++ b/_includes/chart.html @@ -0,0 +1,14 @@ + + diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..35b05fd --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,15 @@ +
+ {%- assign _paths_rss = site.paths.rss | default: site.data.variables.default.paths.rss -%} + {%- include snippets/get-nav-url.html path=_paths_rss -%} + {%- assign _paths_rss = __return -%} + {%- include snippets/get-locale-string.html key='SUBSCRIBE' -%} + {%- assign _locale_nav_subscribe = __return -%} + +   + {%- include snippets/get-locale-string.html key='COPYRIGHT_DATES' -%} + {%- assign _locale_copyright_dates = __return -%} + {{ site.title }} {{ _locale_copyright_dates }}, + Propulsé par Jekyll & TeXt Theme +
+ diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..e0d2bfc --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,25 @@ + + + + +{%- include snippets/get-article-title.html article=page -%} +{%- if __return -%}{{ __return }} - {{ site.title }}{%- else -%}{{ site.title }}{%- endif -%} + + + + +{%- assign _paths_rss = site.paths.rss | default: site.data.variables.default.paths.rss -%} +{%- include snippets/get-nav-url.html path=_paths_rss -%} + + + + + +{%- include snippets/prepend-baseurl.html path='/assets/css/main.css' -%} + + +{%- include snippets/get-sources.html -%} +{%- assign _sources = __return -%} + + +{%- include head/custom.html -%} diff --git a/_includes/head/custom.html b/_includes/head/custom.html new file mode 100644 index 0000000..d74ed28 --- /dev/null +++ b/_includes/head/custom.html @@ -0,0 +1,4 @@ + +{%- include snippets/prepend-baseurl.html path='/assets/css/expand.css' -%} + + \ No newline at end of file diff --git a/_includes/head/favicon.html b/_includes/head/favicon.html new file mode 100644 index 0000000..773eb60 --- /dev/null +++ b/_includes/head/favicon.html @@ -0,0 +1,24 @@ + +{%- include snippets/prepend-baseurl.html path='/assets/favicon/apple-touch-icon.png' -%} + + +{%- include snippets/prepend-baseurl.html path='/assets/favicon/favicon-32x32.png' -%} + + +{%- include snippets/prepend-baseurl.html path='/assets/favicon/favicon-16x16.png' -%} + + +{%- include snippets/prepend-baseurl.html path='/assets/favicon/android-chrome-192x192.png' -%} + + +{%- include snippets/prepend-baseurl.html path='/assets/favicon/android-chrome-512x512.png' -%} + + +{%- include snippets/prepend-baseurl.html path='/assets/favicon/site.webmanifest' -%} + + +{%- include snippets/prepend-baseurl.html path='/assets/favicon/favicon.ico' -%} + + + + \ No newline at end of file diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..556a194 --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,76 @@ +{%- if include.theme == 'dark' -%} +
+{%- elsif include.theme == 'light' -%} +
+{%- else -%} +
+{%- endif -%} +
+
+
+ {%- include svg/logo.svg -%} + {%- assign _paths_root = site.paths.root | default: site.data.variables.default.paths.root -%} + {%- include snippets/get-nav-url.html path=_paths_root -%} + {%- if site.title -%} + {{ site.title }} + {%- endif -%} +
+ {%- if site.search.provider -%} + + {%- if site.search.provider -%} + + + + + + + + + + {%- endif -%} + + {%- endif -%} +
+ {%- if site.data.navigation.header -%} + + {%- endif -%} +
+
+ diff --git a/_includes/main/bottom/custom.html b/_includes/main/bottom/custom.html new file mode 100644 index 0000000..799bfea --- /dev/null +++ b/_includes/main/bottom/custom.html @@ -0,0 +1,2 @@ + + diff --git a/_includes/main/top/custom.html b/_includes/main/top/custom.html new file mode 100644 index 0000000..ecd5530 --- /dev/null +++ b/_includes/main/top/custom.html @@ -0,0 +1,6 @@ + + {%- if site.search.provider -%} +
+ {%- endif -%} + + diff --git a/_includes/mathjax.html b/_includes/mathjax.html new file mode 100644 index 0000000..1755206 --- /dev/null +++ b/_includes/mathjax.html @@ -0,0 +1,3 @@ + + + diff --git a/_includes/mermaid.html b/_includes/mermaid.html new file mode 100644 index 0000000..bb25658 --- /dev/null +++ b/_includes/mermaid.html @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/_includes/paginator.html b/_includes/paginator.html new file mode 100644 index 0000000..58f8ff5 --- /dev/null +++ b/_includes/paginator.html @@ -0,0 +1,100 @@ +{%- if paginator.total_pages > 1 -%} + +{%- endif -%} diff --git a/_includes/scripts/archieve.js b/_includes/scripts/archieve.js new file mode 100644 index 0000000..96549b5 --- /dev/null +++ b/_includes/scripts/archieve.js @@ -0,0 +1,135 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + function queryString() { + // This function is anonymous, is executed immediately and + // the return value is assigned to QueryString! + var i = 0, queryObj = {}, pair; + var queryStr = window.location.search.substring(1); + var queryArr = queryStr.split('&'); + for (i = 0; i < queryArr.length; i++) { + pair = queryArr[i].split('='); + // If first entry with this name + if (typeof queryObj[pair[0]] === 'undefined') { + queryObj[pair[0]] = pair[1]; + // If second entry with this name + } else if (typeof queryObj[pair[0]] === 'string') { + queryObj[pair[0]] = [queryObj[pair[0]], pair[1]]; + // If third or later entry with this name + } else { + queryObj[pair[0]].push(pair[1]); + } + } + return queryObj; + } + + var setUrlQuery = (function() { + var baseUrl = window.location.href.split('?')[0]; + return function(query) { + if (typeof query === 'string') { + window.history.replaceState(null, '', baseUrl + query); + } else { + window.history.replaceState(null, '', baseUrl); + } + }; + })(); + + window.Lazyload.js(SOURCES.jquery, function() { + var $tags = $('.js-tags'); + var $articleTags = $tags.find('button'); + var $tagShowAll = $tags.find('.tag-button--all'); + var $result = $('.js-result'); + var $sections = $result.find('section'); + var sectionArticles = []; + var $lastFocusButton = null; + var sectionTopArticleIndex = []; + var hasInit = false; + + $sections.each(function() { + sectionArticles.push($(this).find('.item')); + }); + + function init() { + var i, index = 0; + for (i = 0; i < $sections.length; i++) { + sectionTopArticleIndex.push(index); + index += $sections.eq(i).find('.item').length; + } + sectionTopArticleIndex.push(index); + } + + function searchButtonsByTag(_tag/*raw tag*/) { + if (!_tag) { + return $tagShowAll; + } + var _buttons = $articleTags.filter('[data-encode="' + _tag + '"]'); + if (_buttons.length === 0) { + return $tagShowAll; + } + return _buttons; + } + function buttonFocus(target) { + if (target) { + target.addClass('focus'); + $lastFocusButton && !$lastFocusButton.is(target) && $lastFocusButton.removeClass('focus'); + $lastFocusButton = target; + } + } + + function tagSelect (tag/*raw tag*/, target) { + var result = {}, $articles; + var i, j, k, _tag; + + for (i = 0; i < sectionArticles.length; i++) { + $articles = sectionArticles[i]; + for (j = 0; j < $articles.length; j++) { + if (tag === '' || tag === undefined) { + result[i] || (result[i] = {}); + result[i][j] = true; + } else { + var tags = $articles.eq(j).data('tags').split(','); + for (k = 0; k < tags.length; k++) { + if (tags[k] === tag) { + result[i] || (result[i] = {}); + result[i][j] = true; break; + } + } + } + } + } + + for (i = 0; i < sectionArticles.length; i++) { + result[i] && $sections.eq(i).removeClass('d-none'); + result[i] || $sections.eq(i).addClass('d-none'); + for (j = 0; j < sectionArticles[i].length; j++) { + if (result[i] && result[i][j]) { + sectionArticles[i].eq(j).removeClass('d-none'); + } else { + sectionArticles[i].eq(j).addClass('d-none'); + } + } + } + + hasInit || ($result.removeClass('d-none'), hasInit = true); + + + if (target) { + buttonFocus(target); + _tag = target.attr('data-encode'); + if (_tag === '' || typeof _tag !== 'string') { + setUrlQuery(); + } else { + setUrlQuery('?tag=' + _tag); + } + } else { + buttonFocus(searchButtonsByTag(tag)); + } + } + + var query = queryString(), _tag = query.tag; + init(); tagSelect(_tag); + $tags.on('click', 'button', function() { + tagSelect($(this).data('encode'), $(this)); + }); + + }); +})(); diff --git a/_includes/scripts/article.js b/_includes/scripts/article.js new file mode 100644 index 0000000..9b18ef5 --- /dev/null +++ b/_includes/scripts/article.js @@ -0,0 +1,24 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + $(function() { + var $this ,$scroll; + var $articleContent = $('.js-article-content'); + var hasSidebar = $('.js-page-root').hasClass('layout--page--sidebar'); + var scroll = hasSidebar ? '.js-page-main' : 'html, body'; + $scroll = $(scroll); + + $articleContent.find('.highlight').each(function() { + $this = $(this); + $this.attr('data-lang', $this.find('code').attr('data-lang')); + }); + $articleContent.find('h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]').each(function() { + $this = $(this); + $this.append($('').html('')); + }); + $articleContent.on('click', '.anchor', function() { + $scroll.scrollToAnchor('#' + $(this).parent().attr('id'), 400); + }); + }); + }); +})(); diff --git a/_includes/scripts/aside/affix.js b/_includes/scripts/aside/affix.js new file mode 100644 index 0000000..1db3b8e --- /dev/null +++ b/_includes/scripts/aside/affix.js @@ -0,0 +1,26 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + var $window = $(window), $pageFooter = $('.js-page-footer'); + var $pageAside = $('.js-page-aside'); + var affix; + var tocDisabled = false; + var hasSidebar = $('.js-page-root').hasClass('layout--page--sidebar'); + + affix = $pageAside.affix({ + offsetBottom: $pageFooter.outerHeight(), + scrollTarget: hasSidebar ? '.js-page-main' : null, + scroller: hasSidebar ? '.js-page-main' : null, + scroll: hasSidebar ? $('.js-page-main').children() : null, + disabled: tocDisabled + }); + + $window.on('resize', window.throttle(function() { + affix && affix.setOptions({ + disabled: tocDisabled + }); + }, 100)); + + window.pageAsideAffix = affix; + }); +})(); diff --git a/_includes/scripts/aside/toc.js b/_includes/scripts/aside/toc.js new file mode 100644 index 0000000..a19ea95 --- /dev/null +++ b/_includes/scripts/aside/toc.js @@ -0,0 +1,35 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + var TOC_SELECTOR = window.TEXT_VARIABLES.site.toc.selectors; + window.Lazyload.js(SOURCES.jquery, function() { + var $window = $(window); + var $articleContent = $('.js-article-content'); + var $tocRoot = $('.js-toc-root'), $col2 = $('.js-col-aside'); + var toc; + var tocDisabled = false; + var hasSidebar = $('.js-page-root').hasClass('layout--page--sidebar'); + var hasToc = $articleContent.find(TOC_SELECTOR).length > 0; + + function disabled() { + return $col2.css('display') === 'none' || !hasToc; + } + + tocDisabled = disabled(); + + toc = $tocRoot.toc({ + selectors: TOC_SELECTOR, + container: $articleContent, + scrollTarget: hasSidebar ? '.js-page-main' : null, + scroller: hasSidebar ? '.js-page-main' : null, + disabled: tocDisabled + }); + + $window.on('resize', window.throttle(function() { + tocDisabled = disabled(); + toc && toc.setOptions({ + disabled: tocDisabled + }); + }, 100)); + + }); +})(); diff --git a/_includes/scripts/common.js b/_includes/scripts/common.js new file mode 100644 index 0000000..09400a2 --- /dev/null +++ b/_includes/scripts/common.js @@ -0,0 +1,7 @@ +(function () { + var $root = document.getElementsByClassName('root')[0]; + if (window.hasEvent('touchstart')) { + $root.dataset.isTouch = true; + document.addEventListener('touchstart', function(){}, false); + } +})(); diff --git a/_includes/scripts/components/lightbox.js b/_includes/scripts/components/lightbox.js new file mode 100644 index 0000000..51689c2 --- /dev/null +++ b/_includes/scripts/components/lightbox.js @@ -0,0 +1,49 @@ +{%- include scripts/utils/imagesLoad.js -%} +(function () { + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + var $pageGalleryModal = $('.js-page-gallery-modal'); + var $images = $('.page__content').find('img:not(.lightbox-ignore)'); + window.imagesLoad($images).then(function() { + /* global Gallery */ + var pageGalleryModal = $pageGalleryModal.modal({ onChange: handleModalChange }); + var gallery = null; + var modalVisible = false; + var i, items = [], image, item; + if($images && $images.length > 0) { + for (i = 0; i < $images.length; i++) { + image = $images.eq(i); + if (image.get(0).naturalWidth > 800) { + items.push({ src: image.attr('src'), w: image.get(0).naturalWidth, h: image.get(0).naturalHeight, $el: image}); + } + } + } + + if(items.length > 0) { + gallery = new Gallery('.gallery', items); + gallery.setOptions({ disabled: !modalVisible }); + gallery.init(); + for (i = 0; i < items.length; i++) { + item = items[i]; + item.$el && (item.$el.addClass('popup-image'), item.$el.on('click', (function() { + var index = i; + return function() { + pageGalleryModal.show(); + gallery.setOptions({ initialSlide: index }); + gallery.refresh(true, { animation: false }); + }; + })())); + } + } + + function handleModalChange(visible) { + modalVisible = visible; + gallery && gallery.setOptions({ disabled: !modalVisible }); + } + + $pageGalleryModal.on('click', function() { + pageGalleryModal.hide(); + }); + }); + }); +})(); diff --git a/_includes/scripts/components/search.js b/_includes/scripts/components/search.js new file mode 100644 index 0000000..e1c8c27 --- /dev/null +++ b/_includes/scripts/components/search.js @@ -0,0 +1,86 @@ + +(function () { + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + // search panel + var search = (window.search || (window.search = {})); + var useDefaultSearchBox = window.useDefaultSearchBox === undefined ? + true : window.useDefaultSearchBox ; + + var $searchModal = $('.js-page-search-modal'); + var $searchToggle = $('.js-search-toggle'); + var searchModal = $searchModal.modal({ onChange: handleModalChange, hideWhenWindowScroll: true }); + var modalVisible = false; + search.searchModal = searchModal; + + var $searchBox = null; + var $searchInput = null; + var $searchClear = null; + + function getModalVisible() { + return modalVisible; + } + search.getModalVisible = getModalVisible; + + function handleModalChange(visible) { + modalVisible = visible; + if (visible) { + search.onShow && search.onShow(); + useDefaultSearchBox && $searchInput[0] && $searchInput[0].focus(); + } else { + search.onShow && search.onHide(); + useDefaultSearchBox && $searchInput[0] && $searchInput[0].blur(); + setTimeout(function() { + useDefaultSearchBox && ($searchInput.val(''), $searchBox.removeClass('not-empty')); + search.clear && search.clear(); + window.pageAsideAffix && window.pageAsideAffix.refresh(); + }, 400); + } + } + + $searchToggle.on('click', function() { + modalVisible ? searchModal.hide() : searchModal.show(); + }); + // Char Code: 83 S, 191 / + $(window).on('keyup', function(e) { + if (!modalVisible && !window.isFormElement(e.target || e.srcElement) && (e.which === 83 || e.which === 191)) { + modalVisible || searchModal.show(); + } + }); + + if (useDefaultSearchBox) { + $searchBox = $('.js-search-box'); + $searchInput = $searchBox.children('input'); + $searchClear = $searchBox.children('.js-icon-clear'); + search.getSearchInput = function() { + return $searchInput.get(0); + }; + search.getVal = function() { + return $searchInput.val(); + }; + search.setVal = function(val) { + $searchInput.val(val); + }; + + $searchInput.on('focus', function() { + $(this).addClass('focus'); + }); + $searchInput.on('blur', function() { + $(this).removeClass('focus'); + }); + $searchInput.on('input', window.throttle(function() { + var val = $(this).val(); + if (val === '' || typeof val !== 'string') { + search.clear && search.clear(); + } else { + $searchBox.addClass('not-empty'); + search.onInputNotEmpty && search.onInputNotEmpty(val); + } + }, 400)); + $searchClear.on('click', function() { + $searchInput.val(''); $searchBox.removeClass('not-empty'); + search.clear && search.clear(); + }); + } + }); +})(); diff --git a/_includes/scripts/components/sidebar.js b/_includes/scripts/components/sidebar.js new file mode 100644 index 0000000..92c5591 --- /dev/null +++ b/_includes/scripts/components/sidebar.js @@ -0,0 +1,30 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + + window.Lazyload.js(SOURCES.jquery, function() { + var $pageMask = $('.js-page-mask'); + var $pageRoot = $('.js-page-root'); + var $sidebarShow = $('.js-sidebar-show'); + var $sidebarHide = $('.js-sidebar-hide'); + + function freeze(e) { + if (e.target === $pageMask[0]) { + e.preventDefault(); + } + } + function stopBodyScrolling(bool) { + if (bool === true) { + window.addEventListener('touchmove', freeze, { passive: false }); + } else { + window.removeEventListener('touchmove', freeze, { passive: false }); + } + } + + $sidebarShow.on('click', function() { + stopBodyScrolling(true); $pageRoot.addClass('show-sidebar'); + }); + $sidebarHide.on('click', function() { + stopBodyScrolling(false); $pageRoot.removeClass('show-sidebar'); + }); + }); +})(); diff --git a/_includes/scripts/home.js b/_includes/scripts/home.js new file mode 100644 index 0000000..91d05b9 --- /dev/null +++ b/_includes/scripts/home.js @@ -0,0 +1,3 @@ +/*(function () { + +})();*/ diff --git a/_includes/scripts/lib/affix.js b/_includes/scripts/lib/affix.js new file mode 100644 index 0000000..779442f --- /dev/null +++ b/_includes/scripts/lib/affix.js @@ -0,0 +1,111 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + function affix(options) { + var $root = this, $window = $(window), $scrollTarget, $scroll, + offsetBottom = 0, scrollTarget = window, scroll = window.document, disabled = false, isOverallScroller = true, + rootTop, rootLeft, rootHeight, scrollBottom, rootBottomTop, + hasInit = false, curState; + + function setOptions(options) { + var _options = options || {}; + _options.offsetBottom && (offsetBottom = _options.offsetBottom); + _options.scrollTarget && (scrollTarget = _options.scrollTarget); + _options.scroll && (scroll = _options.scroll); + _options.disabled !== undefined && (disabled = _options.disabled); + $scrollTarget = $(scrollTarget); + isOverallScroller = window.isOverallScroller($scrollTarget[0]); + $scroll = $(scroll); + } + function preCalc() { + top(); + rootHeight = $root.outerHeight(); + rootTop = $root.offset().top + (isOverallScroller ? 0 : $scrollTarget.scrollTop()); + rootLeft = $root.offset().left; + } + function calc(needPreCalc) { + needPreCalc && preCalc(); + scrollBottom = $scroll.outerHeight() - offsetBottom - rootHeight; + rootBottomTop = scrollBottom - rootTop; + } + function top() { + if (curState !== 'top') { + $root.removeClass('fixed').css({ + left: 0, + top: 0 + }); + curState = 'top'; + } + } + function fixed() { + if (curState !== 'fixed') { + $root.addClass('fixed').css({ + left: rootLeft + 'px', + top: 0 + }); + curState = 'fixed'; + } + } + function bottom() { + if (curState !== 'bottom') { + $root.removeClass('fixed').css({ + left: 0, + top: rootBottomTop + 'px' + }); + curState = 'bottom'; + } + } + function setState() { + var scrollTop = $scrollTarget.scrollTop(); + if (scrollTop >= rootTop && scrollTop <= scrollBottom) { + fixed(); + } else if (scrollTop < rootTop) { + top(); + } else { + bottom(); + } + } + function init() { + if(!hasInit) { + var interval, timeout; + calc(true); setState(); + // run calc every 100 millisecond + interval = setInterval(function() { + calc(); + }, 100); + timeout = setTimeout(function() { + clearInterval(interval); + }, 45000); + window.pageLoad.then(function() { + setTimeout(function() { + clearInterval(interval); + clearTimeout(timeout); + }, 3000); + }); + $scrollTarget.on('scroll', function() { + disabled || setState(); + }); + $window.on('resize', function() { + disabled || (calc(true), setState()); + }); + hasInit = true; + } + } + + setOptions(options); + if (!disabled) { + init(); + } + $window.on('resize', window.throttle(function() { + init(); + }, 200)); + return { + setOptions: setOptions, + refresh: function() { + calc(true, { animation: false }); setState(); + } + }; + } + $.fn.affix = affix; + }); +})(); diff --git a/_includes/scripts/lib/gallery.js b/_includes/scripts/lib/gallery.js new file mode 100644 index 0000000..1793f04 --- /dev/null +++ b/_includes/scripts/lib/gallery.js @@ -0,0 +1,192 @@ +(function() { + {%- include scripts/lib/swiper.js -%} + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + var template = + ''; + function setState($item, zoom, translate) { + $item.css('transform', 'scale(' + zoom + ') translate(' + translate.x + 'px,' + translate.y + 'px)'); + } + function Gallery(root, items) { + this.$root = $(root); + this.$swiper = null; + this.$swiperWrapper = null; + this.$activeItem = null; + this.$items = []; + this.contentWidth = 0; + this.contentHeight = 0; + this.swiper = null; + this.items = items; + this.disabled = false; + this.curIndex = 0; + this.touchCenter = null; + this.lastTouchCenter = null; + this.zoomRect = null; + this.lastZoomRect = null; + this.lastTranslate = null; + this.translate = null; + this.lastZoom = 1; + this.preZoom = 1; + this.zoom = 1; + } + Gallery.prototype.init = function() { + var i, item, items = this.items, size, self = this, touchstartFingerCount = 0; + this.$root.append(template); + this.$swiper = this.$root.find('.gallery__swiper'); + this.$swiperWrapper = this.$root.find('.swiper__wrapper'); + this.contentWidth = this.$swiperWrapper && this.$swiperWrapper.width(); + this.contentHeight = this.$swiperWrapper && this.$swiperWrapper.height(); + for (i = 0; i < items.length; i++) { + item = items[i]; + size = this._calculateImageSize(item.w, item.h); + this.$items.push($( + '
' + + '' + + '
' + )); + } + this.$swiperWrapper && this.$swiperWrapper.append(this.$items); + this.swiper = this.$swiper && this.$swiper.swiper({ + onChangeEnd: function() { + self._handleChangeEnd.apply(self, Array.prototype.slice.call(arguments)); + } + }); + $(window).on('resize', function() { + if (self.disabled) { return; } + self._resizeImageSize(); + }); + // Char Code: 37 ⬅, 39 ➡ + $(window).on('keyup', function(e) { + if (window.isFormElement(e.target || e.srcElement) || self.disabled) { return; } + if (e.which === 37) { + self.swiper && self.swiper.previous(); + } else if (e.which === 39) { + self.swiper && self.swiper.next(); + } + }); + function getRect(touch0, touch1) { + return { + o: { + x: (touch0.pageX + touch1.pageX) / 2, + y: (touch0.pageY + touch1.pageY) / 2 + }, + w: Math.abs(touch0.pageX - touch1.pageX), + h: Math.abs(touch0.pageY - touch1.pageY) + }; + } + function getTouches(e) { + return e.touches || e; + } + function getTouchesCount(e) { + if (e.touches) { + return e.touches.length; + } else { + return 1; + } + } + this.$swiperWrapper.on('touchstart', function(e) { + var touch0, touch1, rect; + touchstartFingerCount = getTouchesCount(e); + if (touchstartFingerCount > 1) { + touch0 = e.touches[0]; + touch1 = e.touches[1]; + rect = getRect(touch0, touch1); + self.lastZoomRect = { w: rect.w, h: rect.h }; + self.lastTouchCenter = rect.o; + } else { + var touch = getTouches(e)[0]; + self.lastTouchCenter = { x: touch.pageX, y: touch.pageY }; + } + }); + this.$swiperWrapper.on('touchmove', function(e) { + if (touchstartFingerCount === getTouchesCount(e)) { + if (touchstartFingerCount > 1) { + var touch0 = e.touches[0]; + var touch1 = e.touches[1]; + var rect = getRect(touch0, touch1); + self.zoomRect = { w: rect.w, h: rect.h }; + self.touchCenter = rect.o; + self._zoom(); self._translate(); + setState(self.$activeItem, self.zoom, self.translate); + } else { + var touch = getTouches(e)[0]; + self.touchCenter = { x: touch.pageX, y: touch.pageY }; + self._translate(); + setState(self.$activeItem, self.zoom, self.translate); + } + } + }); + this.$swiperWrapper.on('touchend', function(e) { + self.lastZoom = self.zoom; + self.lastTranslate = self.translate; + touchstartFingerCount = 0; + }); + this.$root.on('touchmove', function(e) { + if (self.disabled) { return; } + e.preventDefault(); + }); + }; + + Gallery.prototype._translate = function() { + this.translate = this.touchCenter && this.lastTouchCenter && this.lastTranslate ? { + x: (this.touchCenter.x - this.lastTouchCenter.x) / this.zoom + this.lastTranslate.x, + y: (this.touchCenter.y - this.lastTouchCenter.y) / this.zoom + this.lastTranslate.y + } : { x: 0, y: 0 }; + } + Gallery.prototype._zoom = function() { + this.zoom = (this.zoomRect.w + this.zoomRect.h) / (this.lastZoomRect.w + this.lastZoomRect.h) * this.lastZoom; + this.zoom > 1 ? this.$activeItem.addClass('zoom') : this.$activeItem.removeClass('zoom'); + this.preZoom = this.zoom; + } + + Gallery.prototype._calculateImageSize = function(w, h) { + var scale = 1; + if (this.contentWidth > 0 && this.contentHeight > 0 && w > 0 && h > 0) { + scale = Math.min( + Math.min(w, this.contentWidth) / w, + Math.min(h, this.contentHeight) / h); + } + return { w: Math.floor(w * scale), h: Math.floor(h * scale) }; + }; + + Gallery.prototype._resizeImageSize = function() { + var i, $item, $items = this.$items, item, size; + this.contentWidth = this.$swiperWrapper && this.$swiperWrapper.width(); + this.contentHeight = this.$swiperWrapper && this.$swiperWrapper.height(); + if ($items.length < 1) { return; } + for (i = 0; i < $items.length; i++) { + item = this.items[i], $item = $items[i]; + size = this._calculateImageSize(item.w, item.h); + item.width = size.w; item.height = size.h; + $item && $item.find('img').css({ width: size.w, height: size.h }); + } + }; + Gallery.prototype._handleChangeEnd = function(index, $dom, preIndex, $preDom) { + this.curIndex = index; + this.lastZoomRect = null; this.lastZoomRect = null; + this.lastTranslate = this.translate = { x: 0, y:0 }; + this.lastZoom = this.preZoom = this.zoom = 1; + this.$activeItem = $dom.find('.gallery-item__content'); + setState($preDom.find('.gallery-item__content'), this.zoom, this.translate); + }; + + Gallery.prototype.refresh = function() { + this.swiper && this.swiper.refresh(); + this._resizeImageSize(); + }; + Gallery.prototype.setOptions = function(options) { + this.disabled = options.disabled; + this.swiper && this.swiper.setOptions(options); + }; + window.Gallery = Gallery; + }); +})(); \ No newline at end of file diff --git a/_includes/scripts/lib/lazyload.js b/_includes/scripts/lib/lazyload.js new file mode 100644 index 0000000..9911535 --- /dev/null +++ b/_includes/scripts/lib/lazyload.js @@ -0,0 +1,143 @@ +(function() { + var Set = (function() { + var add = function(item) { + var i, data = this._data; + for (i = 0; i < data.length; i++) { + if (data[i] === item) { + return; + } + } + this.size ++; + data.push(item); + return data; + }; + + var Set = function(data) { + this.size = 0; + this._data = []; + var i; + if (data.length > 0) { + for (i = 0; i < data.length; i++) { + add.call(this, data[i]); + } + } + }; + Set.prototype.add = add; + Set.prototype.get = function(index) { return this._data[index]; }; + Set.prototype.has = function(item) { + var i, data = this._data; + for (i = 0; i < data.length; i++) { + if (this.get(i) === item) { + return true; + } + } + return false; + }; + Set.prototype.is = function(map) { + if (map._data.length !== this._data.length) { return false; } + var i, j, flag, tData = this._data, mData = map._data; + for (i = 0; i < tData.length; i++) { + for (flag = false, j = 0; j < mData.length; j++) { + if (tData[i] === mData[j]) { + flag = true; + break; + } + } + if (!flag) { return false; } + } + return true; + }; + Set.prototype.values = function() { + return this._data; + }; + return Set; + })(); + + window.Lazyload = (function(doc) { + var queue = {js: [], css: []}, sources = {js: {}, css: {}}, context = this; + var createNode = function(name, attrs) { + var node = doc.createElement(name), attr; + for (attr in attrs) { + if (attrs.hasOwnProperty(attr)) { + node.setAttribute(attr, attrs[attr]); + } + } + return node; + }; + var end = function(type, url) { + var s, q, qi, cbs, i, j, cur, val, flag; + if (type === 'js' || type ==='css') { + s = sources[type], q = queue[type]; + s[url] = true; + for (i = 0; i < q.length; i++) { + cur = q[i]; + if (cur.urls.has(url)) { + qi = cur, val = qi.urls.values(); + qi && (cbs = qi.callbacks); + for (flag = true, j = 0; j < val.length; j++) { + cur = val[j]; + if (!s[cur]) { + flag = false; + } + } + if (flag && cbs && cbs.length > 0) { + for (j = 0; j < cbs.length; j++) { + cbs[j].call(context); + } + qi.load = true; + } + } + } + } + }; + var load = function(type, urls, callback) { + var s, q, qi, node, i, cur, + _urls = typeof urls === 'string' ? new Set([urls]) : new Set(urls), val, url; + if (type === 'js' || type ==='css') { + s = sources[type], q = queue[type]; + for (i = 0; i < q.length; i++) { + cur = q[i]; + if (_urls.is(cur.urls)) { + qi = cur; + break; + } + } + val = _urls.values(); + if (qi) { + callback && (qi.load || qi.callbacks.push(callback)); + callback && (qi.load && callback()); + } else { + q.push({ + urls: _urls, + callbacks: callback ? [callback] : [], + load: false + }); + for (i = 0; i < val.length; i++) { + node = null, url = val[i]; + if (s[url] === undefined) { + (type === 'js' ) && (node = createNode('script', { src: url })); + (type === 'css') && (node = createNode('link', { rel: 'stylesheet', href: url })); + if (node) { + node.onload = (function(type, url) { + return function() { + end(type, url); + }; + })(type, url); + (doc.head || doc.body).appendChild(node); + s[url] = false; + } + } + } + } + } + }; + return { + js: function(url, callback) { + load('js', url, callback); + }, + css: function(url, callback) { + load('css', url, callback); + } + }; + })(this.document); +})(); diff --git a/_includes/scripts/lib/modal.js b/_includes/scripts/lib/modal.js new file mode 100644 index 0000000..cb5d188 --- /dev/null +++ b/_includes/scripts/lib/modal.js @@ -0,0 +1,64 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + var $body = $('body'), $window = $(window); + var $pageRoot = $('.js-page-root'), $pageMain = $('.js-page-main'); + var activeCount = 0; + function modal(options) { + var $root = this, visible, onChange, hideWhenWindowScroll = false; + var scrollTop; + function setOptions(options) { + var _options = options || {}; + visible = _options.initialVisible === undefined ? false : show; + onChange = _options.onChange; + hideWhenWindowScroll = _options.hideWhenWindowScroll; + } + function init() { + setState(visible); + } + function setState(isShow) { + if (isShow === visible) { + return; + } + visible = isShow; + if (visible) { + activeCount++; + scrollTop = $(window).scrollTop() || $pageMain.scrollTop(); + $root.addClass('modal--show'); + $pageMain.scrollTop(scrollTop); + activeCount === 1 && ($pageRoot.addClass('show-modal'), $body.addClass('of-hidden')); + hideWhenWindowScroll && window.hasEvent('touchstart') && $window.on('scroll', hide); + $window.on('keyup', handleKeyup); + } else { + activeCount > 0 && activeCount--; + $root.removeClass('modal--show'); + $window.scrollTop(scrollTop); + activeCount === 0 && ($pageRoot.removeClass('show-modal'), $body.removeClass('of-hidden')); + hideWhenWindowScroll && window.hasEvent('touchstart') && $window.off('scroll', hide); + $window.off('keyup', handleKeyup); + } + onChange && onChange(visible); + } + function show() { + setState(true); + } + function hide() { + setState(false); + } + function handleKeyup(e) { + // Char Code: 27 ESC + if (e.which === 27) { + hide(); + } + } + setOptions(options); + init(); + return { + show: show, + hide: hide, + $el: $root + }; + } + $.fn.modal = modal; + }); +})(); diff --git a/_includes/scripts/lib/scroll-to.js b/_includes/scripts/lib/scroll-to.js new file mode 100644 index 0000000..e5a0ea2 --- /dev/null +++ b/_includes/scripts/lib/scroll-to.js @@ -0,0 +1,13 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + function scrollToAnchor(anchor, duration, callback) { + var $root = this; + $root.animate({ scrollTop: $(anchor).position().top }, duration, function() { + window.history.replaceState(null, '', window.location.href.split('#')[0] + anchor); + callback && callback(); + }); + } + $.fn.scrollToAnchor = scrollToAnchor; + }); +})(); diff --git a/_includes/scripts/lib/swiper.js b/_includes/scripts/lib/swiper.js new file mode 100644 index 0000000..3d06419 --- /dev/null +++ b/_includes/scripts/lib/swiper.js @@ -0,0 +1,203 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + function swiper(options) { + var $window = $(window), $root = this, $swiperWrapper, $swiperSlides, $swiperButtonPrev, $swiperButtonNext, + initialSlide, animation, onChange, onChangeEnd, + rootWidth, count, preIndex, curIndex, translateX, CRITICAL_ANGLE = Math.PI / 3; + + function setOptions(options) { + var _options = options || {}; + initialSlide = _options.initialSlide || 0; + animation = _options.animation === undefined && true; + onChange = onChange || _options.onChange; + onChangeEnd = onChangeEnd || _options.onChangeEnd; + } + + function init() { + $swiperWrapper = $root.find('.swiper__wrapper'); + $swiperSlides = $root.find('.swiper__slide'); + $swiperButtonPrev = $root.find('.swiper__button--prev'); + $swiperButtonNext = $root.find('.swiper__button--next'); + animation && $swiperWrapper.addClass('swiper__wrapper--animation'); + calc(true); + } + + function preCalc() { + rootWidth = $root.width(); + count = $swiperWrapper.children('.swiper__slide').length; + if (count < 2) { + $swiperButtonPrev.addClass('d-none'); + $swiperButtonNext.addClass('d-none'); + } + curIndex = initialSlide || 0; + translateX = getTranslateXFromCurIndex(); + } + + var calc = (function() { + var preAnimation, $swiperSlide, $preSwiperSlide; + return function (needPreCalc, params) { + needPreCalc && preCalc(); + var _animation = (params && params.animation !== undefined) ? params.animation : animation; + if (preAnimation === undefined || preAnimation !== _animation) { + preAnimation = _animation ? $swiperWrapper.addClass('swiper__wrapper--animation') : + $swiperWrapper.removeClass('swiper__wrapper--animation'); + } + if (preIndex !== curIndex) { + ($preSwiperSlide = $swiperSlides.eq(preIndex)).removeClass('active'); + ($swiperSlide = $swiperSlides.eq(curIndex)).addClass('active'); + onChange && onChange(curIndex, $swiperSlides.eq(curIndex), $swiperSlide, $preSwiperSlide); + if (onChangeEnd) { + if (_animation) { + setTimeout(function() { + onChangeEnd(curIndex, $swiperSlides.eq(curIndex), $swiperSlide, $preSwiperSlide); + }, 400); + } else { + onChangeEnd(curIndex, $swiperSlides.eq(curIndex), $swiperSlide, $preSwiperSlide); + } + } + preIndex = curIndex; + } + $swiperWrapper.css('transform', 'translate(' + translateX + 'px, 0)'); + if (count > 1) { + if (curIndex <= 0) { + $swiperButtonPrev.addClass('disabled'); + } else { + $swiperButtonPrev.removeClass('disabled'); + } + if (curIndex >= count - 1) { + $swiperButtonNext.addClass('disabled'); + } else { + $swiperButtonNext.removeClass('disabled'); + } + } + }; + })(); + + function getTranslateXFromCurIndex() { + return curIndex <= 0 ? 0 : - rootWidth * curIndex; + } + + function moveToIndex(index ,params) { + preIndex = curIndex; + curIndex = index; + translateX = getTranslateXFromCurIndex(); + calc(false, params); + } + + function move(type) { + var nextIndex = curIndex, unstableTranslateX; + if (type === 'prev') { + nextIndex > 0 && nextIndex--; + } else if (type === 'next') { + nextIndex < count - 1 && nextIndex++; + } + if (type === 'cur') { + moveToIndex(curIndex, { animation: true }); + return; + } + unstableTranslateX = translateX % rootWidth !== 0; + if (nextIndex !== curIndex || unstableTranslateX) { + unstableTranslateX ? moveToIndex(nextIndex, { animation: true }) : moveToIndex(nextIndex); + } + } + + setOptions(options); + init(); + preIndex = curIndex; + + $swiperButtonPrev.on('click', function(e) { + e.stopPropagation(); + move('prev'); + }); + $swiperButtonNext.on('click', function(e) { + e.stopPropagation(); + move('next'); + }); + $window.on('resize', function() { + calc(true, { animation: false }); + }); + + (function() { + var pageX, pageY, velocityX, preTranslateX = translateX, timeStamp, touching; + function handleTouchstart(e) { + var point = e.touches ? e.touches[0] : e; + pageX = point.pageX; + pageY = point.pageY; + velocityX = 0; + preTranslateX = translateX; + } + function handleTouchmove(e) { + if (e.touches && e.touches.length > 1) { + return; + } + var point = e.touches ? e.touches[0] : e; + var deltaX = point.pageX - pageX; + var deltaY = point.pageY - pageY; + velocityX = deltaX / (e.timeStamp - timeStamp); + timeStamp = e.timeStamp; + if (e.cancelable && Math.abs(Math.atan(deltaY / deltaX)) < CRITICAL_ANGLE) { + touching = true; + translateX += deltaX; + calc(false, { animation: false }); + } + pageX = point.pageX; + pageY = point.pageY; + } + function handleTouchend() { + touching = false; + var deltaX = translateX - preTranslateX; + var distance = deltaX + velocityX * rootWidth; + if (Math.abs(distance) > rootWidth / 2) { + distance > 0 ? move('prev') : move('next'); + } else { + move('cur'); + } + } + $swiperWrapper.on('touchstart', handleTouchstart); + $swiperWrapper.on('touchmove', handleTouchmove); + $swiperWrapper.on('touchend', handleTouchend); + $swiperWrapper.on('touchcancel', handleTouchend); + + (function() { + var pressing = false, moved = false; + $swiperWrapper.on('mousedown', function(e) { + pressing = true; handleTouchstart(e); + }); + $swiperWrapper.on('mousemove', function(e) { + pressing && (e.preventDefault(), moved = true, handleTouchmove(e)); + }); + $swiperWrapper.on('mouseup', function(e) { + pressing && (pressing = false, handleTouchend(e)); + }); + $swiperWrapper.on('mouseleave', function(e) { + pressing && (pressing = false, handleTouchend(e)); + }); + $swiperWrapper.on('click', function(e) { + moved && (e.stopPropagation(), moved = false); + }); + })(); + + $root.on('touchmove', function(e) { + if (e.cancelable & touching) { + e.preventDefault(); + } + }); + })(); + + return { + setOptions: setOptions, + previous: function(){ + move('prev'); + }, + next: function(){ + move('next'); + }, + refresh: function() { + calc(true, { animation: false }); + } + }; + } + $.fn.swiper = swiper; + }); +})(); diff --git a/_includes/scripts/lib/throttle.js b/_includes/scripts/lib/throttle.js new file mode 100644 index 0000000..2add23c --- /dev/null +++ b/_includes/scripts/lib/throttle.js @@ -0,0 +1,28 @@ +(function() { + window.throttle = function(func, wait) { + var args, result, thisArg, timeoutId, lastCalled = 0; + + function trailingCall() { + lastCalled = new Date; + timeoutId = null; + result = func.apply(thisArg, args); + } + return function() { + var now = new Date, + remaining = wait - (now - lastCalled); + + args = arguments; + thisArg = this; + + if (remaining <= 0) { + clearTimeout(timeoutId); + timeoutId = null; + lastCalled = now; + result = func.apply(thisArg, args); + } else if (!timeoutId) { + timeoutId = setTimeout(trailingCall, remaining); + } + return result; + }; + }; +})(); diff --git a/_includes/scripts/lib/toc.js b/_includes/scripts/lib/toc.js new file mode 100644 index 0000000..fb43857 --- /dev/null +++ b/_includes/scripts/lib/toc.js @@ -0,0 +1,107 @@ +(function() { + var SOURCES = window.TEXT_VARIABLES.sources; + window.Lazyload.js(SOURCES.jquery, function() { + function toc(options) { + var $root = this, $window = $(window), $scrollTarget, $scroller, $tocUl = $('
    '), $tocLi, $headings, $activeLast, $activeCur, + selectors = 'h1,h2,h3', container = 'body', scrollTarget = window, scroller = 'html, body', disabled = false, + headingsPos, scrolling = false, hasRendered = false, hasInit = false; + + function setOptions(options) { + var _options = options || {}; + _options.selectors && (selectors = _options.selectors); + _options.container && (container = _options.container); + _options.scrollTarget && (scrollTarget = _options.scrollTarget); + _options.scroller && (scroller = _options.scroller); + _options.disabled !== undefined && (disabled = _options.disabled); + $headings = $(container).find(selectors).filter('[id]'); + $scrollTarget = $(scrollTarget); + $scroller = $(scroller); + } + function calc() { + headingsPos = []; + $headings.each(function() { + headingsPos.push(Math.floor($(this).position().top)); + }); + } + function setState(element, disabled) { + var scrollTop = $scrollTarget.scrollTop(), i; + if (disabled || !headingsPos || headingsPos.length < 1) { return; } + if (element) { + $activeCur = element; + } else { + for (i = 0; i < headingsPos.length; i++) { + if (scrollTop >= headingsPos[i]) { + $activeCur = $tocLi.eq(i); + } else { + $activeCur || ($activeCur = $tocLi.eq(i)); + break; + } + } + } + $activeLast && $activeLast.removeClass('active'); + ($activeLast = $activeCur).addClass('active'); + } + function render() { + if(!hasRendered) { + $root.append($tocUl); + $headings.each(function() { + var $this = $(this); + $tocUl.append($('
  • ').addClass('toc-' + $this.prop('tagName').toLowerCase()) + .append($('').text($this.text()).attr('href', '#' + $this.prop('id')))); + }); + $tocLi = $tocUl.children('li'); + $tocUl.on('click', 'a', function(e) { + e.preventDefault(); + var $this = $(this); + scrolling = true; + setState($this.parent()); + $scroller.scrollToAnchor($this.attr('href'), 400, function() { + scrolling = false; + }); + }); + } + hasRendered = true; + } + function init() { + var interval, timeout; + if(!hasInit) { + render(); calc(); setState(null, scrolling); + // run calc every 100 millisecond + interval = setInterval(function() { + calc(); + }, 100); + timeout = setTimeout(function() { + clearInterval(interval); + }, 45000); + window.pageLoad.then(function() { + setTimeout(function() { + clearInterval(interval); + clearTimeout(timeout); + }, 3000); + }); + $scrollTarget.on('scroll', function() { + disabled || setState(null, scrolling); + }); + $window.on('resize', window.throttle(function() { + if (!disabled) { + render(); calc(); setState(null, scrolling); + } + }, 100)); + } + hasInit = true; + } + + setOptions(options); + if (!disabled) { + init(); + } + $window.on('resize', window.throttle(function() { + init(); + }, 200)); + return { + setOptions: setOptions + }; + } + $.fn.toc = toc; + }); +})(); diff --git a/_includes/scripts/page.js b/_includes/scripts/page.js new file mode 100644 index 0000000..91d05b9 --- /dev/null +++ b/_includes/scripts/page.js @@ -0,0 +1,3 @@ +/*(function () { + +})();*/ diff --git a/_includes/scripts/utils/imagesLoad.js b/_includes/scripts/utils/imagesLoad.js new file mode 100644 index 0000000..63a6bdf --- /dev/null +++ b/_includes/scripts/utils/imagesLoad.js @@ -0,0 +1,28 @@ +(function() { + window.imagesLoad = function(images) { + images = images || document.getElementsByTagName('img'); + var imagesCount = images.length, loadedCount = 0, image; + var i, j, loaded = false, cbs = []; + imagesCount < 1 && (loaded = true); + for (i = 0; i < imagesCount; i++) { + image = images[i]; + image.complete ? handleImageLoad() : image.addEventListener('load', handleImageLoad); + } + function handleImageLoad() { + loadedCount++; + if (loadedCount === imagesCount) { + loaded = true; + if (cbs.length > 0) { + for (j = 0; j < cbs.length; j++) { + cbs[j](); + } + } + } + } + return { + then: function(cb) { + cb && (loaded ? cb() : (cbs.push(cb))); + } + }; + }; +})(); diff --git a/_includes/scripts/utils/utils.js b/_includes/scripts/utils/utils.js new file mode 100644 index 0000000..e7bce45 --- /dev/null +++ b/_includes/scripts/utils/utils.js @@ -0,0 +1,39 @@ +(function() { + window.isArray = function(val) { + return Object.prototype.toString.call(val) === '[object Array]'; + }; + window.isString = function(val) { + return typeof val === 'string'; + }; + + window.hasEvent = function(event) { + return 'on'.concat(event) in window.document; + }; + + window.isOverallScroller = function(node) { + return node === document.documentElement || node === document.body || node === window; + }; + + window.isFormElement = function(node) { + var tagName = node.tagName; + return tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'TEXTAREA'; + }; + + window.pageLoad = (function () { + var loaded = false, cbs = []; + window.addEventListener('load', function () { + var i; + loaded = true; + if (cbs.length > 0) { + for (i = 0; i < cbs.length; i++) { + cbs[i](); + } + } + }); + return { + then: function(cb) { + cb && (loaded ? cb() : (cbs.push(cb))); + } + }; + })(); +})(); diff --git a/_includes/scripts/variables.html b/_includes/scripts/variables.html new file mode 100644 index 0000000..0b04821 --- /dev/null +++ b/_includes/scripts/variables.html @@ -0,0 +1,33 @@ +{%- include snippets/get-sources.html -%} +{%- assign _sources = __return -%} + +{%- include snippets/get-nav-url.html path="/assets/search.js" -%} +{%- assign _paths_search_js = __return -%} + + diff --git a/_includes/search-providers/custom/search-script.js b/_includes/search-providers/custom/search-script.js new file mode 100644 index 0000000..3afbb60 --- /dev/null +++ b/_includes/search-providers/custom/search-script.js @@ -0,0 +1,433 @@ +/*! + * Simple-Jekyll-Search + * Copyright 2015-2020, Christian Fei + * Licensed under the MIT License. + */ + +(function(){ +'use strict' + +var _$Templater_7 = { + compile: compile, + setOptions: setOptions +} + +const options = {} +options.pattern = /\{(.*?)\}/g +options.template = '' +options.middleware = function () {} + +function setOptions (_options) { + options.pattern = _options.pattern || options.pattern + options.template = _options.template || options.template + if (typeof _options.middleware === 'function') { + options.middleware = _options.middleware + } +} + +function compile (data) { + return options.template.replace(options.pattern, function (match, prop) { + const value = options.middleware(prop, data[prop], options.template) + if (typeof value !== 'undefined') { + return value + } + return data[prop] || match + }) +} + +'use strict'; + +function fuzzysearch (needle, haystack) { + var tlen = haystack.length; + var qlen = needle.length; + if (qlen > tlen) { + return false; + } + if (qlen === tlen) { + return needle === haystack; + } + outer: for (var i = 0, j = 0; i < qlen; i++) { + var nch = needle.charCodeAt(i); + while (j < tlen) { + if (haystack.charCodeAt(j++) === nch) { + continue outer; + } + } + return false; + } + return true; +} + +var _$fuzzysearch_1 = fuzzysearch; + +'use strict' + +/* removed: const _$fuzzysearch_1 = require('fuzzysearch') */; + +var _$FuzzySearchStrategy_5 = new FuzzySearchStrategy() + +function FuzzySearchStrategy () { + this.matches = function (string, crit) { + return _$fuzzysearch_1(crit.toLowerCase(), string.toLowerCase()) + } +} + +'use strict' + +var _$LiteralSearchStrategy_6 = new LiteralSearchStrategy() + +function LiteralSearchStrategy () { + this.matches = function (str, crit) { + if (!str) return false + + str = str.trim().toLowerCase() + crit = crit.trim().toLowerCase() + + return crit.split(' ').filter(function (word) { + return str.indexOf(word) >= 0 + }).length === crit.split(' ').length + } +} + +'use strict' + +var _$Repository_4 = { + put: put, + clear: clear, + search: search, + setOptions: __setOptions_4 +} + +/* removed: const _$FuzzySearchStrategy_5 = require('./SearchStrategies/FuzzySearchStrategy') */; +/* removed: const _$LiteralSearchStrategy_6 = require('./SearchStrategies/LiteralSearchStrategy') */; + +function NoSort () { + return 0 +} + +const data = [] +let opt = {} + +opt.fuzzy = false +opt.limit = 10 +opt.searchStrategy = opt.fuzzy ? _$FuzzySearchStrategy_5 : _$LiteralSearchStrategy_6 +opt.sort = NoSort +opt.exclude = [] + +function put (data) { + if (isObject(data)) { + return addObject(data) + } + if (isArray(data)) { + return addArray(data) + } + return undefined +} +function clear () { + data.length = 0 + return data +} + +function isObject (obj) { + return Boolean(obj) && Object.prototype.toString.call(obj) === '[object Object]' +} + +function isArray (obj) { + return Boolean(obj) && Object.prototype.toString.call(obj) === '[object Array]' +} + +function addObject (_data) { + data.push(_data) + return data +} + +function addArray (_data) { + const added = [] + clear() + for (let i = 0, len = _data.length; i < len; i++) { + if (isObject(_data[i])) { + added.push(addObject(_data[i])) + } + } + return added +} + +function search (crit) { + if (!crit) { + return [] + } + return findMatches(data, crit, opt.searchStrategy, opt).sort(opt.sort) +} + +function __setOptions_4 (_opt) { + opt = _opt || {} + + opt.fuzzy = _opt.fuzzy || false + opt.limit = _opt.limit || 10 + opt.searchStrategy = _opt.fuzzy ? _$FuzzySearchStrategy_5 : _$LiteralSearchStrategy_6 + opt.sort = _opt.sort || NoSort + opt.exclude = _opt.exclude || [] +} + +function findMatches (data, crit, strategy, opt) { + const matches = [] + for (let i = 0; i < data.length && matches.length < opt.limit; i++) { + const match = findMatchesInObject(data[i], crit, strategy, opt) + if (match) { + matches.push(match) + } + } + return matches +} + +function findMatchesInObject (obj, crit, strategy, opt) { + for (const key in obj) { + if (!isExcluded(obj[key], opt.exclude) && strategy.matches(obj[key], crit)) { + return obj + } + } +} + +function isExcluded (term, excludedTerms) { + for (let i = 0, len = excludedTerms.length; i < len; i++) { + const excludedTerm = excludedTerms[i] + if (new RegExp(excludedTerm).test(term)) { + return true + } + } + return false +} + +/* globals ActiveXObject:false */ + +'use strict' + +var _$JSONLoader_2 = { + load: load +} + +function load (location, callback) { + const xhr = getXHR() + xhr.open('GET', location, true) + xhr.onreadystatechange = createStateChangeListener(xhr, callback) + xhr.send() +} + +function createStateChangeListener (xhr, callback) { + return function () { + if (xhr.readyState === 4 && xhr.status === 200) { + try { + callback(null, JSON.parse(xhr.responseText)) + } catch (err) { + callback(err, null) + } + } + } +} + +function getXHR () { + return window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP') +} + +'use strict' + +var _$OptionsValidator_3 = function OptionsValidator (params) { + if (!validateParams(params)) { + throw new Error('-- OptionsValidator: required options missing') + } + + if (!(this instanceof OptionsValidator)) { + return new OptionsValidator(params) + } + + const requiredOptions = params.required + + this.getRequiredOptions = function () { + return requiredOptions + } + + this.validate = function (parameters) { + const errors = [] + requiredOptions.forEach(function (requiredOptionName) { + if (typeof parameters[requiredOptionName] === 'undefined') { + errors.push(requiredOptionName) + } + }) + return errors + } + + function validateParams (params) { + if (!params) { + return false + } + return typeof params.required !== 'undefined' && params.required instanceof Array + } +} + +'use strict' + +var _$utils_9 = { + merge: merge, + isJSON: isJSON +} + +function merge (defaultParams, mergeParams) { + const mergedOptions = {} + for (const option in defaultParams) { + mergedOptions[option] = defaultParams[option] + if (typeof mergeParams[option] !== 'undefined') { + mergedOptions[option] = mergeParams[option] + } + } + return mergedOptions +} + +function isJSON (json) { + try { + if (json instanceof Object && JSON.parse(JSON.stringify(json))) { + return true + } + return false + } catch (err) { + return false + } +} + +var _$src_8 = {}; +(function (window) { + 'use strict' + + let options = { + searchInput: null, + resultsContainer: null, + json: [], + success: Function.prototype, + searchResultTemplate: '
  • {title}
  • ', + templateMiddleware: Function.prototype, + sortMiddleware: function () { + return 0 + }, + noResultsText: 'No results found', + limit: 10, + fuzzy: false, + debounceTime: null, + exclude: [] + } + + let debounceTimerHandle + const debounce = function (func, delayMillis) { + if (delayMillis) { + clearTimeout(debounceTimerHandle) + debounceTimerHandle = setTimeout(func, delayMillis) + } else { + func.call() + } + } + + const requiredOptions = ['searchInput', 'resultsContainer', 'json'] + + /* removed: const _$Templater_7 = require('./Templater') */; + /* removed: const _$Repository_4 = require('./Repository') */; + /* removed: const _$JSONLoader_2 = require('./JSONLoader') */; + const optionsValidator = _$OptionsValidator_3({ + required: requiredOptions + }) + /* removed: const _$utils_9 = require('./utils') */; + + window.SimpleJekyllSearch = function (_options) { + const errors = optionsValidator.validate(_options) + if (errors.length > 0) { + throwError('You must specify the following required options: ' + requiredOptions) + } + + options = _$utils_9.merge(options, _options) + + _$Templater_7.setOptions({ + template: options.searchResultTemplate, + middleware: options.templateMiddleware + }) + + _$Repository_4.setOptions({ + fuzzy: options.fuzzy, + limit: options.limit, + sort: options.sortMiddleware, + exclude: options.exclude + }) + + if (_$utils_9.isJSON(options.json)) { + initWithJSON(options.json) + } else { + initWithURL(options.json) + } + + const rv = { + search: search + } + + typeof options.success === 'function' && options.success.call(rv) + return rv + } + + function initWithJSON (json) { + _$Repository_4.put(json) + registerInput() + } + + function initWithURL (url) { + _$JSONLoader_2.load(url, function (err, json) { + if (err) { + throwError('failed to get JSON (' + url + ')') + } + initWithJSON(json) + }) + } + + function emptyResultsContainer () { + options.resultsContainer.innerHTML = '' + } + + function appendToResultsContainer (text) { + options.resultsContainer.innerHTML += text + } + + function registerInput () { + options.searchInput.addEventListener('input', function (e) { + if (isWhitelistedKey(e.which)) { + emptyResultsContainer() + debounce(function () { search(e.target.value) }, options.debounceTime) + } + }) + } + + function search (query) { + if (isValidQuery(query)) { + emptyResultsContainer() + render(_$Repository_4.search(query), query) + } + } + + function render (results, query) { + const len = results.length + if (len === 0) { + return appendToResultsContainer(options.noResultsText) + } + for (let i = 0; i < len; i++) { + results[i].query = query + appendToResultsContainer(_$Templater_7.compile(results[i])) + } + } + + function isValidQuery (query) { + return query && query.length > 0 + } + + function isWhitelistedKey (key) { + return [13, 16, 20, 37, 38, 39, 40, 91].indexOf(key) === -1 + } + + function throwError (message) { + throw new Error('SimpleJekyllSearch --- ' + message) + } +})(window) + +}()); diff --git a/_includes/search-providers/custom/search.html b/_includes/search-providers/custom/search.html new file mode 100644 index 0000000..efd4c67 --- /dev/null +++ b/_includes/search-providers/custom/search.html @@ -0,0 +1,31 @@ + + + + + + + diff --git a/_includes/search-providers/default/search-data.js b/_includes/search-providers/default/search-data.js new file mode 100644 index 0000000..46aa4d9 --- /dev/null +++ b/_includes/search-providers/default/search-data.js @@ -0,0 +1,17 @@ +window.TEXT_SEARCH_DATA={ + {%- for _collection in site.collections -%} + {%- unless forloop.first -%},{%- endunless -%} + '{{ _collection.label }}':[ + {%- for _article in _collection.docs -%} + {%- unless forloop.first -%},{%- endunless -%} + {'title':{{ _article.title | jsonify }}, + {%- include snippets/prepend-baseurl.html path=_article.url -%} + {%- assign _url = __return -%} + 'url':{{ _url | jsonify }}, + 'create':{{ _article.create | jsonify }}, + 'date':{{ _article.modif | jsonify }} + } + {%- endfor -%} + ] + {%- endfor -%} +}; diff --git a/_includes/search-providers/default/search.html b/_includes/search-providers/default/search.html new file mode 100644 index 0000000..a21512c --- /dev/null +++ b/_includes/search-providers/default/search.html @@ -0,0 +1,18 @@ + + diff --git a/_includes/search-providers/default/search.js b/_includes/search-providers/default/search.js new file mode 100644 index 0000000..b01de90 --- /dev/null +++ b/_includes/search-providers/default/search.js @@ -0,0 +1,112 @@ +var SOURCES = window.TEXT_VARIABLES.sources; +var PAHTS = window.TEXT_VARIABLES.paths; +window.Lazyload.js([SOURCES.jquery, PAHTS.search_js], function() { + var search = (window.search || (window.search = {})); + var searchData = window.TEXT_SEARCH_DATA || {}; + + function memorize(f) { + var cache = {}; + return function () { + var key = Array.prototype.join.call(arguments, ','); + if (key in cache) return cache[key]; + else return cache[key] = f.apply(this, arguments); + }; + } + + /// search + function searchByQuery(query) { + var i, j, key, keys, cur, _title, result = {}; + keys = Object.keys(searchData); + for (i = 0; i < keys.length; i++) { + key = keys[i]; + for (j = 0; j < searchData[key].length; j++) { + cur = searchData[key][j], _title = cur.title; + if ((result[key] === undefined || result[key] && result[key].length < 4 ) + && _title.toLowerCase().indexOf(query.toLowerCase()) >= 0) { + if (result[key] === undefined) { + result[key] = []; + } + result[key].push(cur); + } + } + } + return result; + } + + var renderHeader = memorize(function(header) { + return $('

    ' + header + '

    '); + }); + + var renderItem = function(index, title, url) { + return $('
  • ' + '___' + title + '
  • '); + }; + + function render(data) { + if (!data) { return null; } + var $root = $('
      '), i, j, key, keys, cur, itemIndex = 0; + keys = Object.keys(data); + for (i = 0; i < keys.length; i++) { + key = keys[i]; + $root.append(renderHeader(key)); + for (j = 0; j < data[key].length; j++) { + cur = data[key][j]; + $root.append(renderItem(itemIndex++, cur.title, cur.url)); + } + } + return $root; + } + + // search box + var $result = $('.js-search-result'), $resultItems; + var lastActiveIndex, activeIndex; + + function clear() { + $result.html(null); + $resultItems = $('.search-result__item'); activeIndex = 0; + } + function onInputNotEmpty(val) { + $result.html(render(searchByQuery(val))); + $resultItems = $('.search-result__item'); activeIndex = 0; + $resultItems.eq(0).addClass('active'); + } + + search.clear = clear; + search.onInputNotEmpty = onInputNotEmpty; + + function updateResultItems() { + lastActiveIndex >= 0 && $resultItems.eq(lastActiveIndex).removeClass('active'); + activeIndex >= 0 && $resultItems.eq(activeIndex).addClass('active'); + } + + function moveActiveIndex(direction) { + var itemsCount = $resultItems ? $resultItems.length : 0; + if (itemsCount > 1) { + lastActiveIndex = activeIndex; + if (direction === 'up') { + activeIndex = (activeIndex - 1 + itemsCount) % itemsCount; + } else if (direction === 'down') { + activeIndex = (activeIndex + 1 + itemsCount) % itemsCount; + } + updateResultItems(); + } + } + + // Char Code: 13 Enter, 37 ⬅, 38 ⬆, 39 ➡, 40 ⬇ + $(window).on('keyup', function(e) { + var modalVisible = search.getModalVisible && search.getModalVisible(); + if (modalVisible) { + if (e.which === 38) { + modalVisible && moveActiveIndex('up'); + } else if (e.which === 40) { + modalVisible && moveActiveIndex('down'); + } else if (e.which === 13) { + modalVisible && $resultItems && activeIndex >= 0 && $resultItems.eq(activeIndex).children('a')[0].click(); + } + } + }); + + $result.on('mouseover', '.search-result__item > a', function() { + var itemIndex = $(this).parent().data('index'); + itemIndex >= 0 && (lastActiveIndex = activeIndex, activeIndex = itemIndex, updateResultItems()); + }); +}); diff --git a/_includes/search.html b/_includes/search.html new file mode 100644 index 0000000..680dd35 --- /dev/null +++ b/_includes/search.html @@ -0,0 +1,20 @@ +{%- include snippets/get-locale-string.html key='CANCEL' -%} +{%- assign _locale_cancel = __return -%} +{%- include snippets/get-locale-string.html key='SEARCH' -%} +{%- assign _locale_search = __return -%} + +{%- if site.search.provider == 'google' -%} + +{%- endif -%} + +{%- if site.search.provider -%} + +{%- endif -%} + +{%- if site.search.provider == 'default' -%} + {%- include search-providers/default/search.html -%} +{%- elsif site.search.provider == 'google' -%} + {%- include search-providers/google-custom-search-engine/search.html -%} +{%- elsif site.search.provider == 'custom' -%} + {%- include search-providers/custom/search.html -%} +{%- endif -%} diff --git a/_includes/sidebar/toc.html b/_includes/sidebar/toc.html new file mode 100644 index 0000000..4e3469e --- /dev/null +++ b/_includes/sidebar/toc.html @@ -0,0 +1,25 @@ +{%- if page.sidebar.nav -%} + +{%- endif -%} \ No newline at end of file diff --git a/_includes/snippets/assign.html b/_includes/snippets/assign.html new file mode 100644 index 0000000..c2691f5 --- /dev/null +++ b/_includes/snippets/assign.html @@ -0,0 +1,9 @@ +{%- if include.source1 == nil -%} + {%- if include.source0 == nil -%} + {%- assign __return = include.target -%} + {%- else -%} + {%- assign __return = include.source0 -%} + {%- endif -%} +{%- else -%} + {%- assign __return = include.source1 -%} +{%- endif -%} diff --git a/_includes/snippets/get-article-title.html b/_includes/snippets/get-article-title.html new file mode 100644 index 0000000..395b793 --- /dev/null +++ b/_includes/snippets/get-article-title.html @@ -0,0 +1,11 @@ +{%- assign _title = include.article.title | default: layout.title -%} +{%- assign _titles = include.article.titles | default: layout.titles -%} + +{%- if _title -%} + {%- assign __return = _title -%} +{%- elsif _titles -%} + {%- include snippets/get-string-from-locale-config.html locale=_titles -%} + {%- assign __return = __return -%} +{%- else -%} + {%- assign __return = nil -%} +{%- endif -%} diff --git a/_includes/snippets/get-lang.html b/_includes/snippets/get-lang.html new file mode 100644 index 0000000..028c52a --- /dev/null +++ b/_includes/snippets/get-lang.html @@ -0,0 +1,6 @@ +{%- assign __return = site.data.variables.default.lang -%} +{%- if page.lang -%} + {%- assign __return = page.lang -%} +{%- elsif site.lang -%} + {%- assign __return = site.lang -%} +{%- endif -%} diff --git a/_includes/snippets/get-locale-string.html b/_includes/snippets/get-locale-string.html new file mode 100644 index 0000000..a7069ae --- /dev/null +++ b/_includes/snippets/get-locale-string.html @@ -0,0 +1,12 @@ +{%- include snippets/get-lang.html -%} +{%- assign _lang = __return -%} +{%- assign _local_lang = site.data.locale[_lang] -%} +{%- assign _local_lang_en = site.data.locale.en -%} +{%- if _local_lang == nil -%} + {%- assign _local_lang = _local_lang_en -%} +{%- endif -%} +{%- if _local_lang[include.key] -%} + {%- assign __return = _local_lang[include.key] -%} +{%- else -%} + {%- assign __return = _local_lang_en[include.key] -%} +{%- endif -%} diff --git a/_includes/snippets/get-nav-url.html b/_includes/snippets/get-nav-url.html new file mode 100644 index 0000000..3b1b122 --- /dev/null +++ b/_includes/snippets/get-nav-url.html @@ -0,0 +1,8 @@ +{%- assign _pre7 = include.path | slice: 0, 7 -%} +{%- assign _pre8 = include.path | slice: 0, 8 -%} +{%- if _pre7 == 'http://' or _pre8 == 'https://' -%} + {%- assign __return = include.path -%} +{%- else -%} + {%- include snippets/prepend-baseurl.html path=include.path -%} + {%- assign __return = __return -%} +{%- endif -%} diff --git a/_includes/snippets/get-sources.html b/_includes/snippets/get-sources.html new file mode 100644 index 0000000..0de1cb5 --- /dev/null +++ b/_includes/snippets/get-sources.html @@ -0,0 +1,2 @@ +{%- assign _sources = site.sources | default: site.data.variables.default.sources -%} +{%- assign __return = site.data.variables.sources[_sources] -%} diff --git a/_includes/snippets/get-string-from-locale-config.html b/_includes/snippets/get-string-from-locale-config.html new file mode 100644 index 0000000..03325fa --- /dev/null +++ b/_includes/snippets/get-string-from-locale-config.html @@ -0,0 +1,7 @@ +{%- include snippets/get-lang.html -%} +{%- assign _lang = __return -%} +{%- if include.locale[_lang] -%} + {%- assign __return = include.locale[_lang] -%} +{%- else -%} + {%- assign __return = include.locale.en -%} +{%- endif -%} diff --git a/_includes/snippets/is_collection.html b/_includes/snippets/is_collection.html new file mode 100644 index 0000000..559a624 --- /dev/null +++ b/_includes/snippets/is_collection.html @@ -0,0 +1,6 @@ +{%- assign _page_path_first_char = include.page.path | slice: 0, 1 -%} +{%- if _page_path_first_char == '_' -%} + {%- assign __return = true -%} +{%- else -%} + {%- assign __return = false -%} +{%- endif -%} diff --git a/_includes/snippets/page-url.html b/_includes/snippets/page-url.html new file mode 100644 index 0000000..3e9815d --- /dev/null +++ b/_includes/snippets/page-url.html @@ -0,0 +1,2 @@ +{%- include snippets/prepend-baseurl.html path=page.url -%} +{{ __return | prepend: site.url }} \ No newline at end of file diff --git a/_includes/snippets/prepend-baseurl.html b/_includes/snippets/prepend-baseurl.html new file mode 100644 index 0000000..d5d24ef --- /dev/null +++ b/_includes/snippets/prepend-baseurl.html @@ -0,0 +1,4 @@ +{%- assign _include_path_replace_index = include.path | replace: 'index.html', '' -%} +{%- include snippets/prepend-path.html + path=_include_path_replace_index + prepend_path=site.baseurl -%} \ No newline at end of file diff --git a/_includes/snippets/prepend-path.html b/_includes/snippets/prepend-path.html new file mode 100644 index 0000000..5f6e904 --- /dev/null +++ b/_includes/snippets/prepend-path.html @@ -0,0 +1 @@ +{%- assign __return = include.path | prepend: '/' | prepend: include.prepend_path | replace:'///','/' | replace:'//','/' -%} diff --git a/_includes/svg/icon/social/behance.svg b/_includes/svg/icon/social/behance.svg new file mode 100644 index 0000000..bba499c --- /dev/null +++ b/_includes/svg/icon/social/behance.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/icon/social/douban.svg b/_includes/svg/icon/social/douban.svg new file mode 100644 index 0000000..42a07d5 --- /dev/null +++ b/_includes/svg/icon/social/douban.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/_includes/svg/icon/social/facebook.svg b/_includes/svg/icon/social/facebook.svg new file mode 100644 index 0000000..ba901bd --- /dev/null +++ b/_includes/svg/icon/social/facebook.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/icon/social/flicker.svg b/_includes/svg/icon/social/flicker.svg new file mode 100644 index 0000000..eaacc73 --- /dev/null +++ b/_includes/svg/icon/social/flicker.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/_includes/svg/icon/social/github.svg b/_includes/svg/icon/social/github.svg new file mode 100644 index 0000000..c5439a9 --- /dev/null +++ b/_includes/svg/icon/social/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/icon/social/googleplus.svg b/_includes/svg/icon/social/googleplus.svg new file mode 100644 index 0000000..69ab1e5 --- /dev/null +++ b/_includes/svg/icon/social/googleplus.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/icon/social/linkedin.svg b/_includes/svg/icon/social/linkedin.svg new file mode 100644 index 0000000..3c26dbc --- /dev/null +++ b/_includes/svg/icon/social/linkedin.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/icon/social/mail.svg b/_includes/svg/icon/social/mail.svg new file mode 100644 index 0000000..a0d0751 --- /dev/null +++ b/_includes/svg/icon/social/mail.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/_includes/svg/icon/social/medium.svg b/_includes/svg/icon/social/medium.svg new file mode 100644 index 0000000..2dfdd92 --- /dev/null +++ b/_includes/svg/icon/social/medium.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/icon/social/npm.svg b/_includes/svg/icon/social/npm.svg new file mode 100644 index 0000000..c382c30 --- /dev/null +++ b/_includes/svg/icon/social/npm.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/_includes/svg/icon/social/pinterest.svg b/_includes/svg/icon/social/pinterest.svg new file mode 100644 index 0000000..68f400b --- /dev/null +++ b/_includes/svg/icon/social/pinterest.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/_includes/svg/icon/social/qq.svg b/_includes/svg/icon/social/qq.svg new file mode 100644 index 0000000..a305a5b --- /dev/null +++ b/_includes/svg/icon/social/qq.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/icon/social/telegram.svg b/_includes/svg/icon/social/telegram.svg new file mode 100644 index 0000000..1fc8d78 --- /dev/null +++ b/_includes/svg/icon/social/telegram.svg @@ -0,0 +1,4 @@ + + + + diff --git a/_includes/svg/icon/social/twitter.svg b/_includes/svg/icon/social/twitter.svg new file mode 100644 index 0000000..b04f68d --- /dev/null +++ b/_includes/svg/icon/social/twitter.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/icon/social/weibo.svg b/_includes/svg/icon/social/weibo.svg new file mode 100644 index 0000000..2ccd8b1 --- /dev/null +++ b/_includes/svg/icon/social/weibo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/_includes/svg/icon/social/weixin.svg b/_includes/svg/icon/social/weixin.svg new file mode 100644 index 0000000..c2ed41b --- /dev/null +++ b/_includes/svg/icon/social/weixin.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/icon/social/zhihu.svg b/_includes/svg/icon/social/zhihu.svg new file mode 100644 index 0000000..210fb2e --- /dev/null +++ b/_includes/svg/icon/social/zhihu.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/svg/logo.svg b/_includes/svg/logo.svg new file mode 100644 index 0000000..b51a23b --- /dev/null +++ b/_includes/svg/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_includes/svg/logo_.svg b/_includes/svg/logo_.svg new file mode 100644 index 0000000..0eb5ccd --- /dev/null +++ b/_includes/svg/logo_.svg @@ -0,0 +1,65 @@ + + + + + +Created by potrace 1.13, written by Peter Selinger 2001-2015 + + + image/svg+xml + + + + + + + + + diff --git a/_includes/tags.html b/_includes/tags.html new file mode 100644 index 0000000..424804c --- /dev/null +++ b/_includes/tags.html @@ -0,0 +1,52 @@ +{%- assign _tag_max_size = 1 -%} +{%- assign _tag_min_size = 1 -%} +{%- assign _tag_cur_size = 1 -%} +{%- assign _tags = site.tags | sort -%} +{%- for _tag in _tags -%} + {%- assign _tag_cur_size = _tag[1].size -%} + {%- if _tag_cur_size > _tag_max_size -%} + {%- assign _tag_max_size = _tag_cur_size -%} + {%- endif -%} + {%- if _tag_cur_size < _tag_min_size -%} + {%- assign _tag_min_size = _tag_cur_size -%} + {%- endif -%} +{%- endfor -%} +{%- assign _tag_gap_size = _tag_max_size | minus: _tag_min_size | plus: 1 | divided_by: 4 -%} +{%- if _tag_gap_size < 1 -%} + {%- assign _tag_gap_size = 1 -%} +{%- endif -%} +
      + +
      diff --git a/_layouts/404.html b/_layouts/404.html new file mode 100644 index 0000000..4dd94a6 --- /dev/null +++ b/_layouts/404.html @@ -0,0 +1,13 @@ +--- +layout: page +title: 404 +show_title: false +--- +
      +
      +

      404

      +

      Page not found :(

      +
      +
      + +{{ content }} diff --git a/_layouts/archive.html b/_layouts/archive.html new file mode 100644 index 0000000..a03a078 --- /dev/null +++ b/_layouts/archive.html @@ -0,0 +1,30 @@ +--- +layout: page +titles: + # @start locale config + en : &EN Archive + en-GB : *EN + en-US : *EN + en-CA : *EN + en-AU : *EN + fr : &FR Etiquettes + fr-BE : *FR + fr-CA : *FR + fr-CH : *FR + fr-FR : *FR + fr-LU : *FR + # @end locale config +--- + +
      + {%- include tags.html -%} +
      + {%- include article-list.html articles=site.posts type='brief' show_info=true reverse=true group_by='year' -%} +
      +
      + + + +{{ content }} diff --git a/_layouts/article.html b/_layouts/article.html new file mode 100644 index 0000000..addd5fb --- /dev/null +++ b/_layouts/article.html @@ -0,0 +1,41 @@ +--- +layout: page +type: article +--- + +
      + {%- include article/top/custom.html -%} + +
      + {%- if page.toc -%} +
      + Afficher/cacher Sommaire + +
      +
      + {%- endif -%} + {{ content }} +
      + + {%- if page.mathjax -%} + {%- include mathjax.html -%} + {%- endif -%} + + {% if page.mermaid %} + {% include mermaid.html %} + {% endif %} + + {% if page.chart %} + {% include chart.html %} + {% endif %} + +
      + {%- include article-footer.html -%} + {%- include article-section-navigator.html -%} +
      + +
      + + diff --git a/_layouts/articles.html b/_layouts/articles.html new file mode 100644 index 0000000..10a99d0 --- /dev/null +++ b/_layouts/articles.html @@ -0,0 +1,90 @@ +--- +layout: page +--- + +{%- assign _page_articles_data_source = page.articles.data_source | default: layout.articles.data_source -%} + +{%- if _page_articles_data_source -%} +{%- assign _keys = _page_articles_data_source | split: '.' -%} +{%- endif -%} + +{%- assign _articles = nil -%} +{%- for _key in _keys -%} + {%- if forloop.first -%} + {%- case _key -%} + {%- when 'site' -%} + {%- assign _articles = site -%} + {%- when 'page' -%} + {%- assign _articles = page -%} + {%- when 'layout' -%} + {%- assign _articles = layout -%} + {%- when 'paginator' -%} + {%- assign _articles = paginator -%} + {%- else -%} + {%- assign _articles = site[_key] -%} + {%- else -%} + {%- endcase -%} + {%- else -%} + {%- assign _articles = _articles[_key] -%} + {%- endif -%} +{%- endfor -%} + +{%- assign _type = page.articles.type | default: layout.articles.type -%} + +{%- if _articles -%} + + +
      + + {%- if _type == 'grid' -%} + {%- if page.articles.size == 'sm' -%} + {%- include article-list.html articles=_articles type='grid' size='sm' -%} + {%- else -%} + {%- include article-list.html articles=_articles type='grid' -%} + {%- endif -%} + + {%- elsif _type == 'brief' -%} + {%- include snippets/assign.html + target=site.data.variables.default.page.articles.show_info + source0=layout.articles.show_info source1=page.articles.show_info -%} + {%- assign _show_info = __return -%} + + {%- include article-list.html articles=_articles type='brief' show_info=_show_info -%} + + {%- else -%} + {%- include snippets/assign.html + target=site.data.variables.default.page.articles.show_cover + source0=layout.articles.show_cover source1=page.articles.show_cover -%} + {%- assign _show_cover = __return -%} + + {%- include snippets/assign.html + target=site.data.variables.default.page.articles.show_excerpt + source0=layout.articles.show_excerpt source1=page.articles.show_excerpt -%} + {%- assign _show_excerpt = __return -%} + + {%- include snippets/assign.html + target=site.data.variables.default.page.articles.show_readmore + source0=layout.articles.show_readmore source1=page.articles.show_readmore -%} + {%- assign _show_readmore = __return -%} + + {%- include snippets/assign.html + target=site.data.variables.default.page.articles.show_info + source0=layout.articles.show_info source1=page.articles.show_info -%} + {%- assign _show_info = __return -%} + + {%- assign _article_type = page.articles.article_type | default: layout.articles.article_type -%} + {%- assign _cover_size = page.articles.cover_size | default: layout.articles.cover_size -%} + {%- assign _excerpt_type = page.articles.excerpt_type | default: layout.articles.excerpt_type -%} + + {%- include article-list.html articles=_articles type='item' + article_type=_article_type + show_cover=_show_cover cover_size=_cover_size + show_excerpt=_show_excerpt excerpt_type=_excerpt_type + show_readmore=_show_readmore show_info=_show_info -%} + + {%- endif -%} + +
      +{%- endif -%} + +{{ content }} diff --git a/_layouts/base.html b/_layouts/base.html new file mode 100644 index 0000000..8a02572 --- /dev/null +++ b/_layouts/base.html @@ -0,0 +1,25 @@ +--- +layout: none +--- + +{%- include snippets/get-lang.html -%} + + + {%- include analytics.html -%} + {%- include head.html -%} + + {%- include scripts/variables.html -%} + + +
      + {{ content }} +
      + + + diff --git a/_layouts/home.html b/_layouts/home.html new file mode 100644 index 0000000..6237276 --- /dev/null +++ b/_layouts/home.html @@ -0,0 +1,30 @@ +--- +layout: articles +titles: + # @start locale config + en : &EN Home + en-GB : *EN + en-US : *EN + en-CA : *EN + en-AU : *EN + fr : &FR Accueil + fr-BE : *FR + fr-CA : *FR + fr-CH : *FR + fr-FR : *FR + fr-LU : *FR + # @end locale config +show_title: false +articles: + data_source: paginator.posts + article_type: BlogPosting + show_cover: false + show_excerpt: true + show_readmore: true + show_info: true +--- + + +{{ content }} diff --git a/_layouts/landing.html b/_layouts/landing.html new file mode 100644 index 0000000..306067b --- /dev/null +++ b/_layouts/landing.html @@ -0,0 +1,178 @@ +--- +layout: page +header: false +full_width: true +article_header: + type: overlay + align: center + height: 80vh +--- +
      +
      + {%- for _section in page.data.sections -%} + {%- include snippets/get-nav-url.html path=_section.background_image.src -%} + {%- assign _url = __return -%} + {%- if _section.theme == 'light' -%} +
      + {%- else -%} + style="background-image: url({{ _url }});"> + {%- endif -%} + +
      +
      + +

      {{ _section.title }}

      + {%- if _section.excerpt-%} +

      {{ _section.excerpt }}

      + {%- endif -%} + + {%- if _section.actions -%} + + {%- endif -%} + +
      + + {%- if _section.children -%} + {%- assign _size = _section.children | size -%} +
      +
      + + {%- for child in _section.children -%} + + {%- if _size >= 2 -%} + {%- assign _cell_md_col = 6 -%} + {%- else -%} + {%- assign _cell_md_col = 12 | divided_by: _size -%} + {%- endif -%} + + {%- if _size >= 4 -%} + {%- assign _cell_lg_col = 3 -%} + {%- else -%} + {%- assign _cell_lg_col = 12 | divided_by: _size -%} + {%- endif -%} + +
      + +
      +

      {{ child.title }}

      + + {%- if child.excerpt-%} +

      {{ child.excerpt }}

      + {%- endif -%} + + {%- if child.actions -%} + + {%- endif -%} +
      + + {%- if child.image and child.image.src -%} + + {%- if child.image.url -%} + {%- include snippets/get-nav-url.html path=child.image.url -%} + {%- assign _item_image_url = __return -%} + {%- else -%} + {%- assign _item_image_url = nil -%} + {%- endif -%} + + {%- include snippets/get-nav-url.html path=child.image.src -%} + {%- assign _item_image_src = __return -%} + + {%- if child.image.is_row -%} +
      + {%- endif -%} +
      + {%- if _item_image_url -%} + + {%- endif -%} + + {%- if _item_image_url -%} + + {%- endif -%} +
      + {%- if child.image.is_row -%} +
      + {%- endif -%} + {%- endif -%} + + {%- if child.content-%} +

      {{ child.content }}

      + {%- endif -%} + +
      + {%- endfor-%} + +
      +
      + {%- endif -%} + + {%- if _section.image.full_width == true -%} +
      {% comment %} end hero__content {% endcomment %} + {%- endif -%} + + {%- if _section.image and _section.image.src -%} + + {%- if _section.image.url -%} + {%- include snippets/get-nav-url.html path=_section.image.url -%} + {%- assign _section_image_url = __return -%} + {%- else -%} + {%- assign _section_image_url = nil -%} + {%- endif -%} + + {%- include snippets/get-nav-url.html path=_section.image.src -%} + {%- assign _section_image_src = __return -%} + + {%- if _section.image.is_row -%} +
      + {%- endif -%} + + {%- if _section.image.is_row -%} +
      + {%- endif -%} + {%- endif -%} + + {%- if _section.image.full_width != true -%} +
      {% comment %} end hero__content {% endcomment %} + {%- endif -%} + + {%- if _section.content-%} +

      {{ _section.content }}

      + {%- endif -%} + + {%- endfor -%} +
      +
      + +{{ content }} diff --git a/_layouts/none.html b/_layouts/none.html new file mode 100644 index 0000000..cddd070 --- /dev/null +++ b/_layouts/none.html @@ -0,0 +1 @@ +{{ content }} diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 0000000..b265ba2 --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,270 @@ +--- +layout: base +--- +{%- assign _page_mode = page.mode | default: layout.mode | default: site.data.variables.default.page.mode -%} +{%- assign _page_type = page.type | default: layout.type | default: site.data.variables.default.page.type -%} +{%- assign _article_header_type = page.article_header.type | default: layout.article_header.type -%} + +{%- include snippets/assign.html + target=layout.header source0=page.header -%} +{%- assign _header = __return -%} + +{%- include snippets/assign.html + target=layout.footer source0=page.footer -%} +{%- assign _footer = __return -%} + +{%- assign _footer = false -%} + +{%- include snippets/assign.html + target=layout.lightbox source0=page.lightbox -%} +{%- assign _lightbox = __return -%} + +{%- include snippets/assign.html + target = site.data.variables.default.page.full_width + source0=layout.full_width source1=page.full_width -%} +{%- assign _full_width = __return -%} + +{%- include snippets/assign.html + target = site.data.variables.default.page.comment + source0=layout.comment source1=page.comment -%} +{%- assign _comment = __return -%} + + +{%- assign _article_header_excerpt_truncate = include.excerpt_truncate | default: 200 -%} + +{%- if page.sidebar -%} +
      +
      +
      +
      + +
      + +
      + +
      + {%- include sidebar/toc.html -%} +
      + +{%- else -%} +
      +{%- endif -%} + + {%- assign _page_main_class = 'page__main js-page-main' -%} + {%- if _page_mode == 'immersive' -%} + {%- assign _page_main_class = _page_main_class | append: ' page__main--immersive' -%} + {%- endif -%} + {%- unless page.sidebar -%} + {%- assign _page_main_class = _page_main_class | append: ' page__viewport' -%} + {%- endunless -%} + {%- if _footer == false -%} + {%- assign _page_main_class = _page_main_class | append: ' hide-footer' -%} + {%- endif -%} + + + {%- assign _page_main_class = _page_main_class | append: ' has-aside' -%} + +
      + +
      + {%- if _header != false -%} + + {%- endif -%} + + +
      + {%- if _article_header_type == 'overlay' or _article_header_type == 'cover' -%} + + {%- if _article_header_type == 'overlay' -%} + + {%- assign _article_header_height = page.article_header.height | default: layout.article_header.height -%} + {%- assign _article_header_align = page.article_header.align | default: layout.article_header.align | default: site.data.variables.default.page.article_header.align -%} + {%- assign _article_header_theme = page.article_header.theme | default: layout.article_header.theme | default: site.data.variables.default.page.article_header.theme -%} + + {%- if page.article_header.background_image.src -%} + {%- assign _header_background_image_src = page.article_header.background_image.src -%} + {%- elsif page.article_header.background_image != false and page.cover -%} + {%- assign _header_background_image_src = page.cover -%} + {%- endif -%} + + {%- if page.article_header.background_image.gradient -%} + {%- assign _header_background_image = page.article_header.background_image.gradient -%} + {%- if _header_background_image_src -%} + {%- assign _header_background_image = _header_background_image | append: ',' -%} + {%- endif -%} + {%- endif -%} + + {%- if _header_background_image_src -%} + {%- include snippets/get-nav-url.html path=_header_background_image_src -%} + {%- assign _header_background_image_src = __return -%} + {%- assign _header_background_image = _header_background_image + | append: 'url(' | append: _header_background_image_src | append: ')'-%} + {%- endif -%} + + {%- assign _header_style = 'background-image:' | append: _header_background_image | append: ';' -%} + + {%- if page.article_header.background_color -%} + {%- assign _header_style = _header_style | append: 'background-color:' | append: page.article_header.background_color | append: ';' -%} + {%- endif -%} + + {%- if _article_header_height -%} + {%- assign _header_style = _header_style | append: 'min-height:' | append: _article_header_height | append: ';' -%} + {%- endif -%} + +
      + + {%- if _article_header_theme == 'light' -%} + {%- if _article_header_align == 'center' -%} +
      + {%- else -%} +
      + {%- endif -%} + {%- elsif _article_header_theme == 'dark' -%} + {%- if _article_header_align == 'center' -%} +
      + {%- else -%} +
      + {%- endif -%} + {%- else -%} + {%- if _article_header_align == 'center' -%} +
      + {%- else -%} +
      + {%- endif -%} + {%- endif -%} +
      + {%- if _full_width == false -%} +
      + {%- endif -%} + {%- include article-info.html article=page semantic=false -%} + {%- include article-header.html article=page semantic=false -%} + {%- if page.excerpt -%} +

      {{ page.excerpt | strip_html | strip_newlines | strip | truncate: _article_header_excerpt_truncate }}

      + {%- endif -%} + {%- if page.article_header.actions -%} + + {%- endif -%} + {%- if _full_width == false -%} +
      + {%- endif -%} +
      +
      +
      + {%- elsif _article_header_type == 'cover' -%} + {%- if page.article_header.image.src -%} + {%- include snippets/get-nav-url.html path=page.article_header.image.src -%} + {%- assign _header_image_src = __return -%} + + {%- endif -%} + {%- endif -%} + + {%- endif -%} + + + {%- if _full_width == false -%} +
      + {%- endif -%} +
      +
      + {%- include main/top/custom.html -%} + {%- if _page_type == 'article' -%} +
      + {%- elsif _page_type == 'webpage' -%} +
      + {%- else -%} +
      + {%- endif -%} + + {%- if _article_header_type == 'overlay' or page.article_header == false -%} + {%- include article-header.html article=page html=false -%} + {%- include article-info.html article=page html=false -%} + {%- else -%} + {%- include article-header.html article=page -%} + {%- include article-info.html article=page -%} + {%- endif -%} + +
      + {{ content }} +
      + {%- if _comment != false -%} +
      {%- include comments.html -%}
      + {%- endif -%} +
      + {%- include main/bottom/custom.html -%} +
      +
      + + {%- if _full_width == false -%} +
      + {%- endif -%} +
      + + {%- if _footer != false -%} + + {%- endif -%} +
      +
      {%- comment -%} end page__main {%- endcomment -%} +{%- if page.sidebar -%} +
      {%- comment -%} end grid {%- endcomment -%} +
      {%- comment -%} end page__viewport {%- endcomment -%} +{%- endif -%} + + +{%- if _lightbox == true -%} + +{%- endif -%} +{%- if _header != false -%} + +{%- endif -%} +
      + + + + +{%- if page.sidebar -%} + +{%- endif -%} + +{%- if page.aside -%} + +{%- endif -%} + +{%- include markdown-enhancements.html -%} + diff --git a/_sass/additional/_alert.scss b/_sass/additional/_alert.scss new file mode 100644 index 0000000..fa5651f --- /dev/null +++ b/_sass/additional/_alert.scss @@ -0,0 +1,29 @@ +.article__content { + p.success { + padding: map-get($spacers, 2) map-get($spacers, 3); + background-color: rgba($green, .1); + border: 1px solid $green; + border-radius: map-get($base, border-radius); + } + + p.info { + padding: map-get($spacers, 2) map-get($spacers, 3); + background-color: rgba($blue, .1); + border: 1px solid $blue; + border-radius: map-get($base, border-radius); + } + + p.warning { + padding: map-get($spacers, 2) map-get($spacers, 3); + background-color: rgba($yellow, .1); + border: 1px solid $yellow; + border-radius: map-get($base, border-radius); + } + + p.error { + padding: map-get($spacers, 2) map-get($spacers, 3); + background-color: rgba($red, .1); + border: 1px solid $red; + border-radius: map-get($base, border-radius); + } +} diff --git a/_sass/additional/_photo-frame.scss b/_sass/additional/_photo-frame.scss new file mode 100644 index 0000000..55a30c7 --- /dev/null +++ b/_sass/additional/_photo-frame.scss @@ -0,0 +1,17 @@ +.article__content { + img.shadow, .shadow > img { + @include box-shadow(); + } + + img.border, .border > img { + border: 1px solid $border-color-l; + } + + img.rounded, .rounded > img { + border-radius: map-get($base, border-radius); + } + + img.circle, .circle > img { + border-radius: 50%; + } +} diff --git a/_sass/additional/_tag.scss b/_sass/additional/_tag.scss new file mode 100644 index 0000000..6a418ed --- /dev/null +++ b/_sass/additional/_tag.scss @@ -0,0 +1,21 @@ +.article__content { + code.success { + color: $text-color-function; + background-color: $green; + } + + code.info { + color: $text-color-function; + background-color: $blue; + } + + code.warning { + color: $text-color-function; + background-color: $yellow; + } + + code.error { + color: $text-color-function; + background-color: $red; + } +} diff --git a/_sass/animate/_fade-in-down.scss b/_sass/animate/_fade-in-down.scss new file mode 100644 index 0000000..a32a4e7 --- /dev/null +++ b/_sass/animate/_fade-in-down.scss @@ -0,0 +1,10 @@ +@include keyframes(fade-in-down) { + from { + opacity: 0; + @include transform(translateY(-2rem)); + } + to { + opacity: 1; + @include transform(translateY(0)); + } +} diff --git a/_sass/animate/_fade-in-up.scss b/_sass/animate/_fade-in-up.scss new file mode 100644 index 0000000..920a0bb --- /dev/null +++ b/_sass/animate/_fade-in-up.scss @@ -0,0 +1,10 @@ +@include keyframes(fade-in-up) { + from { + opacity: 0; + @include transform(translateY(2rem)); + } + to { + opacity: 1; + @include transform(translateY(0)); + } +} diff --git a/_sass/animate/_fade-in.scss b/_sass/animate/_fade-in.scss new file mode 100644 index 0000000..03fdea8 --- /dev/null +++ b/_sass/animate/_fade-in.scss @@ -0,0 +1,8 @@ +@include keyframes(fade-in) { + from { + opacity: 0; + } + to { + opacity: 1; + } +} diff --git a/_sass/common/_classes.scss b/_sass/common/_classes.scss new file mode 100644 index 0000000..b5615d8 --- /dev/null +++ b/_sass/common/_classes.scss @@ -0,0 +1,24 @@ +/* stylelint-disable at-rule-name-space-after, at-rule-semicolon-space-before */ +@charset "utf-8"; +@import + "common/classes/animation", + "common/classes/transform", + "common/classes/transition", + "common/classes/user-select", + + "common/classes/clearfix", + "common/classes/media", + "common/classes/clickable", + "common/classes/display", + "common/classes/flex", + "common/classes/horizontal-rules", + "common/classes/pseudo", + "common/classes/link", + "common/classes/text", + "common/classes/overflow", + "common/classes/shadow", + "common/classes/spacing", + "common/classes/split-line", + "common/classes/grid" +; +/* stylelint-enable */ diff --git a/_sass/common/_function.scss b/_sass/common/_function.scss new file mode 100644 index 0000000..1de2492 --- /dev/null +++ b/_sass/common/_function.scss @@ -0,0 +1,15 @@ +@function get-color-theme($color) { + @if lightness($color) < 15% { + @return "dark"; + } @else { + @return "light"; + } +} + +@function breakpoint-infix($name, $breakpoints: default) { + @if $breakpoints == default { + $breakpoints: $responsive; + } + $min: map-get($breakpoints, $name); + @return if($min != 0, "#{$name}-", ""); +} diff --git a/_sass/common/_print.scss b/_sass/common/_print.scss new file mode 100644 index 0000000..d798d87 --- /dev/null +++ b/_sass/common/_print.scss @@ -0,0 +1,20 @@ +@media print { + a { + @include plain() { + text-decoration: underline; + } + @include hover() { + text-decoration: underline; + } + @include active() { + text-decoration: underline; + } + } + + img, + tr, + pre, + blockquote { + page-break-inside: avoid; + } +} diff --git a/_sass/common/_reset.scss b/_sass/common/_reset.scss new file mode 100644 index 0000000..8fbcab6 --- /dev/null +++ b/_sass/common/_reset.scss @@ -0,0 +1,170 @@ +@mixin block-elements { + h1, + h2, + h3, + h4, + h5, + h6, + p, + hr, + blockquote, + figure, + pre, + .highlighter-rouge, + ul, + ol, + dl, + table, + .footnotes { + @content; + } +} +@mixin heading-elements { + h1, h2, h3, h4, h5, h6 { + @content; + } +} + +*, +::before, +::after { + box-sizing: border-box; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +/** + * 1. Prevent adjustments of font size after orientation changes in iOS. + **/ + +html { + font-size: map-get($base, font-size-root); + -webkit-text-size-adjust: 100%; /* 1 */ + @media print { + font-size: map-get($base, font-size-root-sm); + } +} + +body { + padding: 0; + margin: 0; + font: map-get($base, font-weight) #{map-get($base, font-size)}/#{map-get($base, line-height)} map-get($base, font-family); + ::-moz-selection { + background: $select-color; + } + ::-webkit-selection { + background: $select-color; + } + ::selection { + background: $select-color; + } +} + +@include block-elements() { + padding: 0; + margin: map-get($spacers, 2) 0; +} + +input, textarea, select, button { + font: map-get($base, font-weight) #{map-get($base, font-size)}/#{map-get($base, line-height)} map-get($base, font-family); + color: $text-color; +} + +h1, +h2, +h3, +h4, +h5, +h6, +strong { + font-weight: map-get($base, font-weight-bold); +} + +h1 { + font-size: map-get($base, font-size-h1); + color: $text-color-d; + @include media-breakpoint-down(md) { + font-size: map-get($base, font-size-h1-sm); + } +} + +h2 { + font-size: map-get($base, font-size-h2); + color: $text-color-d; + @include media-breakpoint-down(md) { + font-size: map-get($base, font-size-h2-sm); + } +} + +h3 { + font-size: map-get($base, font-size-h3); + color: $text-color-d; + @include media-breakpoint-down(md) { + font-size: map-get($base, font-size-h3-sm); + } +} + +h4 { + font-size: map-get($base, font-size-h4); + color: $text-color; + @include media-breakpoint-down(md) { + font-size: map-get($base, font-size-h4-sm); + } +} + +h5 { + font-size: map-get($base, font-size-h5); + color: $text-color; + @include media-breakpoint-down(md) { + font-size: map-get($base, font-size-h5-sm); + } +} + +h6 { + font-size: map-get($base, font-size-h6); + color: $text-color-l; + @include media-breakpoint-down(md) { + font-size: map-get($base, font-size-h6-sm); + } +} + +a { + font-weight: map-get($base, font-weight-bold); + @include link-colors($main-color-1); +} + +pre, code { + font-family: map-get($base, font-family-code); +} + +code { + font-size: map-get($base, font-size-xs); + line-height: map-get($base, line-height-sm); +} + +figure > img { + display: block; +} + +figcaption { + font-size: map-get($base, font-size-sm); +} + +button { + padding: 0; + margin: 0; + font-size: map-get($spacers, 3); + cursor: pointer; + background-color: transparent; + border-width: 0; + outline: none; +} + +input { + &::-ms-clear { + display: none; + } + &:focus { + outline: none; + } +} + diff --git a/_sass/common/_variables.scss b/_sass/common/_variables.scss new file mode 100644 index 0000000..97f82e7 --- /dev/null +++ b/_sass/common/_variables.scss @@ -0,0 +1,152 @@ +@use "sass:math"; + +$base: ( + font-family: (-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif), + font-family-code: (Menlo, Monaco, Consolas, Andale Mono, lucida console, Courier New, monospace), + + font-size-root: 16px, + font-size-root-sm: 14px, + + font-size-xl: 1.5rem, + font-size-lg: 1.25rem, + font-size: 1rem, + font-size-sm: .85rem, + font-size-xs: .7rem, + + font-size-h1-xl: 3.5rem, + font-size-h2-xl: 2.5rem, + font-size-h3-xl: 2rem, + font-size-h4-xl: 1.75rem, + font-size-h5-xl: 1.5rem, + font-size-h6-xl: 1.5rem, + + font-size-h1-lg: 3rem, + font-size-h2-lg: 2rem, + font-size-h3-lg: 1.75rem, + font-size-h4-lg: 1.5rem, + font-size-h5-lg: 1.25rem, + font-size-h6-lg: 1.25rem, + + font-size-h1: 2.5rem, + font-size-h2: 1.9rem, + font-size-h3: 1.5rem, + font-size-h4: 1.2rem, + font-size-h5: 1rem, + font-size-h6: 1rem, + + font-size-h1-sm: 2rem, + font-size-h2-sm: 1.5rem, + font-size-h3-sm: 1.35rem, + font-size-h4-sm: 1.15rem, + font-size-h5-sm: 1rem, + font-size-h6-sm: 1rem, + + font-size-h1-xs: 1.05rem, + font-size-h2-xs: 1rem, + font-size-h3-xs: .95rem, + font-size-h4-xs: .9rem, + font-size-h5-xs: .85rem, + font-size-h6-xs: .85rem, + + font-weight: 400, + font-weight-bold: 700, + + line-height-xl: 2, + line-height-lg: 1.8, + line-height: 1.6, + line-height-sm: 1.4, + line-height-xs: 1.2, + + spacer: 1rem, + + border-radius-lg: .8rem, + border-radius: .4rem, + border-radius-sm: .2rem +); + +$spacers: ( + 0: 0, + 1: map-get($base, spacer) * .25, + 2: map-get($base, spacer) * .5, + 3: map-get($base, spacer), + 4: map-get($base, spacer) * 1.5, + 5: map-get($base, spacer) * 3 +); + +$z-indexes: ( + actions: 996, + mask: 997, + sidebar: 998, + modal: 999 +); + +$layout: ( + header-height: 5rem, + header-height-sm: 3rem, + content-max-width: 950px, + sidebar-width: 250px, + sidebar-header-height: 3rem, + aside-width: 220px +); + +// sm md lg +// | ------ | ------ | ------ | +// 0 500 1024 - + +$responsive: ( + sm: 0, + md: 500px, + lg: 1024px +); + +$animation: ( + duration: .4s, + duration-sm: .2s, + timing-function: ease-in-out +); + +$clickable: ( + transition: all .2s ease-in-out +); + +$button-height-xl: 2.8rem; +$button-height-lg: 2.3rem; +$button-height: 1.9rem; +$button-height-sm: 1.5rem; +$button-height-xs: 1.2rem; + +$button: ( + padding-y-xl: ($button-height-xl - map-get($base, font-size-xl)) * 0.5, + padding-x-xl: math.div($button-height-xl, 3), + padding-y-lg: ($button-height-lg - map-get($base, font-size-lg)) * 0.5, + padding-x-lg: math.div($button-height-lg, 3), + padding-y: ($button-height - map-get($base, font-size)) * 0.5, + padding-x: math.div($button-height, 3), + padding-y-sm: ($button-height-sm - map-get($base, font-size-sm)) * 0.5, + padding-x-sm: math.div($button-height-sm, 3), + padding-y-xs: ($button-height-xs - map-get($base, font-size-xs)) * 0.5, + padding-x-xs: math.div($button-height-xs, 3), + + pill-radius: 6rem, + + circle-diameter-xl: $button-height-xl, + circle-diameter-lg: $button-height-lg, + circle-diameter: $button-height, + circle-diameter-sm: $button-height-sm, + circle-diameter-xs: $button-height-xs, + + font-weight: map-get($base, font-weight-bold) +); + +$image: ( + width-xl: 20em, + width-lg: 16rem, + width: 12rem, + width-sm: 8rem, + width-xs: 4rem +); + +$menu: ( + horizontal-spacer: 1, + horizontal-item-vertical-spacer: 1 +); \ No newline at end of file diff --git a/_sass/common/classes/_animation.scss b/_sass/common/classes/_animation.scss new file mode 100644 index 0000000..2dbc47d --- /dev/null +++ b/_sass/common/classes/_animation.scss @@ -0,0 +1,13 @@ +@mixin animation($value) { + -webkit-animation: $value; + animation: $value; +} + +@mixin keyframes($name) { + @-webkit-keyframes #{$name} { + @content; + } + @keyframes #{$name} { + @content; + } +} diff --git a/_sass/common/classes/_clearfix.scss b/_sass/common/classes/_clearfix.scss new file mode 100644 index 0000000..caf3124 --- /dev/null +++ b/_sass/common/classes/_clearfix.scss @@ -0,0 +1,19 @@ +@mixin clearfix() { + &::after { + display: table; + clear: both; + content: ""; + } +} + +.clearfix { + @include clearfix(); +} + +.left { + float: left; +} + +.right { + float: right; +} diff --git a/_sass/common/classes/_clickable.scss b/_sass/common/classes/_clickable.scss new file mode 100644 index 0000000..af32eff --- /dev/null +++ b/_sass/common/classes/_clickable.scss @@ -0,0 +1,159 @@ +@mixin clickable($clr, $bg-clr, $hover-clr: default, $hover-bg-clr: default, $active-clr: default, $active-bg-clr: default, $focus-clr: default, $focus-bg-clr: default, $theme: default, $ignore-path: default) { + + @if $theme == default { + @if $bg-clr == null and $hover-bg-clr == null { + @if $hover-clr == default { + $theme: get-color-theme($clr); + } @else { + $theme: get-color-theme($hover-clr); + } + } @else { + @if $hover-bg-clr == default { + $theme: get-color-theme($bg-clr); + } @else { + $theme: get-color-theme($hover-bg-clr); + } + } + } + + @if $ignore-path == default { + $ignore-path: false; + } @else { + $ignore-path: true; + } + + @include transition(map-get($clickable, transition)); + @if $ignore-path == false { + svg { + path { + @include transition(map-get($clickable, transition)); + } + } + } + + // hover + @if $hover-clr == default { + @if $hover-bg-clr == null { + @if $theme == "light" { + $hover-clr: darken($clr, 14%); + } + @if $theme == "dark" { + $hover-clr: lighten($clr, 18%); + } + } @else if $hover-bg-clr == default { + $hover-clr: $clr; + } + } + + @if $hover-bg-clr == default { + @if $theme == "light" { + $hover-bg-clr: darken($bg-clr, 14%); + } + @if $theme == "dark" { + $hover-bg-clr: lighten($bg-clr, 18%); + } + } + + // active + @if $active-clr == default { + @if $active-bg-clr == null { + @if $theme == "light" { + $active-clr: darken($hover-clr, 15%); + } + @if $theme == "dark" { + $active-clr: lighten($hover-clr, 16%); + } + } @else if $active-bg-clr == default { + $active-clr: $hover-clr; + } + } + + @if $active-bg-clr == default { + @if $theme == "light" { + $active-bg-clr: darken($hover-bg-clr, 15%); + } + @if $theme == "dark" { + $active-bg-clr: lighten($hover-bg-clr, 16%); + } + } + + // focus + @if $focus-clr == default { + @if $focus-bg-clr == null { + $focus-clr: $hover-clr; + } @else if $hover-bg-clr == default { + $focus-clr: $hover-clr; + } + } + + @if $focus-bg-clr == default { + $focus-bg-clr: $hover-bg-clr; + } + + @include plain() { + color: $clr; + @if $bg-clr { + background-color: $bg-clr; + } + @if $ignore-path == false { + svg path { + fill: $clr; + } + } + } + @include hover() { + color: $hover-clr; + @if $hover-bg-clr { + background-color: $hover-bg-clr; + } + @if $ignore-path == false { + svg path { + fill: $hover-clr; + } + } + } + @include active() { + color: $active-clr; + @if $active-bg-clr { + background-color: $active-bg-clr; + } + @if $ignore-path == false { + svg path { + fill: $active-clr; + } + } + } + @include focus() { + color: $focus-clr; + @if $focus-bg-clr{ + background-color: $focus-bg-clr; + box-shadow: 0 0 0 2px rgba($focus-bg-clr, .4); + } + @if $ignore-path == false { + svg path { + fill: $focus-clr; + } + } + } + @include disabled() { + @if $theme == "light" { + color: rgba($clr, .2) !important; + } + @if $theme == "dark" { + color: rgba($clr, .4) !important; + } + @if $bg-clr { + background-color: $bg-clr !important; + } + @if $ignore-path == false { + svg path { + @if $theme == "light" { + fill: rgba($clr, .2) !important; + } + @if $theme == "dark" { + fill: rgba($clr, .4) !important; + } + } + } + } +} diff --git a/_sass/common/classes/_display.scss b/_sass/common/classes/_display.scss new file mode 100644 index 0000000..411611e --- /dev/null +++ b/_sass/common/classes/_display.scss @@ -0,0 +1,13 @@ +@each $breakpoint in map-keys($responsive) { + @include media-breakpoint-up($breakpoint) { + .d-#{breakpoint-infix($breakpoint)}none { + display: none !important; + } + } +} + +.d-print-none { + @media print { + display: none !important; + } +} diff --git a/_sass/common/classes/_flex.scss b/_sass/common/classes/_flex.scss new file mode 100644 index 0000000..019f9b2 --- /dev/null +++ b/_sass/common/classes/_flex.scss @@ -0,0 +1,396 @@ +// Flexbox Mixins +// http://philipwalton.github.io/solved-by-flexbox/ +// https://github.com/philipwalton/solved-by-flexbox +// +// Copyright (c) 2013 Brian Franco +// +// 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. +// +// This is a set of mixins for those who want to mess around with flexbox +// using the native support of current browsers. For full support table +// check: http://caniuse.com/flexbox +// +// Basically this will use: +// +// * Fallback, old syntax (IE10, mobile webkit browsers - no wrapping) +// * Final standards syntax (FF, Safari, Chrome, IE11, Opera) +// +// This was inspired by: +// +// * http://dev.opera.com/articles/view/advanced-cross-browser-flexbox/ +// +// With help from: +// +// * http://w3.org/tr/css3-flexbox/ +// * http://the-echoplex.net/flexyboxes/ +// * http://msdn.microsoft.com/en-us/library/ie/hh772069(v=vs.85).aspx +// * http://css-tricks.com/using-flexbox/ +// * http://dev.opera.com/articles/view/advanced-cross-browser-flexbox/ +// * https://developer.mozilla.org/en-us/docs/web/guide/css/flexible_boxes + +//---------------------------------------------------------------------- + +// Flexbox Containers +// +// The 'flex' value causes an element to generate a block-level flex +// container box. +// +// The 'inline-flex' value causes an element to generate a inline-level +// flex container box. +// +// display: flex | inline-flex +// +// http://w3.org/tr/css3-flexbox/#flex-containers +// +// (Placeholder selectors for each type, for those who rather @extend) + +@mixin flexbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; +} + +%flexbox { @include flexbox; } + +//---------------------------------- + +@mixin inline-flex { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -moz-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; +} + +%inline-flex { @include inline-flex; } + +//---------------------------------------------------------------------- + +// Flexbox Direction +// +// The 'flex-direction' property specifies how flex items are placed in +// the flex container, by setting the direction of the flex container's +// main axis. This determines the direction that flex items are laid out in. +// +// Values: row | row-reverse | column | column-reverse +// Default: row +// +// http://w3.org/tr/css3-flexbox/#flex-direction-property + +@mixin flex-direction($value: row) { + @if $value == row-reverse { + -webkit-box-direction: reverse; + -webkit-box-orient: horizontal; + } @else if $value == column { + -webkit-box-direction: normal; + -webkit-box-orient: vertical; + } @else if $value == column-reverse { + -webkit-box-direction: reverse; + -webkit-box-orient: vertical; + } @else { + -webkit-box-direction: normal; + -webkit-box-orient: horizontal; + } + + -webkit-flex-direction: $value; + -moz-flex-direction: $value; + -ms-flex-direction: $value; + flex-direction: $value; + +} +// Shorter version: +@mixin flex-dir($args...) { @include flex-direction($args...); } + +//---------------------------------------------------------------------- + +// Flexbox Wrap +// +// The 'flex-wrap' property controls whether the flex container is single-line +// or multi-line, and the direction of the cross-axis, which determines +// the direction new lines are stacked in. +// +// Values: nowrap | wrap | wrap-reverse +// Default: nowrap +// +// http://w3.org/tr/css3-flexbox/#flex-wrap-property + +@mixin flex-wrap($value: nowrap) { + // No Webkit Box fallback. + -webkit-flex-wrap: $value; + -moz-flex-wrap: $value; + @if $value == nowrap { + -ms-flex-wrap: none; + } @else { + -ms-flex-wrap: $value; + } + flex-wrap: $value; +} + +//---------------------------------------------------------------------- + +// Flexbox Flow (shorthand) +// +// The 'flex-flow' property is a shorthand for setting the 'flex-direction' +// and 'flex-wrap' properties, which together define the flex container's +// main and cross axes. +// +// Values: | +// Default: row nowrap +// +// http://w3.org/tr/css3-flexbox/#flex-flow-property + +@mixin flex-flow($values: (row nowrap)) { + // No Webkit Box fallback. + -webkit-flex-flow: $values; + -moz-flex-flow: $values; + -ms-flex-flow: $values; + flex-flow: $values; +} + +//---------------------------------------------------------------------- + +// Flexbox Order +// +// The 'order' property controls the order in which flex items appear within +// their flex container, by assigning them to ordinal groups. +// +// Default: 0 +// +// http://w3.org/tr/css3-flexbox/#order-property + +@mixin order($int: 0) { + -ms-flex-order: $int; + -webkit-order: $int; + -moz-order: $int; + order: $int; + -webkit-box-ordinal-group: $int + 1; +} + +//---------------------------------------------------------------------- + +// Flexbox Grow +// +// The 'flex-grow' property sets the flex grow factor. Negative numbers +// are invalid. +// +// Default: 0 +// +// http://w3.org/tr/css3-flexbox/#flex-grow-property + +@mixin flex-grow($int: 0) { + -webkit-box-flex: $int; + -webkit-flex-grow: $int; + -moz-flex-grow: $int; + -ms-flex-positive: $int; + flex-grow: $int; +} + +//---------------------------------------------------------------------- + +// Flexbox Shrink +// +// The 'flex-shrink' property sets the flex shrink factor. Negative numbers +// are invalid. +// +// Default: 1 +// +// http://w3.org/tr/css3-flexbox/#flex-shrink-property + +@mixin flex-shrink($int: 1) { + -webkit-flex-shrink: $int; + -moz-flex-shrink: $int; + -ms-flex-negative: $int; + flex-shrink: $int; +} + +//---------------------------------------------------------------------- + +// Flexbox Basis +// +// The 'flex-basis' property sets the flex basis. Negative lengths are invalid. +// +// Values: Like "width" +// Default: auto +// +// http://www.w3.org/TR/css3-flexbox/#flex-basis-property + +@mixin flex-basis($value: auto) { + -webkit-flex-basis: $value; + -moz-flex-basis: $value; + -ms-flex-preferred-size: $value; + flex-basis: $value; +} + +//---------------------------------------------------------------------- + +// Flexbox "Flex" (shorthand) +// +// The 'flex' property specifies the components of a flexible length: the +// flex grow factor and flex shrink factor, and the flex basis. When an +// element is a flex item, 'flex' is consulted instead of the main size +// property to determine the main size of the element. If an element is +// not a flex item, 'flex' has no effect. +// +// Values: none | || +// Default: See individual properties (1 1 0). +// +// http://w3.org/tr/css3-flexbox/#flex-property + +@mixin flex($fg: 1, $fs: null, $fb: null) { + + // Set a variable to be used by box-flex properties + $fg-boxflex: $fg; + + // Box-Flex only supports a flex-grow value so let's grab the + // first item in the list and just return that. + @if type-of($fg) == "list" { + $fg-boxflex: nth($fg, 1); + } + + -webkit-box-flex: $fg-boxflex; + -webkit-flex: $fg $fs $fb; + -moz-box-flex: $fg-boxflex; + -moz-flex: $fg $fs $fb; + -ms-flex: $fg $fs $fb; + flex: $fg $fs $fb; +} + +//---------------------------------------------------------------------- + +// Flexbox Justify Content +// +// The 'justify-content' property aligns flex items along the main axis +// of the current line of the flex container. This is done after any flexible +// lengths and any auto margins have been resolved. Typically it helps distribute +// extra free space leftover when either all the flex items on a line are +// inflexible, or are flexible but have reached their maximum size. It also +// exerts some control over the alignment of items when they overflow the line. +// +// Note: 'space-*' values not supported in older syntaxes. +// +// Values: flex-start | flex-end | center | space-between | space-around +// Default: flex-start +// +// http://w3.org/tr/css3-flexbox/#justify-content-property + +@mixin justify-content($value: flex-start) { + @if $value == flex-start { + -webkit-box-pack: start; + -ms-flex-pack: start; + } @else if $value == flex-end { + -webkit-box-pack: end; + -ms-flex-pack: end; + } @else if $value == space-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + } @else if $value == space-around { + -ms-flex-pack: distribute; + } @else { + -webkit-box-pack: $value; + -ms-flex-pack: $value; + } + -webkit-justify-content: $value; + -moz-justify-content: $value; + justify-content: $value; +} +// Shorter version: +@mixin flex-just($args...) { @include justify-content($args...); } + +//---------------------------------------------------------------------- + +// Flexbox Align Items +// +// Flex items can be aligned in the cross axis of the current line of the +// flex container, similar to 'justify-content' but in the perpendicular +// direction. 'align-items' sets the default alignment for all of the flex +// container's items, including anonymous flex items. 'align-self' allows +// this default alignment to be overridden for individual flex items. (For +// anonymous flex items, 'align-self' always matches the value of 'align-items' +// on their associated flex container.) +// +// Values: flex-start | flex-end | center | baseline | stretch +// Default: stretch +// +// http://w3.org/tr/css3-flexbox/#align-items-property + +@mixin align-items($value: stretch) { + @if $value == flex-start { + -webkit-box-align: start; + -ms-flex-align: start; + } @else if $value == flex-end { + -webkit-box-align: end; + -ms-flex-align: end; + } @else { + -webkit-box-align: $value; + -ms-flex-align: $value; + } + -webkit-align-items: $value; + -moz-align-items: $value; + align-items: $value; +} + +//---------------------------------- + +// Flexbox Align Self +// +// Values: auto | flex-start | flex-end | center | baseline | stretch +// Default: auto + +@mixin align-self($value: auto) { + // No Webkit Box Fallback. + -webkit-align-self: $value; + -moz-align-self: $value; + @if $value == flex-start { + -ms-flex-item-align: start; + } @else if $value == flex-end { + -ms-flex-item-align: end; + } @else { + -ms-flex-item-align: $value; + } + align-self: $value; +} + +//---------------------------------------------------------------------- + +// Flexbox Align Content +// +// The 'align-content' property aligns a flex container's lines within the +// flex container when there is extra space in the cross-axis, similar to +// how 'justify-content' aligns individual items within the main-axis. Note, +// this property has no effect when the flexbox has only a single line. +// +// Values: flex-start | flex-end | center | space-between | space-around | stretch +// Default: stretch +// +// http://w3.org/tr/css3-flexbox/#align-content-property + +@mixin align-content($value: stretch) { + // No Webkit Box Fallback. + -webkit-align-content: $value; + -moz-align-content: $value; + @if $value == flex-start { + -ms-flex-line-pack: start; + } @else if $value == flex-end { + -ms-flex-line-pack: end; + } @else { + -ms-flex-line-pack: $value; + } + align-content: $value; +} diff --git a/_sass/common/classes/_grid.scss b/_sass/common/classes/_grid.scss new file mode 100644 index 0000000..7084e96 --- /dev/null +++ b/_sass/common/classes/_grid.scss @@ -0,0 +1,82 @@ +@use "sass:math"; + +$grid-columns: 12; + +.grid-container { + @include overflow(hidden); +} +.cell { + min-width: 0; +} + +@mixin make-cell($columns) { + @if $columns == "auto" { + @include flex(1 1 0); + width: auto; + } @else if $columns == "shrink" { + @include flex(0 0 auto); + width: auto; + } @else if $columns == "stretch" { + @include flex(1); + } @else { + @include flex(none); + width: percentage(math.div($columns, $grid-columns)); + } +} + +@mixin make-grid-cell($columns, $breakpoint) { + @include media-breakpoint-up($breakpoint) { + .cell--#{breakpoint-infix($breakpoint)}#{$columns} { + @include make-cell($columns); + } + } +} + +.grid { + @include flexbox(); + @include flex-wrap(wrap); + & > { + @each $breakpoint in map-keys($responsive) { + @for $i from 1 through $grid-columns { + @include make-grid-cell($i, $breakpoint); + } + @include make-grid-cell("auto", $breakpoint); + @include make-grid-cell("shrink", $breakpoint); + @include make-grid-cell("stretch", $breakpoint); + } + } +} + +.grid--reverse { + flex-direction: row-reverse; +} + +@mixin make-grid() { + $types: ("p"); + $directions: ("x", "y", ""); + $spacers: (0, 1, 2, 3, 4, 5); + + @each $type in $types { + @each $direction in $directions { + @each $spacer in $spacers { + @if $direction == "" { + .grid--#{$type}-#{$spacer} { + @include make-spacing("m", "", $spacer, true); + .cell { + @include make-spacing($type, "", $spacer); + } + } + } @else { + .grid--#{$type}#{$direction}-#{$spacer} { + @include make-spacing("m", $direction, $spacer, true); + .cell { + @include make-spacing($type, $direction, $spacer); + } + } + } + } + } + } +} + +@include make-grid(); diff --git a/_sass/common/classes/_horizontal-rules.scss b/_sass/common/classes/_horizontal-rules.scss new file mode 100644 index 0000000..74882cf --- /dev/null +++ b/_sass/common/classes/_horizontal-rules.scss @@ -0,0 +1,14 @@ +@mixin horizontal-rules() { + &::before { + display: block; + font-size: map-get($base, font-size-h2); + color: $text-color-l; + text-align: center; + letter-spacing: map-get($spacers, 4); + content: "..."; + } +} + +.horizontal-rules { + @include horizontal-rules(); +} diff --git a/_sass/common/classes/_link.scss b/_sass/common/classes/_link.scss new file mode 100644 index 0000000..5e0cb48 --- /dev/null +++ b/_sass/common/classes/_link.scss @@ -0,0 +1,12 @@ +@mixin link-colors($clr, $hover-clr: default, $active-clr: default, $focus-clr: null, $theme: default, $ignore-path: false) { + @include plain() { + text-decoration: none; + } + @include hover() { + text-decoration: underline; + } + @include active() { + text-decoration: none; + } + @include clickable($clr, null, $hover-clr, null, $active-clr, null, $focus-clr, null, $theme, $ignore-path); +} diff --git a/_sass/common/classes/_media.scss b/_sass/common/classes/_media.scss new file mode 100644 index 0000000..e17544e --- /dev/null +++ b/_sass/common/classes/_media.scss @@ -0,0 +1,17 @@ +@mixin media-breakpoint-down($name, $breakpoints: default) { + @if $breakpoints == default { + $breakpoints: $responsive; + } + @media (max-width: map-get($breakpoints, $name) - 1) { + @content; + } +} + +@mixin media-breakpoint-up($name, $breakpoints: default) { + @if $breakpoints == default { + $breakpoints: $responsive; + } + @media (min-width: map-get($breakpoints, $name)) { + @content; + } +} diff --git a/_sass/common/classes/_overflow.scss b/_sass/common/classes/_overflow.scss new file mode 100644 index 0000000..6529bf0 --- /dev/null +++ b/_sass/common/classes/_overflow.scss @@ -0,0 +1,26 @@ +@mixin overflow($overflow: auto, $direction: default) { + @if $direction == default { + overflow: $overflow; + } @else if $direction == "x" { + @if $overflow == auto { + overflow: hidden; + } + overflow-x: $overflow; + } @else if $direction == "y" { + @if $overflow == auto { + overflow: hidden; + } + overflow-y: $overflow; + } + @if $overflow == auto { + -webkit-overflow-scrolling: touch; + } +} + +.of-auto { + @include overflow(auto); +} + +.of-hidden { + @include overflow(hidden); +} diff --git a/_sass/common/classes/_pseudo.scss b/_sass/common/classes/_pseudo.scss new file mode 100644 index 0000000..53310a9 --- /dev/null +++ b/_sass/common/classes/_pseudo.scss @@ -0,0 +1,33 @@ +@mixin plain() { + &, + &:link, + &:visited { + @content; + } +} + +@mixin hover() { + .root[data-is-touch="false"] &:hover { + @content; + } +} + +@mixin active() { + .root[data-is-touch] &.active, + .root[data-is-touch] &:active { + @content; + } +} + +@mixin focus() { + .root[data-is-touch] &.focus { + @content; + } +} + +@mixin disabled() { + &.disabled, + &:disabled { + @content; + } +} diff --git a/_sass/common/classes/_shadow.scss b/_sass/common/classes/_shadow.scss new file mode 100644 index 0000000..e28b9ca --- /dev/null +++ b/_sass/common/classes/_shadow.scss @@ -0,0 +1,22 @@ +@mixin box-shadow($level: default, $color: default) { + @if $color == default { + $color: #000; + } + @if $level == 0 { + box-shadow: none; + } + @if $level == 1 or $level == default { + box-shadow: 0 4px 8px rgba($color, .23), 0 1px 3px rgba($color, .08), 0 6px 12px rgba($color, .02); + } + @if $level == 2 { + box-shadow: 0 8px 16px rgba($color, .23), 0 2px 6px rgba($color, .08), 0 12px 24px rgba($color, .02); + } +} + +.box-shadow-1 { + @include box-shadow(); +} + +.box-shadow-2 { + @include box-shadow(2); +} diff --git a/_sass/common/classes/_spacing.scss b/_sass/common/classes/_spacing.scss new file mode 100644 index 0000000..c07fdce --- /dev/null +++ b/_sass/common/classes/_spacing.scss @@ -0,0 +1,81 @@ +@mixin make-spacing($property, $side, $spacer, $negative: false) { + + $css_property: null; + $css_sides: null; + + @if ($property == "m") { + $css_property: "margin"; + } @else if ($property == "p") { + $css_property: "padding"; + } + + @if ($side == "t") { + $css_sides: ("top"); + } + @else if ($side == "b") { + $css_sides: ("bottom"); + } + @else if ($side == "l") { + $css_sides: ("left"); + } + @else if ($side == "r") { + $css_sides: ("right"); + } + @else if ($side == "x") { + $css_sides: ("left", "right"); + } + @else if ($side == "y") { + $css_sides: ("top", "bottom"); + } + @else if ($side == "") { + $css_sides: (""); + } + + @each $side in $css_sides { + @if ($spacer == "auto") { + @if ($side == "") { + #{$css_property}: auto; + } @else { + #{$css_property}-#{$side}: auto; + } + } @else { + @if ($side == "") { + @if ($negative == true) { + #{$css_property}: - map-get($spacers, $spacer); + } @else { + #{$css_property}: map-get($spacers, $spacer); + } + } @else { + @if ($negative == true) { + #{$css_property}-#{$side}: - map-get($spacers, $spacer); + } @else { + #{$css_property}-#{$side}: map-get($spacers, $spacer); + } + } + } + } +} + +@mixin make-spacings() { + $propertys: ("m", "p"); + $sides: ("t", "b", "l", "r", "x", "y", ""); + $spacers: (0, 1, 2, 3, 4, 5); + + @each $property in $propertys { + @each $side in $sides { + @each $spacer in $spacers { + .#{$property}#{$side}-#{$spacer} { + @include make-spacing($property, $side, $spacer); + } + } + } + } + + @each $side in $sides { + .m#{$side}-auto { + @include make-spacing("m", $side, "auto"); + } + } +} + +@include make-spacings(); diff --git a/_sass/common/classes/_split-line.scss b/_sass/common/classes/_split-line.scss new file mode 100644 index 0000000..4434c6f --- /dev/null +++ b/_sass/common/classes/_split-line.scss @@ -0,0 +1,24 @@ +@mixin split-line($direction: default, $width: default, $color: default) { + @if $direction == default { + $direction: top; + } + @if $color == default { + $color: $border-color-l; + } + @if $width == default { + $width: 1px; + } + border: 0 solid $color; + @if $direction == top { + border-top-width: $width; + } + @if $direction == right { + border-right-width: $width; + } + @if $direction == bottom { + border-bottom-width: $width; + } + @if $direction == left { + border-left-width: $width; + } +} diff --git a/_sass/common/classes/_text.scss b/_sass/common/classes/_text.scss new file mode 100644 index 0000000..ac36726 --- /dev/null +++ b/_sass/common/classes/_text.scss @@ -0,0 +1,37 @@ +@mixin text-light { + color: $text-color-theme-light; + h1, h2, h3 { + color: $text-color-theme-light-d; + } + h4, h5 { + color: $text-color-theme-light; + } + h6 { + color: $text-color-theme-light-l; + } + a:not(.button) { + @include link-colors($text-color-theme-light, $main-color-1); + } +} +@mixin text-dark { + color: $text-color-theme-dark; + h1, h2, h3 { + color: $text-color-theme-dark-d; + } + h4, h5 { + color: $text-color-theme-dark; + } + h6 { + color: $text-color-theme-dark-l; + } + a:not(.button) { + @include link-colors($text-color-theme-dark, $main-color-1); + } +} + +.text--light { + @include text-light(); +} +.text--dark { + @include text-dark(); +} diff --git a/_sass/common/classes/_transform.scss b/_sass/common/classes/_transform.scss new file mode 100644 index 0000000..a552879 --- /dev/null +++ b/_sass/common/classes/_transform.scss @@ -0,0 +1,4 @@ +@mixin transform($value) { + -webkit-transform: $value; + transform: $value; +} diff --git a/_sass/common/classes/_transition.scss b/_sass/common/classes/_transition.scss new file mode 100644 index 0000000..a58b3f8 --- /dev/null +++ b/_sass/common/classes/_transition.scss @@ -0,0 +1,4 @@ +@mixin transition($value) { + & { -webkit-transition: $value; } + & {transition: $value; } +} diff --git a/_sass/common/classes/_user-select.scss b/_sass/common/classes/_user-select.scss new file mode 100644 index 0000000..104cbb5 --- /dev/null +++ b/_sass/common/classes/_user-select.scss @@ -0,0 +1,6 @@ +@mixin user-select($value) { + -webkit-user-select: $value; + -moz-user-select: $value; + -ms-user-select: $value; + user-select: $value; +} diff --git a/_sass/common/components/_button.scss b/_sass/common/components/_button.scss new file mode 100644 index 0000000..08ce7a9 --- /dev/null +++ b/_sass/common/components/_button.scss @@ -0,0 +1,163 @@ +@mixin button() { + display: inline-block; + font-weight: map-get($button, font-weight); + line-height: 1 !important; + text-decoration: none !important; + cursor: pointer; + outline: none; + @include user-select(none); + svg { + width: 1rem; + height: 1rem; + } + @include disabled() { + cursor: not-allowed; + } +} + +.button { + @include button(); +} + +.button--primary { + @include clickable($text-color-1, $main-color-1); +} + +.button--secondary { + @include clickable($text-color-3, $main-color-3); +} + +.button--success { + @include clickable($text-color-function, $green); +} + +.button--info { + @include clickable($text-color-function, $blue); +} + +.button--warning { + @include clickable($text-color-function, $yellow); +} + +.button--error { + @include clickable($text-color-function, $red); +} + +.button--theme-light { + @include clickable($text-color-theme-dark, $main-color-theme-light); +} + +.button--theme-dark { + @include clickable($text-color-theme-light, $main-color-theme-dark); +} + +.button--outline-primary { + color: $main-color-1; + border: 1px solid $main-color-1; + @include clickable($main-color-1, transparent, $text-color-1, $main-color-1); +} + +.button--outline-secondary { + color: $main-color-3; + border: 1px solid $main-color-3; + @include clickable($main-color-3, transparent, $text-color-3, $main-color-3); +} + +.button--outline-success { + color: $green; + border: 1px solid $green; + @include clickable($green, transparent, $text-color-function, $green); +} + +.button--outline-info { + color: $blue; + border: 1px solid $blue; + @include clickable($blue, transparent, $text-color-function, $blue); +} + +.button--outline-warning { + color: $yellow; + border: 1px solid $yellow; + @include clickable($yellow, transparent, $text-color-function, $yellow); +} + +.button--outline-error { + color: $red; + border: 1px solid $red; + @include clickable($red, transparent, $text-color-function, $red); +} + +.button--outline-theme-light { + color: $main-color-theme-light; + border: 1px solid $main-color-theme-light; + @include clickable($main-color-theme-light, transparent, $text-color-theme-dark, $main-color-theme-light); +} + +.button--outline-theme-dark { + color: $main-color-theme-dark; + border: 1px solid $main-color-theme-dark; + @include clickable($main-color-theme-dark, transparent, $text-color-theme-light, $main-color-theme-dark); +} + +.button--pill { + border-radius: map-get($button, pill-radius); + @extend .button--md; +} + +.button--rounded { + border-radius: map-get($base, border-radius); + @extend .button--md; +} + +.button--circle { + @include inline-flex(); + @include justify-content(center); + @include align-items(center); + border-radius: 50%; + @extend .button--md; +} + +.button--md { + padding: map-get($button, padding-y) map-get($button, padding-x); + font-size: map-get($base, font-size); + &.button--circle { + width: map-get($button, circle-diameter); + height: map-get($button, circle-diameter); + } +} + +.button--xs { + padding: map-get($button, padding-y-xs) map-get($button, padding-x-xs); + font-size: map-get($base, font-size-xs); + &.button--circle { + width: map-get($button, circle-diameter-xs); + height: map-get($button, circle-diameter-xs); + } +} + +.button--sm { + padding: map-get($button, padding-y-sm) map-get($button, padding-x-sm); + font-size: map-get($base, font-size-sm); + &.button--circle { + width: map-get($button, circle-diameter-sm); + height: map-get($button, circle-diameter-sm); + } +} + +.button--lg { + padding: map-get($button, padding-y-lg) map-get($button, padding-x-lg); + font-size: map-get($base, font-size-lg); + &.button--circle { + width: map-get($button, circle-diameter-lg); + height: map-get($button, circle-diameter-lg); + } +} + +.button--xl { + padding: map-get($button, padding-y-xl) map-get($button, padding-x-xl); + font-size: map-get($base, font-size-xl); + &.button--circle { + width: map-get($button, circle-diameter-xl); + height: map-get($button, circle-diameter-xl); + } +} diff --git a/_sass/common/components/_card.scss b/_sass/common/components/_card.scss new file mode 100644 index 0000000..2431461 --- /dev/null +++ b/_sass/common/components/_card.scss @@ -0,0 +1,103 @@ + +.card { + max-width: 18rem; + border-radius: map-get($base, border-radius); + @include box-shadow(); + @include transition(box-shadow map-get($animation, duration) map-get($animation, timing-function)); + & > :first-child { + border-top-left-radius: map-get($base, border-radius); + border-top-right-radius: map-get($base, border-radius); + } + & > :last-child { + border-bottom-right-radius: map-get($base, border-radius); + border-bottom-left-radius: map-get($base, border-radius); + } +} + +.cell { + & > .card { + max-width: unset; + } +} + +.card__content { + padding: map-get($spacers, 2) map-get($spacers, 3); +} + +.card__header, .card__header > a { + @include link-colors($text-color-d, $main-color-1); +} + +.card__image { + position: relative; + width: 100%; + & > img { + display: block; + width: 100%; + height: auto; + border-radius: inherit; + } + & > .overlay { + position: absolute; + width: 100%; + max-height: 100%; + padding: map-get($spacers, 2); + a { + text-decoration: none !important; + } + } + & > .overlay, & > .overlay--top { + top: 0; + bottom: auto; + border-top-left-radius: inherit; + border-top-right-radius: inherit; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } + & > .overlay--bottom { + top: auto; + bottom: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; + } + & > .overlay--full { + top: 0; + bottom: 0; + } + & > .overlay, & > .overlay--dark { + @extend .text--dark; + background-color: rgba(#000, .4); + } + & > .overlay--light { + @extend .text--light; + background: rgba(#fff, .4); + } +} + +.card--clickable { + cursor: pointer; + @include hover() { + @include box-shadow(2); + .card__image { + & > img { + height: inherit; + } + } + } + @include transition(map-get($clickable, transition)); +} + +.card--flat { + @include box-shadow(0); + .card__image { + & > img { + border-radius: map-get($base, border-radius); + } + } + .card__content { + padding-top: 0; + padding-left: 0; + } +} diff --git a/_sass/common/components/_gallery.scss b/_sass/common/components/_gallery.scss new file mode 100644 index 0000000..689eeae --- /dev/null +++ b/_sass/common/components/_gallery.scss @@ -0,0 +1,21 @@ +.gallery { + height: 100%; + @include flexbox(); + @include flex-direction(column); +} + +.gallery__swiper { + @include flex(1); +} + +.gallery-item { + @include flexbox(); + @include align-items(center); + @include justify-content(center); + height: 100%; + overflow: hidden; +} + +.gallery-item__main { + display: block; +} diff --git a/_sass/common/components/_hero.scss b/_sass/common/components/_hero.scss new file mode 100644 index 0000000..81a72cc --- /dev/null +++ b/_sass/common/components/_hero.scss @@ -0,0 +1,70 @@ +.hero { + background-position: 50% 50%; + @include flexbox(); + @include flex-direction(column); + @include justify-content(center); + h1 { font-size: map-get($base, font-size-h1-xl); } + h2 { font-size: map-get($base, font-size-h2-xl); } + h3 { font-size: map-get($base, font-size-h3-xl); } + h4 { font-size: map-get($base, font-size-h4-xl); } + h5 { font-size: map-get($base, font-size-h5-xl); } + h6 { font-size: map-get($base, font-size-h6-xl); } + p { font-size: map-get($base, font-size-xl); } + @include media-breakpoint-down(lg) { + h1 { font-size: map-get($base, font-size-h1-lg); } + h2 { font-size: map-get($base, font-size-h2-lg); } + h3 { font-size: map-get($base, font-size-h3-lg); } + h4 { font-size: map-get($base, font-size-h4-lg); } + h5 { font-size: map-get($base, font-size-h5-lg); } + h6 { font-size: map-get($base, font-size-h6-lg); } + p { font-size: map-get($base, font-size-lg); } + } + @include media-breakpoint-down(md) { + h1 { font-size: map-get($base, font-size-h1-sm); } + h2 { font-size: map-get($base, font-size-h2-sm); } + h3 { font-size: map-get($base, font-size-h3-sm); } + h4 { font-size: map-get($base, font-size-h4-sm); } + h5 { font-size: map-get($base, font-size-h5-sm); } + h6 { font-size: map-get($base, font-size-h6-sm); } + p { font-size: map-get($base, font-size); } + } + background-size: cover; + +} + +.hero--center { + text-align: center; + .menu { + @extend .menu--center; + } +} + +.hero--light { + @extend .text--light; +} + +.hero--dark { + @extend .text--dark; +} + +.hero__content { + margin: map-get($spacers, 5); + @include media-breakpoint-down(lg) { + margin: map-get($spacers, 5) map-get($spacers, 4); + } + @include media-breakpoint-down(md) { + margin: map-get($spacers, 4) map-get($spacers, 3); + } +} + +.heros { + & > .hero { + margin: map-get($spacers, 5); + @include media-breakpoint-down(lg) { + margin: map-get($spacers, 3); + } + @include media-breakpoint-down(md) { + margin: map-get($spacers, 2) 0; + } + } +} diff --git a/_sass/common/components/_image.scss b/_sass/common/components/_image.scss new file mode 100644 index 0000000..9d1a220 --- /dev/null +++ b/_sass/common/components/_image.scss @@ -0,0 +1,19 @@ +.image { + max-width: 100%; + @extend .image--md; +} +.image--md { + width: map-get($image, width); +} +.image--xl { + width: map-get($image, width-xl); +} +.image--lg { + width: map-get($image, width-lg); +} +.image--sm { + width: map-get($image, width-sm); +} +.image--xs { + width: map-get($image, width-xs); +} diff --git a/_sass/common/components/_item.scss b/_sass/common/components/_item.scss new file mode 100644 index 0000000..a1a9fd0 --- /dev/null +++ b/_sass/common/components/_item.scss @@ -0,0 +1,100 @@ +.item { + @include flexbox(); + @include media-breakpoint-down(md) { + @include flex-direction(column); + } +} + +.item__image { + margin-right: map-get($spacers, 3); + & + .item__content { + & > :first-child { + margin-top: 0; + & > :first-child { + margin-top: 0; + } + } + } + @include media-breakpoint-down(md) { + margin-right: 0; + } +} + +.item__content { + @include flex(1); + min-width: 0; +} + +a > .item__header, a.item__header, .item__header > a { + @include link-colors($text-color-d, $main-color-1); +} + +.item__meta { + color: $text-color-l; +} + +.item__description { + &, .article__content { + font-size: map-get($base, font-size-sm); + line-height: map-get($base, line-height); + @include block-elements() { + margin-top: map-get($spacers, 2); + margin-bottom: map-get($spacers, 2); + } + @include heading-elements() { + margin-top: map-get($spacers, 3); + } + h1, h2, h3 { + color: $text-color; + } + h1, h2 { + padding: 0; + border: none; + } + h1 { + font-size: map-get($base, font-size-h1-xs); + } + h2 { + font-size: map-get($base, font-size-h2-xs); + } + h3 { + font-size: map-get($base, font-size-h3-xs); + } + h4 { + font-size: map-get($base, font-size-h4-xs); + } + h5 { + font-size: map-get($base, font-size-h5-xs); + } + h6 { + font-size: map-get($base, font-size-h6-xs); + } + img { + max-height: 32rem; + @include media-breakpoint-down(md) { + max-height: 14rem; + } + } + } +} + +.items { + & > .item { + &:not(:last-child) { + margin-bottom: map-get($spacers, 2); + } + } +} + +.items--divided { + & > .item { + &:not(:first-child) { + padding-top: map-get($spacers, 4); + } + &:not(:last-child) { + padding-bottom: map-get($spacers, 4); + @include split-line(bottom); + } + list-style-type: none; + } +} diff --git a/_sass/common/components/_menu.scss b/_sass/common/components/_menu.scss new file mode 100644 index 0000000..222676a --- /dev/null +++ b/_sass/common/components/_menu.scss @@ -0,0 +1,67 @@ +@mixin menu-direction($direction: default) { + @if $direction == default { + $direction: "horizontal"; + } + @if $direction == "vertical" { + @include flex-direction(column); + } @else { + @include flex-direction(row); + } +} + +@mixin menu($horizontal-spacer: default, $horizontal-item-vertical-spacer: default, $wrap: default) { + @if $horizontal-spacer == default { + $horizontal-spacer: map-get($menu, horizontal-spacer); + } + @if $horizontal-item-vertical-spacer == default { + $horizontal-item-vertical-spacer: map-get($menu, horizontal-item-vertical-spacer); + } + @if $wrap == default { + $wrap: wrap; + } + @include flexbox(); + @include flex-wrap($wrap); + margin-top: 0; + margin-bottom: 0; + & > li { + @if $horizontal-item-vertical-spacer { + margin-top: map-get($spacers, $horizontal-item-vertical-spacer); + margin-bottom: map-get($spacers, $horizontal-item-vertical-spacer); + } + margin-right: map-get($spacers, $horizontal-spacer); + list-style-type: none; + &:last-child { + margin-right: 0; + } + } +} + +.menu { + @include menu(); + @include menu-direction(); + @include align-items(center); +} + +.menu--vertical { + @include menu-direction("vertical"); + @include align-items(normal); + & > li { + margin-right: 0; + } +} + +.menu--inline { + @include inline-flex(); +} + +.menu--center { + @include justify-content(center); +} + +.menu--nowrap { + @include flex-wrap(nowrap); +} + +.menu--grow { + @include flex-grow(1); +} diff --git a/_sass/common/components/_modal.scss b/_sass/common/components/_modal.scss new file mode 100644 index 0000000..cd71628 --- /dev/null +++ b/_sass/common/components/_modal.scss @@ -0,0 +1,39 @@ +@mixin modal($z-index: default, $color: default, $background-color: default) { + @if $z-index == default { + $z-index: map-get($z-indexes, modal); + } + @if $color == default { + $color: $text-color-theme-dark; + } + @if $background-color == default { + $background-color: $mask-color; + } + position: fixed; + top: 0; + left: 0; + z-index: $z-index; + width: 100%; + height: 100%; + color: $color; + touch-action: none; + background-color: $background-color; + opacity: 0; + @include transform(translate(100%, 0)); + @include transition(#{opacity map-get($animation, duration) map-get($animation, timing-function), + transform 0s map-get($animation, duration) map-get($animation, timing-function)}); +} +@mixin modal--show() { + opacity: 1; + @include transform(translate(0, 0)); + @include transition(#{opacity map-get($animation, duration) map-get($animation, timing-function)}); +} + +.modal { + @include modal(); +} +.modal--show { + @include modal--show(); +} +.modal--overflow { + @include overflow(auto); +} diff --git a/_sass/common/components/_swiper.scss b/_sass/common/components/_swiper.scss new file mode 100644 index 0000000..3493a62 --- /dev/null +++ b/_sass/common/components/_swiper.scss @@ -0,0 +1,48 @@ +.swiper { + position: relative; + @include overflow(hidden); +} + +.swiper__wrapper, .swiper__slide { + width: 100%; + height: 100%; +} + +.swiper__wrapper { + @include flexbox(); +} + +.swiper__wrapper--animation { + @include transition(transform map-get($animation, duration) map-get($animation, timing-function)); +} + +.swiper__slide { + @include flex-shrink(0); + & > img { + max-width: 100%; + } +} + +.swiper__button { + position: absolute; + top: 50%; + @extend .button, .button--circle; + @include transform(translate(0, -50%)); + @include clickable($text-color-d, rgba($main-color-3, .4)); +} + +.swiper--light .swiper__button { + @include clickable($text-color-theme-light, rgba($main-color-theme-dark, .4)); +} + +.swiper--dark .swiper__button { + @include clickable($text-color-theme-dark, rgba($main-color-theme-light, .4)); +} + +.swiper__button--prev { + left: 10px; +} + +.swiper__button--next { + right: 10px; +} diff --git a/_sass/common/components/_toc.scss b/_sass/common/components/_toc.scss new file mode 100644 index 0000000..ee16545 --- /dev/null +++ b/_sass/common/components/_toc.scss @@ -0,0 +1,124 @@ +ul.toc { + display: block; + margin: 0; + color: $text-color; + list-style-type: none; + & > li { + margin: map-get($spacers, 1) * 0.5 0; + a { + display: inline-block; + margin: map-get($spacers, 1) * 0.25 0; + text-decoration: none !important; + } + } + .toc-h1, + .toc-h2, + .toc-h3, + .toc-h4, + .toc-h5, + .toc-h6 { + a { + @include link-colors($text-color, $main-color-1); + } + &.active { + a { + @include link-colors($main-color-1); + } + } + } + + .toc-h2, + .toc-h3, + .toc-h4, + .toc-h5, + .toc-h6 { + &, a { + font-size: map-get($base, font-size-xs); + font-weight: map-get($base, font-weight); + line-height: map-get($base, line-height-xs); + } + } + .toc-h1 { + @include split-line(bottom); + padding: map-get($spacers, 2) 0 map-get($spacers, 1) 0; + margin-bottom: map-get($spacers, 2); + color: $text-color-d; + &, a { + font-size: map-get($base, font-size-sm); + font-weight: map-get($base, font-weight-bold); + line-height: map-get($base, line-height-sm); + } + a { + @include link-colors($text-color-d, $main-color-1); + } + } + .toc-h2 { + &, a { + font-weight: map-get($base, font-weight-bold); + } + } + .toc-h3 { + margin-left: map-get($spacers, 3); + } + .toc-h4 { + margin-left: map-get($spacers, 3) * 2; + } + .toc-h5, + .toc-h6 { + margin-left: map-get($spacers, 3) * 3; + } + .toc-h6 { + color: $text-color-l; + a { + @include link-colors($text-color-l, $main-color-1); + } + } +} + +ul.toc--ellipsis { + & > li { + @include overflow(hidden); + text-overflow: ellipsis; + white-space: nowrap; + } +} + +ul.toc--navigator { + & > li { + a { + padding-left: map-get($spacers, 2); + margin: map-get($spacers, 1) 0; + } + &.active { + a { + margin-left: -4px; + @include split-line(left, 4px, $main-color-1); + } + } + } + .toc-h2, + .toc-h3, + .toc-h4 { + color: $text-color-l; + a { + @include link-colors($text-color-l); + } + } + .toc-h1 { + &, a { + font-size: map-get($base, font-size); + line-height: map-get($base, line-height); + } + color: $text-color; + a { + @include link-colors($text-color-d); + } + } + .toc-h2 { + &, a { + font-size: map-get($base, font-size-sm); + font-weight: map-get($base, font-weight-bold); + line-height: map-get($base, line-height-sm); + } + } +} \ No newline at end of file diff --git a/_sass/components/_article-content.scss b/_sass/components/_article-content.scss new file mode 100644 index 0000000..6dbda0d --- /dev/null +++ b/_sass/components/_article-content.scss @@ -0,0 +1,221 @@ +.article__content { + line-height: map-get($base, line-height-lg); + word-wrap: break-word; + @media print { + line-height: map-get($base, line-height); + } + @include block-elements() { + margin: map-get($spacers, 3) 0; + @media print { + margin: map-get($spacers, 2) 0; + } + } + @include heading-elements() { + position: relative; + margin-top: map-get($spacers, 4); + @media print { + margin-top: map-get($spacers, 3); + } + & > .anchor { + @include link-colors($border-color, $main-color-1); + margin-left: map-get($spacers, 1); + text-decoration: none; + visibility: hidden; + opacity: 0; + & > i { + font-size: map-get($base, font-size-sm); + } + } + @include hover() { + & > .anchor { + cursor: pointer; + visibility: visible; + opacity: 1; + } + } + } + h1, + h2 { + @include split-line(bottom); + } + hr { + border: none; + @include horizontal-rules(); + } + blockquote { + padding-left: map-get($spacers, 3); + font-size: map-get($base, font-size-sm); + color: $text-color-l; + @include split-line(left, 4px, $border-color); + p { + margin: map-get($spacers, 2) 0; + } + & > :last-child { + margin-bottom: 0; + } + } + img:not(.emoji) { + max-width: 100%; + vertical-align: middle; + } + .emoji { + display: inline-block; + width: map-get($base, line-height-lg) * .7rem; + height: map-get($base, line-height-lg) * .7rem; + vertical-align: text-bottom; + } + .footnotes { + @include split-line(); + margin-top: map-get($spacers, 5); + @media print { + margin-top: map-get($spacers, 2) * 2; + } + } + code { + padding: map-get($spacers, 1) map-get($spacers, 2); + background-color: $text-background-color; + border-radius: map-get($base, border-radius); + span { + padding: 0; + margin: 0; + } + } + pre { + @include overflow(auto); + & > code { + padding: 0; + word-wrap: normal; + background-color: transparent; + &.language-mermaid, &.language-chart { + svg { + width: 100%; + } + display: none; + &[data-processed] { + display: block; + } + } + } + } + .highlighter-rouge > .highlight, figure.highlight { + & > pre { + padding: map-get($spacers, 3) 0 map-get($spacers, 3) map-get($spacers, 3); + margin: 0; + background-color: $text-background-color; + border-radius: map-get($base, border-radius); + & > code { + display: block; + } + } + } + figure.highlight { + &::before { + display: block; + padding: map-get($spacers, 2) map-get($spacers, 3) map-get($spacers, 2) 0; + font-weight: map-get($base, font-weight-bold); + color: $decorate-color; + text-align: right; + text-transform: uppercase; + content: attr(data-lang); + background-color: $text-background-color; + border-top-left-radius: map-get($base, border-radius); + border-top-right-radius: map-get($base, border-radius); + } + & > pre { + padding-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + & > code { + & > .rouge-table { + width: auto; + margin: 0 0 #{- map-get($spacers, 3)} #{- map-get($spacers, 3)}; + tbody, tr, td { + padding-top: 0; + padding-bottom: 0; + border: none; + } + & > tbody { + @include flexbox; + & > tr { + width: 100%; + @include flexbox; + & > .code { + padding: 0 0 map-get($spacers, 3) map-get($spacers, 2); + @include overflow(auto); + } + } + } + tbody td { + &.gl { + padding-left: map-get($spacers, 3); + } + & > pre { + display: block; + margin: 0; + border-radius: 0; + @include overflow(auto); + &.lineno { + color: $text-color-l; + @include user-select(none); + } + } + } + } + } + } + } + ul, ol { + margin-left: map-get($spacers, 4); + ul, ol { + margin-top: 0; + margin-bottom: 0; + } + li { + p { + margin: map-get($spacers, 2); + @media print { + margin: map-get($spacers, 1); + } + } + } + } + dl { + dt, dd { + p { + margin: map-get($spacers, 2); + @media print { + margin: map-get($spacers, 1); + } + } + } + dt { + font-weight: map-get($base, font-weight-bold); + } + dd { + margin-left: 2rem; + } + } + ul.task-list { + margin-left: 0; + list-style-type: none; + ul, ol { + margin-left: map-get($spacers, 4); + } + } + table { + display: block; + width: 100%; + border-collapse: collapse; + @include overflow(auto); + thead, tfoot { + background-color: $text-background-color; + } + th, td { + padding: map-get($spacers, 2); + border: 1px solid $border-color-l; + } + th { + font-weight: map-get($base, font-weight-bold); + } + } +} diff --git a/_sass/components/_article-footer.scss b/_sass/components/_article-footer.scss new file mode 100644 index 0000000..575bc8d --- /dev/null +++ b/_sass/components/_article-footer.scss @@ -0,0 +1,17 @@ +.article__footer { + margin: map-get($spacers, 4) 0; + font-size: map-get($base, font-size-sm); +} + +.article__license, .article__subscribe { + a { + @include link-colors($text-color, $main-color-1); + } +} + +.article__license { + color: $text-color-l; + img { + height: map-get($base, font-size) * 1.6; + } +} diff --git a/_sass/components/_article-header.scss b/_sass/components/_article-header.scss new file mode 100644 index 0000000..002cc8c --- /dev/null +++ b/_sass/components/_article-header.scss @@ -0,0 +1,50 @@ +.article__header { + margin-top: map-get($spacers, 5); + margin-bottom: map-get($spacers, 4); + @include media-breakpoint-down(md) { + margin-top: map-get($spacers, 4); + } + header, h1 { + display: inline; + } + h1 { + word-wrap: break-word; + } + .split-space { + @include user-select(none); + } + .edit-on-github { + text-decoration: none !important; + } +} + +.article__header--overlay { + .overlay { + min-height: 36rem; + padding-top: map-get($spacers, 5) * 2; + padding-bottom: map-get($spacers, 5) * 2; + @include media-breakpoint-down(md) { + min-height: 29rem; + padding-top: map-get($spacers, 5); + padding-bottom: map-get($spacers, 5); + } + } + .overlay__excerpt { + font-size: map-get($base, font-size-h3-xl); + @include media-breakpoint-down(lg) { + font-size: map-get($base, font-size-h3-lg); + } + @include media-breakpoint-down(md) { + font-size: map-get($base, font-size-h3-sm); + } + font-weight: map-get($base, font-weight-bold); + } + + .article__header { + margin-top: 0; + } +} + +.article__header--cover { + width: 100%; +} diff --git a/_sass/components/_article-info.scss b/_sass/components/_article-info.scss new file mode 100644 index 0000000..bebf9b5 --- /dev/null +++ b/_sass/components/_article-info.scss @@ -0,0 +1,25 @@ +.article__info { + font-size: map-get($base, font-size-sm); + color: $text-color-l; + .left-col { + float: left; + @include media-breakpoint-down(md) { + float: none; + } + } + .right-col { + float: right; + margin-left: map-get($button, padding-x-sm); + @include media-breakpoint-down(md) { + float: none; + } + & > li { + &:not(:last-child) { + @include split-line(right, default, $text-color-l); + padding-right: map-get($spacers, 2); + margin-right: map-get($spacers, 2); + line-height: map-get($base, line-height-xs); + } + } + } +} diff --git a/_sass/components/_article-list.scss b/_sass/components/_article-list.scss new file mode 100644 index 0000000..c59550d --- /dev/null +++ b/_sass/components/_article-list.scss @@ -0,0 +1,18 @@ +.article-list { + .item__meta { + padding: 0 map-get($spacers, 3) 0 0; + font-family: map-get($base, font-family-code); + font-size: map-get($base, font-size-sm); + white-space: nowrap; + } + &.grid--sm { + .card__header { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } +} +.article-list__group-header { + margin-top: map-get($spacers, 3); +} diff --git a/_sass/components/_author-links.scss b/_sass/components/_author-links.scss new file mode 100644 index 0000000..efe09c2 --- /dev/null +++ b/_sass/components/_author-links.scss @@ -0,0 +1,43 @@ +.author-links { + & > ul { + margin: 0; + & > li > { + .mail-button { + @include clickable($text-color-1, $mail-color); + } + .facebook-button { + @include clickable($text-color-1, $facebook-color); + } + .twitter-button { + @include clickable($text-color-1, $twitter-color); + } + .weibo-button { + @include clickable($text-color-1, $weibo-color); + } + .googlepluse-button { + @include clickable($text-color-1, $google-plus-color); + } + .telegram-button { + @include clickable($text-color-1, $telegram-color); + } + .medium-button { + @include clickable($text-color-1, $medium-color); + } + .zhihu-button { + @include clickable($text-color-1, $zhihu-color); + } + .douban-button { + @include clickable($text-color-1, $douban-color); + } + .linkedin-button { + @include clickable($text-color-1, $linkedin-color); + } + .github-button { + @include clickable($text-color-1, $github-color); + } + .npm-button { + @include clickable($text-color-1, $npm-color); + } + } + } +} diff --git a/_sass/components/_author-profile.scss b/_sass/components/_author-profile.scss new file mode 100644 index 0000000..b506715 --- /dev/null +++ b/_sass/components/_author-profile.scss @@ -0,0 +1,26 @@ +.author-profile { + max-width: 25rem; + padding: map-get($spacers, 2) map-get($spacers, 3); + margin: map-get($spacers, 4) 0; + font-size: map-get($base, font-size-sm); + background-color: $text-background-color; + @include media-breakpoint-down(md) { + text-align: center; + } +} +.author-profile__avatar { + width: 5rem; + height: 5rem; + margin-top: map-get($spacers, 2); + border-radius: 50%; +} +.author-profile__name { + font-size: map-get($base, font-size-lg); + font-weight: map-get($base, font-weight-bold); + a { + @include link-colors($text-color, $main-color-1); + } +} +.author-profile__links { + @include overflow(auto); +} diff --git a/_sass/components/_extensions.scss b/_sass/components/_extensions.scss new file mode 100644 index 0000000..6bf58ec --- /dev/null +++ b/_sass/components/_extensions.scss @@ -0,0 +1,36 @@ +@use 'sass:math'; +.extensions { + margin: map-get($spacers, 3) 0; + @extend .d-print-none; +} + +.extensions--video, .extensions--slide, .extensions--demo { + position: relative; + width: 100%; + padding: 0; + & > iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } +} + +.extensions--video { + padding-top: math.div(315, 560); +} + +.extensions--slide { + padding-top: math.div(487, 599); +} + +.extensions--demo { + min-height: 340px; + padding-top: math.div(315, 560); +} + +.extensions--audio { + display: block; + max-width: 100% !important; +} diff --git a/_sass/components/_footer.scss b/_sass/components/_footer.scss new file mode 100644 index 0000000..63ed8fe --- /dev/null +++ b/_sass/components/_footer.scss @@ -0,0 +1,33 @@ +/** + * Site Info + */ + +.footer { + @include flexbox(); + @include align-items(center); + color: $footer-text-color; + background: $footer-background; + a { + @include link-colors ($footer-text-color, $main-color-1); + } + .site-info { + font-size: map-get($base, font-size-xs); + text-align: center; + .menu { + line-height: map-get($base, line-height-xs); + & > * { + &:not(:last-child) { + @include split-line(right, default, $footer-text-color); + padding-right: map-get($spacers, 1); + margin-right: map-get($spacers, 1); + } + } + } + } +} +.footer__author-links { + @include overflow(auto); + .author-links { + text-align: center; + } +} diff --git a/_sass/components/_header.scss b/_sass/components/_header.scss new file mode 100644 index 0000000..44d108d --- /dev/null +++ b/_sass/components/_header.scss @@ -0,0 +1,123 @@ +.header { + background: $header-background; + a { + font-weight: map-get($base, font-weight); + text-decoration: none !important; + @include link-colors($header-text-color, $main-color-1); + } + .main { + @include flexbox(); + @include media-breakpoint-down(md) { + @include flex-direction(column); + } + } +} + +.header--dark { + @extend .text--dark; + background: rgba(#000, .15); + .navigation__item--active { + &::after { + @include split-line(bottom, 4px, $text-color-theme-dark); + } + } +} + +.header--light { + @extend .text--light; + background: rgba(#fff, .15); + .navigation__item--active { + &::after { + @include split-line(bottom, 4px, $text-color-theme-light); + } + } +} + +.header__title { + @include menu(3, 0); + @include align-items(center); + @include flex-wrap(nowrap); + @include flex(1); + height: map-get($layout, header-height); + margin-right: map-get($spacers, 3); + white-space: nowrap; + @include media-breakpoint-down(md) { + height: auto; + margin-right: 0; + } + & > .header__brand { + @include flex(1); + @include media-breakpoint-down(md) { + height: map-get($layout, header-height-sm); + } + } + & > .search-button { + display: none; + margin-left: map-get($spacers, 2); + @include media-breakpoint-down(md) { + @include flexbox(); + } + } +} + +.header__brand { + @include flexbox(); + @include align-items(center); + & > svg { + width: map-get($base, font-size-h4) * 1.6; + height: map-get($base, font-size-h4) * 1.6; + margin-right: map-get($spacers, 3); + vertical-align: middle; + @include media-breakpoint-down(md) { + width: map-get($base, font-size-h4) * 1.2; + height: map-get($base, font-size-h4) * 1.2; + } + } + & > a { + display: inline-block; + font-size: map-get($base, font-size-h4); + @include media-breakpoint-down(md) { + font-size: map-get($base, font-size-h4-small); + } + } +} + +.navigation { + @include overflow(auto, "x"); + & > ul { + height: map-get($layout, header-height); + padding-bottom: 0; + margin: 0; + @include media-breakpoint-down(md) { + padding-bottom: 4px; + margin: -4px 0 0 0; + } + @include menu(3, 2, nowrap); + @include align-items(center); + @include media-breakpoint-down(md) { + height: auto; + } + .search-button { + @include media-breakpoint-down(md) { + display: none; + } + } + } +} + +.navigation__item { + &::after { + display: block; + margin-bottom: -4px; + content: ""; + @include split-line(bottom, 4px, transparent); + } +} +.navigation__item--active { + a { + @include link-colors($main-color-1, $main-color-1); + } + &::after { + @include split-line(bottom, 4px, $main-color-1); + } +} diff --git a/_sass/components/_lightbox.scss b/_sass/components/_lightbox.scss new file mode 100644 index 0000000..4dad32b --- /dev/null +++ b/_sass/components/_lightbox.scss @@ -0,0 +1,7 @@ +.popup-image { + cursor: pointer; + @include hover() { + @include box-shadow(2); + } + @include transition(map-get($clickable, transition)); +} diff --git a/_sass/components/_main.scss b/_sass/components/_main.scss new file mode 100644 index 0000000..265c727 --- /dev/null +++ b/_sass/components/_main.scss @@ -0,0 +1,28 @@ +.main { + width: 100%; + max-width: map-get($layout, content-max-width); + padding: 0 map-get($spacers, 5); + margin: 0 auto; + @include media-breakpoint-down(lg) { + padding: 0 map-get($spacers, 4); + } + @include media-breakpoint-down(md) { + padding: 0 map-get($spacers, 3); + } +} + +.has-aside { + .main { + max-width: map-get($layout, content-max-width) + map-get($layout, aside-width); + @include media-breakpoint-down(lg) { + max-width: map-get($layout, content-max-width); + } + } +} + +.full-width { + .main { + width: 100%; + max-width: 100%; + } +} diff --git a/_sass/components/_search.scss b/_sass/components/_search.scss new file mode 100644 index 0000000..d28dabc --- /dev/null +++ b/_sass/components/_search.scss @@ -0,0 +1,186 @@ +.search { + @include overflow(auto); + +} +.search--google-custom-search-engine { + .main { + padding-top: map-get($spacers, 4); + padding-bottom: map-get($spacers, 4); + @include media-breakpoint-down(md) { + position: absolute; + padding: 0; + } + } +} + +.search__header { + margin-top: map-get($spacers, 4); + font-size: map-get($base, font-size-h1); + font-weight: map-get($base, font-weight-bold); + color: $text-color-d; + .search--light & { + color: $text-color-theme-light-d; + } + .search--dark & { + color: $text-color-theme-dark-d; + } + @include media-breakpoint-down(md) { + display: none; + } +} + +.search-bar { + @include flexbox(); + margin: map-get($spacers, 3) 0 map-get($spacers, 4) 0; +} + +.search-box { + position: relative; + width: 100%; + max-width: 22rem; + @include media-breakpoint-down(md) { + width: 100%; + max-width: none; + } + & > input { + display: inline-block; + width: 100%; + height: $button-height-lg; + padding: 0 2rem; + margin: 0; + line-height: 1 !important; + color: $text-color; + background-color: transparent; + border: 2px solid $border-color; + border-radius: map-get($button, pill-radius); + -webkit-appearance: none; /* fix iOS don't display box-shadow properly */ + @include transition(box-shadow map-get($animation, duration) map-get($animation, timing-function)); + @include focus { + box-shadow: 0 0 0 2px rgba($border-color, .4); + } + .search--light & { + color: $text-color-theme-light; + border-color: $text-color-theme-light; + @include focus { + box-shadow: 0 0 0 2px rgba($text-color-theme-light, .4); + } + } + .search--dark & { + color: $text-color-theme-dark; + border-color: $text-color-theme-dark; + @include focus { + box-shadow: 0 0 0 2px rgba($text-color-theme-dark, .4); + } + } + } + & > .search-box__icon-search { + color: $text-color-l; + .search--light & { + color: $text-color-theme-light-l; + } + .search--dark & { + color: $text-color-theme-dark-l; + } + } + & > .search-box__icon-clear { + & > a { + @include link-colors($text-color); + .search--light & { + @include link-colors($text-color-theme-light); + } + .search--dark & { + @include link-colors($text-color-theme-dark); + } + cursor: pointer; + } + } + & > .search-box__icon-search, & > .search-box__icon-clear { + position: absolute; + width: $button-height-lg; + height: $button-height-lg; + line-height: $button-height-lg; + text-align: center; + vertical-align: middle; + } + &.not-empty > .search-box__icon-clear { + display: block; + } + & > .search-box__icon-clear { + top: 0; + right: 0; + display: none; + } + & > .search-box__icon-search { + top: 0; + left: 0; + } +} + +.search__cancel { + margin-left: map-get($spacers, 2); + font-weight: map-get($base, font-weight-bold); + white-space: nowrap; +} + +.search-result { + margin: map-get($spacers, 4) 0; + font-size: map-get($base, font-size-sm); + line-height: map-get($base, line-height-sm); +} + +.search-result__header { + margin: map-get($spacers, 3) 0 map-get($spacers, 2) 0; + font-size: map-get($base, font-size-lg); + font-weight: map-get($base, font-weight-bold); + color: $text-color-l; + text-transform: uppercase; + .search--light & { + color: $text-color-theme-light-l; + } + .search--dark & { + color: $text-color-theme-dark-l; + } +} + +.search-result__item { + list-style-type: none; + a { + padding: map-get($spacers, 1) map-get($spacers, 3); + @include transition(none); + @include clickable($text-color, transparent, $text-color-3, $main-color-3); + .search--light & { + @include clickable($text-color-theme-light, transparent, $text-color-theme-dark, $main-color-theme-light); + } + .search--dark & { + @include clickable($text-color-theme-dark, transparent, $text-color-theme-light, $main-color-theme-dark); + } + } + &.active { + a { + @include plain() { + color: $text-color-3; + background-color: $main-color-3; + .search--light & { + color: $text-color-theme-dark; + background-color: $main-color-theme-light; + } + .search--dark & { + color: $text-color-theme-light; + background-color: $main-color-theme-dark; + } + } + @include active() { + @include transition(map-get($clickable, transition)); + } + } + } +} + +// google search +.gsc-control-cse { + *, + ::before, + ::after { + box-sizing: initial; + } +} diff --git a/_sass/components/_tags.scss b/_sass/components/_tags.scss new file mode 100644 index 0000000..946b1b6 --- /dev/null +++ b/_sass/components/_tags.scss @@ -0,0 +1,24 @@ +.site-tags { + .tag-button { + @include clickable($text-color-3, $main-color-3, default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2); + & > .tag-button__count { + display: inline-block; + margin-left: map-get($spacers, 1); + font-size: map-get($base, font-size-xs); + line-height: 1; + vertical-align: top; + } + } + .tag-button-1 { + @include clickable($text-color-1, rgba($main-color-1, .4), default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2); + } + .tag-button-2 { + @include clickable($text-color-1, rgba($main-color-1, .55), default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2); + } + .tag-button-3 { + @include clickable($text-color-1, rgba($main-color-1, .7), default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2); + } + .tag-button-4 { + @include clickable($text-color-1, rgba($main-color-1, .9), default, default, $text-color-2,$main-color-2, $text-color-2,$main-color-2); + } +} diff --git a/_sass/custom.scss b/_sass/custom.scss new file mode 100644 index 0000000..aa7b944 --- /dev/null +++ b/_sass/custom.scss @@ -0,0 +1,3 @@ +/* start custom scss snippet */ + +/* end custom scss snippet */ diff --git a/_sass/layout/_404.scss b/_sass/layout/_404.scss new file mode 100644 index 0000000..e206f76 --- /dev/null +++ b/_sass/layout/_404.scss @@ -0,0 +1,14 @@ +.layout--404 { + .sign { + display: table; + margin: map-get($spacers, 4) auto; + margin-top: map-get($spacers, 5); + h1 { + font-size: map-get($base, font-size-xl) * 4; + line-height: 1; + } + p { + font-size: map-get($base, font-size-xl) * 1.2; + } + } +} diff --git a/_sass/layout/_archive.scss b/_sass/layout/_archive.scss new file mode 100644 index 0000000..7dc417f --- /dev/null +++ b/_sass/layout/_archive.scss @@ -0,0 +1,5 @@ +.layout--archive { + & > .layout--archive__result { + margin: map-get($spacers, 4) 0; + } +} diff --git a/_sass/layout/_article.scss b/_sass/layout/_article.scss new file mode 100644 index 0000000..dd83384 --- /dev/null +++ b/_sass/layout/_article.scss @@ -0,0 +1,29 @@ +.article__sharing { + margin: map-get($spacers, 4) 0; +} +.article__section-navigator { + padding-top: map-get($spacers, 3); + margin: map-get($spacers, 4) 0 map-get($spacers, 3) 0; + word-wrap: break-word; + @include split-line(top, 4px); + & > .previous, & > .next { + width: 50%; + & > span { + font-weight: map-get($base, font-weight-bold); + color: $text-color-l; + } + & > a { + display: block; + @include link-colors($text-color, $main-color-1); + } + } + & > .previous { + float: left; + padding-right: map-get($spacers, 2); + } + & > .next { + float: right; + padding-left: map-get($spacers, 2); + text-align: right; + } +} diff --git a/_sass/layout/_articles.scss b/_sass/layout/_articles.scss new file mode 100644 index 0000000..85f258c --- /dev/null +++ b/_sass/layout/_articles.scss @@ -0,0 +1,17 @@ +.layout--articles { + margin: map-get($spacers, 4) 0; + margin-top: map-get($spacers, 5); + @include media-breakpoint-down(md) { + margin-top: map-get($spacers, 4); + } + .card__header { + font-size: map-get($base, font-size); + } + .card__image { + & > .overlay { + &, .card__header { + font-size: map-get($base, font-size-sm); + } + } + } +} diff --git a/_sass/layout/_base.scss b/_sass/layout/_base.scss new file mode 100644 index 0000000..6200ec5 --- /dev/null +++ b/_sass/layout/_base.scss @@ -0,0 +1,6 @@ +.icon { + display: block; + > svg { + display: block; + } +} diff --git a/_sass/layout/_home.scss b/_sass/layout/_home.scss new file mode 100644 index 0000000..298e6b9 --- /dev/null +++ b/_sass/layout/_home.scss @@ -0,0 +1,15 @@ +.layout--home { + .pagination { + margin: map-get($spacers, 4) 0; + } + .pagination__menu { + max-width: 100%; + @include overflow(auto); + } + .pagination__omit { + color: $text-color-l; + } + .items { + margin-top: map-get($spacers, 4) * 1.5; + } +} diff --git a/_sass/layout/_landing.scss b/_sass/layout/_landing.scss new file mode 100644 index 0000000..752d4e7 --- /dev/null +++ b/_sass/layout/_landing.scss @@ -0,0 +1,23 @@ +.layout--landing { + .heros { + max-width: map-get($layout, content-max-width) * 2; + margin-right: auto; + margin-left: auto; + } + .hero { + img { + display: block; + width: 100%; + margin: 0 auto; + } + } + .hero__content { + margin-bottom: 0; + } + .hero__cover { + max-width: map-get($layout, content-max-width); + } + .hero__cover--full-width { + max-width: none; + } +} diff --git a/_sass/layout/_page.scss b/_sass/layout/_page.scss new file mode 100644 index 0000000..bb42331 --- /dev/null +++ b/_sass/layout/_page.scss @@ -0,0 +1,165 @@ +body, +html, +.root, +.layout--page { + height: 100%; +} + +.layout--page { + &.layout--page--sidebar { + .page__viewport, + .page__grid { + height: 100%; + } + @include media-breakpoint-down(lg) { + .page__main { + @include overflow(unset); + } + } + } +} + +.page__main { + height: 100%; + color: $text-color; + .col-aside { + display: none; + & > aside { + position: absolute; + width: map-get($layout, aside-width); + @include overflow(hidden); + } + } +} + +.page__main-inner { + position: relative; + @include flexbox(); + @include flex-direction(column); + min-height: 100%; + background-color: $background-color; +} + +.page__content { + @include flex(1); + width: 100%; + margin: 0 auto; + @media print { + padding-bottom: 0; + } +} +.hide-footer { + .page__content { + padding-bottom: 0; + } +} + +.page__comments { + margin: map-get($spacers, 4) 0; +} + +.page__aside { + .toc-aside { + padding: map-get($spacers, 5) 0 map-get($spacers, 3) map-get($spacers, 5); + } +} + +.page__actions { + position: fixed; + bottom: map-get($spacers, 5); + left: map-get($spacers, 3); + z-index: map-get($z-indexes, actions); + display: none; +} + +.page__sidebar { + z-index: map-get($z-indexes, sidebar); + display: block; + width: 80%; + max-width: map-get($layout, sidebar-width); + height: 100%; + background-color: $background-color; + @include split-line(right); + @include transition(transform map-get($animation, duration)); + @include overflow(auto); + .sidebar-toc { + padding: map-get($spacers, 3) map-get($spacers, 3) map-get($spacers, 4) map-get($spacers, 4); + } +} +.sidebar-button { + @include clickable($text-color-d, rgba($main-color-3, .75)); +} + +.page__mask { + @include modal(map-get($z-indexes, mask)); + cursor: pointer; +} +.layout--page--sidebar { + .page__main { + @include overflow(auto); + @media print { + @include overflow(unset); + } + } +} + +.has-aside { + .col-aside { + position: relative; + display: block; + width: map-get($layout, aside-width); + & > aside { + &.fixed { + position: fixed; + -webkit-font-smoothing: subpixel-antialiased; + } + } + @include media-breakpoint-down(lg) { + display: none; + } + } +} + +@include media-breakpoint-down(lg) { + .page__sidebar { + position: fixed; + @include transform(translate(- map-get($layout, sidebar-width), 0)); + } + + .page__actions { + display: block; + } + + .show-sidebar { + .page__actions { + visibility: hidden; + } + .page__sidebar { + @include transform(translate(0)); + } + .page__mask { + @include modal--show(); + } + } +} + +.hero--light { + .article__info { + color: $text-color-theme-light; + } +} +.hero--dark { + .article__info { + color: $text-color-theme-dark; + } +} + +.page__main--immersive { + .page__header { + position: absolute; + width: 100%; + } + .hero__content { + padding-top: map-get($layout, header-height); + } +} diff --git a/_sass/skins/_chocolate.scss b/_sass/skins/_chocolate.scss new file mode 100644 index 0000000..b2098d5 --- /dev/null +++ b/_sass/skins/_chocolate.scss @@ -0,0 +1,74 @@ +/// +// Skin: Chocolate +// Author: Tian Qi +// Email: kitian616@outlook.com +/// + +// main colors +$main-color-1: #563a20; +$text-color-1: rgba(#fff, .85); + +$main-color-2: #8a2827; +$text-color-2: rgba(#fff, .85); + +$main-color-3: #b49b92; +$text-color-3: rgba(#fff, .85); + +$main-color-theme-light: rgba(#000, .9); +$main-color-theme-dark: rgba(#fff, .9); + +// page background +$background-color: #d2c2bc; + +// text colors +$text-color-theme-light-d: rgba(#000, .95); +$text-color-theme-light: rgba(#000, .85); +$text-color-theme-light-l: rgba(#000, .5); + +$text-color-theme-dark-d: #fff; +$text-color-theme-dark: rgba(#fff, .95); +$text-color-theme-dark-l: rgba(#fff, .85); + +$text-color-d: $text-color-theme-light-d; +$text-color: $text-color-theme-light; +$text-color-l: $text-color-theme-light-l; + +$text-background-color: rgba(#000, .05); + +// header and footer colors +$header-text-color: $text-color-3; +$header-background: $main-color-3; + +$footer-text-color: $text-color-3; +$footer-background: $main-color-3; + +// border and shadow colors +$border-color: $main-color-3; +$border-color-l: mix(#000, $background-color, 10%); +$decorate-color: rgba(#000, .1); +$mask-color: rgba(#000, .9); +$select-color: rgba($main-color-3, .5); + +// function colors +$green: #5baa34; +$blue: #1c7cd4; +$yellow: #c9771f; +$red: #da3d45; +$text-color-function: rgba(#fff, .85); + +// logo colors +$mail-color: #0072c5; +$facebook-color: #4267b2; +$twitter-color: #1da1f2; +$weibo-color: #e6162d; +$google-plus-color:#ea4335; +$telegram-color: #32afed; +$medium-color: #000; +$zhihu-color: #0084ff; +$douban-color: #42bd56; +$linkedin-color: #1074af; +$github-color: #000; +$npm-color: #fff; + +// highlight colors +@import "skins/highlight/tomorrow-night-eighties"; diff --git a/_sass/skins/_dark.scss b/_sass/skins/_dark.scss new file mode 100644 index 0000000..7250a87 --- /dev/null +++ b/_sass/skins/_dark.scss @@ -0,0 +1,74 @@ +/// +// Skin: Dark +// Author: Tian Qi +// Email: kitian616@outlook.com +/// + +// main colors +$main-color-1: #ff9500; +$text-color-1: rgba(#fff, .8); + +$main-color-2: #ff006a; +$text-color-2: rgba(#fff, .8); + +$main-color-3: #202020; +$text-color-3: rgba(#fff, .8); + +$main-color-theme-light: rgba(#000, .8); +$main-color-theme-dark: rgba(#fff, .8); + +// page background +$background-color: #121212; + +// text colors +$text-color-theme-light-d: #000; +$text-color-theme-light: #222; +$text-color-theme-light-l: #888; + +$text-color-theme-dark-d: rgba(#fff, .8); +$text-color-theme-dark: rgba(#fff, .7); +$text-color-theme-dark-l: rgba(#fff, .5); + +$text-color-d: $text-color-theme-dark-d; +$text-color: $text-color-theme-dark; +$text-color-l: $text-color-theme-dark-l; + +$text-background-color: rgba(#fff, .05); + +// header and footer colors +$header-text-color: $text-color-3; +$header-background: $main-color-3; + +$footer-text-color: $text-color-3; +$footer-background: $main-color-3; + +// border and shadow colors +$border-color: mix(#fff, $background-color, 20%); +$border-color-l: mix(#fff, $background-color, 10%); +$decorate-color: rgba(#fff, .1); +$mask-color: rgba(#000, .9); +$select-color: rgba($main-color-1, .5); + +// function colors +$green: #5baa34; +$blue: #1c7cd4; +$yellow: #c9771f; +$red: #da3d45; +$text-color-function: rgba(#fff, .8); + +// logo colors +$mail-color: #0072c5; +$facebook-color: #4267b2; +$twitter-color: #1da1f2; +$weibo-color: #e6162d; +$google-plus-color:#ea4335; +$telegram-color: #32afed; +$medium-color: #000; +$zhihu-color: #0084ff; +$douban-color: #42bd56; +$linkedin-color: #1074af; +$github-color: #000; +$npm-color: #fff; + +// highlight colors +@import "skins/highlight/tomorrow-night"; diff --git a/_sass/skins/_default.scss b/_sass/skins/_default.scss new file mode 100644 index 0000000..fc28935 --- /dev/null +++ b/_sass/skins/_default.scss @@ -0,0 +1,74 @@ +/// +// Skin: Default +// Author: Tian Qi +// Email: kitian616@outlook.com +/// + +// main colors +$main-color-1: #fc4d50; +$text-color-1: #fff; + +$main-color-2: #fca24d; +$text-color-2: #fff; + +$main-color-3: #f2f2f2; +$text-color-3: #333; + +$main-color-theme-light: rgba(#000, .9); +$main-color-theme-dark: rgba(#fff, .9); + +// page background +$background-color: #fff; + +// text colors +$text-color-theme-light-d: #000; +$text-color-theme-light: #222; +$text-color-theme-light-l: #888; + +$text-color-theme-dark-d: #fff; +$text-color-theme-dark: rgba(#fff, .95); +$text-color-theme-dark-l: rgba(#fff, .85); + +$text-color-d: $text-color-theme-light-d; +$text-color: $text-color-theme-light; +$text-color-l: $text-color-theme-light-l; + +$text-background-color: rgba(#000, .05); + +// header and footer colors +$header-text-color: $text-color-3; +$header-background: $main-color-3; + +$footer-text-color: $text-color-3; +$footer-background: $main-color-3; + +// border and shadow colors +$border-color: mix(#000, $background-color, 20%); +$border-color-l: mix(#000, $background-color, 10%); +$decorate-color: rgba(#000, .1); +$mask-color: rgba(#000, .9); +$select-color: rgba($main-color-1, .5); + +// function colors +$green: #52c41a; +$blue: #1890ff; +$yellow: #fa8c16; +$red: #f5222d; +$text-color-function: #fff; + +// logo colors +$mail-color: #0072c5; +$facebook-color: #4267b2; +$twitter-color: #1da1f2; +$weibo-color: #e6162d; +$google-plus-color:#ea4335; +$telegram-color: #32afed; +$medium-color: #000; +$zhihu-color: #0084ff; +$douban-color: #42bd56; +$linkedin-color: #1074af; +$github-color: #000; +$npm-color: #fff; + +// highlight colors +@import "skins/highlight/tomorrow"; diff --git a/_sass/skins/_forest.scss b/_sass/skins/_forest.scss new file mode 100644 index 0000000..df2c63a --- /dev/null +++ b/_sass/skins/_forest.scss @@ -0,0 +1,74 @@ +/// +// Skin: Forest +// Author: Tian Qi +// Email: kitian616@outlook.com +/// + +// main colors +$main-color-1: #bb6170; +$text-color-1: #fff; + +$main-color-2: #f3c584; +$text-color-2: #fff; + +$main-color-3: #7cc7bb; +$text-color-3: #fff; + +$main-color-theme-light: rgba(#000, .9); +$main-color-theme-dark: rgba(#fff, .9); + +// page background +$background-color: #f8fcfb; + +// text colors +$text-color-theme-light-d: #325f74; +$text-color-theme-light: #3e758f; +$text-color-theme-light-l: #619dbb; + +$text-color-theme-dark-d: #fff; +$text-color-theme-dark: rgba(#fff, .95); +$text-color-theme-dark-l: rgba(#fff, .85); + +$text-color-d: $text-color-theme-light-d; +$text-color: $text-color-theme-light; +$text-color-l: $text-color-theme-light-l; + +$text-background-color: rgba(#000, .05); + +// header and footer colors +$header-text-color: $text-color-3; +$header-background: $main-color-3; + +$footer-text-color: $text-color-3; +$footer-background: $main-color-3; + +// border and shadow colors +$border-color: #3e758f; +$border-color-l: mix(#000, $background-color, 10%); +$decorate-color: rgba(#bb6170, .15); +$mask-color: rgba(#000, .9); +$select-color: rgba($main-color-1, .5); + +// function colors +$green: #52c41a; +$blue: #1890ff; +$yellow: #fa8c16; +$red: #f5222d; +$text-color-function: #fff; + +// logo colors +$mail-color: #0072c5; +$facebook-color: #4267b2; +$twitter-color: #1da1f2; +$weibo-color: #e6162d; +$google-plus-color:#ea4335; +$telegram-color: #32afed; +$medium-color: #000; +$zhihu-color: #0084ff; +$douban-color: #42bd56; +$linkedin-color: #1074af; +$github-color: #000; +$npm-color: #fff; + +// highlight colors +@import "skins/highlight/tomorrow"; diff --git a/_sass/skins/_ocean.scss b/_sass/skins/_ocean.scss new file mode 100644 index 0000000..c4da252 --- /dev/null +++ b/_sass/skins/_ocean.scss @@ -0,0 +1,74 @@ +/// +// Skin: Ocean +// Author: Tian Qi +// Email: kitian616@outlook.com +/// + +// main colors +$main-color-1: #0366d6; +$text-color-1: #fff; + +$main-color-2: #a5917f; +$text-color-2: #fff; + +$main-color-3: #f1f8ff; +$text-color-3: #0366d6; + +$main-color-theme-light: rgba(#000, .9); +$main-color-theme-dark: rgba(#fff, .9); + +// page background +$background-color: #fff; + +// text colors +$text-color-theme-light-d: rgba(#000, .95); +$text-color-theme-light: rgba(#000, .85); +$text-color-theme-light-l: rgba(#000, .5); + +$text-color-theme-dark-d: #fff; +$text-color-theme-dark: rgba(#fff, .95); +$text-color-theme-dark-l: rgba(#fff, .85); + +$text-color-d: $text-color-theme-light-d; +$text-color: $text-color-theme-light; +$text-color-l: $text-color-theme-light-l; + +$text-background-color: rgba(#000, .05); + +// header and footer colors +$header-text-color: $text-color-3; +$header-background: $main-color-3; + +$footer-text-color: $text-color-3; +$footer-background: $main-color-3; + +// border and shadow colors +$border-color: mix(#000, $background-color, 20%); +$border-color-l: mix(#000, $background-color, 10%); +$decorate-color: rgba(#000, .1); +$mask-color: rgba(#000, .9); +$select-color: rgba($main-color-1, .5); + +// function colors +$green: #52c41a; +$blue: #1890ff; +$yellow: #fa8c16; +$red: #f5222d; +$text-color-function: #fff; + +// logo colors +$mail-color: #0072c5; +$facebook-color: #4267b2; +$twitter-color: #1da1f2; +$weibo-color: #e6162d; +$google-plus-color:#ea4335; +$telegram-color: #32afed; +$medium-color: #000; +$zhihu-color: #0084ff; +$douban-color: #42bd56; +$linkedin-color: #1074af; +$github-color: #000; +$npm-color: #fff; + +// highlight colors +@import "skins/highlight/tomorrow-night-blue"; diff --git a/_sass/skins/_orange.scss b/_sass/skins/_orange.scss new file mode 100644 index 0000000..4ffdbb1 --- /dev/null +++ b/_sass/skins/_orange.scss @@ -0,0 +1,74 @@ +/// +// Skin: Orange +// Author: Tian Qi +// Email: kitian616@outlook.com +/// + +// main colors +$main-color-1: #f92651; +$text-color-1: #fff; + +$main-color-2: #fdb824; +$text-color-2: #fff; + +$main-color-3: #ff8a64; +$text-color-3: #fff; + +$main-color-theme-light: rgba(#000, .9); +$main-color-theme-dark: rgba(#fff, .9); + +// page background +$background-color: #fffdfa; + +// text colors +$text-color-theme-light-d: rgba(#000, .95); +$text-color-theme-light: rgba(#000, .85); +$text-color-theme-light-l: rgba(#000, .5); + +$text-color-theme-dark-d: rgba(#fff, .95); +$text-color-theme-dark: rgba(#fff, .85); +$text-color-theme-dark-l: rgba(#fff, .65); + +$text-color-d: $text-color-theme-light-d; +$text-color: $text-color-theme-light; +$text-color-l: $text-color-theme-light-l; + +$text-background-color: rgba(#000, .05); + +// header and footer colors +$header-text-color: $text-color-3; +$header-background: linear-gradient(60deg, #ffa650 0%, #ff7b50 100%); + +$footer-text-color: $text-color-3; +$footer-background: linear-gradient(60deg, #ffa650 0%, #ff7b50 100%); + +// border and shadow colors +$border-color: mix($main-color-1, $background-color, 50%); +$border-color-l: mix(#000, $background-color, 10%); +$decorate-color: rgba(#000, .1); +$mask-color: rgba(#000, .9); +$select-color: rgba($main-color-3, .5); + +// function colors +$green: #52c41a; +$blue: #1890ff; +$yellow: #fa8c16; +$red: #f5222d; +$text-color-function: #fff; + +// logo colors +$mail-color: #0072c5; +$facebook-color: #4267b2; +$twitter-color: #1da1f2; +$weibo-color: #e6162d; +$google-plus-color:#ea4335; +$telegram-color: #32afed; +$medium-color: #000; +$zhihu-color: #0084ff; +$douban-color: #42bd56; +$linkedin-color: #1074af; +$github-color: #000; +$npm-color: #fff; + +// highlight colors +@import "skins/highlight/tomorrow-night-eighties"; diff --git a/_sass/skins/highlight/_default.scss b/_sass/skins/highlight/_default.scss new file mode 100644 index 0000000..e69de29 diff --git a/_sass/skins/highlight/_tomorrow-night-blue.scss b/_sass/skins/highlight/_tomorrow-night-blue.scss new file mode 100644 index 0000000..473cbff --- /dev/null +++ b/_sass/skins/highlight/_tomorrow-night-blue.scss @@ -0,0 +1,2 @@ +@import "./tomorrow/night-blue"; +@import "./tomorrow/highlight"; diff --git a/_sass/skins/highlight/_tomorrow-night-bright.scss b/_sass/skins/highlight/_tomorrow-night-bright.scss new file mode 100644 index 0000000..05af36c --- /dev/null +++ b/_sass/skins/highlight/_tomorrow-night-bright.scss @@ -0,0 +1,2 @@ +@import "./tomorrow/night-bright"; +@import "./tomorrow/highlight"; diff --git a/_sass/skins/highlight/_tomorrow-night-eighties.scss b/_sass/skins/highlight/_tomorrow-night-eighties.scss new file mode 100644 index 0000000..4144a5e --- /dev/null +++ b/_sass/skins/highlight/_tomorrow-night-eighties.scss @@ -0,0 +1,2 @@ +@import "./tomorrow/night-eighties"; +@import "./tomorrow/highlight"; diff --git a/_sass/skins/highlight/_tomorrow-night.scss b/_sass/skins/highlight/_tomorrow-night.scss new file mode 100644 index 0000000..2cb5d72 --- /dev/null +++ b/_sass/skins/highlight/_tomorrow-night.scss @@ -0,0 +1,2 @@ +@import "./tomorrow/night"; +@import "./tomorrow/highlight"; diff --git a/_sass/skins/highlight/_tomorrow.scss b/_sass/skins/highlight/_tomorrow.scss new file mode 100644 index 0000000..90aaf3b --- /dev/null +++ b/_sass/skins/highlight/_tomorrow.scss @@ -0,0 +1,2 @@ +@import "./tomorrow/default"; +@import "./tomorrow/highlight"; diff --git a/_sass/skins/highlight/tomorrow/_default.scss b/_sass/skins/highlight/tomorrow/_default.scss new file mode 100644 index 0000000..c739cf7 --- /dev/null +++ b/_sass/skins/highlight/tomorrow/_default.scss @@ -0,0 +1,10 @@ +$highlight-background : #f7f7f7; +$highlight-foreground : #4d4d4c; +$highlight-comment : #8e908c; +$highlight-red : #c82829; +$highlight-orange : #f5871f; +$highlight-yellow : #eab700; +$highlight-green : #718c00; +$highlight-aqua : #3e999f; +$highlight-blue : #4271ae; +$highlight-purple : #8959a8; diff --git a/_sass/skins/highlight/tomorrow/_highlight.scss b/_sass/skins/highlight/tomorrow/_highlight.scss new file mode 100644 index 0000000..c026a44 --- /dev/null +++ b/_sass/skins/highlight/tomorrow/_highlight.scss @@ -0,0 +1,74 @@ +figure.highlight::before { + color: $highlight-comment !important; + background-color: $highlight-background !important; +} +pre.lineno { + color: $highlight-comment !important; +} +.highlight > pre { + color: $highlight-foreground; + background-color: $highlight-background !important; + .c { color: $highlight-comment; } /* Comment */ + .err { color: $highlight-red; } /* Error */ + .k { color: $highlight-purple; } /* Keyword */ + .l { color: $highlight-orange; } /* Literal */ + .n { color: $highlight-foreground; } /* Name */ + .o { color: $highlight-aqua; } /* Operator */ + .p { color: $highlight-foreground; } /* Punctuation */ + .cm { color: $highlight-comment; } /* Comment.Multiline */ + .cp { color: $highlight-comment; } /* Comment.Preproc */ + .c1 { color: $highlight-comment; } /* Comment.Single */ + .cs { color: $highlight-comment; } /* Comment.Special */ + .gd { color: $highlight-red; } /* Generic.Deleted */ + .ge { font-style: italic; } /* Generic.Emph */ + .gh { font-weight: bold; color: $highlight-foreground; } /* Generic.Heading */ + .gi { color: $highlight-green; } /* Generic.Inserted */ + .gp { font-weight: bold; color: $highlight-comment; } /* Generic.Prompt */ + .gs { font-weight: bold; } /* Generic.Strong */ + .gu { font-weight: bold; color: $highlight-aqua; } /* Generic.Subheading */ + .kc { color: $highlight-purple; } /* Keyword.Constant */ + .kd { color: $highlight-purple; } /* Keyword.Declaration */ + .kn { color: $highlight-aqua; } /* Keyword.Namespace */ + .kp { color: $highlight-purple; } /* Keyword.Pseudo */ + .kr { color: $highlight-purple; } /* Keyword.Reserved */ + .kt { color: $highlight-yellow; } /* Keyword.Type */ + .ld { color: $highlight-green; } /* Literal.Date */ + .m { color: $highlight-orange; } /* Literal.Number */ + .s { color: $highlight-green; } /* Literal.String */ + .na { color: $highlight-blue; } /* Name.Attribute */ + .nb { color: $highlight-foreground; } /* Name.Builtin */ + .nc { color: $highlight-yellow; } /* Name.Class */ + .no { color: $highlight-red; } /* Name.Constant */ + .nd { color: $highlight-aqua; } /* Name.Decorator */ + .ni { color: $highlight-foreground; } /* Name.Entity */ + .ne { color: $highlight-red; } /* Name.Exception */ + .nf { color: $highlight-blue; } /* Name.Function */ + .nl { color: $highlight-foreground; } /* Name.Label */ + .nn { color: $highlight-yellow; } /* Name.Namespace */ + .nx { color: $highlight-blue; } /* Name.Other */ + .py { color: $highlight-foreground; } /* Name.Property */ + .nt { color: $highlight-aqua; } /* Name.Tag */ + .nv { color: $highlight-red; } /* Name.Variable */ + .ow { color: $highlight-aqua; } /* Operator.Word */ + .w { color: $highlight-foreground; } /* Text.Whitespace */ + .mf { color: $highlight-orange; } /* Literal.Number.Float */ + .mh { color: $highlight-orange; } /* Literal.Number.Hex */ + .mi { color: $highlight-orange; } /* Literal.Number.Integer */ + .mo { color: $highlight-orange; } /* Literal.Number.Oct */ + .sb { color: $highlight-green; } /* Literal.String.Backtick */ + .sc { color: $highlight-foreground; } /* Literal.String.Char */ + .sd { color: $highlight-comment; } /* Literal.String.Doc */ + .s2 { color: $highlight-green; } /* Literal.String.Double */ + .se { color: $highlight-orange; } /* Literal.String.Escape */ + .sh { color: $highlight-green; } /* Literal.String.Heredoc */ + .si { color: $highlight-orange; } /* Literal.String.Interpol */ + .sx { color: $highlight-green; } /* Literal.String.Other */ + .sr { color: $highlight-green; } /* Literal.String.Regex */ + .s1 { color: $highlight-green; } /* Literal.String.Single */ + .ss { color: $highlight-green; } /* Literal.String.Symbol */ + .bp { color: $highlight-foreground; } /* Name.Builtin.Pseudo */ + .vc { color: $highlight-red; } /* Name.Variable.Class */ + .vg { color: $highlight-red; } /* Name.Variable.Global */ + .vi { color: $highlight-red; } /* Name.Variable.Instance */ + .il { color: $highlight-orange; } /* Literal.Number.Integer.Long */ +} diff --git a/_sass/skins/highlight/tomorrow/_night-blue.scss b/_sass/skins/highlight/tomorrow/_night-blue.scss new file mode 100644 index 0000000..74fbf7f --- /dev/null +++ b/_sass/skins/highlight/tomorrow/_night-blue.scss @@ -0,0 +1,10 @@ +$highlight-background :#002451; +$highlight-foreground :#fff; +$highlight-comment :#7285b7; +$highlight-red :#ff9da4; +$highlight-orange :#ffc58f; +$highlight-yellow :#ffeead; +$highlight-green :#d1f1a9; +$highlight-aqua :#9ff; +$highlight-blue :#bbdaff; +$highlight-purple :#ebbbff; diff --git a/_sass/skins/highlight/tomorrow/_night-bright.scss b/_sass/skins/highlight/tomorrow/_night-bright.scss new file mode 100644 index 0000000..39d6cfc --- /dev/null +++ b/_sass/skins/highlight/tomorrow/_night-bright.scss @@ -0,0 +1,10 @@ +$highlight-background :#000; +$highlight-foreground :#eaeaea; +$highlight-comment :#969896; +$highlight-red :#d54e53; +$highlight-orange :#e78c45; +$highlight-yellow :#e7c547; +$highlight-green :#b9ca4a; +$highlight-aqua :#70c0b1; +$highlight-blue :#7aa6da; +$highlight-purple :#c397d8; diff --git a/_sass/skins/highlight/tomorrow/_night-eighties.scss b/_sass/skins/highlight/tomorrow/_night-eighties.scss new file mode 100644 index 0000000..4bd0ddb --- /dev/null +++ b/_sass/skins/highlight/tomorrow/_night-eighties.scss @@ -0,0 +1,10 @@ +$highlight-background :#2d2d2d; +$highlight-foreground :#ccc; +$highlight-comment :#999; +$highlight-red :#f2777a; +$highlight-orange :#f99157; +$highlight-yellow :#fc6; +$highlight-green :#9c9; +$highlight-aqua :#6cc; +$highlight-blue :#69c; +$highlight-purple :#c9c; diff --git a/_sass/skins/highlight/tomorrow/_night.scss b/_sass/skins/highlight/tomorrow/_night.scss new file mode 100644 index 0000000..98a0294 --- /dev/null +++ b/_sass/skins/highlight/tomorrow/_night.scss @@ -0,0 +1,10 @@ +$highlight-background : #1d1f21; +$highlight-foreground : #c5c8c6; +$highlight-comment : #969896; +$highlight-red : #c66; +$highlight-orange : #de935f; +$highlight-yellow : #f0c674; +$highlight-green : #b5bd68; +$highlight-aqua : #8abeb7; +$highlight-blue : #81a2be; +$highlight-purple : #b294bb; diff --git a/aide-jekyll-text-theme.md b/aide-jekyll-text-theme.md new file mode 100644 index 0000000..a757ec7 --- /dev/null +++ b/aide-jekyll-text-theme.md @@ -0,0 +1,2186 @@ +--- +layout: article +title: Aide Jekyll TeXt thème +mermaid: true +chart: true +--- + +*TeXt est un thème Jekyll super personnalisable pour site personnel, site d’équipe, blog, projet, documentation, etc…* + +## Sommaire + +- [Caractéristiques](#caractéristiques) +- [Démarrage rapide](#démarrage-rapide) + - [Installer le thème](#installer-le-thème) + - [Configuration](#configuration) + - [Paramètres du site](#paramètres-du-site) +- [Navigation](#navigation) + - [Header Navigation](#header-navigation) + - [Sidebar Navigation](#sidebar-navigation) +- [Layout](#layout) + - [Mise en page](#mise-en-page) + - [Article Layout](#article-layout) + - [Home Layout](#home-layout) + - [Archive Layout](#archive-layout) + - [Landing Layout](#landing-layout) + - [404 Layout](#404-layout) +- [Logo et Favicon](#logo-et-favicon) + - [Logo](#logo) + - [Favicon](#favicon) +- [Auteurs](#auteurs) +- [Internationalisation](#internationalisation) +- [Rédaction des messages](#rédaction-des-messages) + - [Création de fichiers de poste](#création-de-fichiers-de-poste) +- [Chart](#chart) +- [Autres styles](#autres-styles) + - [Alerte](#alerte) + - [Tag](#tag) + - [Image](#image) +- [Spacing](#spacing) + - [EXEMPLES](#exemples) +- [Grid](#grid) + - [Base](#base) + - [Responsive](#responsive) + - [Auto Sizing](#auto-sizing) + - [Gutters](#gutters) + - [Overflow](#overflow) +- [Icons](#icons) +- [Image](#image) + - [Size](#size) +- [Button](#button) + - [Type](#type) + - [Shape](#shape) + - [Size](#size) +- [Item](#item) + - [Content](#content) + - [Image and Content](#image-and-content) + - [Image Size](#image-size) +- [Card](#card) + - [Image](#image) + - [Content](#content) + - [Image and Content](#image-and-content) + - [Image Overlay](#image-overlay) + - [Flat](#flat) + - [Clickable](#clickable) +- [Hero](#hero) + - [Normal](#normal) + - [Center](#center) + - [Dark Theme](#dark-theme) + - [Background Image](#background-image) + - [Height](#height) + - [Background Image + Center](#background-image--center) +- [Swiper](#swiper) + - [Normal](#normal) + - [Light Theme](#light-theme) + - [Dark Theme](#dark-theme) + + +## Caractéristiques + +* [Github jekyll-text-theme (original)](https://github.com/kitian616/jekyll-TeXt-theme) +- Responsive +- HTML sémantique +- Skins +- Thème principal +- Internationalisation +- Recherchez +- Table des matières +- Auteurs +- Styles supplémentaires (alerte, tag, image, icône, bouton, grille, etc.) +- Extensions (audios, vidéos, diapositives, démos) +- Améliorations de la démarque ([mermaid](https://mermaidjs.github.io/), [chartjs](http://www.chartjs.org/)) +- RSS ([jekyll-feed](https://github.com/jekyll/jekyll-feed)) + +**Skins** + +TeXt dispose de 6 skins intégrés, vous pouvez également créer votre propre skin. + +| `default` | `dark` | `forest` | +| --- | --- | --- | +| ![Default](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_default.jpg) | ![Dark](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_dark.jpg) | ![Forest](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_forest.jpg) | + +| `ocean` | `chocolate` | `orange` | +| --- | --- | --- | +| ![Ocean](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_ocean.jpg) | ![Chocolate](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_chocolate.jpg) | ![Orange](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_orange.jpg) | + +**Highlight Theme** + +TeXt utilise [Tomorrow](https://github.com/chriskempson/tomorrow-theme) comme thème principal. + +| `tomorrow` | `tomorrow-night` | `tomorrow-night-eighties` | `tomorrow-night-blue` | `tomorrow-night-bright` | +| --- | --- | --- | --- | --- | +| ![Tomorrow](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow.png) | ![Tomorrow Night](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow-night.png) | ![Tomorrow Night Eighties](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow-night-eighties.png) | ![Tomorrow Night Blue](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow-night-blue.png) | ![Tomorrow Night Bright](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow-night-bright.png) | + +## Démarrage rapide + +TeXt Theme est 100% compatible avec les pages GitHub et a été développé en tant que [thèmes basés sur les pierres précieuses](https://jekyllrb.com/docs/themes/) pour une utilisation plus facile. + +Dans ce document, vous apprendrez comment **installer le thème**, **régler votre site**, **prévision locale** pour le développement, **construire** et **publier**. + + + +```mermaid +graph LR; + A0(Installing TeXt) + B0(Common Method) + B1[Ruby Gem Method] + C0[Fork this repo] + C1[Clone from GitHub] + C2[Download] + D0[Setup Your Site] + E0(Installing Development Environment) + F0[Installing Directly] + F1[Docker] + A0-->B0; + A0-->B1; + B0-->C0; + B0-->C1; + B0-->C2; + B1-->D0; + C1-->E0 + C2-->E0 + D0-->E0 + E0-->F0 + E0-->F1 +``` + +### Installer le thème + +**Méthode commune** + +Pour l'installer avec la méthode commune, il vous suffit de copier tous les fichiers du thème dans votre projet. Il y a plusieurs façons de le faire : + +1. Cloner [jekyll-TeXt-theme](https://github.com/kitian616/jekyll-TeXt-theme) à partir de github. + + **Clone avec HTTPS:** + + ```bash + git clone https://github.com/kitian616/jekyll-TeXt-theme.git + ``` + + **Clone with SSH:** + + ```bash + git clone git@github.com:kitian616/jekyll-TeXt-theme.git + ``` + +2. Téléchargez et dézippez le fichier dans le répertoire de votre site Jekyll. + + Download TeXt Theme + +3. Si vous hébergez votre site sur les pages GitHub, vous pouvez simplement bifurquer vers [jekyll-TeXt-theme](https://github.com/kitian616/jekyll-TeXt-theme), puis renommer le dépôt en **USERNAME.github.io** - en remplaçant **USERNAME** par votre nom d'utilisateur GitHub. + + ![Fork](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/github-fork.jpg) + + ![Rename](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/github-rename-repo.jpg) + +**Méthode Ruby Gem** + +1. Ajoutez cette ligne au *Gemfile* de votre site Jekyll : + + ```ruby + gem "jekyll-text-theme" + ``` + +2. Ajoutez cette ligne au fichier *_config.yml* de votre site Jekyll : + + ```yaml + theme: jekyll-text-theme + ``` + +**Configurez votre site** + +Si vous installez le thème avec la méthode commune, vous pouvez passer directement à l'étape suivante. Mais **si vous installez le thème avec la méthode ruby gem, vous devez faire quelques travaux supplémentaires**. + +Avec les thèmes basés sur gem, certains des répertoires du site (tels que les répertoires *assets*, *_layouts*, *_includes* et *_sass*) sont stockés dans le gem du thème, cachés de votre vue immédiate. Vous devez ajouter quelques fichiers dans le répertoire de votre site Jekyll : + +```bash +├── 404.html +├── Gemfile +├── _config.yml +├── _data +│   └── locale.yml +├── _posts +│   └── ... +├── about.md +├── archive.html +└── index.html +``` + +Vous pouvez vous référer au dossier [/test](https://github.com/kitian616/jekyll-TeXt-theme/tree/master/test), c'est un exemple avec des thèmes basés sur les pierres précieuses. + +**Installation de l'environnement de développement** + +Si vous souhaitez les exécuter localement, vous devez d'abord installer Ruby et Jekyll, voir [Installation](https://jekyllrb.com/docs/installation/) pour plus de détails. + +Ensuite, lancez le bundler pour installer les dépendances : + +```bash +bundle install --path vendor/bundle +``` + +De plus, TeXt offre [Docker](https://www.docker.com/) un soutien au développement et au public, ce qui facilite la mise en place de l'environnement. + +![Docker](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/docker.jpg){:width="400px"} + +Il suffit de suivre ces trois étapes : + +1. [Installer le docker](https://docs.docker.com/install/). + +2. Générer *Gemfile.lock* : + + ```bash + docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app ruby:2.6 bundle install + ``` + +3. Construire l'image du Docker : + + ```bash + docker-compose -f ./docker/docker-compose.build-image.yml build + ``` + +**Avant-première locale** + +Lancez le service `bundle exec jekyll serve` pour démarrer le serveur de développement, puis vous pouvez visiter [http://localhost:4000/](http://localhost:4000/) pour prévisualiser votre site. + +Pour Docker, lancez `docker-compose -f./docker/docker-compose.default.yml up` pour démarrer le serveur de développement. + +**Construction et publication** + + +Si vous hébergez votre site sur les pages GitHub, il suffit de pousser la source vers la branche principale de votre dépôt USERNAME.github.io, GitHub se construira automatiquement. Vous pouvez visiter votre site sur **https://USERNAME.github.io** quelques minutes plus tard. + +Si vous hébergez votre site sur votre serveur, vous devez d'abord lancer `JEKYLL_ENV=production bundle exec jekyll build` pour générer votre site, puis mettre à jour les fichiers du dossier *_site* sur votre serveur. + +**Structure** + + +```bash +├── _data +│ ├── locale.yml +│ ├── navigation.yml +│ └── variables.yml +├── _includes +│ ├── analytics-providers +│ ├── aside +│ ├── comments-providers +│ ├── markdown-enhancements +│ ├── pageview-providers +│ ├── scripts +│ ├── sidebar +│ ├── snippets +│ ├── svg +│ │ ├── icon +│ │ │ ├── social +│ │ │ │ ├── facebook.svg +│ │ │ │ └── ... +│ │ └── logo.svg +│ └── ... +├── _layouts +│ ├── 404.html +│ ├── archive.html +│ ├── article.html +│ ├── base.html +│ ├── home.html +│ ├── none.html +│ └── page.html +├── _sass +├── assets +│ ├── css +│ │ └── blog.scss +│ └── images +├── tools +├── 404.html +├── Gemfile +├── _config.yml +├── about.md +├── archive.html +├── favicon.ico +├── gulpfile.js +├── index.html +├── jekyll-text-theme.gemspec +└── package.json +``` + +### Configuration + +Jekyll vous permet de concocter vos sites comme vous le souhaitez, et c'est grâce aux options de configuration puissantes et flexibles que cela est possible. Ces options peuvent être spécifiées soit dans un fichier *_config.yml* placé dans le répertoire racine de votre site, soit sous forme de drapeaux pour l'exécutable jekyll dans le terminal. + +Pour des raisons techniques, *_config.yml* n'est **PAS** rechargé automatiquement lorsque vous utilisez `jekyll serve`. Si vous modifiez ce fichier, veuillez redémarrer le processus du serveur. +{:.warning} + + + +### Paramètres du site + +**Thème** + +Si vous utilisez la version Ruby gem du thème, vous aurez besoin de cette ligne pour l'activer : + +```yaml +theme: jekyll-text-theme +``` + +**Skin** + +TeXt dispose de 6 skins intégrés, vous pouvez également créer votre propre skin. + +| `default` | `dark` | `forest` | +| --- | --- | --- | +| ![Default](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_default.jpg) | ![Dark](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_dark.jpg) | ![Forest](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_forest.jpg) | + +| `ocean` | `chocolate` | `orange` | +| --- | --- | --- | +| ![Ocean](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_ocean.jpg) | ![Chocolate](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_chocolate.jpg) | ![Orange](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/skins_orange.jpg) | + +```yaml +text_skin: default # "default" (default), "dark", "forest", "ocean", "chocolate", "orange" +``` + +**Highlight Theme** + +TeXt use [Tomorrow](https://github.com/chriskempson/tomorrow-theme) as the highlight theme. + +| `tomorrow` | `tomorrow-night` | `tomorrow-night-eighties` | `tomorrow-night-blue` | `tomorrow-night-bright` | +| --- | --- | --- | --- | --- | +| ![Tomorrow](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow.png) | ![Tomorrow Night](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow-night.png) | ![Tomorrow Night Eighties](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow-night-eighties.png) | ![Tomorrow Night Blue](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow-night-blue.png) | ![Tomorrow Night Bright](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/screenshots/highlight_tomorrow-night-bright.png) | + +Every skin has a default highlight theme, but you can overwrite it by `highlight_theme` variable. + +```yaml +highlight_theme: default # "default" (default), "tomorrow", "tomorrow-night", "tomorrow-night-eighties", "tomorrow-night-blue", "tomorrow-night-bright" +``` + +**URL** + +Le nom d'hôte et le protocole de base de votre site. Si vous hébergez le site sur des pages Github, celui-ci sera défini comme le domaine des pages GitHub (cname ou user domain) [^gitHub_metadata]. Par exemple, https://kitian616.github.io ou https://tianqi.name s'il y a un fichier cname. + +Jekyll 3.3 remplace cette valeur par l'url suivante : http://localhost:4000 lorsque vous exécutez `jekyll serve` dans un environnement de développement [^jekyll_site_variables]. Vous pouvez spécifier l'environnement Jekyll [^jekyll_specifying_environment] à l'environnement de production par `JEKYLL_ENV=production` pour éviter ce comportement. +{:.warning} + +[^gitHub_metadata]: [GitHub Metadata, a.k.a. site.github](https://github.com/jekyll/github-metadata#what-it-does) + +[^jekyll_site_variables]: [Variables#Site Variables](https://jekyllrb.com/docs/variables/#site-variables) + +[^jekyll_specifying_environment]: [Configuration#Specifying a Jekyll environment at build timePermalink](https://jekyllrb.com/docs/configuration/#specifying-a-jekyll-environment-at-build-time) + +**URL de base** + +L'URL de base de votre site, par défaut, est "/". Si vous hébergez le site sur des pages Github, elle sera définie comme le nom du projet pour les pages de projet si aucune n'est définie [^gitHub_metadata]. + +**Titre** + +Le nom de votre site. + +```yaml +title: "My Awesome Website" +``` + +**Description** + +Utilisez quelques mots pour décrire votre site. + +```yaml +description: > # this means to ignore newlines until "nav_lists:" + A website with awesome stories. +``` + +**Langue et fuseau horaire** + +La langue de votre site, vous pouvez la remplacer par d'autres sur des postes spécifiques, des pages de YAML Front Matter [^font_matter], en savoir plus sur [Internationalisation](#internationalisation). + +```yaml +lang: fr +``` + +[^font_matter]: [Front Matter](https://jekyllrb.com/docs/frontmatter/) + +Définissez le fuseau horaire pour la génération du site. Cela définit la variable d'environnement TZ, que Ruby utilise pour gérer la création et la manipulation de l'heure et de la date. Une liste de toutes les valeurs disponibles se trouve [ICI](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + +Lorsque le service est effectué sur une machine locale, le fuseau horaire par défaut est défini par votre système d'exploitation. Mais lorsqu'il est servi sur un hôte/serveur distant, le fuseau horaire par défaut dépend du paramétrage ou de l'emplacement du serveur [^jekyll_global_configuration]. + +[^jekyll_global_configuration]: [Configuration#Global Configuration](https://jekyllrb.com/docs/configuration/#global-configuration) + +```yaml +timezone: Europe/Paris +``` + +**Auteur et social** + +Informations sur l'auteur du site (une personne, une équipe ou une organisation). + +**Type** + +Type de l'auteur du site, une personne ou une organisation, utilisé par le balisage [schema.org](https://schema.org/), par défaut "personne". + +**Nom** + +Utilisé pour désigner l'auteur d'un site. + +**Avatar** + +Photo ou Logo de l'auteur du site + +**Bio** + +Brève introduction pour l'auteur du site + +**Social** + +Nom d'utilisateur ou identifiant des réseaux sociaux de l'auteur du site. + +TeXt supporte Email, Facebook, Twitter, Weibo, Google Plus, Telegram, Medium, Zhihu, Douban, Linkedin, Github et Npm, plus à ajouter. + +En fonction de vos paramètres, les boutons de réseau social s'afficheront dans le pied de page de chaque page. + +**Dépôt GitHub** + +Pour plus d'informations sur l'installation du plugin [GitHub Metadata](https://github.com/jekyll/github-metadata), veuillez consulter [ICI](https://github.com/jekyll/github-metadata/blob/master/docs/configuration.md#configuration). + +Pour que jekyll-github-metadata sache quelles métadonnées rechercher, il doit être capable de déterminer le dépôt NWO à demander à GitHub. + +"NWO" signifie "nom avec propriétaire". Il s'agit du nom d'utilisateur du propriétaire du dépôt, plus une barre oblique vers l'avant et le nom du dépôt, par exemple kitian616/jekyll-TeXt-theme, où "kitian616" est le propriétaire et "jekyll-TeXt-theme" est le nom du dépôt. + +```yaml +repository: user_name/repo_name +``` + +**Post Extrait** + +Chaque message prend automatiquement le premier bloc de texte, du début du contenu à la première occurrence de `excerpt_separator`, et le définit comme l'extrait du message. + +L'extrait de l'article est affiché dans la liste des articles dans la mise en page d'accueil. Il existe deux types d'extrait, le type texte et le type html. + +| Type Name | Description | +| --- | --- | +| **text** | l'extrait est un texte simple qui filtre tous les éléments non textuels (tels que le titre, le lien, la liste, le tableau, l'image, etc.) et ne comporte que 350 caractères au maximum.| +| **html** | L'extrait est un document HTML tout comme le contenu de l'article. Il affiche tout le contenu par défaut, à l'exception de l'ajout de `` dans le fichier Markdown de l'article. Vous pouvez trouver plus d'informations [ICI](https://jekyllrb.com/docs/posts/#post-excerpts). | + +```yaml +excerpt_separator: +excerpt_type: text # text (default), html +``` + +**Licence** + +| Name | License | Image | +| --- | --- | --- | +| CC-BY-4.0 | [Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/) | ![CC-BY-4.0](https://i.creativecommons.org/l/by/4.0/88x31.png) | +| CC-BY-SA-4.0 | [Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/) | ![CC-BY-SA-4.0](https://i.creativecommons.org/l/by-sa/4.0/88x31.png) | +| CC-BY-NC-4.0 | [Attribution-NonCommercial 4.0 International](https://creativecommons.org/licenses/by-nc/4.0/) | ![CC-BY-NC-4.0](https://i.creativecommons.org/l/by-nc/4.0/88x31.png) | +| CC-BY-ND-4.0 | [Attribution-NoDerivatives 4.0 International](https://creativecommons.org/licenses/by-nd/4.0/) | ![CC-BY-ND-4.0](https://i.creativecommons.org/l/by-nd/4.0/88x31.png) | + +```yaml +license: CC-BY-NC-4.0 +``` + +**TOC** + +Éléments à utiliser comme titres. + +```yaml +toc: + selectors: "h1,h2,h3" +``` + +**Améliorations markdown** + +Afin d'améliorer l'expérience de l'utilisateur tant pour la lecture que pour l'écriture des messages, TeXt a apporté quelques améliorations pour la démarque. Par défaut, toutes les améliorations pour la démarque sont activées. Vous devez régler les paramètres sur true pour les activer : + +```yaml +## Mermaid +mermaid: true + +## Chart +chart: true +``` + +Et vous pouvez également le remplacer par d'autres sur des postes spécifiques, des pages de YAML Front Matter [^font_matter]. + +Vérifiez [Writing Posts](/) pour une utilisation détaillée. + +**Paginer** + +Paramètres du plugin [Jekyll Paginate](https://github.com/jekyll/jekyll-paginate). Pour activer la pagination des articles de votre blog, ajoutez une ligne au fichier *_config.yml* qui précise le nombre d'articles à afficher par page : + +```yaml +paginate: 8 +``` + +Le nombre doit être le nombre maximum de messages que vous souhaitez voir affichés par page dans le site généré. + +Vous pouvez également spécifier la destination des pages de pagination : + +```yaml +paginate_path: /page:num # don't change this unless for special need +``` + +**Sources** + +TeXt utilise CDN[^cdn] pour améliorer la vitesse, vous pouvez choisir [BootCDN](http://www.bootcdn.cn/) (par défaut) ou [unpkg](https://unpkg.com/) comme fournisseur CDN de votre site, les deux sont open source et gratuits. + +Si votre site est principalement destiné aux Chinois, utilisez simplement BootCDN. + +```yaml +sources: bootcdn # bootcdn (default), unpkg +``` + +[^cdn]: [Content delivery network](https://en.wikipedia.org/wiki/Content_delivery_network) + +**Partage** + +| Name | Sharing Provider | Minimum Version | +| --- | --- | --- | +| **addtoany** | [AddToAny](https://www.addtoany.com/) | 2.2.2 | +| **addthis** | [AddThis](https://www.addthis.com/) | 2.2.3 | +| **custom** | | | + +**AddToAny** + +```yaml +comments: + provider: addtoany +``` + +**AddThis** + +```yaml +comments: + provider: addthis + addthis: + id: "your-addthis-pubid" +``` + +Vous DEVEZ définir la variable "sharing" comme "true" dans le **YAML Front Matter** de la page pour permettre le partage sur cette page +{:.warning} + +## Navigation + +Il existe deux types de navigation dans TeXt : **Header Navigation** et **Sidebar Navigation**, toutes deux définies dans *data/navigation.yml*. + + + +### Header Navigation + +La navigation dans l'en-tête est définie sous la clé "header" dans *data/navigation.yml*, c'est un tableau de titre(s) et d'url : + +```yaml +header: + - title: Docs + url: /docs/en/quick-start + - title: 文档 + url: /docs/zh/quick-start + - titles: + en: Archive + zh: 归档 + zh-Hans: 归档 + zh-Hant: 歸檔 + url: /archive.html + - titles: + en: About + zh: 关于 + zh-Hans: 关于 + zh-Hant: 關於 + url: /about.html + - title: GitHub + url: https://github.com/kitian616/jekyll-TeXt-theme +``` + +Vous pouvez utiliser des `titles` pour un nom multilingue. + +### Sidebar Navigation + +Pour utiliser la navigation latérale, vous devez d'abord définir une navigation dans *data/navigation.yml*. + +```yaml +docs-en: + - title: Start + children: + - title: Quick Start + url: /docs/en/quick-start + - title: Structure + url: /docs/en/structure + ... + - title: Customization + children: + - title: Configuration + url: /docs/en/configuration + - title: Navigation + url: /docs/en/navigation + ... +``` + +Ensuite, utilisez la navigation définie comme navigation latérale de l'article dans le Front Matter : + +```yaml +sidebar: + nav: docs-en +``` + +## Layout + + +```mermaid +graph TB; + NONE[none] + BASE[base] + PAGE[page] + ARTICLE[article] + ARTICLES[articles] + HOME[home] + ARCHIVE[archive] + LANDING[landing] + 404[404] + NONE-->BASE; + BASE-->PAGE; + PAGE-->ARTICLE; + PAGE-->ARTICLES; + ARTICLES-->HOME; + PAGE-->ARCHIVE; + PAGE-->LANDING; + PAGE-->404; +``` + +### Mise en page + +Base sur le schéma de base. + +| Variable | Option Values | Description | Minimum Version | +| --- | --- | --- | --- | +| **mode** | normal (default), immersive | mode of the page. | 2.2.0 | +| **type** | webpage (default), article | type of the page, used by [schema.org](https://schema.org/) markup. | | +| **key** | `!!str` | Unique key for the post, required by Comments and Pageview. begin with a letter (`[A-Za-z]`) and may be followed by any number of letters, digits (`[0-9]`), hyphens (`-`), underscores (`_`), colons (`:`), and periods (`.`). | | +| **lang** | en (default), zh, zh-Hans, zh-Hant | Language of this page. | | +| **show_title** | true (default), false | Set as `false` to hide title on this page. | | +| **show_date** | true (default), false | Set as `false` to hide date on this page. | 2.2.0 | +| **show_tags** | true (default), false | Set as `false` to hide tags on this page. | 2.2.0 | +| **full_width** | true, false (default) | Set as `true` to make main full width on this page. | | +| **pageview** | true, false (default) | Set as `true` to enable pageview on this page. | 2.2.0 | +| **comment** | true (default), false | Set as `false` to disable comment on this page. | | +| **mermaid** | true, false | Set as `true` to enable Mermaid on this page. | | +| **chart** | true, false | Set as `true` to enable Chart on this page. | | +| **cover** | `!!str` | Url of the cover image. | 2.2.0 | +| **header** | false, `!!map` | Set as `false` to hide header on this page. | 2.2.0 | +| **article_header**| `!!map` | | 2.2.0 | +| **aside** | `!!map` | | | +| **sidebar** | `!!map` | | | +| **footer** | false | Set as `false` to hide footer on this page. | 2.2.3 | +| **lightbox** | true, false | Set as `true` to enable lightbox (modal image gallery) for large images on this page, you can set `lightbox-ignore` class name to ignore the certain image. | 2.2.4 | + +**header** + +| Variable | Option Values | Description | +| --- | --- | --- | +| **theme** | light, dark | | +| **background** | `!!str` | Available when specified theme. | + +**article_header** + +| Variable | Option Values | Description | +| --- | --- | --- | +| **type** | overlay, cover | | +| **align** | left (default), center| | +| **theme** | light (default), dark | | +| **background_color** | `!!str` | Available when type is `overlay`. If set to a dark color, you need set theme as 'dark'. | +| **background_image** | `!!map` | Available when type is `overlay`, set as `false` can overwrite `cover` to disable background image. | +| **image** | `!!map` | Available when type is `cover`. | +| **actions** | `!!seq` | | + +**article_header.background_image** + +| Variable | Option Values | Description | +| --- | --- | --- | +| **gradient** | `!!str` | | +| **src** | `!!str` | Default to `cover` | + +**article_header.image** + +| Variable | Option Values | Description | +| --- | --- | --- | +| **src** | `!!str` | | + +**aside** + +| Variable | Option Values | Description | +| --- | --- | --- | +| **toc** | true, false | Set as `true` to enable TOC on this page's aside. | + +**sidebar** + +| Variable | Option Values | Description | +| --- | --- | --- | +| **nav** | `!!str` | | + +### Article Layout + +Basé sur Page Layout. + +| Variable | Option Values | Description | Minimum Version | +| --- | --- | --- | --- | +| **modify_date** | `!!str` | The last modified date of this article, the date is modified in the format `YYYY-MM-DD HH:MM:SS +/-TTTT`; hours, minutes, seconds, and timezone offset are optional. just like `date` variable. | | +| **sharing** | true, false (default) | Set as `true` to enable Sharing on this article. | 2.2.2 | +| **show_author_profile** | true, false (default) | Set as `true` to show author profile at the beginning of the article. | | +| **show_subscribe**| true, false (default) | Set as `true` to show subscribe info on this page. | latest | +| **license** | true, false (default), CC-BY-4.0, CC-BY-SA-4.0, CC-BY-NC-4.0, CC-BY-ND-4.0 | license of the article. Set true to use `license` variable that set in *_config.yml*, set false to enable it. | | + +**Articles Layout** + +Basé sur Page Layout, valable depuis version **2.2.0**. + +| Variable | Option Values | Description | +| --- | --- | --- | +| **articles** | `!!map` | | + +**articles** + +| Variable | Option Values | Description | +| --- | --- | --- | +| **data_source** | `!!str` | You can set it as a collections name, then the page will show the article list of this collections. You can refer to [Collections](https://jekyllrb.com/docs/collections/) to learn more about collections. | +| **type** | item, brief, grid | TeXt supports 3 article list type with various settings, yan can find EXEMPLES [ICI](https://tianqi.name/jekyll-TeXt-theme/samples.html#articles-layout). | +| **size** | md, sm | Available when type is `grid`. | +| **article_type** | BlogPosting | Available when type is `normal`. | +| **show_cover** | true (default), false | Available when type is `normal`. Before set it to `true`, you need first set each article a cover image, refer to the `cover` variable in [Page Layout](#page-layout). | +| **cover_size** | lg, md, sm | Available when type is `normal`. | +| **show_excerpt** | true, false (default) | Available when type is `normal`, refer to [excerpt_type](#excerpt_type) below. | +| **excerpt_type** | text, html | Available when type is `normal`. | +| **show_readmore** | true, false (default) | Available when type is `normal`. | +| **show_info** | true, false (default) | Available when type is `normal` or `brief`. | + +**articles.excerpt_type** + +Chaque message prend automatiquement le premier bloc de texte, du début du contenu à la première occurrence de `excerpt_separator`, et le définit comme l'extrait du message. + +L'extrait est affiché dans la liste des articles dans les articles et la mise en page d'accueil. Il existe deux types d'extrait, le type texte et le type html. + +| Type Name | Description | +| --- | --- | +| **text** | l'extrait est un texte simple qui filtre tous les éléments non textuels (tels que le titre, le lien, la liste, le tableau, l'image, etc.) et ne comporte que 350 caractères au maximum. | +| **html** | l'extrait est un document HTML tout comme le contenu de l'article, Cela affichera tout le contenu par défaut, sauf l'ajout de `` dans le fichier Markdown de l'article, Vous pouvez trouver plus d'informations [ICI](https://jekyllrb.com/docs/posts/#post-excerpts). | + +Pour la page d'accueil, vous pouvez mettre `excerpt_type` à `HTML` comme ceci : + +```yaml +layout: home +articles: + excerpt_type: html +``` + +### Home Layout + +Basé sur Articles Layout. + +### Archive Layout + +Basé sur Page Layout. + +### Landing Layout + +Basé sur Page Layout. + +| Variable | Option Values | Description | +| --- | --- | --- | +| **data** | `!!map` | | + +### 404 Layout + +Basé surPage Layout. + +## Logo et Favicon + + +### Logo + +

      TeXt {% include svg/logo.svg %} comme logo, vous pouvez le changer en remplaçant _includes/svg/logo.svg par votre propre logo.

      + +### Favicon + +TeXt recommande [RealFaviconGenerator](https://realfavicongenerator.net/) pour générer des favicons. + +Ouvrez [RealFaviconGenerator](https://realfavicongenerator.net/), cliquez sur "Select your Favicon picture" et choisissez ensuite votre image de favicon. + +![Sélectionnez votre image Favicon](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/realfavicongenerator-select-favicon-picture.jpg) + +Après les réglages, vous devez indiquer au générateur où vous placerez les fichiers favicon, TeXt les met par défaut à */actifs*. + +Il est recommandé de placer les fichiers favicon à la racine de votre site. +{:.warning} + +![Sélectionnez votre chemin Favicon](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/realfavicongenerator-path.jpg) + +Si tout est fait, il suffit de cliquer sur "Générez vos Favicons et votre code HTML" à la dernière étape. + +![Résultat](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/realfavicongenerator-result.jpg) + +Téléchargez le paquet favicon et dézippez-le dans le chemin que vous venez de définir, et remplacez le code HTML dans *_includes/head/favicon.html*. + +## Auteurs + +Par défaut, tous les messages ou pages sont rédigés par l'"auteur" configuré dans *_config.yml*, mais vous pouvez l'écraser dans le YAML Front Mater de la page. + +Pour ce faire, vous devez créer *_data/authors.yml* et ajouter des auteurs en utilisant le format suivant. Toutes les variables se trouvant sous "auteur" dans *_config.yml* peuvent être utilisées (type, nom, url, avatar, bio, email, facebook, etc.). + +```yml +Tian Qi: + name : Tian Qi + url : https://tianqi.name + avatar : https://wx3.sinaimg.cn/large/73bd9e13ly1fjkqy66hl8j208c08c0td.jpg + bio : Author of TeXt. + email : kitian616@outlook.com + facebook : # "user_name" the last part of your profile url, e.g. https://www.facebook.com/user_name + twitter : kitian616 # "user_name" the last part of your profile url, e.g. https://twitter.com/user_name + weibo : 234695683 # "user_id" the last part of your profile url, e.g. https://www.weibo.com/user_id/profile?... + googleplus: 101827554735084402671 # "user_id" the last part of your profile url, e.g. https://plus.google.com/u/0/user_id + telegram : # "user_name" the last part of your profile url, e.g. https://t.me/user_name + medium : # "user_name" the last part of your profile url, e.g. https://medium.com/user_name + zhihu : # "user_name" the last part of your profile url, e.g. https://www.zhihu.com/people/user_name + douban : # "user_name" the last part of your profile url, e.g. https://www.douban.com/people/user_name + linkedin : # "user_name" the last part of your profile url, e.g. https://www.linkedin.com/in/user_name + github : kitian616 # "user_name" the last part of your profile url, e.g. https://github.com/user_name + npm : # "user_name" the last part of your profile url, e.g. https://www.npmjs.com/~user_name +``` + +Assignez un des auteurs dans *authors.yml* à un message ou une page que vous souhaitez remplacer par `site.author`. + + --- + author: Yann M + --- + +## Internationalisation + + +Les textes des éléments de l'interface utilisateur sont regroupés sous forme d'un ensemble de clés de traduction dans *_data/locale.yml*, ce qui permet à TeXt de prendre facilement en charge différentes langues. + +En utilisant les `titres`, vous pouvez définir un nom multilingue pour la page, la mise en page et le titre du navigateur. Par défaut, TeXt a défini un nom multilingue dans *_data/navigation*, *_layouts/archive*, *_layouts/home* et *about.md*. + + + +Les clés de traduction et les noms multilingues mentionnés ci-dessus prennent en charge les langues suivantes : + + +| Language | `lang` | +| --- | --- | +| **English** | en, en-GB, en-US, en-CA, en-AU | +| **French** | fr, fr-BE, fr-CA, fr-CH, fr-FR, fr-LU | + + +Vous pouvez voir des exemples pour différentes langues [ICI](https://tianqi.name/jekyll-TeXt-theme/samples.html#languages). + +## Rédaction des messages + +Comme expliqué sur la page [structure des répertoires](https://jekyllrb.com/docs/structure/), **le dossier */_posts* est l'endroit où se trouvent les articles de votre blog**. Ces fichiers sont généralement Markdown ou HTML. Tous les articles doivent avoir le format YAML Front Matter, et ils seront convertis de leur format source en une page HTML qui fait partie de votre site statique. + + + +### Création de fichiers de poste + +Pour créer un nouveau poste, il suffit de créer un fichier dans le répertoire */_posts*. Jekyll exige que les fichiers de messages de blog soient nommés comme ceux-ci : + + 2011-12-31-new-years-eve-is-awesome.md + 2012-09-12-how-to-write-a-blog.markdown + +**Contenu** + +Tous les fichiers d'articles de blog doivent commencer par YAML Front Matter. + +Afin d'améliorer l'expérience de l'utilisateur tant pour la lecture que pour l'écriture des billets, TeXt a apporté quelques améliorations pour la démarque et quelques styles supplémentaires. + +**YAML Front Matter** + + --- + layout: article + title: Document - Writing Posts + --- + +Entre ces lignes à triple pointillés, vous pouvez définir des variables. Vous pouvez considérer cela comme une configuration de page, celles-ci remplaceraient la configuration globale dans *_config.yml*. + +En plus des variables prédéfinies par Jekyll, TeXt définit de nouvelles variables pour chaque mise en page, voir [Layout](#layout) pour plus de détails. + +## Chart + +[Chart.js](http://www.chartjs.org/docs/latest/) supporte 7 sortes of graphique: + +- [Line Chart](http://www.chartjs.org/docs/latest/charts/line.html) +- [Bar Chart](http://www.chartjs.org/docs/latest/charts/bar.html) +- [Radar Chart](http://www.chartjs.org/docs/latest/charts/radar.html) +- [Polar Area Chart](http://www.chartjs.org/latest/charts/polar.html) +- [Pie Chart](http://www.chartjs.org/docs/latest/charts/doughnut.html) +- [Doughnut Chart](http://www.chartjs.org/docs/latest/charts/doughnut.html) +- [Bubble Chart](http://www.chartjs.org/docs/latest/charts/bubble.html) + +## Autres styles + + +Jekyll utilise kramdown comme processeur de démarque par défaut. kramdown peut ajouter des attributs aux éléments de niveau bloc et span thgird-containre ALDs [^ALDs] feature. avec l'aide des ALD, nous pouvons définir les noms de classe d'un élément par `{ :.class-name1.class-name-2}`. + + +[^ALDs]: [Attribute List Definitions](https://kramdown.gettalong.org/syntax.html#attribute-list-definitions) + +### Alerte + +| Class Names | +| ---- | +| **success** | +| **info** | +| **warning** | +| **error** | + +Success Text. +{:.success} + +Info Text. +{:.info} + +Warning Text. +{:.warning} + +Error Text. +{:.error} + +**markdown:** + + Success Text. + {:.success} +^ + Info Text. + {:.info} +^ + Warning Text. + {:.warning} +^ + Error Text. + {:.error} + +### Tag + +| Class Names | +| ---- | +| **success** | +| **info** | +| **warning** | +| **error** | + +`success`{:.success} + +`info`{:.info} + +`warning`{:.warning} + +`error`{:.error} + +**markdown:** + + `success`{:.success} +^ + `info`{:.info} +^ + `warning`{:.warning} +^ + `error`{:.error} + +### Image + +| Class Names | +| ---- | +| **border** | +| **shadow** | +| **rounded** | +| **circle** | + +**Border** + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_border"){:.border} +
      +
      + ![Image](path-to-image){:.border} +
      +
      +
      + +**Shadow** + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_shadow"){:.shadow} +
      +
      + ![Image](path-to-image){:.shadow} +
      +
      +
      + +**Rounded** + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_rounded"){:.rounded} +
      +
      + ![Image](path-to-image){:.rounded} +
      +
      +
      + +**Circle** + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_circle"){:.circle} +
      +
      + ![Image](path-to-image){:.circle} +
      +
      +
      + +**Mixture** + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_border+rounded"){:.border.rounded} +
      +
      + ![Image](path-to-image){:.border.rounded} +
      +
      +
      + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_circle+shadow"){:.circle.shadow} +
      +
      + ![Image](path-to-image){:.circle.shadow} +
      +
      +
      + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_circle+border+shadow"){:.circle.border.shadow} +
      +
      + ![Image](path-to-image){:.circle.border.shadow} +
      +
      +
      + +## Spacing + + +Spacing classes are named using the format `{property}{side}-{spacer}`. + +where *property* is one of: + +- `m` - for classes that set `margin` +- `p` - for classes that set `padding` + +where *side* is one of: + +- `t` - for classes that set `margin-top` or `padding-top` +- `b` - for classes that set `margin-bottom` or `padding-bottom` +- `l` - for classes that set `margin-left` or `padding-left` +- `r` - for classes that set `margin-right` or `padding-right` +- `x` - for classes that set both `*-left` and `*-right` +- `y` - for classes that set both `*-top` and `*-bottom` + +blank - for classes that set a `margin` or `padding` on all 4 sides of the element + +where *spacer* is one of: + +- 0 - for classes that eliminate the `margin` or `padding` by setting it to `0` +- 1 - for classes that set the `margin` or `padding` to `$spacer * .25` +- 2 - for classes that set the `margin` or `padding` to `$spacer * .5` +- 3 - for classes that set the `margin` or `padding` to `$spacer` +- 4 - for classes that set the `margin` or `padding` to `$spacer * 1.5` +- 5 - for classes that set the `margin` or `padding` to `$spacer * 3` +- auto - for classes that set the `margin` to `auto` + +`$spacer` is default to `1rem`, you can change or add new entries to the `$spacers` Sass map variable. + +### EXEMPLES + +```html +
      +
      +``` + +```html +
      +
      +``` + +```html +
      +
      +``` + +## Grid + + + + +### Base + +
      +
      +
      6 cells
      +
      2 cells
      +
      4 cells
      +
      +
      + +```html +
      +
      6 cells
      +
      2 cells
      +
      4 cells
      +
      +``` + +### Responsive + +
      +
      +
      12/12/6 cells
      +
      12/4/2 cells
      +
      12/8/4 cells
      +
      +
      + +```html +
      +
      12/12/6 cells
      +
      12/4/2 cells
      +
      12/8/4 cells
      +
      +``` + +### Auto Sizing + +
      +
      +
      2 cells
      +
      Whatever's left!
      +
      +
      + +```html +
      +
      2 cells
      +
      whatever's left!
      +
      +``` + +
      +
      +
      shrink
      +
      expand
      +
      +
      + +```html +
      +
      shrink
      +
      expand
      +
      +``` + +### Gutters + +
      +
      +
      +
      6 cells
      +
      +
      +
      6 cells
      +
      +
      +
      6 cells
      +
      +
      +
      6 cells
      +
      +
      +
      + +```html +
      +
      +
      6 cells
      +
      6 cells
      +
      6 cells
      +
      6 cells
      +
      +
      +``` + +
      +
      +
      +
      6 cells
      +
      +
      +
      6 cells
      +
      +
      +
      6 cells
      +
      +
      +
      6 cells
      +
      +
      +
      + +```html +
      +
      +
      6 cells
      +
      6 cells
      +
      6 cells
      +
      6 cells
      +
      +
      +``` + +
      +
      +
      +
      6 cells
      +
      +
      +
      6 cells
      +
      +
      +
      6 cells
      +
      +
      +
      6 cells
      +
      +
      +
      + +```html +
      +
      +
      6 cells
      +
      6 cells
      +
      6 cells
      +
      6 cells
      +
      +
      +``` + +### Overflow + +
      +
      +
      +
      loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong
      +
      +
      +
      loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong
      +
      +
      +
      + +
      +
      +
      +
      loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong
      +
      +
      +
      loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong
      +
      +
      +
      + +
      +
      +
      +
      loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong
      +
      +
      +
      loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong
      +
      +
      +
      + +## Icons + + +TeXt uses Font Awesome for icons, you can search available icon code snippet [ICI](https://fontawesome.com/icons?d=gallery&q=donw&m=free). + + + +```html + +``` + +
      Download TeXt Theme
      + +```html + Download TeXt Theme +``` + +## Image + + +| Type | Class Names | +| ---- | ---- | +| **base** | image | +| **size** | image\-\-md (default), image\-\-xs, image\-\-sm, image\-\-lg, image\-\-xl | + +### Size + +**Extreme Small** + + + +```html + +``` + +**Small** + + + +```html + +``` + +**Middle** + + + +```html + +``` + +**Large** + + + +```html + +``` + +**Extreme Large** + + + +```html + +``` + +## Button + + +| Type | Class Names | +| ---- | ---- | +| **base** | button | +| **type** | button\-\-primary, button\-\-secondary, button\-\-success, button\-\-info, button\-\-warning, button\-\-error, button\-\-outline\-primary, button\-\-outline\-secondary, button\-\-outline\-success, button\-\-outline\-info, button\-\-outline\-warning, button\-\-outline\-error | +| **shape** | button\-\-pill, button\-\-rounded, button\-\-circle | +| **size** | button\-\-md (default), button\-\-xs, button\-\-sm, button\-\-lg, button\-\-xl | + +### Type + +**Primary** + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--pill} + +```html +BUTTON +``` + +**Secondary** + +
      BUTTON
      + + [BUTTON](#){:.button.button--secondary.button--pill} + +```html +BUTTON +``` + +**Success** + +
      BUTTON
      + + [BUTTON](#){:.button.button--success.button--pill} + +```html +BUTTON +``` + +**Outline** + +
      BUTTON
      + + [BUTTON](#){:.button.button--outline-success.button--pill} + +```html +BUTTON +``` + +### Shape + +**Pill** + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--pill} + +```html +BUTTON +``` + +**Rounded** + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded} + +```html +BUTTON +``` + +**Circle** + +
      X
      + + [X](#){:.button.button--primary.button--circle} + +```html +X +``` + +### Size + +**Extreme Small** + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded.button--xs} + +```html +BUTTON +``` + +**Small** + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded.button--sm} + +```html +BUTTON +``` + +**Middle** + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded} + +```html +BUTTON +``` + +**Large** + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded.button--lg} + +```html +BUTTON +``` + +**Extreme Large** + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded.button--xl} + +```html +BUTTON +``` + +## Item + + +### Content + +
      +
      +
      +

      Photograph

      +
      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      +
      + +```html +
      +
      +
      +

      Photograph

      +
      +
      +

      ...

      +
      +
      +
      +``` + +### Image and Content + + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      +``` + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      ...

      +
      +
      +
      +``` + +### Image Size + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      +``` + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      ...

      +
      +
      +
      +``` + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      ...

      +
      +
      +
      +``` + +## Card + + + +### Image + +
      +
      + +
      +
      + +```html +
      +
      + +
      +
      +``` + +### Content + +
      +
      +
      +

      Photograph

      +
      +

      A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip.

      +
      +
      + +```html +
      +
      +
      +

      Photograph

      +
      +

      ...

      +
      +
      +``` + +### Image and Content + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      +``` + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +

      ...

      +
      +
      +``` + +### Image Overlay + +
      +
      + +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +

      Photograph

      +
      +
      +
      +``` + +
      +
      + +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +

      Photograph

      +
      +
      +
      +``` + +### Flat + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      +``` + +### Clickable + +
      +
      +
      + +
      +
      +
      + +```html + +
      +
      + +
      +
      +
      +``` + +## Hero + +### Normal + +
      +
      +

      Hero

      +
      +
      + +```html +
      +
      +

      Hero

      +
      +
      +``` + +### Center + +
      +
      +

      Hero

      +
      +
      + +```html +
      +
      +

      Hero

      +
      +
      +``` + +### Dark Theme + +
      +
      +

      Hero

      +
      +
      + +```html +
      +
      +

      Hero

      +
      +
      +``` + +### Background Image + +
      +
      +

      Hero

      +
      +
      + +```html +
      +
      +

      Hero

      +
      +
      +``` + +
      +
      +

      Hero

      +

      There's a hero, If you look inside your heart,

      +

      You don't have to be afraid of what you are.

      +
      +
      + +```html +
      +
      +

      Hero

      +

      ...

      +
      +
      +``` + +### Height + +
      +
      +

      Hero

      +

      There's a hero, If you look inside your heart,

      +

      You don't have to be afraid of what you are.

      +
      +
      + +```html +
      +
      +

      Hero

      +

      ...

      +
      +
      +``` + +### Background Image + Center + +
      +
      +

      Hero

      +

      There's a hero, If you look inside your heart,

      +

      You don't have to be afraid of what you are.

      +
      +
      + +```html +
      +
      +

      Hero

      +

      ...

      +
      +
      +``` + +
      +
      +

      Hero

      +

      There's a hero, If you look inside your heart,

      +

      You don't have to be afraid of what you are.

      +
      +
      + +```html + + +
      +
      +

      Hero

      +

      ...

      +
      +
      +``` + +## Swiper + + + + +`Alpha`{:.warning} + +### Normal + +
      +
      +
      1
      +
      2
      +
      3
      +
      4
      +
      5
      +
      6
      +
      7
      +
      + +
      +
      + +
      + +```css +.swiper-demo { + height: 220px; +} +``` + +```html +
      +
      +
      1
      +
      2
      +
      3
      +
      4
      +
      5
      +
      6
      +
      7
      +
      +
      +
      +
      +``` + +```js +{%- raw -%} +{%- include scripts/lib/swiper.js -%} +var SOURCES = window.TEXT_VARIABLES.sources; +window.Lazyload.js(SOURCES.jquery, function() { + $('.swiper-demo').swiper(); +}); +{% endraw %} +``` + +### Light Theme + +
      +
      +
      1
      +
      2
      +
      3
      +
      4
      +
      5
      +
      6
      +
      7
      +
      +
      +
      +
      + +### Dark Theme + +
      +
      +
      1
      +
      2
      +
      3
      +
      4
      +
      5
      +
      6
      +
      7
      +
      +
      +
      +
      + + +**Without Animation** + +
      +
      +
      1
      +
      2
      +
      3
      +
      4
      +
      5
      +
      6
      +
      7
      +
      +
      +
      +
      + + diff --git a/archive.html b/archive.html new file mode 100755 index 0000000..89dc810 --- /dev/null +++ b/archive.html @@ -0,0 +1,3 @@ +--- +layout: archive +--- diff --git a/assets/css/all.css b/assets/css/all.css new file mode 100644 index 0000000..8539c00 --- /dev/null +++ b/assets/css/all.css @@ -0,0 +1,5 @@ +/*! + * Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:a 2s infinite linear}.fa-pulse{animation:a 1s infinite steps(8)}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-excel:before{content:"\f1c3"}.fa-file-image:before{content:"\f1c5"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-fulcrum:before{content:"\f50b"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-meh:before{content:"\f11a"}.fa-memory:before{content:"\f538"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-moon:before{content:"\f186"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shower:before{content:"\f2cc"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-spotify:before{content:"\f1bc"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-moving:before{content:"\f4df"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Free}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/assets/css/all.min.css b/assets/css/all.min.css new file mode 100644 index 0000000..d949e4f --- /dev/null +++ b/assets/css/all.min.css @@ -0,0 +1,9 @@ +/*! + * Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} + +.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"} +.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/assets/css/expand.css b/assets/css/expand.css new file mode 100644 index 0000000..e50e452 --- /dev/null +++ b/assets/css/expand.css @@ -0,0 +1,101 @@ +/* + CSS for the main interaction +*/ +.accordion > input[name="collapse"] { + display: none; + + /*position: absolute; + left: -100vw;*/ +} + +.accordion label, +.accordion .content{ + /*max-width: 620px;*/ + margin: 0 auto; + } + + +.accordion .content { + /*background: rgba(0, 0, 0, 0.7);*/ + overflow: hidden; + height: 0; + transition: 0.5s; + box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.3); +} + +.accordion > input[name="collapse"]:checked ~ .content { + /*height: 380px; + transition: height 0.5s;*/ + height: 100%; +} + +.accordion label { + display: block; + +} + + +/* For Desktop */ +@media only screen and (min-width: 620px){ + + +.accordion > input[name="collapse"]:checked ~ .content { + height: 100%; +} + +} + + + +.accordion { + margin-bottom: 1em; +} + +.accordion > input[name="collapse"]:checked ~ .content { + border-top: 0; + transition: 0.3s; +} + +.accordion .handle { + margin: 0; + font-size: 16px; + +} + +.accordion label { + color: #fff; + cursor: pointer; + font-weight: normal; + padding: 10px; + /*background: #b0100c; rouge*/ + background: #3DB22B; /*vert*/ + user-select: none; + +} + +.accordion label:hover, +.accordion label:focus { + background: #252525; +} + +.accordion .handle label:before { + font-family: "Font Awesome 5 Free"; + /*content: "\f063";*/ + content: "\f055"; + display: inline-block; + margin-right: 10px; + font-size: 1em; + line-height: 1.556em; + vertical-align: middle; + transition: 0.4s; + font-weight: 900; +} + +.accordion > input[name="collapse"]:checked ~ .handle label:before { + /*transform: rotate(180deg);*/ + /*transform-origin: center;*/ + font-family: "Font Awesome 5 Free"; + content: "\f056"; + transition: 0.4s; +} + diff --git a/assets/favicon/android-chrome-192x192.png b/assets/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..44a1b0520f07b15770a8db15df033ff8dbb09f4b GIT binary patch literal 26899 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 literal 0 HcmV?d00001 diff --git a/assets/favicon/android-chrome-512x512.png b/assets/favicon/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe1ddd29936c01216823ef400dc5e3aec11dc1e GIT binary patch literal 118561 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
      +Etendre Réduire + +{% highlight text %} +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quam augue, volutpat a vehicula in, elementum ac nibh. Duis gravida sodales lobortis. +Nullam venenatis nec mauris ac cursus. Duis tempor volutpat sapien vel molestie. Fusce velit ante, volutpat vitae dui tincidunt, pharetra pulvinar magna. +Pellentesque tincidunt scelerisque sapien, sit amet semper risus dignissim at. Quisque laoreet gravida metus, pharetra egestas urna ultricies eget. +Integer eu lobortis dolor. Donec sollicitudin pulvinar quam, ac tempus lectus convallis ut. Sed ut mollis mi, vel tempor ex. +In quis purus porta, fermentum libero a, luctus nulla. Nulla eget risus scelerisque, maximus sem a, accumsan ante. +Praesent consequat sed odio ac commodo. Maecenas sit amet dictum lorem. +Nullam libero augue, suscipit vitae fermentum aliquet, malesuada at arcu. +{% endhighlight %} + +
      + +Syntaxe + +``` +
      +Etendre Réduire +{% raw %}{% highlight text %}{% endraw %} +{% raw %}{% endhighlight %}{% endraw %} +
      +``` + +## Syntaxe + +* [Kramdown Syntax](https://kramdown.gettalong.org/syntax) +* [Jekyll Formatting Cheatsheet](https://www.hansenh.com/post/jekyll-formatting-cheatsheet/) +* [Faire un lien interne sur un autre billet](https://www.digitalocean.com/community/tutorials/controlling-urls-and-links-in-jekyll) + +### Fichiers + +Les fichiers sont dans le dossier **/files** + +``` +[Fichier téléchargeable]({{ site.baseurl }}/files/nomFichier) +``` + +### Gras et italique + +Écrire en gras et en italique est particulièrement facile avec Markdown. Il suffit d’utiliser les étoiles, appelées aussi astérisques. Pour écrire en italique, insérez tout simplement une étoile devant et derrière l’expression le mot ou concerné. Pour le gras, insérez deux étoiles avant et après. Pour le gras et l’italique, vous devrez opter pour trois étoiles. Une autre option consiste à utiliser les tirets bas. + +``` +*Texte en italique* +_Texte en italique_ +**Texte en gras** +__Texte en gras__ +***Texte en italique et en gras*** +___Texte en italique et en gras___ +``` + +*Texte en italique* +_Texte en italique_ +**Texte en gras** +__Texte en gras__ +***Texte en italique et en gras*** +___Texte en italique et en gras___ + +### Barré + +Pour barrer un texte avec Markdown, précédez-le de `` et refermez la chaîne avec ``. + +``` +Ce texte est barré.mais pas celui-là. +``` + +Ce texte est barré.mais pas celui-là. + +### Listes + +(Dans cet exemple, des espaces de tête et de sentier sont montrés avec des points:: ⋅) + +``` +1. Première liste commandée +2. Autre question +...* Sous-liste non ordonnée. +1. Les chiffres réels n'ont pas d'importance, juste que c'est un nombre +....1 Sous-liste commandée +4. Et un autre article. + +⋅⋅ Vous pouvez avoir correctement identifié des paragraphes dans les éléments de la liste. Notez la ligne blanche ci-dessus, et les principaux espaces (au moins un, mais nous utiliserons trois ici pour aligner également la marque brute). + +⋅⋅ Pour avoir une rupture de ligne sans un paragraphe, vous aurez besoin d'utiliser deux espaces traînants. +⋅⋅ Notez que cette ligne est séparée, mais dans le même paragraphe.⋅⋅ + +* Liste non ordonnée peut utiliser des astérisques +- Ou minuses ++ Ou plus. +``` + +1. Première liste commandée +2. Autre question + * Sous-liste non ordonnée.. +1. Les chiffres réels n'ont pas d'importance, juste que c'est un nombre + 1. Sous-liste commandée +4. Et un autre article. + + Vous pouvez avoir correctement identifié des paragraphes dans les éléments de la liste. Notez la ligne blanche ci-dessus, et les principaux espaces (au moins un, mais nous utiliserons trois ici pour aligner également la marque brute). + + Pour avoir une pause de ligne sans un paragraphe, vous devrez utiliser **deux espaces de sentier**. + Notez que cette ligne est séparée, mais dans le même paragraphe. + +* Liste non ordonnée peut utiliser des astérisques +- Ou moins ++ Ou plus + + + * List 0 + * List +* Hello! + +### Case à cocher + +Markdown permet aussi d’éditer des listes à cocher. Ces listes sont précédées d’une case à cocher pouvant être activée par clic. Ces cases peuvent d’ailleurs être cochées par défaut au moment de la création de la liste. Pour ce faire, vous devez utiliser les crochets et le X. + +``` +- [x] Task one is done. +- [ ] Task two is undergoing. +- [ ] Stay awesome! +``` + +- [x] Task one is done. +- [ ] Task two is undergoing. +- [ ] Stay awesome! + + + +### Marques , sub et sup + +``` +Je dois souligner ces mots très importants. +``` + +Je dois souligner ces mots très importants. + +``` +H2O +X2 +``` + +H2O +X2 + + + +### Liens + +Markdown permet aussi d’insérer des images et des hyperliens dans votre texte. Cette insertion se fait en combinant des parenthèses et des crochets. Pour créer un lien, vous devrez écrire les mots ou les phrases visibles dans le texte entre crochets, suivis directement de l’adresse URL entre parenthèses. Si vous souhaitez ajouter au lien un titre facultatif, visible par l’utilisateur au survol de la souris, c’est tout à fait possible : ce texte devra être ajouté à l’adresse URL entre les parenthèses, mais sera séparé d’une espace de l’URL, et inscrit entre guillemets doubles. + +``` +Ici ce qui suit [Lien](https://example.com/ "titre de lien optionnel"). +``` + +Ici ce qui suit [Lien](https://example.com/ "titre de lien optionnel"). + +Si vous insérez une adresse URL ou une adresse électronique dans votre texte ordinaire, la plupart des éditeurs Markdown créeront automatiquement un hyperlien accessible par clic. Pour forcer cette fonction, utilisez les signes inférieur et supérieur à. Si, en revanche, vous souhaitez empêcher les éditeurs d’activer cette fonction, marquez l’URL comme code, et utilisez à nouveau les apostrophes inversées. + +``` + +`https://example.com` +``` + + +`https://example.com` + + +### notes de bas de page + +Markdown vous permet aussi d’éditer des notes de bas de page. Ajoutez tout simplement dans votre texte un numéro d’annotation, et reprenez ce numéro en bas de votre page dans une note de bas de page. Markdown créera alors automatiquement une ligne. Le chiffre correspondant à l’annotation est automatiquement formaté en lien, ce qui vous permet d’atteindre la note de bas de page par un simple clic. Pour pouvoir bénéficier de cet automatisme, commencez par inscrire le numéro de l’annotation derrière le mot souhaité : commencez par écrire un accent circonflexe entre les crochets, suivi du numéro. + +Le choix du chiffre (ou autres valeurs) n’a aucune espèce d’importance. Comme pour la création de liste, Markdown se charge de la numérotation. Ce qui est important, c’est de créer ensuite un renvoi vers la désignation que vous aurez sélectionnée. Pour ce faire, vous devez reprendre le même chiffre dans une nouvelle ligne, inséré à nouveau entre crochets avec un accent circonflexe, vous ajoutez le signe des deux points, et vous rédigez le texte de l’annotation. Ce texte pourra d’ailleurs faire l’objet d’un formatage de votre choix, et s’étendre sur plusieurs lignes. + +``` +Dans le texte ordinaire [^1] vous pouvez facilement placer des notes de bas de page [^2] +[^1]: Vous trouverez ici le texte de la note de bas de page. + [^2]: **Note de page de page** peut aussi être *formatée*. +Et celles-ci comprennent même plusieurs lignes +``` + +Dans le texte ordinaire [^1] vous pouvez facilement placer des notes de bas de page [^2] +[^1]: Vous trouverez ici le texte de la note de bas de page. + [^2]: **Note de page de page** peut aussi être *formatée*. +Et celles-ci comprennent même plusieurs lignes + +### Echappatoires et HTML + +En plus des caractères spéciaux imposés par HTML, Markdown utilise quelques autres caractères pour le formatage. Si l’on insère ces caractères, l’analyseur syntaxique en tiendra compte au moment de la conversion. Voici les caractères concernés : + +* Astérisque : `*` +* Trait d’union : `-` +* Souligné : `_` +* Parenthèses : `()` +* Crochets : `[]` +* Accolades : `{}` +* Point : `.` +* Point d’exclamation : `!` +* Dièse : `#` +* Accent grave : ` +* Barre oblique inversée : `\` + +Si l’on veut utiliser ces caractères dans leur sens premier, il suffit de les précéder d’une barre oblique inversée. Important : Cette barre oblique inversée doit impérativement précéder chacun de ces caractères. Cela concerne donc autant une parenthèse ouvrante qu’une parenthèse fermante. + +Que faire si l'on veut seulement afficher les astérisques, et non les italiques ? + +* ceci apparaît en italique : *un jour heureux* +* ceci n'apparaît pas en italique : \*un jour heureux\* + +Markdown : + +``` +* ceci apparaît en italique : *un jour heureux* +* ceci n'apparaît pas en italique : \*un jour heureux\* +``` + +Les barres obliques inversées disparaîtront et laisseront place aux astérisques. Vous pouvez faire la même chose avec n'importe quel caractère ayant une signification spéciale pour Markdown. + +De nombreuses balises HTML simples sont autorisées, par exemple `` +Les balises inconnues seront supprimées. Pour afficher un `` littéral ou une balise inconnue comme ``, vous devez l'échapper avec des entités HTML : + +``` +ce sera en gras +vous devez échapper aux balises <inconnues> +© special entities work +&copy; if you want to escape it +``` + +Sortie: + +ce sera en gras +vous devez échapper aux balises <inconnues> +© les entités spéciales fonctionnent +&copy; si vous voulez y échapper + +HTML tags that are block-level like
      can be used, but if there is markdown formatting within it, you must add a "markdown" attribute:
      Some safe attributes are also allowed, permitting basic styling and layout:
      + +Individual ampersands (&) and less-than signs (<) are fine, they will be shown as expected. + +Les balises HTML au niveau du bloc, comme `
      `, peuvent être utilisées, mais si elles contiennent un formatage markdown, vous devez ajouter un attribut "markdown" : `
      ` +Certains attributs sûrs sont également autorisés, permettant un style et une mise en page de base : `
      ` + +Les esperluettes (`&`) et les signes moins que (`<`) sont acceptables, ils seront affichés comme prévu. + + + + + + + + + + + + +
      un deux trois
      Foo1 Foo2 Foo3
      + + + +### Code et Syntaxe Highlighting + +Pour écrire un morceau de code dans un texte, Markdown l’identifie au moyen du caractère appelé le Backtick ou apostrophe inversée. Attention, à ne pas confondre avec les guillemets. Le marquage est donc constitué d’une apostrophe inversée au début et à la fin du segment correspondant au code. C’est ainsi que vous pourrez incorporer directement le code source ou une commande logicielle dans le texte. + +``` +Le `code` en ligne est entouré de `back-ticks`. +``` + +Le `code` en ligne est entouré de `back-ticks`. + +Les blocs de code sont soit délimités par des lignes comportant trois crochets, soit indentés de quatre espaces. Je recommande de n'utiliser que les blocs de code clôturés : ils sont plus faciles à utiliser et sont les seuls à prendre en charge la coloration syntaxique. + +![indent code](/images/syntax-code-indent.png) + +``` + s = "Code with space indent" + print s +``` + +highlighting codes + + +![highlighting code](/images/syntax-code-highlight.png) + +```bash +#!/bin/sh +#lancement jekyll +cd /srv/wikistatic/ +#bundle exec jekyll serve +/usr/local/bin/bundle exec jekyll build --watch +``` + +Exemples de code + +bash + +```bash +#/bin/bash +fichierindex="indexA.html" +echo ' + + + + Fichiers html + + +
        ' > $fichierindex +OIFS=$IFS +IFS=$'\n' + for file in $(find /home/yannick/Documents/html/ -name "*.html") + do + lien=$(basename ${file%.*}) + echo '
      • '$lien'
      • ' >> $fichierindex + done +IFS=$OIFS +echo ' +
      + +' >> $fichierindex +``` + + +Entre deux \` \` (altgr 7) + +`entre deux altgr 7` + +python + +```python +#!/usr/bin/env python +import os +from gi.repository import Gtk +from gi.repository import AppIndicator3 + +class AppIndicatorExample: + def __init__(self, indicator_id): + self.ind = AppIndicator3.Indicator.new(str(indicator_id), os.path.abspath('sample_icon.svg'), AppIndicator3.IndicatorCategory.SYSTEM_SERVICES) + self.ind.set_status(AppIndicator3.IndicatorStatus.ACTIVE) + + # create a menu + self.menu = Gtk.Menu() + + item = Gtk.MenuItem(str(indicator_id)) + item.show() + self.menu.append(item) + + image = Gtk.ImageMenuItem(Gtk.STOCK_QUIT) + self.menu.append(image) + + self.menu.show() + + self.ind.set_menu(self.menu) + + def quit(self, widget, data=None): + Gtk.main_quit() + +if __name__ == "__main__": + indicator = AppIndicatorExample(1) + Gtk.main() +``` + +perl + +```perl +#!/usr/bin/perl -w + +use strict; +use warnings; + +use constant VERSION => 0.03; + +if(scalar @ARGV != 4) { + &help; +} + +my $image_web; +my $dimensions; + +# Détermination des arguments +for(my $i = 0; $i < scalar @ARGV; $i +=2) { + if($ARGV[$i] eq "-s") { + $dimensions = $ARGV[$i + 1]; + } + elsif($ARGV[$i] eq "-i") { + $image_web = $ARGV[$i + 1]; + } + else { + print STDERR "Argument $ARGV[$i] inconnu\n"; + &help; + } +} + +``` + +javascript + +```javascript + function init() { + /* Sidebar height set */ + $sidebarStyles = $('.sidebar').attr('style') + $sidebarStyles += ' min-height: ' + $(document).height() + 'px;'; + $('.sidebar').attr('style', $sidebarStyles); + + /* Secondary contact links */ + var $scontacts = $('#contact-list-secondary'); + var $contactList = $('#contact-list'); + + $scontacts.hide(); + $contactList.mouseenter(function(){ $scontacts.fadeIn(); }); + $contactList.mouseleave(function(){ $scontacts.fadeOut(); }); + + /** + * Tags & categories tab activation based on hash value. If hash is undefined then first tab is activated. + */ + function activateTab() { + if(['/tags.html', '/categories.html'].indexOf(window.location.pathname) > -1) { + var hash = window.location.hash; + if(hash) + $('.tab-pane').length && $('a[href="' + hash + '"]').tab('show'); + else + $('.tab-pane').length && $($('.cat-tag-menu li a')[0]).tab('show'); + } + } + + // watch hash change and activate relevant tab + $(window).on('hashchange', activateTab); + + // initial activation + activateTab(); + }; +``` + +**Liste des formats du bloc de code Markdown** +Les langues prises en charge dépendent fortement de l'analyseur Markdown que vous utilisez. Ce qui suit est une liste de plusieurs langues et formats courants que vous pouvez essayer. Si votre langue ne figure pas dans cette liste, je vous suggère d'essayer simplement si elle est supportée. Vous pouvez également consulter la documentation de votre langage Markdown spécifique. + +``` + actionscript3 + apache + applescript + asp + brainfuck + c + cfm + clojure + cmake + coffee-script, coffeescript, coffee + cpp – C++ + cs + csharp + css + csv + bash + diff + elixir + erb – HTML + Embedded Ruby + go + haml + http + java + javascript + json + jsx + less + lolcode + make – Makefile + markdown + matlab + nginx + objectivec + pascal + PHP + Perl + python + profile – python profiler output + rust + salt, saltstate – Salt + shell, sh, zsh, bash – Shell scripting + scss + sql + svg + swift + rb, jruby, ruby – Ruby + smalltalk + vim, viml – Vim Script + volt + vhdl + vue + xml – XML and also used for HTML with inline CSS and Javascript + yaml +``` + + +### Tableaux + +Pour créer un tableau vous devez placer une ligne de tirets (-) sous la ligne d'entête et séparer les colonnes avec des `|`. +Vous pouvez aussi préciser l'alignement en utilisant des `:. :` + +``` +| Aligné à gauche | Centré | Aligné à droite | +| :--------------- |:---------------:| -----:| +| Aligné à gauche | ce texte | Aligné à droite | +| Aligné à gauche | est | Aligné à droite | +| Aligné à gauche | centré | Aligné à droite | + +Markdown | Less | Pretty +--- | --- | --- +*Still* | `renders` | **nicely** +1 | 2 | 3 +``` + +| Aligné à gauche | Centré | Aligné à droite | +| :--------------- |:---------------:| -----:| +| Aligné à gauche | ce texte | Aligné à droite | +| Aligné à gauche | est | Aligné à droite | +| Aligné à gauche | centré | Aligné à droite | + +Markdown | Less | Pretty +--- | --- | --- +*Still* | `renders` | **nicely** +1 | 2 | 3 + +### Repli texte - Citations + +``` +> Le repli texte à l'aide de `>` est très pratique dans les courriels pour émuler un texte de réponse. +> Cette ligne fait partie de la même citation. + +Saut de citation. + +> Il s'agit d'une très longue ligne qui sera toujours citée correctement lorsqu'elle sera enveloppée. Oh, continuons à écrire pour nous assurer que la ligne est assez longue pour que tout le monde puisse la lire. Oh, vous pouvez *mettre* **Markdown** dans un blockquote. +``` + +> Le repli texte à l'aide de `>` est très pratique dans les courriels pour émuler un texte de réponse. +> Cette ligne fait partie de la même citation. + +Saut de citation. + +> Il s'agit d'une très longue ligne qui sera toujours citée correctement lorsqu'elle sera enveloppée. Oh, continuons à écrire pour nous assurer que la ligne est assez longue pour que tout le monde puisse la lire. Oh, vous pouvez *mettre* **Markdown** dans un blockquote. + +### Ligne Horizontale + +``` +Trois ou plus... + +--- + +Traits d'union + +*** + +Astérisques + +___ + +Soulignés +``` + +**Trois ou plus...** + +--- + +Traits d'union + +*** + +Astérisques + +___ + +Soulignés + + +### Ligne Breaks + +``` +Voici une ligne pour commencer. + +Cette ligne est séparée de la précédente par deux nouvelles lignes, ce qui en fait un *paragraphe séparé*. + +Cette ligne commence également un paragraphe séparé, mais... +Cette ligne n'est séparée que par deux espaces et une seule nouvelle ligne, c'est une ligne distincte dans le *même paragraphe*. + +``` + +Voici une ligne pour commencer. + +Cette ligne est séparée de la précédente par deux nouvelles lignes, ce qui en fait un *paragraphe séparé*. + +Cette ligne commence également un paragraphe séparé, mais... +Cette ligne n'est séparée que par deux espaces et une seule nouvelle ligne, il s'agit donc d'une ligne distincte dans le *même paragraphe*. + +### Titres + +Par défaut, pour rédiger un titre avec Markdown, on utilise le dièse. On le sépare du texte avec une espace. Pour créer des sous-titres de hiérarchie inférieure, et donc rédigés en plus petits, il suffit d’insérer des dièses supplémentaires. Comme pour l’édition HTML, vous pourrez créer jusque 6 niveaux de sous-titres. + +``` +# H1 +## H2 +### H3 +#### H4 +##### H5 +###### H6 + +Alternatively, for H1 and H2, an underline-ish style: + +Alt-H1 +====== + +Alt-H2 +------ +``` + +## Alerte et Tag + +### Alerte + +Success Text. +{:.success} + +Info Text. +{:.info} + +Warning Text. +{:.warning} + +Error Text. +{:.error} + +**markdown:** + + Success Text. + {:.success} +^ + Info Text. + {:.info} +^ + Warning Text. + {:.warning} +^ + Error Text. + {:.error} + +### Tag + +`success`{:.success} + +`info`{:.info} + +`warning`{:.warning} + +`error`{:.error} + +**markdown:** + + `success`{:.success} +^ + `info`{:.info} +^ + `warning`{:.warning} +^ + `error`{:.error} + +## Boutons + +| Type | Class Names | +| ---- | ---- | +| **base** | button | +| **type** | button\-\-primary, button\-\-secondary, button\-\-success, button\-\-info, button\-\-warning, button\-\-error, button\-\-outline\-primary, button\-\-outline\-secondary, button\-\-outline\-success, button\-\-outline\-info, button\-\-outline\-warning, button\-\-outline\-error | +| **shape** | button\-\-pill, button\-\-rounded, button\-\-circle | +| **size** | button\-\-md (default), button\-\-xs, button\-\-sm, button\-\-lg, button\-\-xl | + +### Primaire + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--pill} + +```html +BUTTON +``` + +### Secondaire + +
      BUTTON
      + + [BUTTON](#){:.button.button--secondary.button--pill} + +```html +BUTTON +``` + +### Succès + +
      BUTTON
      + + [BUTTON](#){:.button.button--success.button--pill} + +```html +BUTTON +``` + +### Outline + +
      BUTTON
      + + [BUTTON](#){:.button.button--outline-success.button--pill} + +```html +BUTTON +``` + +### Pill + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--pill} + +```html +BUTTON +``` + +### Arrondi + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded} + +```html +BUTTON +``` + +### Cercle + +
      X
      + + [X](#){:.button.button--primary.button--circle} + +```html +X +``` + +### Extrêmement petit + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded.button--xs} + +```html +BUTTON +``` + +### Petite taille + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded.button--sm} + +```html +BUTTON +``` + +### Moyen + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded} + +```html +BUTTON +``` + +### Large + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded.button--lg} + +```html +BUTTON +``` + +### Extrêmement Large + +
      BUTTON
      + + [BUTTON](#){:.button.button--primary.button--rounded.button--xl} + +```html +BUTTON +``` + +## Graphes + +### MathJax + +Ajouter au Front matter `mathjax: true` + +``` +When $$a \ne 0$$, there are two solutions to $$ax^2 + bx + c = 0$$ +and they are + +$$x_1 = {-b + \sqrt{b^2-4ac} \over 2a}$$ + +$$x_2 = {-b - \sqrt{b^2-4ac} \over 2a} \notag$$ +``` + +When $$a \ne 0$$, there are two solutions to $$ax^2 + bx + c = 0$$ +and they are + +$$x_1 = {-b + \sqrt{b^2-4ac} \over 2a}$$ + +$$x_2 = {-b - \sqrt{b^2-4ac} \over 2a} \notag$$ + +### Mermaid + +* [Jekyll - Diagram with Mermaid](https://jojozhuang.github.io/tutorial/jekyll-diagram-with-mermaid/) + +Ajouter au Front matter `mermaid: true` + +```mermaid +graph LR + A --- B + B-->C[Happy] + B-->D(Sad); +``` + +Markdown + + ```mermaid + graph LR + A --- B + B-->C[Happy] + B-->D(Sad); + ``` + +Autre exemple + +```mermaid +graph TD + B[peace] + B-->C[fa:fa-ban forbidden] + B-->D(fa:fa-spinner); + B-->E(fa:fa-camera-retro perhaps?); +``` + +### Chart + +ajouter au Front matter `chart: true` + +**Line Chart** + +```chart +{ + "type": "line", + "data": { + "labels": [ + "January", + "February", + "March", + "April", + "May", + "June", + "July" + ], + "datasets": [ + { + "label": "# of bugs", + "fill": false, + "lineTension": 0.1, + "backgroundColor": "rgba(75,192,192,0.4)", + "borderColor": "rgba(75,192,192,1)", + "borderCapStyle": "butt", + "borderDash": [], + "borderDashOffset": 0, + "borderJoinStyle": "miter", + "pointBorderColor": "rgba(75,192,192,1)", + "pointBackgroundColor": "#fff", + "pointBorderWidth": 1, + "pointHoverRadius": 5, + "pointHoverBackgroundColor": "rgba(75,192,192,1)", + "pointHoverBorderColor": "rgba(220,220,220,1)", + "pointHoverBorderWidth": 2, + "pointRadius": 1, + "pointHitRadius": 10, + "data": [ + 65, + 59, + 80, + 81, + 56, + 55, + 40 + ], + "spanGaps": false + } + ] + }, + "options": {} +} +``` + +**markdown:** + + ```chart + { + "type": "polarArea", + "data": { + "datasets": [ + { + "data": [ + 11, + 16, + 7, + 3, + 14 + ], + "backgroundColor": [ + "#FF6384", + "#4BC0C0", + "#FFCE56", + "#E7E9ED", + "#36A2EB" + ], + "label": "My dataset" + } + ], + "labels": [ + "Red", + "Green", + "Yellow", + "Grey", + "Blue" + ] + }, + "options": {} + } + ``` + +Pie chart + +```chart +{ + "type": "pie", + "data": { + "labels": ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"], + "datasets": [{ + "label": "Votes", + "data": [12, 19, 3, 5, 2, 3], + "backgroundColor": [ + "rgba(255, 99, 132, 0.2)", + "rgba(54, 162, 235, 0.2)", + "rgba(255, 206, 86, 0.2)", + "rgba(75, 192, 192, 0.2)", + "rgba(153, 102, 255, 0.2)", + "rgba(255, 159, 64, 0.2)" + ], + "borderColor": [ + "rgba(255, 99, 132, 1)", + "rgba(54, 162, 235, 1)", + "rgba(255, 206, 86, 1)", + "rgba(75, 192, 192, 1)", + "rgba(153, 102, 255, 1)", + "rgba(255, 159, 64, 1)" + ], + "borderWidth": 1 + }] + }, + "options": {} +} +``` + +## Vidéos + +### Youtube + +**Youtube (markdown)** +On affiche la première image de la vidéo , un clic permet la lecture sur le site **youtube** +Syntaxe dans le "post" + +``` +[![IMAGE ALT TEXT](https://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg)](https://www.youtube.com/watch?v=YOUTUBE_VIDEO_ID_HERE "Video Title") +``` + +Exemple vidéo youtube : **Markdown tutorial** + +``` +[![Markdown tutorial](https://img.youtube.com/vi/6A5EpqqDOdk/0.jpg)](https://www.youtube.com/watch?v=6A5EpqqDOdk "Markdown tutorial") +``` + +[![Markdown tutorial](https://img.youtube.com/vi/6A5EpqqDOdk/0.jpg)](https://www.youtube.com/watch?v=6A5EpqqDOdk "Markdown tutorial") + +**Youtube (iframe)** + +``` + +``` + + + +### Iframe + +**Syntaxe directe (iframe)** + +``` + +``` + + + +### Video + +**HTML brut (video)** +Vous pouvez toujours écrire du HTML brut dans votre document "de balisage"markdown" : + +``` + +``` + + + +### Ted + +``` + +``` + + + +### Soundcloud + +``` +
      + +
      +``` + +
      + +
      + +### codepen + + + +## Images + +### Icônes + +TeXt uses Font Awesome for icons, you can search available icon code snippet [HERE](https://fontawesome.com/icons?d=gallery&q=donw&m=free). + + + +```html + +``` + +
      Download TeXt Theme
      + +```html + Download TeXt Theme +``` + +| Type | Class Names | +| ---- | ---- | +| **base** | image | +| **size** | image\-\-md (default), image\-\-xs, image\-\-sm, image\-\-lg, image\-\-xl | + +### Bordure + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_border"){:.border} +
      +
      + ![Image](path-to-image){:.border} +
      +
      +
      + +### Ombre + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_shadow"){:.shadow} +
      +
      + ![Image](path-to-image){:.shadow} +
      +
      +
      + +### Arrondi + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_rounded"){:.rounded} +
      +
      + ![Image](path-to-image){:.rounded} +
      +
      +
      + +### Cercle + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_circle"){:.circle} +
      +
      + ![Image](path-to-image){:.circle} +
      +
      +
      + +### Mélange + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_border+rounded"){:.border.rounded} +
      +
      + ![Image](path-to-image){:.border.rounded} +
      +
      +
      + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_circle+shadow"){:.circle.shadow} +
      +
      + ![Image](path-to-image){:.circle.shadow} +
      +
      +
      + +
      +
      +
      +![Image](https://raw.githubusercontent.com/kitian616/jekyll-TeXt-theme/master/docs/assets/images/image.jpg "Image_circle+border+shadow"){:.circle.border.shadow} +
      +
      + ![Image](path-to-image){:.circle.border.shadow} +
      +
      +
      + +### Exemples + +``` +![alt text](/images/A20-olinuxino-micro-top.png "Top view") +``` + +![alt text](/images/A20-olinuxino-micro-top.png "Top view") + +Images largeur fixée (si hauteur ajouter `height="36px"`) +Avec hauteur et largeur image `{:height="36px" width="30px"}` + +``` +![image](/images/A20-olinuxino-micro-top.png){:width="300px"} +``` + +![image](/images/A20-olinuxino-micro-top.png){:width="300px"} + +### Extrêmement Petit + + + +```html + +``` + +### Petit + + + +```html + +``` + +### Moyen + + + +```html + +``` + +### Large + + + +```html + +``` + +### Extrêmement Large + + + +```html + +``` + +## Elément + +### Contenu + +
      +
      +
      +

      Photograph

      +
      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      +
      + +```html +
      +
      +
      +

      Photograph

      +
      +
      +

      ...

      +
      +
      +
      +``` + +### Image et Contenu + + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      +``` + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      ...

      +
      +
      +
      +``` + +### Taille Image + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      +``` + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      ...

      +
      +
      +
      +``` + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +

      ...

      +
      +
      +
      +``` + +## Format Carte + +### Image + +
      +
      + +
      +
      + +```html +
      +
      + +
      +
      +``` + +### Contenu + +
      +
      +
      +

      Photograph

      +
      +

      A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip.

      +
      +
      + +```html +
      +
      +
      +

      Photograph

      +
      +

      ...

      +
      +
      +``` + +### Image et Contenu + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      +``` + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +

      + A photograph is an image created by light falling on a photosensitive surface, usually photographic film or an electronic image sensor, such as a CCD or a CMOS chip. +

      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +

      ...

      +
      +
      +``` + +### Image Overlay + +
      +
      + +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +

      Photograph

      +
      +
      +
      +``` + +
      +
      + +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +

      Photograph

      +
      +
      +
      +``` + +### Flat + +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      + +```html +
      +
      + +
      +
      +
      +

      Photograph

      +
      +
      +
      +``` + +### Image Clicquable + +
      +
      +
      + +
      +
      +
      + +```html + +
      +
      + +
      +
      +
      +``` + +## Class hero + + + +### Normal + +
      +
      +

      Hero

      +
      +
      + +```html +
      +
      +

      Hero

      +
      +
      +``` + +### Centré + +
      +
      +

      Hero

      +
      +
      + +```html +
      +
      +

      Hero

      +
      +
      +``` + +### Theme sombre + +
      +
      +

      Hero

      +
      +
      + +```html +
      +
      +

      Hero

      +
      +
      +``` + +### Image arrière plan + +
      +
      +

      Hero

      +
      +
      + +```html +
      +
      +

      Hero

      +
      +
      +``` + +
      +
      +

      Hero

      +

      There's a hero, If you look inside your heart,

      +

      You don't have to be afraid of what you are.

      +
      +
      + +```html +
      +
      +

      Hero

      +

      ...

      +
      +
      +``` + +### Hauteur + +
      +
      +

      Hero

      +

      There's a hero, If you look inside your heart,

      +

      You don't have to be afraid of what you are.

      +
      +
      + +```html +
      +
      +

      Hero

      +

      ...

      +
      +
      +``` + +### Image arrière plan Centrée + +
      +
      +

      Hero

      +

      There's a hero, If you look inside your heart,

      +

      You don't have to be afraid of what you are.

      +
      +
      + +```html +
      +
      +

      Hero

      +

      ...

      +
      +
      +``` + +
      +
      +

      Hero

      +

      There's a hero, If you look inside your heart,

      +

      You don't have to be afraid of what you are.

      +
      +
      + +```html + + +
      +
      +

      Hero

      +

      ...

      +
      +
      +``` + +## swiper + + + +`Alpha`{:.warning} + +### Normal + +
      +
      +
      1
      +
      2
      +
      3
      +
      4
      +
      5
      +
      6
      +
      7
      +
      + +
      +
      + +
      + +```css +.swiper-demo { + height: 220px; +} +``` + +```html +
      +
      +
      1
      +
      2
      +
      3
      +
      4
      +
      5
      +
      6
      +
      7
      +
      +
      +
      +
      +``` + +```js +{%- raw -%} +{%- include scripts/lib/swiper.js -%} +var SOURCES = window.TEXT_VARIABLES.sources; +window.Lazyload.js(SOURCES.jquery, function() { + $('.swiper-demo').swiper(); +}); +{% endraw %} +``` + +### Thème clair + +
      +
      +
      1
      +
      2
      +
      3
      +
      4
      +
      5
      +
      6
      +
      7
      +
      +
      +
      +
      + +### Thème sombre + +
      +
      +
      1
      +
      2
      +
      3
      +
      4
      +
      5
      +
      6
      +
      7
      +
      +
      +
      +
      + + diff --git a/yannstatic.sh b/yannstatic.sh new file mode 100755 index 0000000..b6542ff --- /dev/null +++ b/yannstatic.sh @@ -0,0 +1,4 @@ +#!/bin/sh +cd /srv/media/yannstatic +/home/yann/gems/bin/jekyll build --watch --incremental --source "/srv/media/yannstatic" --destination "/srv/media/yannstatic/static" +

      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 literal 0 HcmV?d00001 diff --git a/assets/favicon/apple-touch-icon.png b/assets/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..706928fd3f1a20d5252c4f03d8ae80565c0c308e GIT binary patch literal 24260 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 literal 0 HcmV?d00001 diff --git a/assets/js/jquery.min.js b/assets/js/jquery.min.js new file mode 100644 index 0000000..4c5be4c --- /dev/null +++ b/assets/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"use strict";"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){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=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=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(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 qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.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),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},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(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),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){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.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?I(k,a)-I(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?I(k,a)-I(k,b):0;if(e===f)return la(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?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$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 ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.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},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.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=ga.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=ga.selectors={cacheLength:50,createPseudo:ia,match:V,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(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===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]||ga.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]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.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(_,aa).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("(^|"+K+")"+a+"("+K+"|$)"))&&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=ga.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(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},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()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(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:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).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:oa(!1),disabled:oa(!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 X.test(a.nodeName)},input:function(a){return W.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:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(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}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,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]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.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 r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.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),c<=h&&h--}),this},has:function(a){return a?r.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=g=[],c||b||(f=c=""),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};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), +a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.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 V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(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)xa(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=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(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&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), +void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + + diff --git a/search.json b/search.json new file mode 100644 index 0000000..5fa2a6f --- /dev/null +++ b/search.json @@ -0,0 +1,18 @@ +--- +regenerate: true +--- +[ + {% assign sorted = site.posts | sort_natural: "modif" | reverse %} + {% for post in sorted %} + { + + "title" : "{{ post.title | strip_html | escape }}", + "url" : "{{ site.baseurl }}{{ post.url }}", + "tags" : "{{ post.tags | join: ', ' }}", + "create" : "{{ post.create }}", + "date" : "{{ post.modif }}" + + } {% unless forloop.last %},{% endunless %} + {% endfor %} +] + diff --git a/syntaxe-markdown.md b/syntaxe-markdown.md new file mode 100644 index 0000000..8df1ce6 --- /dev/null +++ b/syntaxe-markdown.md @@ -0,0 +1,2012 @@ +--- +layout: article +title: Syntaxe markdown + thème +mathjax: true +mermaid: true +chart: true +--- + +*Markdown est un langage de balisage qui se veut être facile à lire par les personnes. Les balises ne doivent pas être abstraites, mais proches de leur véritable signification.* + +## Sommaire + +- [Markdown](#markdown) + - [Entête de fichier markdown pour serveur statique jekyll](#entête-de-fichier-markdown-pour-serveur-statique-jekyll) + - [Icônes Forkawesome](#icônes-forkawesome) + - [Désactiver les balises liquid](#désactiver-les-balises-liquid) + - [Etendre Réduire un contenu](#etendre-réduire-un-contenu) +- [Syntaxe](#syntaxe) + - [Fichiers](#fichiers) + - [Gras et italique](#gras-et-italique) + - [Barré](#barré) + - [Listes](#listes) + - [Case à cocher](#case-à-cocher) + - [Marques , sub et sup](#marques-sub-et-sup) + - [Liens](#liens) + - [notes de bas de page](#notes-de-bas-de-page) + - [Echappatoires et HTML](#echappatoires-et-html) + - [Code et Syntaxe Highlighting](#code-et-syntaxe-highlighting) + - [Tableaux](#tableaux) + - [Repli texte - Citations](#repli-texte---citations) + - [Ligne Horizontale](#ligne-horizontale) + - [Ligne Breaks](#ligne-breaks) + - [Titres](#titres) +- [Alerte et Tag](#alerte-et-tag) + - [Alerte](#alerte) + - [Tag](#tag) +- [Boutons](#boutons) + - [Primaire](#primaire) + - [Secondaire](#secondaire) + - [Succès](#succès) + - [Outline](#outline) + - [Pill](#pill) + - [Arrondi](#arrondi) + - [Cercle](#cercle) + - [Extrêmement petit](#extrêmement-petit) + - [Petite taille](#petite-taille) + - [Moyen](#moyen) + - [Large](#large) + - [Extrêmement Large](#extrêmement-large) +- [Graphes](#graphes) + - [MathJax](#mathjax) + - [Mermaid](#mermaid) + - [Chart](#chart) +- [Vidéos](#vidéos) + - [Youtube](#youtube) + - [Iframe](#iframe) + - [Video](#video) + - [Ted](#ted) + - [Soundcloud](#soundcloud) + - [codepen](#codepen) +- [Images](#images) + - [Icônes](#icônes) + - [Bordure](#bordure) + - [Ombre](#ombre) + - [Arrondi](#arrondi) + - [Cercle](#cercle) + - [Mélange](#mélange) + - [Exemples](#exemples) + - [Extrêmement Petit](#extrêmement-petit) + - [Petit](#petit) + - [Moyen](#moyen) + - [Large](#large) + - [Extrêmement Large](#extrêmement-large) +- [Elément](#elément) + - [Contenu](#contenu) + - [Image et Contenu](#image-et-contenu) + - [Taille Image](#taille-image) +- [Format Carte](#format-carte) + - [Image](#image) + - [Contenu](#contenu) + - [Image et Contenu](#image-et-contenu) + - [Image Overlay](#image-overlay) + - [Flat](#flat) + - [Image Clicquable](#image-clicquable) +- [Class hero](#class-hero) + - [Normal](#normal) + - [Centré](#centré) + - [Theme sombre](#theme-sombre) + - [Image arrière plan](#image-arrière-plan) + - [Hauteur](#hauteur) + - [Image arrière plan Centrée](#image-arrière-plan-centrée) +- [swiper](#swiper) + - [Normal](#normal) + - [Thème clair](#thème-clair) + - [Thème sombre](#thème-sombre) + +## Markdown + +### Entête de fichier markdown pour serveur statique jekyll + +``` +--- +layout: article +title: tmux +toc: true +create: 2020-08-03 +modif: 2019-03-06 +tags: [tmux,divers] +mathjax: (falcutatif) +mermaid: (falcutatif) +chart: (falcutatif) +--- +``` + +* **layout** : toujours **post** **(Obligatoire)** +* **title** : le titre du billet **(Obligatoire)** +* **toc** : true pour avoir un menu de lien des différentes entêtes du billet +* **date** : respecter le format **aaaa-mm-jj** **(Obligatoire)** +* **categories** et **tags** : un mot entre crochets sans espace ni caractères spéciaux , si plusieurs une virgule pour les séparer + +### Icônes Forkawesome + +` ` + + +`` + + +`` + + +Ajout `fa-fw` pour afficher: +` ` + + +### Désactiver les balises liquid + +Il est possible de désactiver les balises liquid en utilisant raw / endraw + +Exemple +![](/images/raw-endraw.png) + +### Etendre Réduire un contenu + +