diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..93385d9 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 20 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..63f307b --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +Thumbs.db +db.json +*.log +node_modules/ +public/ +.deploy*/ +_multiconfig.yml \ No newline at end of file diff --git a/2024/09/12/hello-world/index.html b/2024/09/12/hello-world/index.html new file mode 100644 index 0000000..c441085 --- /dev/null +++ b/2024/09/12/hello-world/index.html @@ -0,0 +1,48 @@ + + + + + + + + + + +Hello World | Hexo

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

+

Quick Start

Create a new post

1
$ hexo new "My New Post"
+ +

More info: Writing

+

Run server

1
$ hexo server
+ +

More info: Server

+

Generate static files

1
$ hexo generate
+ +

More info: Generating

+

Deploy to remote sites

1
$ hexo deploy
+ +

More info: Deployment

+
\ No newline at end of file diff --git a/archives/2024/09/index.html b/archives/2024/09/index.html new file mode 100644 index 0000000..9310c4e --- /dev/null +++ b/archives/2024/09/index.html @@ -0,0 +1,31 @@ + + + + + + +Archive | Hexo
Total 1 Articles, Go on!
\ No newline at end of file diff --git a/archives/2024/index.html b/archives/2024/index.html new file mode 100644 index 0000000..ef2097f --- /dev/null +++ b/archives/2024/index.html @@ -0,0 +1,31 @@ + + + + + + +Archive | Hexo
Total 1 Articles, Go on!
\ No newline at end of file diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 0000000..95cdd95 --- /dev/null +++ b/archives/index.html @@ -0,0 +1,31 @@ + + + + + + +Archive | Hexo
Total 1 Articles, Go on!
\ No newline at end of file diff --git a/css/images/banner.jpg b/css/images/banner.jpg new file mode 100644 index 0000000..b963e06 Binary files /dev/null and b/css/images/banner.jpg differ diff --git a/css/index.css b/css/index.css new file mode 100644 index 0000000..0e556d2 --- /dev/null +++ b/css/index.css @@ -0,0 +1,2541 @@ +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} +body { + margin: 0; +} +main { + display: block; +} +h1 { + margin: 0.67em 0; + font-size: 2em; +} +hr { + overflow: visible; /* 2 */ + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ +} +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} +a { + background-color: transparent; +} +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} +b, +strong { + font-weight: bolder; +} +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +img { + border-style: none; +} +button, +input, +optgroup, +select, +textarea { + margin: 0; /* 2 */ + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ +} +button, +input { + overflow: visible; /* 1 */ +} +button, +select { + text-transform: none; /* 1 */ +} +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; +} +button::-moz-focus-inner, +[type='button']::-moz-focus-inner, +[type='reset']::-moz-focus-inner, +[type='submit']::-moz-focus-inner { + border-style: none; + padding: 0; +} +button:-moz-focusring, +[type='button']:-moz-focusring, +[type='reset']:-moz-focusring, +[type='submit']:-moz-focusring { + outline: 1px dotted ButtonText; +} +fieldset { + padding: 0.35em 0.75em 0.625em; +} +legend { + display: table; /* 1 */ + box-sizing: border-box; /* 1 */ + padding: 0; /* 3 */ + max-width: 100%; /* 1 */ + white-space: normal; /* 1 */ + color: inherit; /* 2 */ +} +progress { + vertical-align: baseline; +} +textarea { + overflow: auto; +} +[type='checkbox'], +[type='radio'] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { + height: auto; +} +[type='search'] { + outline-offset: -2px; /* 2 */ + -webkit-appearance: textfield; /* 1 */ +} +[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} +::-webkit-file-upload-button { + font: inherit; /* 2 */ + -webkit-appearance: button; /* 1 */ +} +details { + display: block; +} +summary { + display: list-item; +} +template { + display: none; +} +[hidden] { + display: none; +} +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} +body { + margin: 0; +} +main { + display: block; +} +h1 { + margin: 0.67em 0; + font-size: 2em; +} +hr { + overflow: visible; /* 2 */ + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ +} +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} +a { + background-color: transparent; +} +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} +b, +strong { + font-weight: bolder; +} +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +img { + border-style: none; +} +button, +input, +optgroup, +select, +textarea { + margin: 0; /* 2 */ + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ +} +button, +input { + overflow: visible; /* 1 */ +} +button, +select { + text-transform: none; /* 1 */ +} +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; +} +button::-moz-focus-inner, +[type='button']::-moz-focus-inner, +[type='reset']::-moz-focus-inner, +[type='submit']::-moz-focus-inner { + border-style: none; + padding: 0; +} +button:-moz-focusring, +[type='button']:-moz-focusring, +[type='reset']:-moz-focusring, +[type='submit']:-moz-focusring { + outline: 1px dotted ButtonText; +} +fieldset { + padding: 0.35em 0.75em 0.625em; +} +legend { + display: table; /* 1 */ + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; /* 1 */ + padding: 0; /* 3 */ + max-width: 100%; /* 1 */ + white-space: normal; /* 1 */ + color: inherit; /* 2 */ +} +progress { + vertical-align: baseline; +} +textarea { + overflow: auto; +} +[type='checkbox'], +[type='radio'] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { + height: auto; +} +[type='search'] { + outline-offset: -2px; /* 2 */ + -webkit-appearance: textfield; /* 1 */ +} +[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} +::-webkit-file-upload-button { + font: inherit; /* 2 */ + -webkit-appearance: button; /* 1 */ +} +details { + display: block; +} +summary { + display: list-item; +} +template { + display: none; +} +[hidden] { + display: none; +} +:root { + --color-gray-100: #fff; + --color-gray-150: #f9f9f9; + --color-gray-200: #f5f6f7; + --color-gray-250: #efefef; + --color-gray-260: #e5e7ea; + --color-gray-300: #dadada; + --color-gray-400: #ccd0d5; + --color-gray-500: #bec3c9; + --color-gray-550: #adadad; + --color-gray-600: #8d949e; + --color-gray-650: #757474; + --color-gray-700: #606770; + --color-gray-800: #444950; + --color-gray-850: #303846; + --color-gray-900: #2c323c; + --color-gray-950: #1c1e21; + --color-font: var(--color-gray-900); + --color-card: var(--color-gray-100); + --color-blue-200: #ebeef5; +} +html.nightmode { + --color-gray-100: #1c1e21; + --color-gray-150: #2c323c; + --color-gray-200: #303846; + --color-gray-250: #444950; + --color-gray-260: #555b64; + --color-gray-300: #606770; + --color-gray-400: #757474; + --color-gray-500: #8d949e; + --color-gray-550: #959595; + --color-gray-600: #bec3c9; + --color-gray-650: #ccd0d5; + --color-gray-700: #dadada; + --color-gray-800: #eaecef; + --color-gray-850: #f5f6f7; + --color-gray-900: #f9f9f9; + --color-gray-950: #fff; + --color-font: var(--color-gray-600); + --color-card: var(--color-gray-150); + --color-blue-200: #444950; +} +::selection { + color: #fff; + background-color: #8be0e1; +} +*, +*::before, +*::after { + -webkit-box-sizing: inherit; + -moz-box-sizing: inherit; + box-sizing: inherit; +} +html { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + font-size: 20px; +} +body { + margin: 0; + padding: 0; + font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif, Arial; + font-size: 14px; + line-height: 2; + color: var(--color-font); + background-color: var(--color-gray-250); +} +h1, +h2, +h3, +h4, +h5, +h6 { + padding: 0; + font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif, Arial; + font-weight: 700; + line-height: 1.5; +} +h1 { + font-size: 2em; +} +h2 { + font-size: 1.5em; +} +h3 { + font-size: 1.25em; +} +h4 { + font-size: 1em; +} +h5 { + font-size: 0.875em; +} +h6 { + font-size: 0.85em; +} +p { + margin: 0 0 1rem; +} +a { + text-decoration: none; + color: #058ed2; + background-color: transparent; + outline: none; + cursor: pointer; +} +img, +video, +iframe { + display: block; + margin-right: auto; + margin-left: auto; + max-width: 100%; +} +hr { + margin: 1rem 0; + border: 2px dashed #b8dcfd; + height: 0; +} +blockquote { + margin: 0; + border-left: 5px solid var(--color-gray-300); + padding: 0 1rem; + background-color: var(--color-gray-200); +} +blockquote cite::before { + content: '--'; + padding: 0 0.25rem; +} +code { + white-space: normal; + word-wrap: break-word; + word-break: break-word; + border-radius: 3px; + padding: 1px 5px; + font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; + font-size: 0.95em; + color: var(--color-gray-700); + background-color: var(--color-gray-200); +} +dt { + font-weight: 700; +} +dd { + margin: 0; + padding: 0; +} +table { + border-spacing: 0; + border-collapse: collapse; + width: 100%; +} +th, +td { + border: 1px solid var(--color-blue-200); + padding: 0 5px; +} +acronym, +abbr { + cursor: help; +} +kbd { + display: inline-block; + border: 1px solid var(--color-gray-500); + border-radius: 3px; + padding: 0.1rem 0.2rem; + font-family: consolas, 'Liberation Mono', courier, monospace; + font-size: 0.85em; + font-weight: 700; + line-height: 1; + white-space: nowrap; + color: var(--color-gray-850); + background-color: var(--color-gray-150); + -webkit-box-shadow: 0 -1px 0 var(--color-gray-300) inset; + box-shadow: 0 -1px 0 var(--color-gray-300) inset; +} +.clearfix { + zoom: 1; +} +.clearfix:before, +.clearfix:after { + content: ""; + display: table; +} +.clearfix:after { + clear: both; +} +[data-popover] { + position: relative; +} +[data-popover]::before { + position: absolute; + top: 0; + left: 50%; + z-index: 2; + font-family: sans-serif, Arial; + font-size: 14px; + font-weight: normal; + font-style: normal; + line-height: 2; + white-space: nowrap; + color: #fff; + background-color: rgba(0,0,0,0.9); + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + text-shadow: none; + -webkit-transition: opacity 0.2s ease, -webkit-transform 0.2s ease; + -moz-transition: opacity 0.2s ease, -moz-transform 0.2s ease; + -o-transition: opacity 0.2s ease, -o-transform 0.2s ease; + -ms-transition: opacity 0.2s ease, -ms-transform 0.2s ease; + transition: opacity 0.2s ease, transform 0.2s ease; + -webkit-transform: translate(-50%, -70%); + -moz-transform: translate(-50%, -70%); + -o-transform: translate(-50%, -70%); + -ms-transform: translate(-50%, -70%); + transform: translate(-50%, -70%); + pointer-events: none; +} +[data-popover]::before { + content: attr(data-popover); + border-radius: 4px; + padding: 0.2rem 0.6rem; +} +@media (min-width: 991.98px) { + [data-popover-pos='up']:hover::before { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transform: translate(-50%, -120%); + -moz-transform: translate(-50%, -120%); + -o-transform: translate(-50%, -120%); + -ms-transform: translate(-50%, -120%); + transform: translate(-50%, -120%); + } +} +.stun-message { + position: fixed; + top: 1rem; + left: 50%; + z-index: 2; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -o-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); +} +.stun-alert { + position: relative; + border-radius: 3px; + padding: 8px 12px; + font-size: 16px; + line-height: 1rem; + background-color: #fff; + -webkit-box-shadow: 0 4px 12px rgba(0,0,0,0.15); + box-shadow: 0 4px 12px rgba(0,0,0,0.15); +} +.stun-alert-success { + color: #52c41a; +} +.stun-alert-success ~ i { + color: #52c41a; +} +.stun-alert-info { + color: #1890ff; +} +.stun-alert-info ~ i { + color: #1890ff; +} +.stun-alert-warning { + color: #faad14; +} +.stun-alert-warning ~ i { + color: #faad14; +} +.stun-alert-error { + color: #f5222d; +} +.stun-alert-error ~ i { + color: #f5222d; +} +.stun-alert-description { + margin-left: 0.5rem; +} +.anime-close::before, +.anime-close::after { + -webkit-transition: -webkit-transform 0.2s ease; + -moz-transition: -moz-transform 0.2s ease; + -o-transition: -o-transform 0.2s ease; + -ms-transition: -ms-transform 0.2s ease; + transition: transform 0.2s ease; + -webkit-transform: rotate(-45deg); + -moz-transform: rotate(-45deg); + -o-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.anime-close::after { + -webkit-transform: rotate(-135deg); + -moz-transform: rotate(-135deg); + -o-transform: rotate(-135deg); + -ms-transform: rotate(-135deg); + transform: rotate(-135deg); +} +.anime-close:hover::before, +.anime-close:hover::after { + -webkit-transform: rotate(0); + -moz-transform: rotate(0); + -o-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); +} +.container { + white-space: normal; + word-wrap: break-word; + word-break: break-word; + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + overflow: hidden; /* !!! */ + position: relative; + min-height: 100vh; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} +.header { + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + box-flex: 1; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} +.footer { + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + box-flex: 1; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} +.main { + width: 100%; + -webkit-box-flex: 1; + -moz-box-flex: 1; + -o-box-flex: 1; + box-flex: 1; + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; +} +.main-inner { + margin: 0 auto; + padding: 20px; + width: 100%; + font-size: 16px; +} +.content-wrap { + width: calc(100% - 330px); + float: left; +} +.content-wrap--noside { + float: none; + margin: 0 auto; +} +.content { + width: 100%; + border-radius: 5px; + padding: 1rem 2rem; + background-color: var(--color-card); +} +.content img { + border: 1px solid var(--color-gray-300); + border-radius: 3px; + padding: 0.2rem; +} +.content h1:hover .heading-link, +.content h2:hover .heading-link, +.content h3:hover .heading-link, +.content h4:hover .heading-link, +.content h5:hover .heading-link, +.content h6:hover .heading-link { + visibility: visible; +} +.heading-link { + display: inline-block; + visibility: hidden; + margin: -10px 0 0 -20px; + padding-right: 5px; + width: 20px; + height: 16px; + font-size: 16px; + line-height: 20px; + vertical-align: middle; + color: var(--color-font); +} +.content-home { + padding: 0 !important; + background-color: transparent; +} +.pullquote.left { + text-align: left; +} +.pullquote.right { + text-align: right; +} +.post-body h1, +.post-body h2 { + border-bottom: 1px solid var(--color-gray-250); + padding-bottom: 0.3em; +} +.table-container { + overflow: auto; + margin-bottom: 1rem; +} +.header-inner { + width: 100%; + font-size: 18px; + background-color: #2d2e30; + height: 80vh; +} +.header-inner--bgcolor { + background-color: #333; +} +.header-inner--height { + height: 50px !important; +} +.header-nav { + position: relative; + top: 0; + left: 0; + z-index: 1; + width: 100%; + height: 50px; + -webkit-transition: -webkit-transform 0.2s ease-out, background-color 0.2s ease; + -moz-transition: -moz-transform 0.2s ease-out, background-color 0.2s ease; + -o-transition: -o-transform 0.2s ease-out, background-color 0.2s ease; + -ms-transition: -ms-transform 0.2s ease-out, background-color 0.2s ease; + transition: transform 0.2s ease-out, background-color 0.2s ease; +} +.header-nav--fixed { + position: fixed; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} +.header-nav--sticky { + position: fixed; + background-color: #333; + -webkit-transform: translateY(-100%); + -moz-transform: translateY(-100%); + -o-transform: translateY(-100%); + -ms-transform: translateY(-100%); + transform: translateY(-100%); +} +.header-nav.slider--down { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -o-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} +.header-nav.slider--up { + -webkit-transform: translateY(-100%); + -moz-transform: translateY(-100%); + -o-transform: translateY(-100%); + -ms-transform: translateY(-100%); + transform: translateY(-100%); +} +.header-nav.slider--clear { + -webkit-transition: background-color 0.2s ease; + -moz-transition: background-color 0.2s ease; + -o-transition: background-color 0.2s ease; + -ms-transition: background-color 0.2s ease; + transition: background-color 0.2s ease; +} +.header-nav-inner { + margin: 0 auto; + padding: 20px; + padding-top: 0 !important; + padding-bottom: 0 !important; + width: 100%; + height: 100%; +} +.header-nav-menubtn { + display: none; + padding: 0 0.5rem; + line-height: 50px; + color: #f5f6f7; + cursor: pointer; +} +.header-nav-menu-item__link, +.header-nav-submenu-item__link { + display: block; + color: #f5f6f7; +} +.header-nav-menu-item__icon, +.header-nav-submenu-item__icon, +.header-nav-menu-item__text, +.header-nav-submenu-item__text { + margin: 0 3px; +} +.header-nav-menu-item__link { + padding: 0 0.5rem; + -webkit-transition: color 0.2s ease, background-color 0.2s ease; + -moz-transition: color 0.2s ease, background-color 0.2s ease; + -o-transition: color 0.2s ease, background-color 0.2s ease; + -ms-transition: color 0.2s ease, background-color 0.2s ease; + transition: color 0.2s ease, background-color 0.2s ease; +} +.header-nav-menu-item__link:hover { + color: #f4f5f5; + background-color: #999; +} +.header-nav-submenu-item__link { + padding: 0.75rem 0.5rem; + -webkit-transition: color 0.2s ease, background-color 0.2s ease; + -moz-transition: color 0.2s ease, background-color 0.2s ease; + -o-transition: color 0.2s ease, background-color 0.2s ease; + -ms-transition: color 0.2s ease, background-color 0.2s ease; + transition: color 0.2s ease, background-color 0.2s ease; +} +.header-nav-submenu-item__link:hover { + color: #f4f5f5; + background-color: #999; +} +.header-nav-menu { + display: none; + height: 100%; + line-height: 50px; +} +.header-nav-menu-item { + float: left; + position: relative; + margin: 0 1rem 0 0; + height: 50px; + text-align: center; + cursor: pointer; +} +.header-nav-menu-item:last-child { + margin: 0; +} +.header-nav-submenu { + display: none; + position: absolute; + right: -0.5rem; + left: -0.5rem; + width: auto; + background-color: #2d2e30; +} +.header-nav-submenu.hide--force { + display: none !important; +} +.header-nav-submenu-item { + margin: 0; + padding: 0; + width: 100%; + font-size: 18px; + line-height: 1; + text-align: center; +} +.header-nav-mode { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + float: right; + padding: 0 0.5rem; + height: 100%; + line-height: 50px; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; +} +.header-banner { + position: relative; + z-index: 0; + width: 100%; + height: 100%; +} +.header-banner-info { + position: absolute; + top: 50%; + left: 0; + padding: 0 0.5rem; + width: 100%; + text-align: center; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} +.header-banner-info__title { + margin-bottom: 2rem; + font-size: 4rem; + font-weight: 700; + line-height: 1; + color: #f5f6f7; +} +.header-banner-info__subtitle { + font-size: 1.2rem; + font-weight: 400; + color: #f5f6f7; +} +.footer__icon { + display: inline-block; + margin: 0 0.4rem; + font-size: 1em; + color: #f00; +} +.footer-inner { + position: relative; + padding: 1rem; + font-size: 16px; + text-align: center; + color: #f5f6f7; + background-color: #2d2e30; +} +.footer a { + color: #c20808; + -webkit-transition: color 0.2s ease; + -moz-transition: color 0.2s ease; + -o-transition: color 0.2s ease; + -ms-transition: color 0.2s ease; + transition: color 0.2s ease; +} +.footer a:hover { + color: #ed0b0b; +} +.footer__devider { + margin: 0 10px; +} +.sidebar { + border-radius: 5px; + padding: 1rem 2rem; + background-color: var(--color-card); + padding: 1rem; + width: 300px; + font-size: 16px; +} +.sidebar--sticky { + position: fixed; + top: 20px; + z-index: 0; + -webkit-transform: translateZ(0); + -moz-transform: translateZ(0); + -o-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); +} +.sidebar .hide { + display: none; +} +.sidebar-wrap { + width: 300px; + float: right; +} +.sidebar-nav { + padding-bottom: 1em; + text-align: center; +} +.sidebar-nav-toc, +.sidebar-nav-ov { + border-bottom: 1px solid var(--color-gray-150); + padding: 0.3em 0.5em; + color: var(--color-gray-800); + -webkit-transition: opacity 0.2s; + -moz-transition: opacity 0.2s; + -o-transition: opacity 0.2s; + -ms-transition: opacity 0.2s; + transition: opacity 0.2s; +} +.sidebar-nav-toc:hover, +.sidebar-nav-ov:hover { + color: #fc6423; + cursor: pointer; +} +.sidebar-nav .current { + border-color: #fc6423; + color: #fc6423; +} +.sidebar-toc { + overflow: auto; + position: relative; + max-height: 70vh; + white-space: normal; + word-wrap: break-word; + word-break: break-word; +} +.sidebar-toc .toc-child { + display: none; +} +.sidebar-toc .active > .toc-child { + display: block; +} +.sidebar-toc .current > .toc-child { + display: block; +} +.sidebar-toc .active > a, +.sidebar-toc .current > a { + color: #fc6423; + -webkit-transition: color 0.3s; + -moz-transition: color 0.3s; + -o-transition: color 0.3s; + -ms-transition: color 0.3s; + transition: color 0.3s; +} +.sidebar-toc ol, +.sidebar-toc li { + list-style: none; +} +.sidebar-toc ol { + margin: 0; + padding-left: 1em; +} +.sidebar-ov-author { + width: 100%; + text-align: center; +} +.sidebar-ov-author__avatar { + margin: 0 auto; + width: 120px; + height: 120px; +} +.sidebar-ov-author__avatar_img { + opacity: 1; + -ms-filter: none; + filter: none; +} +.sidebar-ov-author__avatar:hover .sidebar-ov-author__avatar_img { + -webkit-animation: avatar-turn 0.8s both ease-out; + -moz-animation: avatar-turn 0.8s both ease-out; + -o-animation: avatar-turn 0.8s both ease-out; + -ms-animation: avatar-turn 0.8s both ease-out; + animation: avatar-turn 0.8s both ease-out; +} +@-moz-keyframes avatar-turn { + 100% { + -webkit-transform: rotate(1turn); + -moz-transform: rotate(1turn); + -o-transform: rotate(1turn); + -ms-transform: rotate(1turn); + transform: rotate(1turn); + } +} +@-webkit-keyframes avatar-turn { + 100% { + -webkit-transform: rotate(1turn); + -moz-transform: rotate(1turn); + -o-transform: rotate(1turn); + -ms-transform: rotate(1turn); + transform: rotate(1turn); + } +} +@-o-keyframes avatar-turn { + 100% { + -webkit-transform: rotate(1turn); + -moz-transform: rotate(1turn); + -o-transform: rotate(1turn); + -ms-transform: rotate(1turn); + transform: rotate(1turn); + } +} +@keyframes avatar-turn { + 100% { + -webkit-transform: rotate(1turn); + -moz-transform: rotate(1turn); + -o-transform: rotate(1turn); + -ms-transform: rotate(1turn); + transform: rotate(1turn); + } +} +.sidebar-ov-author__text { + margin: 0.5rem 0 0; + font-weight: 600; +} +.sidebar-ov-state { + padding: 0.5rem 0; + text-align: center; +} +.sidebar-ov-state-item { + display: inline-block; + width: 33.3%; + line-height: 1.5em; + -webkit-transition: color 0.2s ease; + -moz-transition: color 0.2s ease; + -o-transition: color 0.2s ease; + -ms-transition: color 0.2s ease; + transition: color 0.2s ease; +} +.sidebar-ov-state-item:not(:last-child) { + border-right: 1px dashed var(--color-gray-300); +} +.sidebar-ov-state-item--posts { + color: #54bcff; +} +.sidebar-ov-state-item--posts:hover { + color: #0090ed; +} +.sidebar-ov-state-item--categories { + color: var(--color-gray-700); +} +.sidebar-ov-state-item--categories:hover { + color: var(--color-gray-900); +} +.sidebar-ov-state-item--tags { + color: #ff8956; +} +.sidebar-ov-state-item--tags:hover { + color: #ef4800; +} +.sidebar-ov-state-item__count { + font-weight: 600; + color: var(--color-gray-950); +} +.sidebar-ov-cc { + padding-top: 0.5rem; + text-align: center; +} +.sidebar-reading { + overflow: hidden; + margin-top: 0.5em; + text-align: center; +} +.sidebar-reading-info { + margin-bottom: 0.3em; +} +.sidebar-reading-line { + width: 100%; + height: 1px; + background-color: #fc6423; + -webkit-transition: -webkit-transform 0.2s ease; + -moz-transition: -moz-transform 0.2s ease; + -o-transition: -o-transform 0.2s ease; + -ms-transition: -ms-transform 0.2s ease; + transition: transform 0.2s ease; + -webkit-transform: translateX(-100%); + -moz-transform: translateX(-100%); + -o-transform: translateX(-100%); + -ms-transform: translateX(-100%); + transform: translateX(-100%); +} +.archive { + margin-left: 1rem; +} +.archive-total { + position: relative; + padding: 0 0 1.5rem 1.5rem; + font-size: calc(1em + 2px); +} +.archive-total::before { + content: ''; + position: absolute; + top: 1em; + bottom: -1em; + left: 0; + border-left: 0.2rem dashed var(--color-gray-250); + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -o-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); +} +.archive-total::after { + content: ''; + position: absolute; + top: 1em; + left: 0; + border: 0.15rem solid #6ec5ff; + border-radius: 50%; + width: 0.6rem; + height: 0.6rem; + background-color: var(--color-gray-250); + -webkit-transition: border-color 0.2s ease; + -moz-transition: border-color 0.2s ease; + -o-transition: border-color 0.2s ease; + -ms-transition: border-color 0.2s ease; + transition: border-color 0.2s ease; + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} +.archive-total:hover::after { + border-color: #fc6423; +} +.tagcloud, +.category { + width: 100%; +} +.tagcloud-total, +.category-total { + font-size: calc(1em + 10px); + text-align: center; + cursor: default; +} +.tagcloud { + text-align: center; +} +.tagcloud-item a { + margin: 0 0.4rem; + -webkit-transition: color 0.2s ease; + -moz-transition: color 0.2s ease; + -o-transition: color 0.2s ease; + -ms-transition: color 0.2s ease; + transition: color 0.2s ease; +} +.tagcloud-item a:hover { + color: #fc6423 !important; +} +.category-list-item::before { + color: #49b1f5; +} +.category-list-item:hover::before { + color: #fc6423; +} +.category-list-link { + font-size: 1em; + color: #49b1f5; + -webkit-transition: color 0.2s ease; + -moz-transition: color 0.2s ease; + -o-transition: color 0.2s ease; + -ms-transition: color 0.2s ease; + transition: color 0.2s ease; +} +.category-list-link:hover { + color: #fc6423; +} +.category-list-count { + margin-left: 0.3em; + font-size: 13px; + color: var(--color-gray-600); +} +.category-list-count::before { + content: '('; +} +.category-list-count::after { + content: ')'; +} +.categorypage-title, +.tagpage-title { + font-size: 24px; + text-align: center; +} +.categorypage-title__name, +.tagpage-title__name { + color: #49b1f5; +} +.custompage { + width: 100%; +} +.timeline { + position: relative; +} +.timeline::before { + content: ''; + position: absolute; + top: 1em; + bottom: 1em; + left: 0; + border-left: 0.2rem solid var(--color-gray-250); + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -o-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); +} +.timeline-item { + display: block; + position: relative; + margin-bottom: 0.8rem; + padding-left: 1.5rem; + width: 100%; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; +} +.timeline-item::before { + content: ''; + position: absolute; + top: 50%; + left: 0; + border-radius: 50%; + width: 0.3rem; + height: 0.3rem; + background-color: #6ec5ff; + -webkit-transition: background-color 0.2s ease; + -moz-transition: background-color 0.2s ease; + -o-transition: background-color 0.2s ease; + -ms-transition: background-color 0.2s ease; + transition: background-color 0.2s ease; + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} +.timeline-item:hover::before { + background-color: #fc6423; +} +.timeline-item:last-child { + margin-bottom: 0; +} +.timeline-item--year { + font-weight: 700; +} +.timeline-item--year::before { + border: 0.12rem solid #6ec5ff; + width: 0.4rem; + height: 0.4rem; + background-color: var(--color-gray-250); +} +.timeline-item--year:hover::before { + border-color: #fc6423; + background-color: var(--color-gray-250); +} +.timeline-item__time { + display: inline-block; + width: 3.5rem; + vertical-align: middle; + color: #99a9bf; + -webkit-transform: translateY(3%); + -moz-transform: translateY(3%); + -o-transform: translateY(3%); + -ms-transform: translateY(3%); + transform: translateY(3%); +} +.timeline-item__title { + display: inline-block; + margin: 0; + width: calc(100% - 4.5rem); + font-size: 1em; + font-weight: normal; + vertical-align: middle; +} +.timeline-item__link { + color: var(--color-gray-900); +} +.postlist-item { + margin: 0 0 1.5rem; + width: 100%; + border-radius: 5px; + padding: 1rem 2rem; + background-color: var(--color-card); +} +.post-readmore { + margin-top: 1.5rem; + text-align: center; +} +.post-readmore__link { + display: inline-block; + border-radius: 5px; + padding: 0 0.6em; + color: var(--color-gray-200); + background-color: #73c8ff; + -webkit-transition: background-color 0.2s ease; + -moz-transition: background-color 0.2s ease; + -o-transition: background-color 0.2s ease; + -ms-transition: background-color 0.2s ease; + transition: background-color 0.2s ease; + cursor: pointer; +} +.post-readmore__link:hover { + color: var(--color-gray-200); + background-color: #49b1f5; +} +.post-readmore__icon { + margin-left: 0.3rem; +} +.post-header { + position: relative; + margin-bottom: 1rem; + font-size: 1em; + text-align: center; +} +.post-title { + margin: 0; + color: var(--color-gray-950); + cursor: auto; +} +.post-title__link { + position: relative; + color: var(--color-gray-800); + white-space: normal; + word-wrap: break-word; + word-break: break-word; +} +.post-title__link::before { + content: ''; + visibility: hidden; + position: absolute; + right: 0; + bottom: -4px; + left: 0; + height: 2px; + background-color: var(--color-gray-800); + -webkit-transition: -webkit-transform 0.2s ease-in-out; + -moz-transition: -moz-transform 0.2s ease-in-out; + -o-transition: -o-transform 0.2s ease-in-out; + -ms-transition: -ms-transform 0.2s ease-in-out; + transition: transform 0.2s ease-in-out; + -webkit-transform: scaleX(0); + -moz-transform: scaleX(0); + -o-transform: scaleX(0); + -ms-transform: scaleX(0); + transform: scaleX(0); +} +.post-title__link:hover { + color: var(--color-gray-800); +} +.post-title__link:hover::before { + visibility: visible; + -webkit-transform: scaleX(1); + -moz-transform: scaleX(1); + -o-transform: scaleX(1); + -ms-transform: scaleX(1); + transform: scaleX(1); +} +.post-meta-item:not(:first-child)::before { + content: '•'; + margin: 0 0.5rem; + color: var(--color-gray-700); +} +.post-meta-item__icon, +.post-meta-item__info, +.post-meta-item__value { + margin: 0 2px; +} +.post-meta-item--createtime { + color: var(--color-gray-700); +} +.post-meta-item--updatetime { + color: #49b1f5; +} +.post-meta-item--visitors { + color: #fc6423; +} +.post-ending { + margin-bottom: 1rem; +} +.post-copyright { + margin-bottom: 1rem; +} +.post-tags { + margin-bottom: 1rem; +} +.post-tags-item { + margin: 0 0.5rem; +} +.post-tags-item:hover { + cursor: pointer; +} +.post-tags-item__icon, +.post-tags-item__link { + margin: 0.1rem; + color: #49b1f5; + -webkit-transition: color 0.2s; + -moz-transition: color 0.2s; + -o-transition: color 0.2s; + -ms-transition: color 0.2s; + transition: color 0.2s; +} +.post-tags-item:hover .post-tags-item__icon, +.post-tags-item:hover .post-tags-item__link { + color: #fc6423; +} +.post-reward { + margin-bottom: 1rem; +} +.post-paginator { + border-top: 1px solid var(--color-gray-250); + padding-top: 1rem; +} +.highlight figcaption span:first-child::before { + margin: 0 0.6rem 0 0; + color: var(--color-gray-550); +} +.highlight.markdown figcaption span:first-child::before { + content: 'markdown'; +} +.highlight.md figcaption span:first-child::before { + content: 'md'; +} +.highlight.diff figcaption span:first-child::before { + content: 'diff'; +} +.highlight.javascript figcaption span:first-child::before { + content: 'javascript'; +} +.highlight.js figcaption span:first-child::before { + content: 'js'; +} +.highlight.typescript figcaption span:first-child::before { + content: 'typescript'; +} +.highlight.ts figcaption span:first-child::before { + content: 'ts'; +} +.highlight.java figcaption span:first-child::before { + content: 'java'; +} +.highlight.json figcaption span:first-child::before { + content: 'json'; +} +.highlight.html figcaption span:first-child::before { + content: 'html'; +} +.highlight.xml figcaption span:first-child::before { + content: 'xml'; +} +.highlight.css figcaption span:first-child::before { + content: 'css'; +} +.highlight.less figcaption span:first-child::before { + content: 'less'; +} +.highlight.scss figcaption span:first-child::before { + content: 'scss'; +} +.highlight.stylus figcaption span:first-child::before { + content: 'stylus'; +} +.highlight.styl figcaption span:first-child::before { + content: 'styl'; +} +.highlight.sql figcaption span:first-child::before { + content: 'sql'; +} +.highlight.bash figcaption span:first-child::before { + content: 'bash'; +} +.highlight.shell figcaption span:first-child::before { + content: 'shell'; +} +.highlight.python figcaption span:first-child::before { + content: 'python'; +} +.highlight.py figcaption span:first-child::before { + content: 'py'; +} +.highlight.ruby figcaption span:first-child::before { + content: 'ruby'; +} +.highlight.cpp figcaption span:first-child::before { + content: 'cpp'; +} +.highlight.c\+\+ figcaption span:first-child::before { + content: 'c\+\+'; +} +.highlight.c\# figcaption span:first-child::before { + content: 'c\#'; +} +.highlight.go figcaption span:first-child::before { + content: 'go'; +} +.highlight.kotlin figcaption span:first-child::before { + content: 'kotlin'; +} +.highlight.kt figcaption span:first-child::before { + content: 'kt'; +} +.highlight.objectivec figcaption span:first-child::before { + content: 'objectivec'; +} +.highlight.php figcaption span:first-child::before { + content: 'php'; +} +.highlight.perl figcaption span:first-child::before { + content: 'perl'; +} +.highlight.pl figcaption span:first-child::before { + content: 'pl'; +} +.highlight.pm figcaption span:first-child::before { + content: 'pm'; +} +.highlight.rust figcaption span:first-child::before { + content: 'rust'; +} +.highlight.rs figcaption span:first-child::before { + content: 'rs'; +} +.highlight.swift figcaption span:first-child::before { + content: 'swift'; +} +.highlight.coffeescript figcaption span:first-child::before { + content: 'coffeescript'; +} +.highlight.coffee figcaption span:first-child::before { + content: 'coffee'; +} +.highlight.lua figcaption span:first-child::before { + content: 'lua'; +} +.highlight.yaml figcaption span:first-child::before { + content: 'yaml'; +} +.highlight.yml figcaption span:first-child::before { + content: 'yml'; +} +.highlight.nginx figcaption span:first-child::before { + content: 'nginx'; +} +.highlight.dockerfile figcaption span:first-child::before { + content: 'dockerfile'; +} +.highlight.makefile figcaption span:first-child::before { + content: 'makefile'; +} +.highlight { + margin: 0 0 1rem; + border-radius: 0.25rem; + width: 100%; + line-height: 1.7; + color: var(--color-gray-850); + background-color: var(--color-gray-200); +} +.highlight pre, +.highlight code { + font-family: 'Source Code Pro', Consolas, Menlo, Monaco, 'Courier New', monospace; +} +.highlight pre { + margin: 0; +} +.highlight td { + border-width: 0; +} +.highlight figcaption { + position: relative; + width: 100%; + color: var(--color-gray-850); + background-color: var(--color-gray-200); + zoom: 1; + padding: 0.1rem 0; +} +.highlight figcaption:before, +.highlight figcaption:after { + content: ""; + display: table; +} +.highlight figcaption:after { + clear: both; +} +.highlight figcaption span:first-child { + float: left; + margin-left: 0.5rem; + color: var(--color-gray-850); +} +.highlight figcaption span.external-link { + float: right; + margin-right: 2em; +} +.highlight figcaption.custom { + min-height: 1.5rem; + border-radius: 0.25rem; +} +.highlight figcaption.custom .custom-lang { + float: left; + margin: 0 0.6rem; + color: var(--color-gray-550); +} +.highlight td.gutter { + border-right: 1px solid var(--color-gray-300); + padding: 0.4rem 0.6rem; + width: 2rem; + background-color: var(--color-gray-200); + border-radius: 0.25rem; +} +.highlight td.gutter pre { + text-align: right; + white-space: nowrap; + color: var(--color-gray-550); + background-color: inherit; +} +.highlight td.code { + padding: 0.5rem 0.6rem; +} +.highlight .marked { + background-color: var(--color-gray-260); +} +.highlight .emphasis { + font-style: italic; +} +.highlight .strong { + font-weight: bold; +} +.highlight .comment { + color: #969896; +} +.highlight .quote, +.highlight .params { + color: var(--color-gray-850); +} +.highlight .selector-tag, +.highlight .template-variable, +.highlight .variable, +.highlight .deletion, +.highlight .regexp, +.highlight .name, +.highlight .tag { + color: #c82829; +} +.highlight .builtin-name, +.highlight .literal, +.highlight .number, +.highlight .type, +.highlight .meta, +.highlight .link { + color: #ee8019; +} +.highlight .class .keyword:first-child + .title, +.highlight .built_in, +.highlight .attribute { + color: #eab700; +} +.highlight .class .keyword ~ .title, +.highlight .string .template-variable, +.highlight .meta-string, +.highlight .tag, +.highlight .class, +.highlight .subst, +.highlight .regexp { + color: #4eb4b4; +} +.highlight .string, +.highlight .symbol, +.highlight .bullet, +.highlight .addition { + color: #4dc14c; +} +.highlight .title, +.highlight .section { + color: #2a75c8; +} +.highlight .meta-keyword, +.highlight .doctag, +.highlight .selector-id, +.highlight .selector-attr, +.highlight .selector-class, +.highlight .selector-pseudo, +.highlight .function, +.highlight .tag .attr, +.highlight .keyword { + color: #be4dbc; +} +.bash .meta, +.rust .meta { + color: #969896; +} +.c\+\+ .built_in, +.cpp .built_in, +.ini .variable, +.ini .literal, +.ini .number, +.less .variable, +.scss .variable, +.styl .variable, +.stylus .variable { + color: var(--color-gray-850); +} +.html .meta, +.xml .meta, +.yaml .attr, +.yml .attr { + color: #c82829; +} +.js .params, +.javascript .params { + color: #ee8019; +} +.json .attr, +.swift .type { + color: #eab700; +} +.variable .variable, +.bash .variable, +.c\+\+ .meta, +.cpp .meta, +.c\# .meta, +.css .number, +.diff .meta { + color: #4eb4b4; +} +.md .section, +.markdown .section, +.py .string .meta, +.python .string .meta { + color: #4dc14c; +} +.bash .built_in, +.css .built_in, +.go .built_in, +.py .meta, +.python .meta, +.shell .meta, +.shell .keyword, +.shell .built_in { + color: #2a75c8; +} +.ini .attr, +.objectivec .meta, +.yaml .type, +.yml .type { + color: #be4dbc; +} +.diff .addition { + color: #292; + background-color: #f0fff4; +} +.diff .deletion { + color: #d44; + background-color: #ffeef0; +} +.nightmode .diff .addition { + background-color: transparent; +} +.nightmode .diff .deletion { + background-color: transparent; +} +.ending { + padding: 1rem 0 0; + text-align: center; + color: var(--color-gray-400); + border-top: 1px dashed var(--color-gray-300); +} +.back2top { + position: fixed; + right: 0; + bottom: 5vh; + -webkit-transition: -webkit-transform 0.2s ease; + -moz-transition: -moz-transform 0.2s ease; + -o-transition: -o-transform 0.2s ease; + -ms-transition: -ms-transform 0.2s ease; + transition: transform 0.2s ease; + -webkit-transform: translateX(100%); + -moz-transform: translateX(100%); + -o-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); + cursor: pointer; +} +.back2top--show { + -webkit-transform: translateX(-100%); + -moz-transform: translateX(-100%); + -o-transform: translateX(-100%); + -ms-transform: translateX(-100%); + transform: translateX(-100%); +} +.back2top--hide { + -webkit-transform: translateX(100%); + -moz-transform: translateX(100%); + -o-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); +} +.back2top__icon { + display: block; + font-size: 1.2rem; + line-height: 1; + color: #49b1f5; + -webkit-transition: color 0.2s ease; + -moz-transition: color 0.2s ease; + -o-transition: color 0.2s ease; + -ms-transition: color 0.2s ease; + transition: color 0.2s ease; + -webkit-transform: rotate(-45deg); + -moz-transform: rotate(-45deg); + -o-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.back2top__icon:hover { + color: #fc6423; +} +.zoomimg-mask { + position: fixed; + top: 0; + left: 0; + z-index: 2; + width: 100%; + height: 100%; + background-color: rgba(0,0,0,0.6); + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); +} +.zoomimg { + cursor: zoom-in; +} +.zoomimg--hide { + visibility: hidden; +} +.zoomimg-clone { + position: absolute; + z-index: 2; + background-color: #fff; + cursor: zoom-out; + will-change: transform; +} +.mode { + position: relative; + border: 0; + padding: 0; + line-height: 100%; + background-color: transparent; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mode--focus .mode-thumb { + -webkit-box-shadow: 0 0 2px 3px #0099e0; + box-shadow: 0 0 2px 3px #0099e0; +} +.mode--checked .mode-thumb { + -webkit-transform: translateX(26px); + -moz-transform: translateX(26px); + -o-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} +.mode-track { + border-radius: 30px; + width: 50px; + height: 24px; + font-size: 0; + background-color: #8c8a8a; +} +.mode-track-moon, +.mode-track-sun { + display: inline-block; + position: absolute; + top: 0; + bottom: 0; + width: 25px; + height: 100%; + font-size: 14px; +} +.mode-track-moon::before, +.mode-track-sun::before { + display: block; + width: 100%; + height: 100%; + font-size: 14px; + line-height: 24px; + text-align: center; +} +.mode-track-moon { + left: 0; +} +.mode-track-moon::before { + content: '🌜'; +} +.mode-track-sun { + right: 0; +} +.mode-track-sun::before { + content: '🌞'; +} +.mode-thumb { + position: absolute; + top: 1px; + left: 1px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #4d4d4d; + border-radius: 50%; + width: 22px; + height: 22px; + background-color: #fafafa; + -webkit-transition: -webkit-transform 0.2s ease; + -moz-transition: -moz-transform 0.2s ease; + -o-transition: -o-transform 0.2s ease; + -ms-transition: -ms-transform 0.2s ease; + transition: transform 0.2s ease; +} +.mode-input { + position: absolute; + border: 0; + width: 0; + height: 0; +} +.reward { + text-align: center; +} +.reward-button { + display: inline-block; + margin: 1rem 0 1.5rem; + border-radius: 6px; + padding: 0.2rem 1rem; + color: #f5f6f7; + background-color: #ff6868; + -webkit-transition: background-color 0.2s ease; + -moz-transition: background-color 0.2s ease; + -o-transition: background-color 0.2s ease; + -ms-transition: background-color 0.2s ease; + transition: background-color 0.2s ease; + cursor: pointer; +} +.reward-button:hover { + background-color: #e45c5c; +} +.reward-qrcode { + display: none; +} +.reward-qrcode-alipay, +.reward-qrcode-wechat { + display: inline-block; + margin: 0 2rem; +} +.reward-qrcode-alipay__img, +.reward-qrcode-wechat__img { + width: 200px; + height: 200px; +} +.reward-qrcode-alipay__text, +.reward-qrcode-wechat__text { + margin: 0.5rem 0; +} +.reward-qrcode-alipay__text { + color: #1caceb; +} +.reward-qrcode-wechat__text { + color: #3cb034; +} +.copyright { + position: relative; + border: 1px solid var(--color-gray-250); + padding: 0.8rem 1rem; + width: 100%; + -webkit-transition: box-shadow 0.2s ease; + -moz-transition: box-shadow 0.2s ease; + -o-transition: box-shadow 0.2s ease; + -ms-transition: box-shadow 0.2s ease; + transition: box-shadow 0.2s ease; +} +.copyright:hover { + -webkit-box-shadow: 0 0 16px 8px var(--color-gray-250); + box-shadow: 0 0 16px 8px var(--color-gray-250); +} +.copyright-author__name, +.copyright-link__name, +.copyright-notice__name { + font-weight: 600; + white-space: normal; + word-wrap: break-word; + word-break: break-word; +} +.copyright-author__value, +.copyright-link__value, +.copyright-notice__value { + color: var(--color-gray-800); + white-space: normal; + word-wrap: normal; + word-break: break-all; +} +.gallery img { + margin-bottom: 10px; +} +.exturl__icon { + margin: 0 0.1em 0 0.3em; + font-size: 0.8em; + color: #aaa; +} +.exturl__link { + white-space: normal; + word-wrap: break-word; + word-break: break-word; +} +.footer .exturl__icon { + color: #fff; +} +.comments { + margin: 1.5rem 0 0; + width: 100%; + border-radius: 5px; + padding: 1rem 2rem; + background-color: var(--color-card); + float: left; +} +.copy-button { + position: absolute; + top: 0; + right: 0; + width: 1.5rem; + height: 1.5rem; + line-height: 1.5rem; + text-align: center; + color: var(--color-gray-800); + cursor: pointer; +} +.copy-button i { + color: var(--color-gray-550); +} +.sticky-top { + position: absolute; + top: 0; + width: 1rem; + height: 1rem; + line-height: 1rem; + text-align: center; + right: 0; +} +.sticky-top__icon { + display: block; + width: 100%; + height: 100%; + color: #999; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -o-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} +.archive .sticky-top { + top: 50%; + right: 0; + left: auto; + -webkit-transform: translate(0, -50%); + -moz-transform: translate(0, -50%); + -o-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); +} +.paginator { + margin-top: 1rem; + text-align: center; +} +.paginator-inner { + border-radius: 5px; + padding: 12px 0; + background-color: var(--color-gray-150); +} +.paginator .page-number, +.paginator .prev, +.paginator .next { + display: inline-block; + margin: 0 0.5em; + border: 1px solid transparent; + border-radius: 3px; + width: 1.5rem; + height: 1.5rem; + line-height: 1.5rem; + text-align: center; + vertical-align: middle; + -webkit-transition: border 0.2s ease; + -moz-transition: border 0.2s ease; + -o-transition: border 0.2s ease; + -ms-transition: border 0.2s ease; + transition: border 0.2s ease; +} +.paginator .page-number:hover, +.paginator .prev:hover, +.paginator .next:hover { + border-color: var(--color-gray-260); +} +.paginator .current { + color: #f4f5f5; + background-color: #49b1f5; +} +.paginator .current:hover { + border-color: transparent; +} +.paginator-prev, +.paginator-next { + width: 100%; +} +.paginator-prev__link, +.paginator-next__link { + white-space: normal; + word-wrap: break-word; + word-break: break-word; + color: #49b1f5; + -webkit-transition: color 0.2s ease; + -moz-transition: color 0.2s ease; + -o-transition: color 0.2s ease; + -ms-transition: color 0.2s ease; + transition: color 0.2s ease; +} +.paginator-prev__link:hover, +.paginator-next__link:hover { + color: #fc6423; +} +.paginator-prev { + text-align: left; +} +.paginator-prev__icon { + margin-right: 0.3rem; +} +.paginator-next { + text-align: right; +} +.paginator-next__icon { + margin-left: 0.3rem; +} +.button-plugin { + display: inline-block; + border: 1px solid #73c8ff; + border-radius: 0.2rem; + padding: 0.2rem 0.75rem; + height: 32px; + line-height: 1.375; + color: #fff; + background-color: #73c8ff; + -webkit-transition: background-color 0.2s ease; + -moz-transition: background-color 0.2s ease; + -o-transition: background-color 0.2s ease; + -ms-transition: background-color 0.2s ease; + transition: background-color 0.2s ease; +} +.button-plugin:hover { + color: #fff; + background-color: #49b1f5; +} +.button-plugin > span { + display: inline-block; +} +.button-plugin--icon-only { + padding: 0; + width: 32px; + height: 32px; + line-height: 30px; + text-align: center; +} +.button-plugin__icon { + line-height: 1; +} +.button-plugin__icon + .button-plugin__content { + margin-left: 0.3rem; +} +.table-plugin tr { + -webkit-transition: background-color 0.2s ease; + -moz-transition: background-color 0.2s ease; + -o-transition: background-color 0.2s ease; + -ms-transition: background-color 0.2s ease; + transition: background-color 0.2s ease; +} +.table-plugin tr:nth-of-type(even) { + background-color: var(--color-gray-150); +} +.table-plugin tr:hover { + background-color: var(--color-gray-200); +} +.table-plugin th, +.table-plugin td { + min-width: 5rem; +} +.note-plugin { + position: relative; + margin-bottom: 20px; + border: 1px solid var(--color-gray-250); + border-left-width: 6px; + padding: 0 17px; +} +.note-plugin:not(.no-icon) { + padding-left: 40px; +} +.note-plugin h1, +.note-plugin h2, +.note-plugin h3, +.note-plugin h4, +.note-plugin h5, +.note-plugin h6 { + margin: 0; +} +.note-plugin p { + margin: 12px 0; +} +.note-plugin strong { + font-size: 18px; + line-height: 1.75; +} +.note-plugin__icon { + position: absolute; + top: 1em; + left: 12px; + font-size: 18px; + line-height: 1; +} +.note-plugin__icon--default { + color: var(--color-gray-600); +} +.note-plugin__icon--success { + color: #42b983; +} +.note-plugin__icon--info { + color: #4898dd; +} +.note-plugin__icon--warning { + color: #e7c000; +} +.note-plugin__icon--danger { + color: #dc3b3b; +} +.note-plugin.default { + border-left-color: var(--color-gray-600); +} +.note-plugin.default strong { + color: var(--color-gray-600); +} +.note-plugin.success { + border-left-color: #42b983; +} +.note-plugin.success strong { + color: #42b983; +} +.note-plugin.info { + border-left-color: #4898dd; +} +.note-plugin.info strong { + color: #4898dd; +} +.note-plugin.warning { + border-left-color: #e7c000; +} +.note-plugin.warning strong { + color: #e7c000; +} +.note-plugin.danger { + border-left-color: #dc3b3b; +} +.note-plugin.danger strong { + color: #dc3b3b; +} +.friends-plugin { + overflow: hidden; + max-width: 100%; +} +.friends-plugin__item { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: box; + display: flex; + float: left; + padding: 0.5rem 1rem; + width: 50%; + height: 100px; + -webkit-transition: background-color 0.3s; + -moz-transition: background-color 0.3s; + -o-transition: background-color 0.3s; + -ms-transition: background-color 0.3s; + transition: background-color 0.3s; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; +} +.friends-plugin__item:hover { + background-color: rgba(73,177,245,0.1); +} +.friends-plugin__item p { + margin: 0; +} +.friends-plugin__item-avatar { + margin: 0 1rem 0 0; + border-radius: 50% !important; + width: 60px; + height: 60px; +} +.friends-plugin__item-info { + overflow: hidden; + width: 100%; + color: var(--color-gray-800); +} +.friends-plugin__item-info__name, +.friends-plugin__item-info__intro { + overflow: hidden; + white-space: nowrap; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; +} +.friends-plugin__item-info__name { + font-weight: 700; +} +.friends-plugin__item-info__intro { + font-size: 0.9em; + color: #999; +} +@media (min-width: 1138px) { + .header-nav-inner { + width: 1138px; + } + .main-inner { + width: 1138px; + } +} +@media (min-width: 991.98px) { + .header-nav-menu { + display: inline-block !important; + opacity: 1 !important; + -ms-filter: none !important; + filter: none !important; + } + .header-nav-submenu { + border-radius: 3px; + } +} +@media (max-width: 991.98px) { + .header-inner { + height: 17rem; + } + .header-banner-info__title { + margin-bottom: 1rem; + } + .header-nav-menubtn { + display: block; + float: left; + } + .header-nav-menu { + overflow: hidden; + position: absolute; + top: 50px; + right: 0; + left: 0; + width: auto; + height: auto; + background-color: #2d2e30; + } + .header-nav-menu-item { + float: none; + overflow: hidden; + margin: 0; + } + .header-nav-menu-item__link { + padding-right: 1.5rem; + padding-left: 1.5rem; + text-align: left; + color: #f4f5f5; + } + .header-nav-submenu { + display: block; + position: initial; + width: 100%; + } + .header-nav-submenu-item__link { + padding-right: 1rem; + padding-left: 3rem; + text-align: left; + } + .content-wrap { + width: 100%; + } + .sidebar-wrap { + display: none; + } + .post-list .post { + margin: 0 0 1rem; + padding: 1rem; + } +} +@media (max-width: 767.98px) { + .header-nav-inner { + padding: 15px; + } + .header-banner-info__title { + margin-bottom: 1rem; + font-size: 3rem; + } + .header-banner-info__subtitle { + font-size: 0.9rem; + } + .main-inner { + padding: 15px; + } +} +@media (max-width: 575.98px) { + .header-inner { + height: 13rem; + } + .header-nav-inner { + padding: 10px; + } + .header-banner-info__title { + margin-bottom: 0.5rem; + font-size: 2rem; + } + .header-banner-info__subtitle { + font-size: 14px; + } + .header-banner-arrow { + bottom: 0.5rem; + } + .main-inner { + padding: 10px; + } + .content, + .comments { + padding: 0.6rem 0.8rem; + font-size: 15px; + } + .archive { + margin-left: 0.5rem; + } + .archive-total { + padding-left: 1rem; + } + .timeline-item { + padding-left: 1rem; + } + .timeline-item__time { + width: 2.75rem; + } + .timeline-item__title { + width: calc(100% - 4rem); + } + .post-list .post { + margin: 0 0 0.8rem; + padding: 0.8rem; + } + .friends-plugin__item { + margin: 0; + padding: 0.5rem 1rem; + width: 100%; + } +} diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..51335bf --- /dev/null +++ b/css/style.css @@ -0,0 +1,1346 @@ +body { + width: 100%; +} +body:before, +body:after { + content: ""; + display: table; +} +body:after { + clear: both; +} +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-weight: inherit; + font-style: inherit; + font-family: inherit; + font-size: 100%; + vertical-align: baseline; +} +body { + line-height: 1; + color: #000; + background: #fff; +} +ol, +ul { + list-style: none; +} +table { + border-collapse: separate; + border-spacing: 0; + vertical-align: middle; +} +caption, +th, +td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} +a img { + border: none; +} +input, +button { + margin: 0; + padding: 0; +} +input::-moz-focus-inner, +button::-moz-focus-inner { + border: 0; + padding: 0; +} +html, +body, +#container { + height: 100%; +} +body { + background: #eee; + font: 14px -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + -webkit-text-size-adjust: 100%; +} +.outer { + max-width: 1220px; + margin: 0 auto; + padding: 0 20px; +} +.outer:before, +.outer:after { + content: ""; + display: table; +} +.outer:after { + clear: both; +} +.inner { + display: inline; + float: left; + width: 98.33333333333333%; + margin: 0 0.833333333333333%; +} +.left, +.alignleft { + float: left; +} +.right, +.alignright { + float: right; +} +.clear { + clear: both; +} +#container { + position: relative; +} +.mobile-nav-on { + overflow: hidden; +} +#wrap { + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + -webkit-transition: 0.2s ease-out; + -moz-transition: 0.2s ease-out; + -ms-transition: 0.2s ease-out; + transition: 0.2s ease-out; + z-index: 1; + background: #eee; +} +.mobile-nav-on #wrap { + left: 280px; +} +@media screen and (min-width: 768px) { + #main { + display: inline; + float: left; + width: 73.33333333333333%; + margin: 0 0.833333333333333%; + } +} +.article-date, +.article-category-link, +.archive-year, +.widget-title { + text-decoration: none; + text-transform: uppercase; + letter-spacing: 2px; + color: #999; + margin-bottom: 1em; + margin-left: 5px; + line-height: 1em; + text-shadow: 0 1px #fff; + font-weight: bold; +} +.article-inner, +.archive-article-inner { + background: #fff; + -webkit-box-shadow: 1px 2px 3px #ddd; + box-shadow: 1px 2px 3px #ddd; + border: 1px solid #ddd; + border-radius: 3px; +} +.article-entry h1, +.widget h1 { + font-size: 2em; +} +.article-entry h2, +.widget h2 { + font-size: 1.5em; +} +.article-entry h3, +.widget h3 { + font-size: 1.3em; +} +.article-entry h4, +.widget h4 { + font-size: 1.2em; +} +.article-entry h5, +.widget h5 { + font-size: 1em; +} +.article-entry h6, +.widget h6 { + font-size: 1em; + color: #999; +} +.article-entry hr, +.widget hr { + border: 1px dashed #ddd; +} +.article-entry strong, +.widget strong { + font-weight: bold; +} +.article-entry em, +.widget em, +.article-entry cite, +.widget cite { + font-style: italic; +} +.article-entry sup, +.widget sup, +.article-entry sub, +.widget sub { + font-size: 0.75em; + line-height: 0; + position: relative; + vertical-align: baseline; +} +.article-entry sup, +.widget sup { + top: -0.5em; +} +.article-entry sub, +.widget sub { + bottom: -0.2em; +} +.article-entry small, +.widget small { + font-size: 0.85em; +} +.article-entry acronym, +.widget acronym, +.article-entry abbr, +.widget abbr { + border-bottom: 1px dotted; +} +.article-entry ul, +.widget ul, +.article-entry ol, +.widget ol, +.article-entry dl, +.widget dl { + margin: 0 20px; + line-height: 1.6em; +} +.article-entry ul ul, +.widget ul ul, +.article-entry ol ul, +.widget ol ul, +.article-entry ul ol, +.widget ul ol, +.article-entry ol ol, +.widget ol ol { + margin-top: 0; + margin-bottom: 0; +} +.article-entry ul, +.widget ul { + list-style: disc; +} +.article-entry ol, +.widget ol { + list-style: decimal; +} +.article-entry dt, +.widget dt { + font-weight: bold; +} +#header { + height: 300px; + position: relative; + border-bottom: 1px solid #ddd; +} +#header:before, +#header:after { + content: ""; + position: absolute; + left: 0; + right: 0; + height: 40px; +} +#header:before { + top: 0; + background: -webkit-linear-gradient(rgba(0,0,0,0.2), transparent); + background: -moz-linear-gradient(rgba(0,0,0,0.2), transparent); + background: -ms-linear-gradient(rgba(0,0,0,0.2), transparent); + background: linear-gradient(rgba(0,0,0,0.2), transparent); +} +#header:after { + bottom: 0; + background: -webkit-linear-gradient(transparent, rgba(0,0,0,0.2)); + background: -moz-linear-gradient(transparent, rgba(0,0,0,0.2)); + background: -ms-linear-gradient(transparent, rgba(0,0,0,0.2)); + background: linear-gradient(transparent, rgba(0,0,0,0.2)); +} +#header-outer { + height: 100%; + position: relative; +} +#header-inner { + position: relative; + overflow: hidden; +} +#banner { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: url("") center #000; + background-size: cover; + z-index: -1; +} +#header-title { + text-align: center; + height: 40px; + position: absolute; + top: 50%; + left: 0; + margin-top: -20px; +} +#logo, +#subtitle { + text-decoration: none; + color: #fff; + font-weight: 300; + text-shadow: 0 1px 4px rgba(0,0,0,0.3); +} +#logo { + font-size: 40px; + line-height: 40px; + letter-spacing: 2px; +} +#subtitle { + font-size: 16px; + line-height: 16px; + letter-spacing: 1px; +} +#subtitle-wrap { + margin-top: 16px; +} +#main-nav { + float: left; + margin-left: -15px; +} +.nav-icon, +.main-nav-link { + float: left; + color: #fff; + opacity: 0.6; + text-decoration: none; + text-shadow: 0 1px rgba(0,0,0,0.2); + -webkit-transition: opacity 0.2s; + -moz-transition: opacity 0.2s; + -ms-transition: opacity 0.2s; + transition: opacity 0.2s; + display: block; + padding: 20px 15px; +} +.nav-icon:hover, +.main-nav-link:hover { + opacity: 1; +} +.nav-icon { + text-align: center; + font-size: 14px; + width: 14px; + height: 14px; + padding: 20px 15px; + position: relative; + cursor: pointer; +} +.main-nav-link { + font-weight: 300; + letter-spacing: 1px; +} +@media screen and (max-width: 479px) { + .main-nav-link { + display: none; + } +} +#main-nav-toggle { + display: none; +} +@media screen and (max-width: 479px) { + #main-nav-toggle { + display: block; + } +} +#sub-nav { + float: right; + margin-right: -15px; +} +#search-form-wrap { + position: absolute; + top: 15px; + width: 150px; + height: 30px; + right: -150px; + opacity: 0; + -webkit-transition: 0.2s ease-out; + -moz-transition: 0.2s ease-out; + -ms-transition: 0.2s ease-out; + transition: 0.2s ease-out; +} +#search-form-wrap.on { + opacity: 1; + right: 0; +} +@media screen and (max-width: 479px) { + #search-form-wrap { + width: 100%; + right: -100%; + } +} +.search-form { + position: absolute; + top: 0; + left: 0; + right: 0; + background: #fff; + padding: 5px 15px; + border-radius: 15px; + -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.3); + box-shadow: 0 0 10px rgba(0,0,0,0.3); +} +.search-form-input { + border: none; + background: none; + color: #555; + width: 100%; + font: 13px -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + outline: none; +} +.search-form-input::-webkit-search-results-decoration, +.search-form-input::-webkit-search-cancel-button { + -webkit-appearance: none; +} +.search-form-submit { + position: absolute; + top: 50%; + right: 10px; + margin-top: -7px; + font: 13px ForkAwesome; + border: none; + background: none; + color: #bbb; + cursor: pointer; +} +.search-form-submit:hover, +.search-form-submit:focus { + color: #777; +} +.article { + margin: 50px 0; +} +.article-inner { + overflow: hidden; +} +.article-meta:before, +.article-meta:after { + content: ""; + display: table; +} +.article-meta:after { + clear: both; +} +.article-date { + float: left; +} +.article-category { + float: left; + line-height: 1em; + color: #ccc; + text-shadow: 0 1px #fff; + margin-left: 8px; +} +.article-category:before { + content: "\2022"; +} +.article-category-link { + margin: 0 12px 1em; +} +.article-header { + padding: 20px 20px 0; +} +.article-title { + text-decoration: none; + font-size: 2em; + font-weight: bold; + color: #555; + line-height: 1.1em; + -webkit-transition: color 0.2s; + -moz-transition: color 0.2s; + -ms-transition: color 0.2s; + transition: color 0.2s; +} +a.article-title:hover { + color: #258fb8; +} +.article-entry { + color: #555; + padding: 0 20px; +} +.article-entry:before, +.article-entry:after { + content: ""; + display: table; +} +.article-entry:after { + clear: both; +} +.article-entry p, +.article-entry table { + line-height: 1.6em; + margin: 1.6em 0; +} +.article-entry h1, +.article-entry h2, +.article-entry h3, +.article-entry h4, +.article-entry h5, +.article-entry h6 { + font-weight: bold; +} +.article-entry h1, +.article-entry h2, +.article-entry h3, +.article-entry h4, +.article-entry h5, +.article-entry h6 { + line-height: 1.1em; + margin: 1.1em 0; +} +.article-entry a { + color: #258fb8; + text-decoration: none; +} +.article-entry a:hover { + text-decoration: underline; +} +.article-entry ul, +.article-entry ol, +.article-entry dl { + margin-top: 1.6em; + margin-bottom: 1.6em; +} +.article-entry img, +.article-entry video { + max-width: 100%; + height: auto; + display: block; + margin: auto; +} +.article-entry iframe { + border: none; +} +.article-entry table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; +} +.article-entry th { + font-weight: bold; + border-bottom: 3px solid #ddd; + padding-bottom: 0.5em; +} +.article-entry td { + border-bottom: 1px solid #ddd; + padding: 10px 0; +} +.article-entry blockquote { + font-family: Georgia, "Times New Roman", serif; + margin: 1.6em 20px; + text-align: center; +} +.article-entry blockquote footer { + font-size: 14px; + margin: 1.6em 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; +} +.article-entry blockquote footer cite:before { + content: "—"; + padding: 0 0.5em; +} +.article-entry .pullquote { + text-align: left; + width: 45%; + margin: 0; +} +.article-entry .pullquote.left { + margin-left: 0.5em; + margin-right: 1em; +} +.article-entry .pullquote.right { + margin-right: 0.5em; + margin-left: 1em; +} +.article-entry .caption { + color: #999; + display: block; + font-size: 0.9em; + margin-top: 0.5em; + position: relative; + text-align: center; +} +.article-entry .video-container { + position: relative; + padding-top: 56.25%; + height: 0; + overflow: hidden; +} +.article-entry .video-container iframe, +.article-entry .video-container object, +.article-entry .video-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin-top: 0; +} +.article-more-link a { + display: inline-block; + line-height: 1em; + padding: 6px 15px; + border-radius: 15px; + background: #eee; + color: #999; + text-shadow: 0 1px #fff; + text-decoration: none; +} +.article-more-link a:hover { + background: #258fb8; + color: #fff; + text-decoration: none; + text-shadow: 0 1px #1e7293; +} +.article-footer { + font-size: 0.85em; + line-height: 1.6em; + border-top: 1px solid #ddd; + padding-top: 1.6em; + margin: 0 20px 20px; +} +.article-footer:before, +.article-footer:after { + content: ""; + display: table; +} +.article-footer:after { + clear: both; +} +.article-footer a { + color: #999; + text-decoration: none; +} +.article-footer a:hover { + color: #555; +} +.article-tag-list-item { + float: left; + margin-right: 10px; +} +.article-tag-list-link:before { + content: "#"; +} +.article-comment-link { + float: right; +} +.article-comment-link:before { + padding-right: 8px; +} +.article-share-link { + cursor: pointer; + float: right; + margin-left: 20px; +} +.article-share-link:before { + padding-right: 6px; +} +#article-nav { + position: relative; +} +#article-nav:before, +#article-nav:after { + content: ""; + display: table; +} +#article-nav:after { + clear: both; +} +@media screen and (min-width: 768px) { + #article-nav { + margin: 50px 0; + } + #article-nav:before { + width: 8px; + height: 8px; + position: absolute; + top: 50%; + left: 50%; + margin-top: -4px; + margin-left: -4px; + content: ""; + border-radius: 50%; + background: #ddd; + -webkit-box-shadow: 0 1px 2px #fff; + box-shadow: 0 1px 2px #fff; + } +} +.article-nav-link-wrap { + text-decoration: none; + text-shadow: 0 1px #fff; + color: #999; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin-top: 50px; + text-align: center; + display: block; +} +.article-nav-link-wrap:hover { + color: #555; +} +@media screen and (min-width: 768px) { + .article-nav-link-wrap { + width: 50%; + margin-top: 0; + } +} +@media screen and (min-width: 768px) { + #article-nav-newer { + float: left; + text-align: right; + padding-right: 20px; + } +} +@media screen and (min-width: 768px) { + #article-nav-older { + float: right; + text-align: left; + padding-left: 20px; + } +} +.article-nav-caption { + text-transform: uppercase; + letter-spacing: 2px; + color: #ddd; + line-height: 1em; + font-weight: bold; +} +#article-nav-newer .article-nav-caption { + margin-right: -2px; +} +.article-nav-title { + font-size: 0.85em; + line-height: 1.6em; + margin-top: 0.5em; +} +.article-share-box { + position: absolute; + display: none; + background: #fff; + -webkit-box-shadow: 1px 2px 10px rgba(0,0,0,0.2); + box-shadow: 1px 2px 10px rgba(0,0,0,0.2); + border-radius: 3px; + margin-left: -145px; + overflow: hidden; + z-index: 1; +} +.article-share-box.on { + display: block; +} +.article-share-input { + width: 100%; + background: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + font: 14px -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + padding: 0 15px; + color: #555; + outline: none; + border: 1px solid #ddd; + border-radius: 3px 3px 0 0; + height: 36px; + line-height: 36px; +} +.article-share-links { + background: #eee; +} +.article-share-links:before, +.article-share-links:after { + content: ""; + display: table; +} +.article-share-links:after { + clear: both; +} +.article-share-twitter, +.article-share-facebook, +.article-share-pinterest, +.article-share-linkedin { + width: 50px; + height: 36px; + display: block; + float: left; + position: relative; + color: #999; + text-shadow: 0 1px #fff; +} +.article-share-twitter:before, +.article-share-facebook:before, +.article-share-pinterest:before, +.article-share-linkedin:before { + font-size: 20px; + width: 20px; + height: 20px; + position: absolute; + top: 50%; + left: 50%; + margin-top: -10px; + margin-left: -10px; + text-align: center; +} +.article-share-twitter:hover, +.article-share-facebook:hover, +.article-share-pinterest:hover, +.article-share-linkedin:hover { + color: #fff; +} +.article-share-twitter:hover { + background: #00aced; + text-shadow: 0 1px #008abe; +} +.article-share-facebook:hover { + background: #3b5998; + text-shadow: 0 1px #2f477a; +} +.article-share-pinterest:hover { + background: #cb2027; + text-shadow: 0 1px #a21a1f; +} +.article-share-linkedin:hover { + background: #0077b5; + text-shadow: 0 1px #005f91; +} +.article-gallery { + background: #000; + position: relative; +} +.article-gallery-photos { + position: relative; + overflow: hidden; +} +.article-gallery-img { + display: none; + max-width: 100%; +} +.article-gallery-img:first-child { + display: block; +} +.article-gallery-img.loaded { + position: absolute; + display: block; +} +.article-gallery-img img { + display: block; + max-width: 100%; + margin: 0 auto; +} +#comments { + background: #fff; + -webkit-box-shadow: 1px 2px 3px #ddd; + box-shadow: 1px 2px 3px #ddd; + padding: 20px; + border: 1px solid #ddd; + border-radius: 3px; + margin: 50px 0; +} +#comments a { + color: #258fb8; +} +.archives-wrap { + margin: 50px 0; +} +.archives:before, +.archives:after { + content: ""; + display: table; +} +.archives:after { + clear: both; +} +.archive-year-wrap { + margin-bottom: 1em; +} +.archives { + -webkit-column-gap: 10px; + -moz-column-gap: 10px; + column-gap: 10px; +} +@media screen and (min-width: 480px) and (max-width: 767px) { + .archives { + -webkit-column-count: 2; + -moz-column-count: 2; + column-count: 2; + } +} +@media screen and (min-width: 768px) { + .archives { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + } +} +.archive-article { + -webkit-column-break-inside: avoid; + page-break-inside: avoid; + overflow: hidden; + break-inside: avoid-column; +} +.archive-article-inner { + padding: 10px; + margin-bottom: 15px; +} +.archive-article-title { + text-decoration: none; + font-weight: bold; + color: #555; + -webkit-transition: color 0.2s; + -moz-transition: color 0.2s; + -ms-transition: color 0.2s; + transition: color 0.2s; + line-height: 1.6em; +} +.archive-article-title:hover { + color: #258fb8; +} +.archive-article-footer { + margin-top: 1em; +} +.archive-article-date { + color: #999; + text-decoration: none; + font-size: 0.85em; + line-height: 1em; + margin-bottom: 0.5em; + display: block; +} +#page-nav { + margin: 50px auto; + background: #fff; + -webkit-box-shadow: 1px 2px 3px #ddd; + box-shadow: 1px 2px 3px #ddd; + border: 1px solid #ddd; + border-radius: 3px; + text-align: center; + color: #999; + overflow: hidden; +} +#page-nav:before, +#page-nav:after { + content: ""; + display: table; +} +#page-nav:after { + clear: both; +} +#page-nav a, +#page-nav span { + padding: 10px 20px; + line-height: 1; + height: 2ex; +} +#page-nav a { + color: #999; + text-decoration: none; +} +#page-nav a:hover { + background: #999; + color: #fff; +} +#page-nav .prev { + float: left; +} +#page-nav .next { + float: right; +} +#page-nav .page-number { + display: inline-block; +} +@media screen and (max-width: 479px) { + #page-nav .page-number { + display: none; + } +} +#page-nav .current { + color: #555; + font-weight: bold; +} +#page-nav .space { + color: #ddd; +} +#footer { + background: #262a30; + padding: 50px 0; + border-top: 1px solid #ddd; + color: #999; +} +#footer a { + color: #258fb8; + text-decoration: none; +} +#footer a:hover { + text-decoration: underline; +} +#footer-info { + line-height: 1.6em; + font-size: 0.85em; +} +.article-entry pre, +.article-entry .highlight { + background: #2d2d2d; + margin: 0 -20px; + padding: 15px 20px; + border-style: solid; + border-color: #ddd; + border-width: 1px 0; + overflow: auto; + color: #ccc; + line-height: 22.400000000000002px; +} +.article-entry .highlight .gutter pre, +.article-entry .gist .gist-file .gist-data .line-numbers { + color: #666; + font-size: 0.85em; +} +.article-entry pre, +.article-entry code { + font-family: "Source Code Pro", Consolas, Monaco, Menlo, Consolas, monospace; +} +.article-entry code { + background: #eee; + text-shadow: 0 1px #fff; + padding: 0 0.3em; +} +.article-entry pre code { + background: none; + text-shadow: none; + padding: 0; +} +.article-entry .highlight pre { + border: none; + margin: 0; + padding: 0; +} +.article-entry .highlight table { + margin: 0; + width: auto; +} +.article-entry .highlight td { + border: none; + padding: 0; +} +.article-entry .highlight figcaption { + font-size: 0.85em; + color: #999; + line-height: 1em; + margin-bottom: 1em; +} +.article-entry .highlight figcaption:before, +.article-entry .highlight figcaption:after { + content: ""; + display: table; +} +.article-entry .highlight figcaption:after { + clear: both; +} +.article-entry .highlight figcaption a { + float: right; +} +.article-entry .highlight .gutter { + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.article-entry .highlight .gutter pre { + text-align: right; + padding-right: 20px; +} +.article-entry .highlight .line { + height: 22.400000000000002px; +} +.article-entry .highlight .line.marked { + background: #515151; +} +.article-entry .gist { + margin: 0 -20px; + border-style: solid; + border-color: #ddd; + border-width: 1px 0; + background: #2d2d2d; + padding: 15px 20px 15px 0; +} +.article-entry .gist .gist-file { + border: none; + font-family: "Source Code Pro", Consolas, Monaco, Menlo, Consolas, monospace; + margin: 0; +} +.article-entry .gist .gist-file .gist-data { + background: none; + border: none; +} +.article-entry .gist .gist-file .gist-data .line-numbers { + background: none; + border: none; + padding: 0 20px 0 0; +} +.article-entry .gist .gist-file .gist-data .line-data { + padding: 0 !important; +} +.article-entry .gist .gist-file .highlight { + margin: 0; + padding: 0; + border: none; +} +.article-entry .gist .gist-file .gist-meta { + background: #2d2d2d; + color: #999; + font: 0.85em -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + text-shadow: 0 0; + padding: 0; + margin-top: 1em; + margin-left: 20px; +} +.article-entry .gist .gist-file .gist-meta a { + color: #258fb8; + font-weight: normal; +} +.article-entry .gist .gist-file .gist-meta a:hover { + text-decoration: underline; +} +pre .comment, +pre .title { + color: #999; +} +pre .variable, +pre .attribute, +pre .tag, +pre .regexp, +pre .ruby .constant, +pre .xml .tag .title, +pre .xml .pi, +pre .xml .doctype, +pre .html .doctype, +pre .css .id, +pre .css .class, +pre .css .pseudo { + color: #f2777a; +} +pre .number, +pre .preprocessor, +pre .built_in, +pre .literal, +pre .params, +pre .constant { + color: #f99157; +} +pre .class, +pre .ruby .class .title, +pre .css .rules .attribute { + color: #9c9; +} +pre .string, +pre .value, +pre .inheritance, +pre .header, +pre .ruby .symbol, +pre .xml .cdata { + color: #9c9; +} +pre .css .hexcolor { + color: #6cc; +} +pre .function, +pre .python .decorator, +pre .python .title, +pre .ruby .function .title, +pre .ruby .title .keyword, +pre .perl .sub, +pre .javascript .title, +pre .coffeescript .title { + color: #69c; +} +pre .keyword, +pre .javascript .function { + color: #c9c; +} +@media screen and (max-width: 479px) { + #mobile-nav { + position: absolute; + top: 0; + left: 0; + width: 280px; + height: 100%; + background: #191919; + border-right: 1px solid #fff; + } +} +@media screen and (max-width: 479px) { + .mobile-nav-link { + display: block; + color: #999; + text-decoration: none; + padding: 15px 20px; + font-weight: bold; + } + .mobile-nav-link:hover { + color: #fff; + } +} +@media screen and (min-width: 768px) { + #sidebar { + display: inline; + float: left; + width: 23.333333333333332%; + margin: 0 0.833333333333333%; + } +} +.widget-wrap { + margin: 50px 0; +} +.widget { + color: #777; + text-shadow: 0 1px #fff; + background: #ddd; + -webkit-box-shadow: 0 -1px 4px #ccc inset; + box-shadow: 0 -1px 4px #ccc inset; + border: 1px solid #ccc; + padding: 15px; + border-radius: 3px; +} +.widget a { + color: #258fb8; + text-decoration: none; +} +.widget a:hover { + text-decoration: underline; +} +.widget ul ul, +.widget ol ul, +.widget dl ul, +.widget ul ol, +.widget ol ol, +.widget dl ol, +.widget ul dl, +.widget ol dl, +.widget dl dl { + margin-left: 15px; + list-style: disc; +} +.widget { + line-height: 1.6em; + word-wrap: break-word; + font-size: 0.9em; +} +.widget ul, +.widget ol { + list-style: none; + margin: 0; +} +.widget ul ul, +.widget ol ul, +.widget ul ol, +.widget ol ol { + margin: 0 20px; +} +.widget ul ul, +.widget ol ul { + list-style: disc; +} +.widget ul ol, +.widget ol ol { + list-style: decimal; +} +.category-list-count, +.tag-list-count, +.archive-list-count { + padding-left: 5px; + color: #999; + font-size: 0.85em; +} +.category-list-count:before, +.tag-list-count:before, +.archive-list-count:before { + content: "("; +} +.category-list-count:after, +.tag-list-count:after, +.archive-list-count:after { + content: ")"; +} +.tagcloud a { + margin-right: 5px; + display: inline-block; +} diff --git a/fancybox/jquery.fancybox.min.css b/fancybox/jquery.fancybox.min.css new file mode 100644 index 0000000..7cc60b2 --- /dev/null +++ b/fancybox/jquery.fancybox.min.css @@ -0,0 +1 @@ +body.compensate-for-scrollbar{overflow:hidden}.fancybox-active{height:auto}.fancybox-is-hidden{left:-9999px;margin:0;position:absolute!important;top:-9999px;visibility:hidden}.fancybox-container{-webkit-backface-visibility:hidden;height:100%;left:0;outline:none;position:fixed;-webkit-tap-highlight-color:transparent;top:0;-ms-touch-action:manipulation;touch-action:manipulation;transform:translateZ(0);width:100%;z-index:99992}.fancybox-container *{box-sizing:border-box}.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-stage{bottom:0;left:0;position:absolute;right:0;top:0}.fancybox-outer{-webkit-overflow-scrolling:touch;overflow-y:auto}.fancybox-bg{background:#1e1e1e;opacity:0;transition-duration:inherit;transition-property:opacity;transition-timing-function:cubic-bezier(.47,0,.74,.71)}.fancybox-is-open .fancybox-bg{opacity:.9;transition-timing-function:cubic-bezier(.22,.61,.36,1)}.fancybox-caption,.fancybox-infobar,.fancybox-navigation .fancybox-button,.fancybox-toolbar{direction:ltr;opacity:0;position:absolute;transition:opacity .25s ease,visibility 0s ease .25s;visibility:hidden;z-index:99997}.fancybox-show-caption .fancybox-caption,.fancybox-show-infobar .fancybox-infobar,.fancybox-show-nav .fancybox-navigation .fancybox-button,.fancybox-show-toolbar .fancybox-toolbar{opacity:1;transition:opacity .25s ease 0s,visibility 0s ease 0s;visibility:visible}.fancybox-infobar{color:#ccc;font-size:13px;-webkit-font-smoothing:subpixel-antialiased;height:44px;left:0;line-height:44px;min-width:44px;mix-blend-mode:difference;padding:0 10px;pointer-events:none;top:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fancybox-toolbar{right:0;top:0}.fancybox-stage{direction:ltr;overflow:visible;transform:translateZ(0);z-index:99994}.fancybox-is-open .fancybox-stage{overflow:hidden}.fancybox-slide{-webkit-backface-visibility:hidden;display:none;height:100%;left:0;outline:none;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:absolute;text-align:center;top:0;transition-property:transform,opacity;white-space:normal;width:100%;z-index:99994}.fancybox-slide:before{content:"";display:inline-block;font-size:0;height:100%;vertical-align:middle;width:0}.fancybox-is-sliding .fancybox-slide,.fancybox-slide--current,.fancybox-slide--next,.fancybox-slide--previous{display:block}.fancybox-slide--image{overflow:hidden;padding:44px 0}.fancybox-slide--image:before{display:none}.fancybox-slide--html{padding:6px}.fancybox-content{background:#fff;display:inline-block;margin:0;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;padding:44px;position:relative;text-align:left;vertical-align:middle}.fancybox-slide--image .fancybox-content{animation-timing-function:cubic-bezier(.5,0,.14,1);-webkit-backface-visibility:hidden;background:transparent;background-repeat:no-repeat;background-size:100% 100%;left:0;max-width:none;overflow:visible;padding:0;position:absolute;top:0;transform-origin:top left;transition-property:transform,opacity;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:99995}.fancybox-can-zoomOut .fancybox-content{cursor:zoom-out}.fancybox-can-zoomIn .fancybox-content{cursor:zoom-in}.fancybox-can-pan .fancybox-content,.fancybox-can-swipe .fancybox-content{cursor:grab}.fancybox-is-grabbing .fancybox-content{cursor:grabbing}.fancybox-container [data-selectable=true]{cursor:text}.fancybox-image,.fancybox-spaceball{background:transparent;border:0;height:100%;left:0;margin:0;max-height:none;max-width:none;padding:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.fancybox-spaceball{z-index:1}.fancybox-slide--iframe .fancybox-content,.fancybox-slide--map .fancybox-content,.fancybox-slide--pdf .fancybox-content,.fancybox-slide--video .fancybox-content{height:100%;overflow:visible;padding:0;width:100%}.fancybox-slide--video .fancybox-content{background:#000}.fancybox-slide--map .fancybox-content{background:#e5e3df}.fancybox-slide--iframe .fancybox-content{background:#fff}.fancybox-iframe,.fancybox-video{background:transparent;border:0;display:block;height:100%;margin:0;overflow:hidden;padding:0;width:100%}.fancybox-iframe{left:0;position:absolute;top:0}.fancybox-error{background:#fff;cursor:default;max-width:400px;padding:40px;width:100%}.fancybox-error p{color:#444;font-size:16px;line-height:20px;margin:0;padding:0}.fancybox-button{background:rgba(30,30,30,.6);border:0;border-radius:0;box-shadow:none;cursor:pointer;display:inline-block;height:44px;margin:0;padding:10px;position:relative;transition:color .2s;vertical-align:top;visibility:inherit;width:44px}.fancybox-button,.fancybox-button:link,.fancybox-button:visited{color:#ccc}.fancybox-button:hover{color:#fff}.fancybox-button:focus{outline:none}.fancybox-button.fancybox-focus{outline:1px dotted}.fancybox-button[disabled],.fancybox-button[disabled]:hover{color:#888;cursor:default;outline:none}.fancybox-button div{height:100%}.fancybox-button svg{display:block;height:100%;overflow:visible;position:relative;width:100%}.fancybox-button svg path{fill:currentColor;stroke-width:0}.fancybox-button--fsenter svg:nth-child(2),.fancybox-button--fsexit svg:first-child,.fancybox-button--pause svg:first-child,.fancybox-button--play svg:nth-child(2){display:none}.fancybox-progress{background:#ff5268;height:2px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;z-index:99998}.fancybox-close-small{background:transparent;border:0;border-radius:0;color:#ccc;cursor:pointer;opacity:.8;padding:8px;position:absolute;right:-12px;top:-44px;z-index:401}.fancybox-close-small:hover{color:#fff;opacity:1}.fancybox-slide--html .fancybox-close-small{color:currentColor;padding:10px;right:0;top:0}.fancybox-slide--image.fancybox-is-scaling .fancybox-content{overflow:hidden}.fancybox-is-scaling .fancybox-close-small,.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small{display:none}.fancybox-navigation .fancybox-button{background-clip:content-box;height:100px;opacity:0;position:absolute;top:calc(50% - 50px);width:70px}.fancybox-navigation .fancybox-button div{padding:7px}.fancybox-navigation .fancybox-button--arrow_left{left:0;left:env(safe-area-inset-left);padding:31px 26px 31px 6px}.fancybox-navigation .fancybox-button--arrow_right{padding:31px 6px 31px 26px;right:0;right:env(safe-area-inset-right)}.fancybox-caption{background:linear-gradient(0deg,rgba(0,0,0,.85) 0,rgba(0,0,0,.3) 50%,rgba(0,0,0,.15) 65%,rgba(0,0,0,.075) 75.5%,rgba(0,0,0,.037) 82.85%,rgba(0,0,0,.019) 88%,transparent);bottom:0;color:#eee;font-size:14px;font-weight:400;left:0;line-height:1.5;padding:75px 44px 25px;pointer-events:none;right:0;text-align:center;z-index:99996}@supports (padding:max(0px)){.fancybox-caption{padding:75px max(44px,env(safe-area-inset-right)) max(25px,env(safe-area-inset-bottom)) max(44px,env(safe-area-inset-left))}}.fancybox-caption--separate{margin-top:-50px}.fancybox-caption__body{max-height:50vh;overflow:auto;pointer-events:all}.fancybox-caption a,.fancybox-caption a:link,.fancybox-caption a:visited{color:#ccc;text-decoration:none}.fancybox-caption a:hover{color:#fff;text-decoration:underline}.fancybox-loading{animation:a 1s linear infinite;background:transparent;border:4px solid #888;border-bottom-color:#fff;border-radius:50%;height:50px;left:50%;margin:-25px 0 0 -25px;opacity:.7;padding:0;position:absolute;top:50%;width:50px;z-index:99999}@keyframes a{to{transform:rotate(1turn)}}.fancybox-animated{transition-timing-function:cubic-bezier(0,0,.25,1)}.fancybox-fx-slide.fancybox-slide--previous{opacity:0;transform:translate3d(-100%,0,0)}.fancybox-fx-slide.fancybox-slide--next{opacity:0;transform:translate3d(100%,0,0)}.fancybox-fx-slide.fancybox-slide--current{opacity:1;transform:translateZ(0)}.fancybox-fx-fade.fancybox-slide--next,.fancybox-fx-fade.fancybox-slide--previous{opacity:0;transition-timing-function:cubic-bezier(.19,1,.22,1)}.fancybox-fx-fade.fancybox-slide--current{opacity:1}.fancybox-fx-zoom-in-out.fancybox-slide--previous{opacity:0;transform:scale3d(1.5,1.5,1.5)}.fancybox-fx-zoom-in-out.fancybox-slide--next{opacity:0;transform:scale3d(.5,.5,.5)}.fancybox-fx-zoom-in-out.fancybox-slide--current{opacity:1;transform:scaleX(1)}.fancybox-fx-rotate.fancybox-slide--previous{opacity:0;transform:rotate(-1turn)}.fancybox-fx-rotate.fancybox-slide--next{opacity:0;transform:rotate(1turn)}.fancybox-fx-rotate.fancybox-slide--current{opacity:1;transform:rotate(0deg)}.fancybox-fx-circular.fancybox-slide--previous{opacity:0;transform:scale3d(0,0,0) translate3d(-100%,0,0)}.fancybox-fx-circular.fancybox-slide--next{opacity:0;transform:scale3d(0,0,0) translate3d(100%,0,0)}.fancybox-fx-circular.fancybox-slide--current{opacity:1;transform:scaleX(1) translateZ(0)}.fancybox-fx-tube.fancybox-slide--previous{transform:translate3d(-100%,0,0) scale(.1) skew(-10deg)}.fancybox-fx-tube.fancybox-slide--next{transform:translate3d(100%,0,0) scale(.1) skew(10deg)}.fancybox-fx-tube.fancybox-slide--current{transform:translateZ(0) scale(1)}@media (max-height:576px){.fancybox-slide{padding-left:6px;padding-right:6px}.fancybox-slide--image{padding:6px 0}.fancybox-close-small{right:-6px}.fancybox-slide--image .fancybox-close-small{background:#4e4e4e;color:#f2f4f6;height:36px;opacity:1;padding:6px;right:0;top:0;width:36px}.fancybox-caption{padding-left:12px;padding-right:12px}@supports (padding:max(0px)){.fancybox-caption{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}}.fancybox-share{background:#f4f4f4;border-radius:3px;max-width:90%;padding:30px;text-align:center}.fancybox-share h1{color:#222;font-size:35px;font-weight:700;margin:0 0 20px}.fancybox-share p{margin:0;padding:0}.fancybox-share__button{border:0;border-radius:3px;display:inline-block;font-size:14px;font-weight:700;line-height:40px;margin:0 5px 10px;min-width:130px;padding:0 15px;text-decoration:none;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.fancybox-share__button:link,.fancybox-share__button:visited{color:#fff}.fancybox-share__button:hover{text-decoration:none}.fancybox-share__button--fb{background:#3b5998}.fancybox-share__button--fb:hover{background:#344e86}.fancybox-share__button--pt{background:#bd081d}.fancybox-share__button--pt:hover{background:#aa0719}.fancybox-share__button--tw{background:#1da1f2}.fancybox-share__button--tw:hover{background:#0d95e8}.fancybox-share__button svg{height:25px;margin-right:7px;position:relative;top:-1px;vertical-align:middle;width:25px}.fancybox-share__button svg path{fill:#fff}.fancybox-share__input{background:transparent;border:0;border-bottom:1px solid #d7d7d7;border-radius:0;color:#5d5b5b;font-size:14px;margin:10px 0 0;outline:none;padding:10px 15px;width:100%}.fancybox-thumbs{background:#ddd;bottom:0;display:none;margin:0;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;padding:2px 2px 4px;position:absolute;right:0;-webkit-tap-highlight-color:rgba(0,0,0,0);top:0;width:212px;z-index:99995}.fancybox-thumbs-x{overflow-x:auto;overflow-y:hidden}.fancybox-show-thumbs .fancybox-thumbs{display:block}.fancybox-show-thumbs .fancybox-inner{right:212px}.fancybox-thumbs__list{font-size:0;height:100%;list-style:none;margin:0;overflow-x:hidden;overflow-y:auto;padding:0;position:absolute;position:relative;white-space:nowrap;width:100%}.fancybox-thumbs-x .fancybox-thumbs__list{overflow:hidden}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar{width:7px}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track{background:#fff;border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:10px}.fancybox-thumbs__list a{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:rgba(0,0,0,.1);background-position:50%;background-repeat:no-repeat;background-size:cover;cursor:pointer;float:left;height:75px;margin:2px;max-height:calc(100% - 8px);max-width:calc(50% - 4px);outline:none;overflow:hidden;padding:0;position:relative;-webkit-tap-highlight-color:transparent;width:100px}.fancybox-thumbs__list a:before{border:6px solid #ff5268;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s cubic-bezier(.25,.46,.45,.94);z-index:99991}.fancybox-thumbs__list a:focus:before{opacity:.5}.fancybox-thumbs__list a.fancybox-thumbs-active:before{opacity:1}@media (max-width:576px){.fancybox-thumbs{width:110px}.fancybox-show-thumbs .fancybox-inner{right:110px}.fancybox-thumbs__list a{max-width:calc(100% - 10px)}} \ No newline at end of file diff --git a/fancybox/jquery.fancybox.min.js b/fancybox/jquery.fancybox.min.js new file mode 100644 index 0000000..d5d10f6 --- /dev/null +++ b/fancybox/jquery.fancybox.min.js @@ -0,0 +1,13 @@ +// ================================================== +// fancyBox v3.5.7 +// +// Licensed GPLv3 for open source use +// or fancyBox Commercial License for commercial use +// +// http://fancyapps.com/fancybox/ +// Copyright 2019 fancyApps +// +// ================================================== +!function(t,e,n,o){"use strict";function i(t,e){var o,i,a,s=[],r=0;t&&t.isDefaultPrevented()||(t.preventDefault(),e=e||{},t&&t.data&&(e=h(t.data.options,e)),o=e.$target||n(t.currentTarget).trigger("blur"),(a=n.fancybox.getInstance())&&a.$trigger&&a.$trigger.is(o)||(e.selector?s=n(e.selector):(i=o.attr("data-fancybox")||"",i?(s=t.data?t.data.items:[],s=s.length?s.filter('[data-fancybox="'+i+'"]'):n('[data-fancybox="'+i+'"]')):s=[o]),r=n(s).index(o),r<0&&(r=0),a=n.fancybox.open(s,e,r),a.$trigger=o))}if(t.console=t.console||{info:function(t){}},n){if(n.fn.fancybox)return void console.info("fancyBox already initialized");var a={closeExisting:!1,loop:!1,gutter:50,keyboard:!0,preventCaptionOverlap:!0,arrows:!0,infobar:!0,smallBtn:"auto",toolbar:"auto",buttons:["zoom","slideShow","thumbs","close"],idleTime:3,protect:!1,modal:!1,image:{preload:!1},ajax:{settings:{data:{fancybox:!0}}},iframe:{tpl:'',preload:!0,css:{},attr:{scrolling:"auto"}},video:{tpl:'',format:"",autoStart:!0},defaultType:"image",animationEffect:"zoom",animationDuration:366,zoomOpacity:"auto",transitionEffect:"fade",transitionDuration:366,slideClass:"",baseClass:"",baseTpl:'',spinnerTpl:'
',errorTpl:'

{{ERROR}}

',btnTpl:{download:'',zoom:'',close:'',arrowLeft:'',arrowRight:'',smallBtn:''},parentEl:"body",hideScrollbar:!0,autoFocus:!0,backFocus:!0,trapFocus:!0,fullScreen:{autoStart:!1},touch:{vertical:!0,momentum:!0},hash:null,media:{},slideShow:{autoStart:!1,speed:3e3},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"},wheel:"auto",onInit:n.noop,beforeLoad:n.noop,afterLoad:n.noop,beforeShow:n.noop,afterShow:n.noop,beforeClose:n.noop,afterClose:n.noop,onActivate:n.noop,onDeactivate:n.noop,clickContent:function(t,e){return"image"===t.type&&"zoom"},clickSlide:"close",clickOutside:"close",dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1,mobile:{preventCaptionOverlap:!1,idleTime:!1,clickContent:function(t,e){return"image"===t.type&&"toggleControls"},clickSlide:function(t,e){return"image"===t.type?"toggleControls":"close"},dblclickContent:function(t,e){return"image"===t.type&&"zoom"},dblclickSlide:function(t,e){return"image"===t.type&&"zoom"}},lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded.
Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share",ZOOM:"Zoom"},de:{CLOSE:"Schließen",NEXT:"Weiter",PREV:"Zurück",ERROR:"Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen",ZOOM:"Vergrößern"}}},s=n(t),r=n(e),c=0,l=function(t){return t&&t.hasOwnProperty&&t instanceof n},d=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),u=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),f=function(){var t,n=e.createElement("fakeelement"),o={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in o)if(void 0!==n.style[t])return o[t];return"transitionend"}(),p=function(t){return t&&t.length&&t[0].offsetHeight},h=function(t,e){var o=n.extend(!0,{},t,e);return n.each(e,function(t,e){n.isArray(e)&&(o[t]=e)}),o},g=function(t){var o,i;return!(!t||t.ownerDocument!==e)&&(n(".fancybox-container").css("pointer-events","none"),o={x:t.getBoundingClientRect().left+t.offsetWidth/2,y:t.getBoundingClientRect().top+t.offsetHeight/2},i=e.elementFromPoint(o.x,o.y)===t,n(".fancybox-container").css("pointer-events",""),i)},b=function(t,e,o){var i=this;i.opts=h({index:o},n.fancybox.defaults),n.isPlainObject(e)&&(i.opts=h(i.opts,e)),n.fancybox.isMobile&&(i.opts=h(i.opts,i.opts.mobile)),i.id=i.opts.id||++c,i.currIndex=parseInt(i.opts.index,10)||0,i.prevIndex=null,i.prevPos=null,i.currPos=0,i.firstRun=!0,i.group=[],i.slides={},i.addContent(t),i.group.length&&i.init()};n.extend(b.prototype,{init:function(){var o,i,a=this,s=a.group[a.currIndex],r=s.opts;r.closeExisting&&n.fancybox.close(!0),n("body").addClass("fancybox-active"),!n.fancybox.getInstance()&&!1!==r.hideScrollbar&&!n.fancybox.isMobile&&e.body.scrollHeight>t.innerHeight&&(n("head").append('"),n("body").addClass("compensate-for-scrollbar")),i="",n.each(r.buttons,function(t,e){i+=r.btnTpl[e]||""}),o=n(a.translate(a,r.baseTpl.replace("{{buttons}}",i).replace("{{arrows}}",r.btnTpl.arrowLeft+r.btnTpl.arrowRight))).attr("id","fancybox-container-"+a.id).addClass(r.baseClass).data("FancyBox",a).appendTo(r.parentEl),a.$refs={container:o},["bg","inner","infobar","toolbar","stage","caption","navigation"].forEach(function(t){a.$refs[t]=o.find(".fancybox-"+t)}),a.trigger("onInit"),a.activate(),a.jumpTo(a.currIndex)},translate:function(t,e){var n=t.opts.i18n[t.opts.lang]||t.opts.i18n.en;return e.replace(/\{\{(\w+)\}\}/g,function(t,e){return void 0===n[e]?t:n[e]})},addContent:function(t){var e,o=this,i=n.makeArray(t);n.each(i,function(t,e){var i,a,s,r,c,l={},d={};n.isPlainObject(e)?(l=e,d=e.opts||e):"object"===n.type(e)&&n(e).length?(i=n(e),d=i.data()||{},d=n.extend(!0,{},d,d.options),d.$orig=i,l.src=o.opts.src||d.src||i.attr("href"),l.type||l.src||(l.type="inline",l.src=e)):l={type:"html",src:e+""},l.opts=n.extend(!0,{},o.opts,d),n.isArray(d.buttons)&&(l.opts.buttons=d.buttons),n.fancybox.isMobile&&l.opts.mobile&&(l.opts=h(l.opts,l.opts.mobile)),a=l.type||l.opts.type,r=l.src||"",!a&&r&&((s=r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))?(a="video",l.opts.video.format||(l.opts.video.format="video/"+("ogv"===s[1]?"ogg":s[1]))):r.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?a="image":r.match(/\.(pdf)((\?|#).*)?$/i)?(a="iframe",l=n.extend(!0,l,{contentType:"pdf",opts:{iframe:{preload:!1}}})):"#"===r.charAt(0)&&(a="inline")),a?l.type=a:o.trigger("objectNeedsType",l),l.contentType||(l.contentType=n.inArray(l.type,["html","inline","ajax"])>-1?"html":l.type),l.index=o.group.length,"auto"==l.opts.smallBtn&&(l.opts.smallBtn=n.inArray(l.type,["html","inline","ajax"])>-1),"auto"===l.opts.toolbar&&(l.opts.toolbar=!l.opts.smallBtn),l.$thumb=l.opts.$thumb||null,l.opts.$trigger&&l.index===o.opts.index&&(l.$thumb=l.opts.$trigger.find("img:first"),l.$thumb.length&&(l.opts.$orig=l.opts.$trigger)),l.$thumb&&l.$thumb.length||!l.opts.$orig||(l.$thumb=l.opts.$orig.find("img:first")),l.$thumb&&!l.$thumb.length&&(l.$thumb=null),l.thumb=l.opts.thumb||(l.$thumb?l.$thumb[0].src:null),"function"===n.type(l.opts.caption)&&(l.opts.caption=l.opts.caption.apply(e,[o,l])),"function"===n.type(o.opts.caption)&&(l.opts.caption=o.opts.caption.apply(e,[o,l])),l.opts.caption instanceof n||(l.opts.caption=void 0===l.opts.caption?"":l.opts.caption+""),"ajax"===l.type&&(c=r.split(/\s+/,2),c.length>1&&(l.src=c.shift(),l.opts.filter=c.shift())),l.opts.modal&&(l.opts=n.extend(!0,l.opts,{trapFocus:!0,infobar:0,toolbar:0,smallBtn:0,keyboard:0,slideShow:0,fullScreen:0,thumbs:0,touch:0,clickContent:!1,clickSlide:!1,clickOutside:!1,dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1})),o.group.push(l)}),Object.keys(o.slides).length&&(o.updateControls(),(e=o.Thumbs)&&e.isActive&&(e.create(),e.focus()))},addEvents:function(){var e=this;e.removeEvents(),e.$refs.container.on("click.fb-close","[data-fancybox-close]",function(t){t.stopPropagation(),t.preventDefault(),e.close(t)}).on("touchstart.fb-prev click.fb-prev","[data-fancybox-prev]",function(t){t.stopPropagation(),t.preventDefault(),e.previous()}).on("touchstart.fb-next click.fb-next","[data-fancybox-next]",function(t){t.stopPropagation(),t.preventDefault(),e.next()}).on("click.fb","[data-fancybox-zoom]",function(t){e[e.isScaledDown()?"scaleToActual":"scaleToFit"]()}),s.on("orientationchange.fb resize.fb",function(t){t&&t.originalEvent&&"resize"===t.originalEvent.type?(e.requestId&&u(e.requestId),e.requestId=d(function(){e.update(t)})):(e.current&&"iframe"===e.current.type&&e.$refs.stage.hide(),setTimeout(function(){e.$refs.stage.show(),e.update(t)},n.fancybox.isMobile?600:250))}),r.on("keydown.fb",function(t){var o=n.fancybox?n.fancybox.getInstance():null,i=o.current,a=t.keyCode||t.which;if(9==a)return void(i.opts.trapFocus&&e.focus(t));if(!(!i.opts.keyboard||t.ctrlKey||t.altKey||t.shiftKey||n(t.target).is("input,textarea,video,audio,select")))return 8===a||27===a?(t.preventDefault(),void e.close(t)):37===a||38===a?(t.preventDefault(),void e.previous()):39===a||40===a?(t.preventDefault(),void e.next()):void e.trigger("afterKeydown",t,a)}),e.group[e.currIndex].opts.idleTime&&(e.idleSecondsCounter=0,r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",function(t){e.idleSecondsCounter=0,e.isIdle&&e.showControls(),e.isIdle=!1}),e.idleInterval=t.setInterval(function(){++e.idleSecondsCounter>=e.group[e.currIndex].opts.idleTime&&!e.isDragging&&(e.isIdle=!0,e.idleSecondsCounter=0,e.hideControls())},1e3))},removeEvents:function(){var e=this;s.off("orientationchange.fb resize.fb"),r.off("keydown.fb .fb-idle"),this.$refs.container.off(".fb-close .fb-prev .fb-next"),e.idleInterval&&(t.clearInterval(e.idleInterval),e.idleInterval=null)},previous:function(t){return this.jumpTo(this.currPos-1,t)},next:function(t){return this.jumpTo(this.currPos+1,t)},jumpTo:function(t,e){var o,i,a,s,r,c,l,d,u,f=this,h=f.group.length;if(!(f.isDragging||f.isClosing||f.isAnimating&&f.firstRun)){if(t=parseInt(t,10),!(a=f.current?f.current.opts.loop:f.opts.loop)&&(t<0||t>=h))return!1;if(o=f.firstRun=!Object.keys(f.slides).length,r=f.current,f.prevIndex=f.currIndex,f.prevPos=f.currPos,s=f.createSlide(t),h>1&&((a||s.index0)&&f.createSlide(t-1)),f.current=s,f.currIndex=s.index,f.currPos=s.pos,f.trigger("beforeShow",o),f.updateControls(),s.forcedDuration=void 0,n.isNumeric(e)?s.forcedDuration=e:e=s.opts[o?"animationDuration":"transitionDuration"],e=parseInt(e,10),i=f.isMoved(s),s.$slide.addClass("fancybox-slide--current"),o)return s.opts.animationEffect&&e&&f.$refs.container.css("transition-duration",e+"ms"),f.$refs.container.addClass("fancybox-is-open").trigger("focus"),f.loadSlide(s),void f.preload("image");c=n.fancybox.getTranslate(r.$slide),l=n.fancybox.getTranslate(f.$refs.stage),n.each(f.slides,function(t,e){n.fancybox.stop(e.$slide,!0)}),r.pos!==s.pos&&(r.isComplete=!1),r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"),i?(u=c.left-(r.pos*c.width+r.pos*r.opts.gutter),n.each(f.slides,function(t,o){o.$slide.removeClass("fancybox-animated").removeClass(function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")});var i=o.pos*c.width+o.pos*o.opts.gutter;n.fancybox.setTranslate(o.$slide,{top:0,left:i-l.left+u}),o.pos!==s.pos&&o.$slide.addClass("fancybox-slide--"+(o.pos>s.pos?"next":"previous")),p(o.$slide),n.fancybox.animate(o.$slide,{top:0,left:(o.pos-s.pos)*c.width+(o.pos-s.pos)*o.opts.gutter},e,function(){o.$slide.css({transform:"",opacity:""}).removeClass("fancybox-slide--next fancybox-slide--previous"),o.pos===f.currPos&&f.complete()})})):e&&s.opts.transitionEffect&&(d="fancybox-animated fancybox-fx-"+s.opts.transitionEffect,r.$slide.addClass("fancybox-slide--"+(r.pos>s.pos?"next":"previous")),n.fancybox.animate(r.$slide,d,e,function(){r.$slide.removeClass(d).removeClass("fancybox-slide--next fancybox-slide--previous")},!1)),s.isLoaded?f.revealContent(s):f.loadSlide(s),f.preload("image")}},createSlide:function(t){var e,o,i=this;return o=t%i.group.length,o=o<0?i.group.length+o:o,!i.slides[t]&&i.group[o]&&(e=n('
').appendTo(i.$refs.stage),i.slides[t]=n.extend(!0,{},i.group[o],{pos:t,$slide:e,isLoaded:!1}),i.updateSlide(i.slides[t])),i.slides[t]},scaleToActual:function(t,e,o){var i,a,s,r,c,l=this,d=l.current,u=d.$content,f=n.fancybox.getTranslate(d.$slide).width,p=n.fancybox.getTranslate(d.$slide).height,h=d.width,g=d.height;l.isAnimating||l.isMoved()||!u||"image"!=d.type||!d.isLoaded||d.hasError||(l.isAnimating=!0,n.fancybox.stop(u),t=void 0===t?.5*f:t,e=void 0===e?.5*p:e,i=n.fancybox.getTranslate(u),i.top-=n.fancybox.getTranslate(d.$slide).top,i.left-=n.fancybox.getTranslate(d.$slide).left,r=h/i.width,c=g/i.height,a=.5*f-.5*h,s=.5*p-.5*g,h>f&&(a=i.left*r-(t*r-t),a>0&&(a=0),ap&&(s=i.top*c-(e*c-e),s>0&&(s=0),se-.5&&(l=e),d>o-.5&&(d=o),"image"===t.type?(u.top=Math.floor(.5*(o-d))+parseFloat(c.css("paddingTop")),u.left=Math.floor(.5*(e-l))+parseFloat(c.css("paddingLeft"))):"video"===t.contentType&&(a=t.opts.width&&t.opts.height?l/d:t.opts.ratio||16/9,d>l/a?d=l/a:l>d*a&&(l=d*a)),u.width=l,u.height=d,u)},update:function(t){var e=this;n.each(e.slides,function(n,o){e.updateSlide(o,t)})},updateSlide:function(t,e){var o=this,i=t&&t.$content,a=t.width||t.opts.width,s=t.height||t.opts.height,r=t.$slide;o.adjustCaption(t),i&&(a||s||"video"===t.contentType)&&!t.hasError&&(n.fancybox.stop(i),n.fancybox.setTranslate(i,o.getFitPos(t)),t.pos===o.currPos&&(o.isAnimating=!1,o.updateCursor())),o.adjustLayout(t),r.length&&(r.trigger("refresh"),t.pos===o.currPos&&o.$refs.toolbar.add(o.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar",r.get(0).scrollHeight>r.get(0).clientHeight)),o.trigger("onUpdate",t,e)},centerSlide:function(t){var e=this,o=e.current,i=o.$slide;!e.isClosing&&o&&(i.siblings().css({transform:"",opacity:""}),i.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"),n.fancybox.animate(i,{top:0,left:0,opacity:1},void 0===t?0:t,function(){i.css({transform:"",opacity:""}),o.isComplete||e.complete()},!1))},isMoved:function(t){var e,o,i=t||this.current;return!!i&&(o=n.fancybox.getTranslate(this.$refs.stage),e=n.fancybox.getTranslate(i.$slide),!i.$slide.hasClass("fancybox-animated")&&(Math.abs(e.top-o.top)>.5||Math.abs(e.left-o.left)>.5))},updateCursor:function(t,e){var o,i,a=this,s=a.current,r=a.$refs.container;s&&!a.isClosing&&a.Guestures&&(r.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"),o=a.canPan(t,e),i=!!o||a.isZoomable(),r.toggleClass("fancybox-is-zoomable",i),n("[data-fancybox-zoom]").prop("disabled",!i),o?r.addClass("fancybox-can-pan"):i&&("zoom"===s.opts.clickContent||n.isFunction(s.opts.clickContent)&&"zoom"==s.opts.clickContent(s))?r.addClass("fancybox-can-zoomIn"):s.opts.touch&&(s.opts.touch.vertical||a.group.length>1)&&"video"!==s.contentType&&r.addClass("fancybox-can-swipe"))},isZoomable:function(){var t,e=this,n=e.current;if(n&&!e.isClosing&&"image"===n.type&&!n.hasError){if(!n.isLoaded)return!0;if((t=e.getFitPos(n))&&(n.width>t.width||n.height>t.height))return!0}return!1},isScaledDown:function(t,e){var o=this,i=!1,a=o.current,s=a.$content;return void 0!==t&&void 0!==e?i=t1.5||Math.abs(a.height-s.height)>1.5)),s},loadSlide:function(t){var e,o,i,a=this;if(!t.isLoading&&!t.isLoaded){if(t.isLoading=!0,!1===a.trigger("beforeLoad",t))return t.isLoading=!1,!1;switch(e=t.type,o=t.$slide,o.off("refresh").trigger("onReset").addClass(t.opts.slideClass),e){case"image":a.setImage(t);break;case"iframe":a.setIframe(t);break;case"html":a.setContent(t,t.src||t.content);break;case"video":a.setContent(t,t.opts.video.tpl.replace(/\{\{src\}\}/gi,t.src).replace("{{format}}",t.opts.videoFormat||t.opts.video.format||"").replace("{{poster}}",t.thumb||""));break;case"inline":n(t.src).length?a.setContent(t,n(t.src)):a.setError(t);break;case"ajax":a.showLoading(t),i=n.ajax(n.extend({},t.opts.ajax.settings,{url:t.src,success:function(e,n){"success"===n&&a.setContent(t,e)},error:function(e,n){e&&"abort"!==n&&a.setError(t)}})),o.one("onReset",function(){i.abort()});break;default:a.setError(t)}return!0}},setImage:function(t){var o,i=this;setTimeout(function(){var e=t.$image;i.isClosing||!t.isLoading||e&&e.length&&e[0].complete||t.hasError||i.showLoading(t)},50),i.checkSrcset(t),t.$content=n('
').addClass("fancybox-is-hidden").appendTo(t.$slide.addClass("fancybox-slide--image")),!1!==t.opts.preload&&t.opts.width&&t.opts.height&&t.thumb&&(t.width=t.opts.width,t.height=t.opts.height,o=e.createElement("img"),o.onerror=function(){n(this).remove(),t.$ghost=null},o.onload=function(){i.afterLoad(t)},t.$ghost=n(o).addClass("fancybox-image").appendTo(t.$content).attr("src",t.thumb)),i.setBigImage(t)},checkSrcset:function(e){var n,o,i,a,s=e.opts.srcset||e.opts.image.srcset;if(s){i=t.devicePixelRatio||1,a=t.innerWidth*i,o=s.split(",").map(function(t){var e={};return t.trim().split(/\s+/).forEach(function(t,n){var o=parseInt(t.substring(0,t.length-1),10);if(0===n)return e.url=t;o&&(e.value=o,e.postfix=t[t.length-1])}),e}),o.sort(function(t,e){return t.value-e.value});for(var r=0;r=a||"x"===c.postfix&&c.value>=i){n=c;break}}!n&&o.length&&(n=o[o.length-1]),n&&(e.src=n.url,e.width&&e.height&&"w"==n.postfix&&(e.height=e.width/e.height*n.value,e.width=n.value),e.opts.srcset=s)}},setBigImage:function(t){var o=this,i=e.createElement("img"),a=n(i);t.$image=a.one("error",function(){o.setError(t)}).one("load",function(){var e;t.$ghost||(o.resolveImageSlideSize(t,this.naturalWidth,this.naturalHeight),o.afterLoad(t)),o.isClosing||(t.opts.srcset&&(e=t.opts.sizes,e&&"auto"!==e||(e=(t.width/t.height>1&&s.width()/s.height()>1?"100":Math.round(t.width/t.height*100))+"vw"),a.attr("sizes",e).attr("srcset",t.opts.srcset)),t.$ghost&&setTimeout(function(){t.$ghost&&!o.isClosing&&t.$ghost.hide()},Math.min(300,Math.max(1e3,t.height/1600))),o.hideLoading(t))}).addClass("fancybox-image").attr("src",t.src).appendTo(t.$content),(i.complete||"complete"==i.readyState)&&a.naturalWidth&&a.naturalHeight?a.trigger("load"):i.error&&a.trigger("error")},resolveImageSlideSize:function(t,e,n){var o=parseInt(t.opts.width,10),i=parseInt(t.opts.height,10);t.width=e,t.height=n,o>0&&(t.width=o,t.height=Math.floor(o*n/e)),i>0&&(t.width=Math.floor(i*e/n),t.height=i)},setIframe:function(t){var e,o=this,i=t.opts.iframe,a=t.$slide;t.$content=n('
').css(i.css).appendTo(a),a.addClass("fancybox-slide--"+t.contentType),t.$iframe=e=n(i.tpl.replace(/\{rnd\}/g,(new Date).getTime())).attr(i.attr).appendTo(t.$content),i.preload?(o.showLoading(t),e.on("load.fb error.fb",function(e){this.isReady=1,t.$slide.trigger("refresh"),o.afterLoad(t)}),a.on("refresh.fb",function(){var n,o,s=t.$content,r=i.css.width,c=i.css.height;if(1===e[0].isReady){try{n=e.contents(),o=n.find("body")}catch(t){}o&&o.length&&o.children().length&&(a.css("overflow","visible"),s.css({width:"100%","max-width":"100%",height:"9999px"}),void 0===r&&(r=Math.ceil(Math.max(o[0].clientWidth,o.outerWidth(!0)))),s.css("width",r||"").css("max-width",""),void 0===c&&(c=Math.ceil(Math.max(o[0].clientHeight,o.outerHeight(!0)))),s.css("height",c||""),a.css("overflow","auto")),s.removeClass("fancybox-is-hidden")}})):o.afterLoad(t),e.attr("src",t.src),a.one("onReset",function(){try{n(this).find("iframe").hide().unbind().attr("src","//about:blank")}catch(t){}n(this).off("refresh.fb").empty(),t.isLoaded=!1,t.isRevealed=!1})},setContent:function(t,e){var o=this;o.isClosing||(o.hideLoading(t),t.$content&&n.fancybox.stop(t.$content),t.$slide.empty(),l(e)&&e.parent().length?((e.hasClass("fancybox-content")||e.parent().hasClass("fancybox-content"))&&e.parents(".fancybox-slide").trigger("onReset"),t.$placeholder=n("
").hide().insertAfter(e),e.css("display","inline-block")):t.hasError||("string"===n.type(e)&&(e=n("
").append(n.trim(e)).contents()),t.opts.filter&&(e=n("
").html(e).find(t.opts.filter))),t.$slide.one("onReset",function(){n(this).find("video,audio").trigger("pause"),t.$placeholder&&(t.$placeholder.after(e.removeClass("fancybox-content").hide()).remove(),t.$placeholder=null),t.$smallBtn&&(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(n(this).empty(),t.isLoaded=!1,t.isRevealed=!1)}),n(e).appendTo(t.$slide),n(e).is("video,audio")&&(n(e).addClass("fancybox-video"),n(e).wrap("
"),t.contentType="video",t.opts.width=t.opts.width||n(e).attr("width"),t.opts.height=t.opts.height||n(e).attr("height")),t.$content=t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(),t.$content.siblings().hide(),t.$content.length||(t.$content=t.$slide.wrapInner("
").children().first()),t.$content.addClass("fancybox-content"),t.$slide.addClass("fancybox-slide--"+t.contentType),o.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.trigger("onReset").removeClass("fancybox-slide--"+t.contentType).addClass("fancybox-slide--error"),t.contentType="html",this.setContent(t,this.translate(t,t.opts.errorTpl)),t.pos===this.currPos&&(this.isAnimating=!1)},showLoading:function(t){var e=this;(t=t||e.current)&&!t.$spinner&&(t.$spinner=n(e.translate(e,e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast"))},hideLoading:function(t){var e=this;(t=t||e.current)&&t.$spinner&&(t.$spinner.stop().remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger("afterLoad",t),e.hideLoading(t),!t.opts.smallBtn||t.$smallBtn&&t.$smallBtn.length||(t.$smallBtn=n(e.translate(t,t.opts.btnTpl.smallBtn)).appendTo(t.$content)),t.opts.protect&&t.$content&&!t.hasError&&(t.$content.on("contextmenu.fb",function(t){return 2==t.button&&t.preventDefault(),!0}),"image"===t.type&&n('
').appendTo(t.$content)),e.adjustCaption(t),e.adjustLayout(t),t.pos===e.currPos&&e.updateCursor(),e.revealContent(t))},adjustCaption:function(t){var e,n=this,o=t||n.current,i=o.opts.caption,a=o.opts.preventCaptionOverlap,s=n.$refs.caption,r=!1;s.toggleClass("fancybox-caption--separate",a),a&&i&&i.length&&(o.pos!==n.currPos?(e=s.clone().appendTo(s.parent()),e.children().eq(0).empty().html(i),r=e.outerHeight(!0),e.empty().remove()):n.$caption&&(r=n.$caption.outerHeight(!0)),o.$slide.css("padding-bottom",r||""))},adjustLayout:function(t){var e,n,o,i,a=this,s=t||a.current;s.isLoaded&&!0!==s.opts.disableLayoutFix&&(s.$content.css("margin-bottom",""),s.$content.outerHeight()>s.$slide.height()+.5&&(o=s.$slide[0].style["padding-bottom"],i=s.$slide.css("padding-bottom"),parseFloat(i)>0&&(e=s.$slide[0].scrollHeight,s.$slide.css("padding-bottom",0),Math.abs(e-s.$slide[0].scrollHeight)<1&&(n=i),s.$slide.css("padding-bottom",o))),s.$content.css("margin-bottom",n))},revealContent:function(t){var e,o,i,a,s=this,r=t.$slide,c=!1,l=!1,d=s.isMoved(t),u=t.isRevealed;return t.isRevealed=!0,e=t.opts[s.firstRun?"animationEffect":"transitionEffect"],i=t.opts[s.firstRun?"animationDuration":"transitionDuration"],i=parseInt(void 0===t.forcedDuration?i:t.forcedDuration,10),!d&&t.pos===s.currPos&&i||(e=!1),"zoom"===e&&(t.pos===s.currPos&&i&&"image"===t.type&&!t.hasError&&(l=s.getThumbPos(t))?c=s.getFitPos(t):e="fade"),"zoom"===e?(s.isAnimating=!0,c.scaleX=c.width/l.width,c.scaleY=c.height/l.height,a=t.opts.zoomOpacity,"auto"==a&&(a=Math.abs(t.width/t.height-l.width/l.height)>.1),a&&(l.opacity=.1,c.opacity=1),n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"),l),p(t.$content),void n.fancybox.animate(t.$content,c,i,function(){s.isAnimating=!1,s.complete()})):(s.updateSlide(t),e?(n.fancybox.stop(r),o="fancybox-slide--"+(t.pos>=s.prevPos?"next":"previous")+" fancybox-animated fancybox-fx-"+e,r.addClass(o).removeClass("fancybox-slide--current"),t.$content.removeClass("fancybox-is-hidden"),p(r),"image"!==t.type&&t.$content.hide().show(0),void n.fancybox.animate(r,"fancybox-slide--current",i,function(){r.removeClass(o).css({transform:"",opacity:""}),t.pos===s.currPos&&s.complete()},!0)):(t.$content.removeClass("fancybox-is-hidden"),u||!d||"image"!==t.type||t.hasError||t.$content.hide().fadeIn("fast"),void(t.pos===s.currPos&&s.complete())))},getThumbPos:function(t){var e,o,i,a,s,r=!1,c=t.$thumb;return!(!c||!g(c[0]))&&(e=n.fancybox.getTranslate(c),o=parseFloat(c.css("border-top-width")||0),i=parseFloat(c.css("border-right-width")||0),a=parseFloat(c.css("border-bottom-width")||0),s=parseFloat(c.css("border-left-width")||0),r={top:e.top+o,left:e.left+s,width:e.width-i-s,height:e.height-o-a,scaleX:1,scaleY:1},e.width>0&&e.height>0&&r)},complete:function(){var t,e=this,o=e.current,i={};!e.isMoved()&&o.isLoaded&&(o.isComplete||(o.isComplete=!0,o.$slide.siblings().trigger("onReset"),e.preload("inline"),p(o.$slide),o.$slide.addClass("fancybox-slide--complete"),n.each(e.slides,function(t,o){o.pos>=e.currPos-1&&o.pos<=e.currPos+1?i[o.pos]=o:o&&(n.fancybox.stop(o.$slide),o.$slide.off().remove())}),e.slides=i),e.isAnimating=!1,e.updateCursor(),e.trigger("afterShow"),o.opts.video.autoStart&&o.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended",function(){Document.exitFullscreen?Document.exitFullscreen():this.webkitExitFullscreen&&this.webkitExitFullscreen(),e.next()}),o.opts.autoFocus&&"html"===o.contentType&&(t=o.$content.find("input[autofocus]:enabled:visible:first"),t.length?t.trigger("focus"):e.focus(null,!0)),o.$slide.scrollTop(0).scrollLeft(0))},preload:function(t){var e,n,o=this;o.group.length<2||(n=o.slides[o.currPos+1],e=o.slides[o.currPos-1],e&&e.type===t&&o.loadSlide(e),n&&n.type===t&&o.loadSlide(n))},focus:function(t,o){var i,a,s=this,r=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not([tabindex^="-"])'].join(",");s.isClosing||(i=!t&&s.current&&s.current.isComplete?s.current.$slide.find("*:visible"+(o?":not(.fancybox-close-small)":"")):s.$refs.container.find("*:visible"),i=i.filter(r).filter(function(){return"hidden"!==n(this).css("visibility")&&!n(this).hasClass("disabled")}),i.length?(a=i.index(e.activeElement),t&&t.shiftKey?(a<0||0==a)&&(t.preventDefault(),i.eq(i.length-1).trigger("focus")):(a<0||a==i.length-1)&&(t&&t.preventDefault(),i.eq(0).trigger("focus"))):s.$refs.container.trigger("focus"))},activate:function(){var t=this;n(".fancybox-container").each(function(){var e=n(this).data("FancyBox");e&&e.id!==t.id&&!e.isClosing&&(e.trigger("onDeactivate"),e.removeEvents(),e.isVisible=!1)}),t.isVisible=!0,(t.current||t.isIdle)&&(t.update(),t.updateControls()),t.trigger("onActivate"),t.addEvents()},close:function(t,e){var o,i,a,s,r,c,l,u=this,f=u.current,h=function(){u.cleanUp(t)};return!u.isClosing&&(u.isClosing=!0,!1===u.trigger("beforeClose",t)?(u.isClosing=!1,d(function(){u.update()}),!1):(u.removeEvents(),a=f.$content,o=f.opts.animationEffect,i=n.isNumeric(e)?e:o?f.opts.animationDuration:0,f.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),!0!==t?n.fancybox.stop(f.$slide):o=!1,f.$slide.siblings().trigger("onReset").remove(),i&&u.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration",i+"ms"),u.hideLoading(f),u.hideControls(!0),u.updateCursor(),"zoom"!==o||a&&i&&"image"===f.type&&!u.isMoved()&&!f.hasError&&(l=u.getThumbPos(f))||(o="fade"),"zoom"===o?(n.fancybox.stop(a),s=n.fancybox.getTranslate(a),c={top:s.top,left:s.left,scaleX:s.width/l.width,scaleY:s.height/l.height,width:l.width,height:l.height},r=f.opts.zoomOpacity, +"auto"==r&&(r=Math.abs(f.width/f.height-l.width/l.height)>.1),r&&(l.opacity=0),n.fancybox.setTranslate(a,c),p(a),n.fancybox.animate(a,l,i,h),!0):(o&&i?n.fancybox.animate(f.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"),"fancybox-animated fancybox-fx-"+o,i,h):!0===t?setTimeout(h,i):h(),!0)))},cleanUp:function(e){var o,i,a,s=this,r=s.current.opts.$orig;s.current.$slide.trigger("onReset"),s.$refs.container.empty().remove(),s.trigger("afterClose",e),s.current.opts.backFocus&&(r&&r.length&&r.is(":visible")||(r=s.$trigger),r&&r.length&&(i=t.scrollX,a=t.scrollY,r.trigger("focus"),n("html, body").scrollTop(a).scrollLeft(i))),s.current=null,o=n.fancybox.getInstance(),o?o.activate():(n("body").removeClass("fancybox-active compensate-for-scrollbar"),n("#fancybox-style-noscroll").remove())},trigger:function(t,e){var o,i=Array.prototype.slice.call(arguments,1),a=this,s=e&&e.opts?e:a.current;if(s?i.unshift(s):s=a,i.unshift(a),n.isFunction(s.opts[t])&&(o=s.opts[t].apply(s,i)),!1===o)return o;"afterClose"!==t&&a.$refs?a.$refs.container.trigger(t+".fb",i):r.trigger(t+".fb",i)},updateControls:function(){var t=this,o=t.current,i=o.index,a=t.$refs.container,s=t.$refs.caption,r=o.opts.caption;o.$slide.trigger("refresh"),r&&r.length?(t.$caption=s,s.children().eq(0).html(r)):t.$caption=null,t.hasHiddenControls||t.isIdle||t.showControls(),a.find("[data-fancybox-count]").html(t.group.length),a.find("[data-fancybox-index]").html(i+1),a.find("[data-fancybox-prev]").prop("disabled",!o.opts.loop&&i<=0),a.find("[data-fancybox-next]").prop("disabled",!o.opts.loop&&i>=t.group.length-1),"image"===o.type?a.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href",o.opts.image.src||o.src).show():o.opts.toolbar&&a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(),n(e.activeElement).is(":hidden,[disabled]")&&t.$refs.container.trigger("focus")},hideControls:function(t){var e=this,n=["infobar","toolbar","nav"];!t&&e.current.opts.preventCaptionOverlap||n.push("caption"),this.$refs.container.removeClass(n.map(function(t){return"fancybox-show-"+t}).join(" ")),this.hasHiddenControls=!0},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.hasHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass("fancybox-show-toolbar",!(!e.toolbar||!e.buttons)).toggleClass("fancybox-show-infobar",!!(e.infobar&&t.group.length>1)).toggleClass("fancybox-show-caption",!!t.$caption).toggleClass("fancybox-show-nav",!!(e.arrows&&t.group.length>1)).toggleClass("fancybox-is-modal",!!e.modal)},toggleControls:function(){this.hasHiddenControls?this.showControls():this.hideControls()}}),n.fancybox={version:"3.5.7",defaults:a,getInstance:function(t){var e=n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),o=Array.prototype.slice.call(arguments,1);return e instanceof b&&("string"===n.type(t)?e[t].apply(e,o):"function"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new b(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),!0===t&&this.close(t))},destroy:function(){this.close(!0),r.add("body").off("click.fb-start","**")},isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),use3d:function(){var n=e.createElement("div");return t.getComputedStyle&&t.getComputedStyle(n)&&t.getComputedStyle(n).getPropertyValue("transform")&&!(e.documentMode&&e.documentMode<11)}(),getTranslate:function(t){var e;return!(!t||!t.length)&&(e=t[0].getBoundingClientRect(),{top:e.top||0,left:e.left||0,width:e.width,height:e.height,opacity:parseFloat(t.css("opacity"))})},setTranslate:function(t,e){var n="",o={};if(t&&e)return void 0===e.left&&void 0===e.top||(n=(void 0===e.left?t.position().left:e.left)+"px, "+(void 0===e.top?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),void 0!==e.scaleX&&void 0!==e.scaleY?n+=" scale("+e.scaleX+", "+e.scaleY+")":void 0!==e.scaleX&&(n+=" scaleX("+e.scaleX+")"),n.length&&(o.transform=n),void 0!==e.opacity&&(o.opacity=e.opacity),void 0!==e.width&&(o.width=e.width),void 0!==e.height&&(o.height=e.height),t.css(o)},animate:function(t,e,o,i,a){var s,r=this;n.isFunction(o)&&(i=o,o=null),r.stop(t),s=r.getTranslate(t),t.on(f,function(c){(!c||!c.originalEvent||t.is(c.originalEvent.target)&&"z-index"!=c.originalEvent.propertyName)&&(r.stop(t),n.isNumeric(o)&&t.css("transition-duration",""),n.isPlainObject(e)?void 0!==e.scaleX&&void 0!==e.scaleY&&r.setTranslate(t,{top:e.top,left:e.left,width:s.width*e.scaleX,height:s.height*e.scaleY,scaleX:1,scaleY:1}):!0!==a&&t.removeClass(e),n.isFunction(i)&&i(c))}),n.isNumeric(o)&&t.css("transition-duration",o+"ms"),n.isPlainObject(e)?(void 0!==e.scaleX&&void 0!==e.scaleY&&(delete e.width,delete e.height,t.parent().hasClass("fancybox-slide--image")&&t.parent().addClass("fancybox-is-scaling")),n.fancybox.setTranslate(t,e)):t.addClass(e),t.data("timer",setTimeout(function(){t.trigger(f)},o+33))},stop:function(t,e){t&&t.length&&(clearTimeout(t.data("timer")),e&&t.trigger(f),t.off(f).css("transition-duration",""),t.parent().removeClass("fancybox-is-scaling"))}},n.fn.fancybox=function(t){var e;return t=t||{},e=t.selector||!1,e?n("body").off("click.fb-start",e).on("click.fb-start",e,{options:t},i):this.off("click.fb-start").on("click.fb-start",{items:this,options:t},i),this},r.on("click.fb-start","[data-fancybox]",i),r.on("click.fb-start","[data-fancybox-trigger]",function(t){n('[data-fancybox="'+n(this).attr("data-fancybox-trigger")+'"]').eq(n(this).attr("data-fancybox-index")||0).trigger("click.fb-start",{$trigger:n(this)})}),function(){var t=null;r.on("mousedown mouseup focus blur",".fancybox-button",function(e){switch(e.type){case"mousedown":t=n(this);break;case"mouseup":t=null;break;case"focusin":n(".fancybox-button").removeClass("fancybox-focus"),n(this).is(t)||n(this).is("[disabled]")||n(this).addClass("fancybox-focus");break;case"focusout":n(".fancybox-button").removeClass("fancybox-focus")}})}()}}(window,document,jQuery),function(t){"use strict";var e={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"https://www.youtube-nocookie.com/embed/$4",thumb:"https://img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},gmap_place:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12]+"").replace(/\?/,"&")+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}},gmap_search:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/maps?q="+t[5].replace("query=","q=").replace("api=1","")+"&output=embed"}}},n=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,function(t,n){e=e.replace("$"+t,n||"")}),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e};t(document).on("objectNeedsType.fb",function(o,i,a){var s,r,c,l,d,u,f,p=a.src||"",h=!1;s=t.extend(!0,{},e,a.opts.media),t.each(s,function(e,o){if(c=p.match(o.matcher)){if(h=o.type,f=e,u={},o.paramPlace&&c[o.paramPlace]){d=c[o.paramPlace],"?"==d[0]&&(d=d.substring(1)),d=d.split("&");for(var i=0;i1&&("youtube"===n.contentSource||"vimeo"===n.contentSource)&&o.load(n.contentSource)}})}(jQuery),function(t,e,n){"use strict";var o=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),i=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),a=function(e){var n=[];e=e.originalEvent||e||t.e,e=e.touches&&e.touches.length?e.touches:e.changedTouches&&e.changedTouches.length?e.changedTouches:[e];for(var o in e)e[o].pageX?n.push({x:e[o].pageX,y:e[o].pageY}):e[o].clientX&&n.push({x:e[o].clientX,y:e[o].clientY});return n},s=function(t,e,n){return e&&t?"x"===n?t.x-e.x:"y"===n?t.y-e.y:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)):0},r=function(t){if(t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe')||n.isFunction(t.get(0).onclick)||t.data("selectable"))return!0;for(var e=0,o=t[0].attributes,i=o.length;ee.clientHeight,a=("scroll"===o||"auto"===o)&&e.scrollWidth>e.clientWidth;return i||a},l=function(t){for(var e=!1;;){if(e=c(t.get(0)))break;if(t=t.parent(),!t.length||t.hasClass("fancybox-stage")||t.is("body"))break}return e},d=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on("touchstart.fb.touch mousedown.fb.touch",n.proxy(e,"ontouchstart"))};d.prototype.destroy=function(){var t=this;t.$container.off(".fb.touch"),n(e).off(".fb.touch"),t.requestId&&(i(t.requestId),t.requestId=null),t.tapped&&(clearTimeout(t.tapped),t.tapped=null)},d.prototype.ontouchstart=function(o){var i=this,c=n(o.target),d=i.instance,u=d.current,f=u.$slide,p=u.$content,h="touchstart"==o.type;if(h&&i.$container.off("mousedown.fb.touch"),(!o.originalEvent||2!=o.originalEvent.button)&&f.length&&c.length&&!r(c)&&!r(c.parent())&&(c.is("img")||!(o.originalEvent.clientX>c[0].clientWidth+c.offset().left))){if(!u||d.isAnimating||u.$slide.hasClass("fancybox-animated"))return o.stopPropagation(),void o.preventDefault();i.realPoints=i.startPoints=a(o),i.startPoints.length&&(u.touch&&o.stopPropagation(),i.startEvent=o,i.canTap=!0,i.$target=c,i.$content=p,i.opts=u.opts.touch,i.isPanning=!1,i.isSwiping=!1,i.isZooming=!1,i.isScrolling=!1,i.canPan=d.canPan(),i.startTime=(new Date).getTime(),i.distanceX=i.distanceY=i.distance=0,i.canvasWidth=Math.round(f[0].clientWidth),i.canvasHeight=Math.round(f[0].clientHeight),i.contentLastPos=null,i.contentStartPos=n.fancybox.getTranslate(i.$content)||{top:0,left:0},i.sliderStartPos=n.fancybox.getTranslate(f),i.stagePos=n.fancybox.getTranslate(d.$refs.stage),i.sliderStartPos.top-=i.stagePos.top,i.sliderStartPos.left-=i.stagePos.left,i.contentStartPos.top-=i.stagePos.top,i.contentStartPos.left-=i.stagePos.left,n(e).off(".fb.touch").on(h?"touchend.fb.touch touchcancel.fb.touch":"mouseup.fb.touch mouseleave.fb.touch",n.proxy(i,"ontouchend")).on(h?"touchmove.fb.touch":"mousemove.fb.touch",n.proxy(i,"ontouchmove")),n.fancybox.isMobile&&e.addEventListener("scroll",i.onscroll,!0),((i.opts||i.canPan)&&(c.is(i.$stage)||i.$stage.find(c).length)||(c.is(".fancybox-image")&&o.preventDefault(),n.fancybox.isMobile&&c.parents(".fancybox-caption").length))&&(i.isScrollable=l(c)||l(c.parent()),n.fancybox.isMobile&&i.isScrollable||o.preventDefault(),(1===i.startPoints.length||u.hasError)&&(i.canPan?(n.fancybox.stop(i.$content),i.isPanning=!0):i.isSwiping=!0,i.$container.addClass("fancybox-is-grabbing")),2===i.startPoints.length&&"image"===u.type&&(u.isLoaded||u.$ghost)&&(i.canTap=!1,i.isSwiping=!1,i.isPanning=!1,i.isZooming=!0,n.fancybox.stop(i.$content),i.centerPointStartX=.5*(i.startPoints[0].x+i.startPoints[1].x)-n(t).scrollLeft(),i.centerPointStartY=.5*(i.startPoints[0].y+i.startPoints[1].y)-n(t).scrollTop(),i.percentageOfImageAtPinchPointX=(i.centerPointStartX-i.contentStartPos.left)/i.contentStartPos.width,i.percentageOfImageAtPinchPointY=(i.centerPointStartY-i.contentStartPos.top)/i.contentStartPos.height,i.startDistanceBetweenFingers=s(i.startPoints[0],i.startPoints[1]))))}},d.prototype.onscroll=function(t){var n=this;n.isScrolling=!0,e.removeEventListener("scroll",n.onscroll,!0)},d.prototype.ontouchmove=function(t){var e=this;return void 0!==t.originalEvent.buttons&&0===t.originalEvent.buttons?void e.ontouchend(t):e.isScrolling?void(e.canTap=!1):(e.newPoints=a(t),void((e.opts||e.canPan)&&e.newPoints.length&&e.newPoints.length&&(e.isSwiping&&!0===e.isSwiping||t.preventDefault(),e.distanceX=s(e.newPoints[0],e.startPoints[0],"x"),e.distanceY=s(e.newPoints[0],e.startPoints[0],"y"),e.distance=s(e.newPoints[0],e.startPoints[0]),e.distance>0&&(e.isSwiping?e.onSwipe(t):e.isPanning?e.onPan():e.isZooming&&e.onZoom()))))},d.prototype.onSwipe=function(e){var a,s=this,r=s.instance,c=s.isSwiping,l=s.sliderStartPos.left||0;if(!0!==c)"x"==c&&(s.distanceX>0&&(s.instance.group.length<2||0===s.instance.current.index&&!s.instance.current.opts.loop)?l+=Math.pow(s.distanceX,.8):s.distanceX<0&&(s.instance.group.length<2||s.instance.current.index===s.instance.group.length-1&&!s.instance.current.opts.loop)?l-=Math.pow(-s.distanceX,.8):l+=s.distanceX),s.sliderLastPos={top:"x"==c?0:s.sliderStartPos.top+s.distanceY,left:l},s.requestId&&(i(s.requestId),s.requestId=null),s.requestId=o(function(){s.sliderLastPos&&(n.each(s.instance.slides,function(t,e){var o=e.pos-s.instance.currPos;n.fancybox.setTranslate(e.$slide,{top:s.sliderLastPos.top,left:s.sliderLastPos.left+o*s.canvasWidth+o*e.opts.gutter})}),s.$container.addClass("fancybox-is-sliding"))});else if(Math.abs(s.distance)>10){if(s.canTap=!1,r.group.length<2&&s.opts.vertical?s.isSwiping="y":r.isDragging||!1===s.opts.vertical||"auto"===s.opts.vertical&&n(t).width()>800?s.isSwiping="x":(a=Math.abs(180*Math.atan2(s.distanceY,s.distanceX)/Math.PI),s.isSwiping=a>45&&a<135?"y":"x"),"y"===s.isSwiping&&n.fancybox.isMobile&&s.isScrollable)return void(s.isScrolling=!0);r.isDragging=s.isSwiping,s.startPoints=s.newPoints,n.each(r.slides,function(t,e){var o,i;n.fancybox.stop(e.$slide),o=n.fancybox.getTranslate(e.$slide),i=n.fancybox.getTranslate(r.$refs.stage),e.$slide.css({transform:"",opacity:"","transition-duration":""}).removeClass("fancybox-animated").removeClass(function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")}),e.pos===r.current.pos&&(s.sliderStartPos.top=o.top-i.top,s.sliderStartPos.left=o.left-i.left),n.fancybox.setTranslate(e.$slide,{top:o.top-i.top,left:o.left-i.left})}),r.SlideShow&&r.SlideShow.isActive&&r.SlideShow.stop()}},d.prototype.onPan=function(){var t=this;if(s(t.newPoints[0],t.realPoints[0])<(n.fancybox.isMobile?10:5))return void(t.startPoints=t.newPoints);t.canTap=!1,t.contentLastPos=t.limitMovement(),t.requestId&&i(t.requestId),t.requestId=o(function(){n.fancybox.setTranslate(t.$content,t.contentLastPos)})},d.prototype.limitMovement=function(){var t,e,n,o,i,a,s=this,r=s.canvasWidth,c=s.canvasHeight,l=s.distanceX,d=s.distanceY,u=s.contentStartPos,f=u.left,p=u.top,h=u.width,g=u.height;return i=h>r?f+l:f,a=p+d,t=Math.max(0,.5*r-.5*h),e=Math.max(0,.5*c-.5*g),n=Math.min(r-h,.5*r-.5*h),o=Math.min(c-g,.5*c-.5*g),l>0&&i>t&&(i=t-1+Math.pow(-t+f+l,.8)||0),l<0&&i0&&a>e&&(a=e-1+Math.pow(-e+p+d,.8)||0),d<0&&aa?(t=t>0?0:t,t=ts?(e=e>0?0:e,e=e1&&(o.dMs>130&&s>10||s>50);o.sliderLastPos=null,"y"==t&&!e&&Math.abs(o.distanceY)>50?(n.fancybox.animate(o.instance.current.$slide,{top:o.sliderStartPos.top+o.distanceY+150*o.velocityY,opacity:0},200),i=o.instance.close(!0,250)):r&&o.distanceX>0?i=o.instance.previous(300):r&&o.distanceX<0&&(i=o.instance.next(300)),!1!==i||"x"!=t&&"y"!=t||o.instance.centerSlide(200),o.$container.removeClass("fancybox-is-sliding")},d.prototype.endPanning=function(){var t,e,o,i=this;i.contentLastPos&&(!1===i.opts.momentum||i.dMs>350?(t=i.contentLastPos.left,e=i.contentLastPos.top):(t=i.contentLastPos.left+500*i.velocityX,e=i.contentLastPos.top+500*i.velocityY),o=i.limitPosition(t,e,i.contentStartPos.width,i.contentStartPos.height),o.width=i.contentStartPos.width,o.height=i.contentStartPos.height,n.fancybox.animate(i.$content,o,366))},d.prototype.endZooming=function(){var t,e,o,i,a=this,s=a.instance.current,r=a.newWidth,c=a.newHeight;a.contentLastPos&&(t=a.contentLastPos.left,e=a.contentLastPos.top,i={top:e,left:t,width:r,height:c,scaleX:1,scaleY:1},n.fancybox.setTranslate(a.$content,i),rs.width||c>s.height?a.instance.scaleToActual(a.centerPointStartX,a.centerPointStartY,150):(o=a.limitPosition(t,e,r,c),n.fancybox.animate(a.$content,o,150)))},d.prototype.onTap=function(e){var o,i=this,s=n(e.target),r=i.instance,c=r.current,l=e&&a(e)||i.startPoints,d=l[0]?l[0].x-n(t).scrollLeft()-i.stagePos.left:0,u=l[0]?l[0].y-n(t).scrollTop()-i.stagePos.top:0,f=function(t){var o=c.opts[t];if(n.isFunction(o)&&(o=o.apply(r,[c,e])),o)switch(o){case"close":r.close(i.startEvent);break;case"toggleControls":r.toggleControls();break;case"next":r.next();break;case"nextOrClose":r.group.length>1?r.next():r.close(i.startEvent);break;case"zoom":"image"==c.type&&(c.isLoaded||c.$ghost)&&(r.canPan()?r.scaleToFit():r.isScaledDown()?r.scaleToActual(d,u):r.group.length<2&&r.close(i.startEvent))}};if((!e.originalEvent||2!=e.originalEvent.button)&&(s.is("img")||!(d>s[0].clientWidth+s.offset().left))){if(s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))o="Outside";else if(s.is(".fancybox-slide"))o="Slide";else{if(!r.current.$content||!r.current.$content.find(s).addBack().filter(s).length)return;o="Content"}if(i.tapped){if(clearTimeout(i.tapped),i.tapped=null,Math.abs(d-i.tapX)>50||Math.abs(u-i.tapY)>50)return this;f("dblclick"+o)}else i.tapX=d,i.tapY=u,c.opts["dblclick"+o]&&c.opts["dblclick"+o]!==c.opts["click"+o]?i.tapped=setTimeout(function(){i.tapped=null,r.isAnimating||f("click"+o)},500):f("click"+o);return this}},n(e).on("onActivate.fb",function(t,e){e&&!e.Guestures&&(e.Guestures=new d(e))}).on("beforeClose.fb",function(t,e){e&&e.Guestures&&e.Guestures.destroy()})}(window,document,jQuery),function(t,e){"use strict";e.extend(!0,e.fancybox.defaults,{btnTpl:{slideShow:''},slideShow:{autoStart:!1,speed:3e3,progress:!0}});var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{timer:null,isActive:!1,$button:null,init:function(){var t=this,n=t.instance,o=n.group[n.currIndex].opts.slideShow;t.$button=n.$refs.toolbar.find("[data-fancybox-play]").on("click",function(){t.toggle()}),n.group.length<2||!o?t.$button.hide():o.progress&&(t.$progress=e('
').appendTo(n.$refs.inner))},set:function(t){var n=this,o=n.instance,i=o.current;i&&(!0===t||i.opts.loop||o.currIndex'},fullScreen:{autoStart:!1}}),e(t).on(n.fullscreenchange,function(){var t=o.isFullscreen(),n=e.fancybox.getInstance();n&&(n.current&&"image"===n.current.type&&n.isAnimating&&(n.isAnimating=!1,n.update(!0,!0,0),n.isComplete||n.complete()),n.trigger("onFullscreenChange",t),n.$refs.container.toggleClass("fancybox-is-fullscreen",t),n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter",!t).toggleClass("fancybox-button--fsexit",t))})}e(t).on({"onInit.fb":function(t,e){var i;if(!n)return void e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();e&&e.group[e.currIndex].opts.fullScreen?(i=e.$refs.container,i.on("click.fb-fullscreen","[data-fancybox-fullscreen]",function(t){t.stopPropagation(),t.preventDefault(),o.toggle()}),e.opts.fullScreen&&!0===e.opts.fullScreen.autoStart&&o.request(),e.FullScreen=o):e&&e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()},"afterKeydown.fb":function(t,e,n,o,i){e&&e.FullScreen&&70===i&&(o.preventDefault(),e.FullScreen.toggle())},"beforeClose.fb":function(t,e){e&&e.FullScreen&&e.$refs.container.hasClass("fancybox-is-fullscreen")&&o.exit()}})}(document,jQuery),function(t,e){"use strict";var n="fancybox-thumbs";e.fancybox.defaults=e.extend(!0,{btnTpl:{thumbs:''},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"}},e.fancybox.defaults);var o=function(t){this.init(t)};e.extend(o.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,isActive:!1,init:function(t){var e=this,n=t.group,o=0;e.instance=t,e.opts=n[t.currIndex].opts.thumbs,t.Thumbs=e,e.$button=t.$refs.toolbar.find("[data-fancybox-thumbs]");for(var i=0,a=n.length;i1));i++);o>1&&e.opts?(e.$button.removeAttr("style").on("click",function(){e.toggle()}),e.isActive=!0):e.$button.hide()},create:function(){var t,o=this,i=o.instance,a=o.opts.parentEl,s=[];o.$grid||(o.$grid=e('
').appendTo(i.$refs.container.find(a).addBack().filter(a)),o.$grid.on("click","a",function(){i.jumpTo(e(this).attr("data-index"))})),o.$list||(o.$list=e('
').appendTo(o.$grid)),e.each(i.group,function(e,n){t=n.thumb,t||"image"!==n.type||(t=n.src),s.push('")}),o.$list[0].innerHTML=s.join(""),"x"===o.opts.axis&&o.$list.width(parseInt(o.$grid.css("padding-right"),10)+i.group.length*o.$list.children().eq(0).outerWidth(!0))},focus:function(t){var e,n,o=this,i=o.$list,a=o.$grid;o.instance.current&&(e=i.children().removeClass("fancybox-thumbs-active").filter('[data-index="'+o.instance.current.index+'"]').addClass("fancybox-thumbs-active"),n=e.position(),"y"===o.opts.axis&&(n.top<0||n.top>i.height()-e.outerHeight())?i.stop().animate({scrollTop:i.scrollTop()+n.top},t):"x"===o.opts.axis&&(n.lefta.scrollLeft()+(a.width()-e.outerWidth()))&&i.parent().stop().animate({scrollLeft:n.left},t))},update:function(){var t=this;t.instance.$refs.container.toggleClass("fancybox-show-thumbs",this.isVisible),t.isVisible?(t.$grid||t.create(),t.instance.trigger("onThumbsShow"),t.focus(0)):t.$grid&&t.instance.trigger("onThumbsHide"),t.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),e(t).on({"onInit.fb":function(t,e){var n;e&&!e.Thumbs&&(n=new o(e),n.isActive&&!0===n.opts.autoStart&&n.show())},"beforeShow.fb":function(t,e,n,o){var i=e&&e.Thumbs;i&&i.isVisible&&i.focus(o?0:250)},"afterKeydown.fb":function(t,e,n,o,i){var a=e&&e.Thumbs;a&&a.isActive&&71===i&&(o.preventDefault(),a.toggle())},"beforeClose.fb":function(t,e){var n=e&&e.Thumbs;n&&n.isVisible&&!1!==n.opts.hideOnClose&&n.$grid.hide()}})}(document,jQuery),function(t,e){"use strict";function n(t){var e={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(t).replace(/[&<>"'`=\/]/g,function(t){return e[t]})}e.extend(!0,e.fancybox.defaults,{btnTpl:{share:''},share:{url:function(t,e){return!t.currentHash&&"inline"!==e.type&&"html"!==e.type&&(e.origSrc||e.src)||window.location}, +tpl:''}}),e(t).on("click","[data-fancybox-share]",function(){var t,o,i=e.fancybox.getInstance(),a=i.current||null;a&&("function"===e.type(a.opts.share.url)&&(t=a.opts.share.url.apply(a,[i,a])),o=a.opts.share.tpl.replace(/\{\{media\}\}/g,"image"===a.type?encodeURIComponent(a.src):"").replace(/\{\{url\}\}/g,encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g,n(t)).replace(/\{\{descr\}\}/g,i.$caption?encodeURIComponent(i.$caption.text()):""),e.fancybox.open({src:i.translate(i,o),type:"html",opts:{touch:!1,animationEffect:!1,afterLoad:function(t,e){i.$refs.container.one("beforeClose.fb",function(){t.close(null,0)}),e.$content.find(".fancybox-share__button").click(function(){return window.open(this.href,"Share","width=550, height=450"),!1})},mobile:{autoFocus:!1}}}))})}(document,jQuery),function(t,e,n){"use strict";function o(){var e=t.location.hash.substr(1),n=e.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])?parseInt(n.pop(-1),10)||1:1,i=n.join("-");return{hash:e,index:o<1?1:o,gallery:i}}function i(t){""!==t.gallery&&n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1).focus().trigger("click.fb-start")}function a(t){var e,n;return!!t&&(e=t.current?t.current.opts:t.opts,""!==(n=e.hash||(e.$orig?e.$orig.data("fancybox")||e.$orig.data("fancybox-trigger"):""))&&n)}n.escapeSelector||(n.escapeSelector=function(t){return(t+"").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t})}),n(function(){!1!==n.fancybox.defaults.hash&&(n(e).on({"onInit.fb":function(t,e){var n,i;!1!==e.group[e.currIndex].opts.hash&&(n=o(),(i=a(e))&&n.gallery&&i==n.gallery&&(e.currIndex=n.index-1))},"beforeShow.fb":function(n,o,i,s){var r;i&&!1!==i.opts.hash&&(r=a(o))&&(o.currentHash=r+(o.group.length>1?"-"+(i.index+1):""),t.location.hash!=="#"+o.currentHash&&(s&&!o.origHash&&(o.origHash=t.location.hash),o.hashTimer&&clearTimeout(o.hashTimer),o.hashTimer=setTimeout(function(){"replaceState"in t.history?(t.history[s?"pushState":"replaceState"]({},e.title,t.location.pathname+t.location.search+"#"+o.currentHash),s&&(o.hasCreatedHistory=!0)):t.location.hash=o.currentHash,o.hashTimer=null},300)))},"beforeClose.fb":function(n,o,i){i&&!1!==i.opts.hash&&(clearTimeout(o.hashTimer),o.currentHash&&o.hasCreatedHistory?t.history.back():o.currentHash&&("replaceState"in t.history?t.history.replaceState({},e.title,t.location.pathname+t.location.search+(o.origHash||"")):t.location.hash=o.origHash),o.currentHash=null)}}),n(t).on("hashchange.fb",function(){var t=o(),e=null;n.each(n(".fancybox-container").get().reverse(),function(t,o){var i=n(o).data("FancyBox");if(i&&i.currentHash)return e=i,!1}),e?e.currentHash===t.gallery+"-"+t.index||1===t.index&&e.currentHash==t.gallery||(e.currentHash=null,e.close()):""!==t.gallery&&i(t)}),setTimeout(function(){n.fancybox.getInstance()||i(o())},50))})}(window,document,jQuery),function(t,e){"use strict";var n=(new Date).getTime();e(t).on({"onInit.fb":function(t,e,o){e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll",function(t){var o=e.current,i=(new Date).getTime();e.group.length<2||!1===o.opts.wheel||"auto"===o.opts.wheel&&"image"!==o.type||(t.preventDefault(),t.stopPropagation(),o.$slide.hasClass("fancybox-animated")||(t=t.originalEvent||t,i-n<250||(n=i,e[(-t.deltaY||-t.deltaX||t.wheelDelta||-t.detail)<0?"next":"previous"]())))})}})}(document,jQuery); \ No newline at end of file diff --git a/images/algolia.svg b/images/algolia.svg new file mode 100644 index 0000000..398ed53 --- /dev/null +++ b/images/algolia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/cc-by-nc-nd.svg b/images/cc-by-nc-nd.svg new file mode 100644 index 0000000..b55a5b6 --- /dev/null +++ b/images/cc-by-nc-nd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/cc-by-nc-sa.svg b/images/cc-by-nc-sa.svg new file mode 100644 index 0000000..0ca8f96 --- /dev/null +++ b/images/cc-by-nc-sa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/cc-by-nc.svg b/images/cc-by-nc.svg new file mode 100644 index 0000000..2e57225 --- /dev/null +++ b/images/cc-by-nc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/cc-by-nd.svg b/images/cc-by-nd.svg new file mode 100644 index 0000000..241d4be --- /dev/null +++ b/images/cc-by-nd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/cc-by-sa.svg b/images/cc-by-sa.svg new file mode 100644 index 0000000..355a4cc --- /dev/null +++ b/images/cc-by-sa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/cc-by.svg b/images/cc-by.svg new file mode 100644 index 0000000..8b68bd8 --- /dev/null +++ b/images/cc-by.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/icons/favicon-16x16.png b/images/icons/favicon-16x16.png new file mode 100644 index 0000000..576bfd7 Binary files /dev/null and b/images/icons/favicon-16x16.png differ diff --git a/images/icons/favicon-32x32.png b/images/icons/favicon-32x32.png new file mode 100644 index 0000000..45f044e Binary files /dev/null and b/images/icons/favicon-32x32.png differ diff --git a/images/icons/stun-logo.svg b/images/icons/stun-logo.svg new file mode 100644 index 0000000..9cceb85 --- /dev/null +++ b/images/icons/stun-logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/loading.svg b/images/loading.svg new file mode 100644 index 0000000..1306ca3 --- /dev/null +++ b/images/loading.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..e376b37 --- /dev/null +++ b/index.html @@ -0,0 +1,44 @@ + + + + + + +Hexo

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

+

Quick Start

Create a new post

1
$ hexo new "My New Post"
+ +

More info: Writing

+

Run server

1
$ hexo server
+ +

More info: Server

+

Generate static files

1
$ hexo generate
+ +

More info: Generating

+

Deploy to remote sites

1
$ hexo deploy
+ +

More info: Deployment

+
\ No newline at end of file diff --git a/js/header.js b/js/header.js new file mode 100644 index 0000000..6f7204e --- /dev/null +++ b/js/header.js @@ -0,0 +1,212 @@ +$(document).ready(function () { + var $menuBtn = $('.header-nav-menubtn') + var $menu = $('.header-nav-menu') + var $menuItem = $('.header-nav-menu-item') + var $submenu = $('.header-nav-submenu') + var isMobile = $menuBtn.is(':visible') + + var isMenuShow = false + var isSubmenuShow = false + + function resetMenuHeight () { + $menuItem.velocity( + { + height: $menuItem.outerHeight() + }, + { + complete: function () { + $submenu.css({ display: 'none', opacity: 0 }) + } + } + ) + } + + $(window).on( + 'resize', + Stun.utils.throttle(function () { + isMobile = $menuBtn.is(':visible') + if (isMobile) { + $submenu.removeClass('hide--force') + + if (isSubmenuShow) { + resetMenuHeight() + isSubmenuShow = false + } + } else { + $submenu.css({ display: 'none', opacity: 0 }) + } + }, 200) + ) + + var isNightModeFocus = true + var $nightMode = $('.mode') + + $(document).on('click', function () { + if ($menu.is(':visible')) { + if (isMobile && isSubmenuShow) { + resetMenuHeight() + isSubmenuShow = false + } + $menu.css({ display: 'none' }) + isMenuShow = false + } + if (isNightModeFocus) { + $nightMode.removeClass('mode--focus') + isNightModeFocus = false + } + }) + + Stun.utils.pjaxReloadHeader = function () { + $menuBtn = $('.header-nav-menubtn') + $menu = $('.header-nav-menu') + $menuItem = $('.header-nav-menu-item') + $submenu = $('.header-nav-submenu') + isMobile = $menuBtn.is(':visible') + + isMenuShow = false + isSubmenuShow = false + + function getNightMode () { + var nightMode = false + try { + if (parseInt(Stun.utils.Cookies().get(NIGHT_MODE_COOKIES_KEY))) { + nightMode = true + } + } catch (err) { + /* empty */ + } + return nightMode + } + + if (CONFIG.nightMode && CONFIG.nightMode.enable) { + var isNightMode = false + var NIGHT_MODE_COOKIES_KEY = 'night_mode' + $nightMode = $('.mode') + isNightModeFocus = true + + if (getNightMode()) { + $nightMode.addClass('mode--checked') + $nightMode.addClass('mode--focus') + $('html').addClass('nightmode') + isNightMode = true + } else { + isNightMode = false + } + $('.mode').on('click', function (e) { + e.stopPropagation() + isNightMode = !isNightMode + isNightModeFocus = true + Stun.utils.Cookies().set(NIGHT_MODE_COOKIES_KEY, isNightMode ? 1 : 0) + $nightMode.toggleClass('mode--checked') + $nightMode.addClass('mode--focus') + $('html').toggleClass('nightmode') + }) + } + + $menuBtn.on('click', function (e) { + e.stopPropagation() + if (isMobile && isMenuShow && isSubmenuShow) { + resetMenuHeight() + isSubmenuShow = false + } + if (!isMenuShow) { + isMenuShow = true + } else { + isMenuShow = false + } + $menu.velocity('stop').velocity( + { + opacity: isMenuShow ? 1 : 0 + }, + { + duration: isMenuShow ? 200 : 0, + display: isMenuShow ? 'block' : 'none' + } + ) + }) + + // Whether to allow events to bubble in the menu. + var isBubbleInMenu = false + $('.header-nav-submenu-item').on('click', function () { + isBubbleInMenu = true + }) + + $menuItem.on('click', function (e) { + if (!isMobile) { + return + } + var $submenu = $(this).find('.header-nav-submenu') + if (!$submenu.length) { + return + } + if (!isBubbleInMenu) { + e.stopPropagation() + } else { + isBubbleInMenu = false + } + + var menuItemHeight = $menuItem.outerHeight() + var submenuHeight = + menuItemHeight + Math.floor($submenu.outerHeight()) * $submenu.length + var menuShowHeight = 0 + + if ($(this).outerHeight() > menuItemHeight) { + isSubmenuShow = false + menuShowHeight = menuItemHeight + } else { + isSubmenuShow = true + menuShowHeight = submenuHeight + } + $submenu.css({ display: 'block', opacity: 1 }) + // Accordion effect. + $(this) + .velocity('stop') + .velocity({ height: menuShowHeight }, { duration: 300 }) + .siblings() + .velocity({ height: menuItemHeight }, { duration: 300 }) + }) + + $menuItem.on('mouseenter', function () { + var $submenu = $(this).find('.header-nav-submenu') + if (!$submenu.length) { + return + } + if (!$submenu.is(':visible')) { + if (isMobile) { + $submenu.css({ display: 'block', opacity: 1 }) + } else { + $submenu.removeClass('hide--force') + $submenu + .velocity('stop') + .velocity('transition.slideUpIn', { duration: 200 }) + } + } + }) + + $menuItem.on('mouseleave', function () { + var $submenu = $(this).find('.header-nav-submenu') + if (!$submenu.length) { + return + } + if (!isMobile) { + $submenu.addClass('hide--force') + isSubmenuShow = false + } + }) + } + + Stun.utils.pjaxReloadScrollIcon = function () { + if (CONFIG.header && CONFIG.header.scrollDownIcon) { + $('.header-banner-arrow').on('click', function (e) { + e.stopPropagation() + $('#container').velocity('scroll', { + offset: $('#header').outerHeight() + }) + }) + } + } + + // Initializaiton + Stun.utils.pjaxReloadHeader() + Stun.utils.pjaxReloadScrollIcon() +}) diff --git a/js/jquery-3.6.4.min.js b/js/jquery-3.6.4.min.js new file mode 100644 index 0000000..0de648e --- /dev/null +++ b/js/jquery-3.6.4.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.4 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.4",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssHas=ce(function(){try{return C.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssHas||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.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(e,n){S.fn[n]=function(e,t){return 0', + '', + '
', + '', + '', + '', + '', + '
', + '
' + ].join(''); + + var box = $(html); + + $('body').append(box); + } + + $('.article-share-box.on').hide(); + + box.css({ + top: offset.top + 25, + left: offset.left + }).addClass('on'); + }).on('click', '.article-share-box', function(e){ + e.stopPropagation(); + }).on('click', '.article-share-box-input', function(){ + $(this).select(); + }).on('click', '.article-share-box-link', function(e){ + e.preventDefault(); + e.stopPropagation(); + + window.open(this.href, 'article-share-box-window-' + Date.now(), 'width=500,height=450'); + }); + + // Caption + $('.article-entry').each(function(i){ + $(this).find('img').each(function(){ + if ($(this).parent().hasClass('fancybox') || $(this).parent().is('a')) return; + + var alt = this.alt; + + if (alt) $(this).after('' + alt + ''); + + $(this).wrap('') + }); + + $(this).find('.fancybox').each(function(){ + $(this).attr('rel', 'article' + i); + }); + }); + + if ($.fancybox){ + $('.fancybox').fancybox(); + } + + // Mobile nav + var $container = $('#container'), + isMobileNavAnim = false, + mobileNavAnimDuration = 200; + + var startMobileNavAnim = function(){ + isMobileNavAnim = true; + }; + + var stopMobileNavAnim = function(){ + setTimeout(function(){ + isMobileNavAnim = false; + }, mobileNavAnimDuration); + } + + $('#main-nav-toggle').on('click', function(){ + if (isMobileNavAnim) return; + + startMobileNavAnim(); + $container.toggleClass('mobile-nav-on'); + stopMobileNavAnim(); + }); + + $('#wrap').on('click', function(){ + if (isMobileNavAnim || !$container.hasClass('mobile-nav-on')) return; + + $container.removeClass('mobile-nav-on'); + }); +})(jQuery); \ No newline at end of file diff --git a/js/scroll.js b/js/scroll.js new file mode 100644 index 0000000..94ba2d6 --- /dev/null +++ b/js/scroll.js @@ -0,0 +1,105 @@ +$(document).ready(function () { + var isHeaderEnable = CONFIG.header && CONFIG.header.enable + var isShowHeaderOnPost = isHeaderEnable && CONFIG.header.showOnPost + // The previous distance from the page to the top. + var prevScrollTop = 0 + var isNavFix = false + var isAnimation = true + + function headerNavScroll () { + var isPostPage = !!$('#is-post').length + var isNoHeader = !isHeaderEnable || (isPostPage && !isShowHeaderOnPost) + var $headerNav = $('.header-nav') + var scrollTop = Math.floor($(window).scrollTop()) + var delta = Math.floor(scrollTop - prevScrollTop) + + if (scrollTop === 0) { + if (isNoHeader) { + setTimeout(function () { + $headerNav.addClass('slider--clear') + isAnimation = false + }, 200) + } + $headerNav.removeClass('header-nav--sticky') + $headerNav.removeClass('slider--up') + $headerNav.addClass('slider--down') + } else { + if (isNoHeader && scrollTop < $headerNav.height()) { + return false + } + + var MIN_SCROLL_TO_CHANGE_NAV = 5 + // Make the state of nav bar not change due to tiny scrolling. + if (Math.abs(delta) > MIN_SCROLL_TO_CHANGE_NAV) { + if (isNoHeader) { + if (!isAnimation) { + isAnimation = true + } else { + $headerNav.removeClass('slider--clear') + } + } + if (!isNavFix) { + isNavFix = true + } else { + $headerNav.addClass('header-nav--sticky') + } + if (delta > 0) { + $headerNav.removeClass('slider--down') + $headerNav.addClass('slider--up') + } else { + $headerNav.removeClass('slider--up') + $headerNav.addClass('slider--down') + } + } else { + $headerNav.addClass('header-nav--sticky') + } + } + prevScrollTop = scrollTop + } + + var isBack2topEnable = CONFIG.back2top && CONFIG.back2top.enable + var isBack2topShow = false + + // Back the page to top. + function back2top () { + var $back2top = $('#back2top') + var scrollTop = $(window).scrollTop() + + if (scrollTop !== 0) { + if (!isBack2topShow) { + $back2top.addClass('back2top--show') + $back2top.removeClass('back2top--hide') + isBack2topShow = true + } + } else { + $back2top.addClass('back2top--hide') + $back2top.removeClass('back2top--show') + isBack2topShow = false + } + } + + if (isBack2topEnable) { + // Initializaiton + back2top() + + $('#back2top').on('click', function () { + $('body') + .velocity('stop') + .velocity('scroll') + }) + } + + // Initializaiton + headerNavScroll() + + $(window).on( + 'scroll', + Stun.utils.throttle(function () { + headerNavScroll() + + if (isBack2topEnable) { + back2top() + } + }, 100) + ) +}) diff --git a/js/sidebar.js b/js/sidebar.js new file mode 100644 index 0000000..1bd7cc7 --- /dev/null +++ b/js/sidebar.js @@ -0,0 +1,229 @@ +$(document).ready(function () { + var tocDepth = (CONFIG.sidebar && CONFIG.sidebar.tocMaxDepth) || 4 + // Optimize selector by theme config. + var HEADING_SELECTOR = 'h1,h2,h3,h4,h5,h6,' + .slice(0, tocDepth * 3) + .slice(0, -1) + + function initTocDisplay () { + if ($('.post-body, .custompage').find(HEADING_SELECTOR)[0]) { + return + } + $('.sidebar-nav').addClass('hide') + $('.sidebar-toc').addClass('hide') + $('.sidebar-ov').removeClass('hide') + } + + // The heading that reached the top currently. + var currHeading = null + // The heading that reached the top last time. + var lastHeading = null + var isRemovedTocClass = false + + // Automatically expand items in the article directory + // based on the scrolling of heading in the article. + function autoSpreadToc () { + var $postBody = $('.post-body, .custompage') + var $allTocItem = $('.sidebar-toc li') + var $headings = $postBody.find(HEADING_SELECTOR) + var $firsetChild = $headings.first() + + $headings.each(function () { + var headingTop = this.getBoundingClientRect().top + // The minimum distance from the top of the browser + // when heading is marked as active in toc. + var MIN_HEIGHT_TO_TOP = 5 + + if (headingTop <= MIN_HEIGHT_TO_TOP) { + currHeading = window.encodeURIComponent(this.getAttribute('id')) + } + }) + + // All heading are not to the top. + if ( + $postBody[0] && + $firsetChild[0] && + $firsetChild[0].getBoundingClientRect().top > 0 && + $firsetChild.offset().top - $(window).scrollTop() > 0 + ) { + if (!isRemovedTocClass) { + $allTocItem.removeClass('active current') + isRemovedTocClass = true + } + return + } + if (currHeading !== lastHeading) { + var $targetLink = $('.sidebar-toc a[href="#' + currHeading + '"]') + + // In order to be compatible with Hexo under v5.0.0 + if (!$targetLink.length) { + var anchorDecode = window.decodeURIComponent(currHeading) + $targetLink = $('.sidebar-toc a[href="#' + anchorDecode + '"]') + } + + $allTocItem.removeClass('active current') + $targetLink.parents('li').addClass('active') + $targetLink.parent().addClass('current') + lastHeading = currHeading + isRemovedTocClass = false + } + } + + // Whether toc needs scrolling. + var isTocScroll = false + // Scroll the post toc to the middle. + function scrollTocToMiddle () { + var $tocWrapHeight = $('.sidebar-toc').height() + var $tocHeight = $('.sidebar-toc > div').height() + + if ($tocHeight <= $tocWrapHeight) { + return + } + + var $tocWrap = $('.sidebar-toc') + var $currTocItem = $('.sidebar-toc .current a') + + if ($currTocItem[0] && $tocWrap[0]) { + var tocTop = $currTocItem.offset().top - $tocWrap.offset().top + isTocScroll = tocTop > $tocWrapHeight || tocTop < 0 + } + + if (isTocScroll) { + $currTocItem.velocity('stop').velocity('scroll', { + container: $tocWrap, + offset: -$tocWrapHeight / 2, + duration: 500, + easing: 'easeOutQuart' + }) + } + } + + // Distance from sidebar to top. + var sidebarToTop = 0 + if (CONFIG.sidebar && CONFIG.sidebar.offsetTop) { + sidebarToTop = parseInt(CONFIG.sidebar.offsetTop) + } + + // Sticky the sidebar when it arrived the top. + function sidebarSticky () { + var $sidebar = $('#sidebar') + var targetY = document + .getElementById('content-wrap') + .getBoundingClientRect().top + + if (targetY < sidebarToTop) { + $sidebar.addClass('sidebar--sticky') + } else { + $sidebar.removeClass('sidebar--sticky') + } + } + + // Update the reading progress lines of post. + function readProgress () { + // Not on post page. + if ($('#is-post').length === 0) { + return + } + + var $post = $('.content') + var postTop = $post.offset().top + var postEndTop = 0 + var postEndHeight = 0 + var postReadingHeight = 0 + var isEnablePostEnd = false + var percent = 0 + + if (CONFIG.postWidget && CONFIG.postWidget.endText) { + isEnablePostEnd = true + } + if (isEnablePostEnd) { + postEndTop = $('.post-ending').offset().top + postEndHeight = $('.post-ending').outerHeight() + postReadingHeight = postEndTop - postTop + postEndHeight + } else { + postEndTop = $('.post-footer').offset().top + postReadingHeight = postEndTop - postTop + } + + var windowHeight = $(window).height() + var postScrollTop = 0 + + if ($post.length !== 0) { + postScrollTop = + parseInt($post[0].getBoundingClientRect().top * -1) + windowHeight + } + + var percentNum = Number($('.sidebar-reading-info__num').text()) + postReadingHeight = parseInt(Math.abs(postReadingHeight)) + percent = parseInt((postScrollTop / postReadingHeight) * 100) + percent = percent > 100 ? 100 : percent < 0 ? 0 : percent + + // Has reached the maximum or minimum + if ( + (percent === 0 && percentNum === 0) || + (percent === 100 && percentNum === 100) + ) { + return + } + $('.sidebar-reading-info__num').text(percent) + $('.sidebar-reading-line').css( + 'transform', + 'translateX(' + (percent - 100) + '%)' + ) + } + + // Initial run + autoSpreadToc() + sidebarSticky() + scrollTocToMiddle() + readProgress() + + $(window).on('scroll', function () { + sidebarSticky() + }) + + $(window).on( + 'scroll', + Stun.utils.throttle(function () { + autoSpreadToc() + scrollTocToMiddle() + readProgress() + }, 150) + ) + + Stun.utils.pjaxReloadSidebar = function () { + var $navToc = $('.sidebar-nav-toc') + var $navOv = $('.sidebar-nav-ov') + var $tocWrap = $('.sidebar-toc') + var $overview = $('.sidebar-ov') + + $navToc.on('click', function (e) { + e.stopPropagation() + if ($(this).hasClass('current')) { + return + } + $navToc.addClass('current') + $navOv.removeClass('current') + $tocWrap.css('display', 'block') + $tocWrap.velocity('stop').velocity('fadeIn') + $overview.css('display', 'none') + $overview.velocity('stop').velocity('fadeOut') + }) + $navOv.on('click', function (e) { + e.stopPropagation() + if ($(this).hasClass('current')) { + return + } + $navOv.addClass('current') + $navToc.removeClass('current') + $tocWrap.css('display', 'none') + $tocWrap.velocity('stop').velocity('fadeOut') + $overview.css('display', 'block') + $overview.velocity('stop').velocity('fadeIn') + }) + initTocDisplay() + } + + // Initialization + Stun.utils.pjaxReloadSidebar() +}) diff --git a/js/stun-boot.js b/js/stun-boot.js new file mode 100644 index 0000000..d67e5a5 --- /dev/null +++ b/js/stun-boot.js @@ -0,0 +1,49 @@ +$(document).ready(function () { + Stun.utils.showThemeInConsole() + + if (CONFIG.shortcuts && CONFIG.shortcuts.switchPost) { + Stun.utils.registerSwitchPost() + } + + // Not reload this, because it's changeless. + if (CONFIG.externalLink) { + Stun.utils.addIconToExternalLink('#footer') + } + + Stun.utils.pjaxReloadBoot = function () { + if (CONFIG.codeblock) { + var codeStyle = CONFIG.codeblock.style + if (codeStyle === 'default') { + this.addCodeHeader() + this.addCopyButton() + } else if (codeStyle === 'carbon') { + this.addCodeHeader('carbon') + this.addCopyButton('carbon') + } else if (codeStyle === 'simple') { + this.addCopyButton('simple') + } + this.registerCopyEvent() + } + if (CONFIG.reward) { + this.registerShowReward() + } + if (CONFIG.lazyload) { + this.lazyLoadImage() + } + if (CONFIG.galleryWaterfall) { + this.showImageToWaterfall() + } + if (CONFIG.externalLink) { + var CONTAINER = '.archive, .post-title' + this.addIconToExternalLink(CONTAINER) + } + if (CONFIG.fancybox) { + this.wrapImageWithFancyBox() + } else if (CONFIG.zoomImage) { + this.registerZoomImage() + } + } + + // Initializaiton + Stun.utils.pjaxReloadBoot() +}) diff --git a/js/utils.js b/js/utils.js new file mode 100644 index 0000000..63febe0 --- /dev/null +++ b/js/utils.js @@ -0,0 +1,611 @@ +Stun.utils = Stun.$u = { + /** + * Debounce + * @param {Object} func Callback function + * @param {Number} wait Waiting time + * @param {Boolean} immediate Run immediately + */ + debounce: function (func, wait, immediate) { + var timeout + return function () { + var context = this + var args = arguments + + if (timeout) clearTimeout(timeout) + if (immediate) { + var callNow = !timeout + timeout = setTimeout(function () { + timeout = null + }, wait) + if (callNow) func.apply(context, args) + } else { + timeout = setTimeout(function () { + func.apply(context, args) + }, wait) + } + } + }, + /** + * Throttle + * @param {Object} func Callback function + * @param {Number} wait Waiting time + * @param {Object} options leading: Boolean, trailing: Boolean + */ + throttle: function (func, wait, options) { + var timeout, context, args + var previous = 0 + if (!options) options = {} + + var later = function () { + previous = options.leading === false ? 0 : new Date().getTime() + timeout = null + func.apply(context, args) + if (!timeout) context = args = null + } + var throttled = function () { + var now = new Date().getTime() + if (!previous && options.leading === false) previous = now + var remaining = wait - (now - previous) + context = this + args = arguments + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout) + timeout = null + } + previous = now + func.apply(context, args) + if (!timeout) context = args = null + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining) + } + } + return throttled + }, + hasMobileUA: function () { + var nav = window.navigator + var ua = nav.userAgent + var pa = /iPad|iPhone|Android|Opera Mini|BlackBerry|webOS|UCWEB|Blazer|PSP|IEMobile|Symbian/g + return pa.test(ua) + }, + isTablet: function () { + return ( + window.screen.width > 767 && + window.screen.width < 992 && + this.hasMobileUA() + ) + }, + isMobile: function () { + return window.screen.width < 767 && this.hasMobileUA() + }, + isDesktop: function () { + return !this.isTablet() && !this.isMobile() + }, + Cookies: function () { + function extend () { + var i = 0 + var result = {} + for (; i < arguments.length; i++) { + var attributes = arguments[i] + for (var key in attributes) { + result[key] = attributes[key] + } + } + return result + } + + function init (converter) { + function api (key, value, attributes) { + var result + if (typeof document === 'undefined') { + return + } + // Write + if (arguments.length > 1) { + attributes = extend({ path: '/' }, api.defaults, attributes) + if (typeof attributes.expires === 'number') { + var expires = new Date() + expires.setMilliseconds( + expires.getMilliseconds() + attributes.expires * 864e5 + ) + attributes.expires = expires + } + // We're using "expires" because "max-age" is not supported by IE + attributes.expires = attributes.expires + ? attributes.expires.toUTCString() + : '' + try { + result = JSON.stringify(value) + if (/^[{[]/.test(result)) { + value = result + } + } catch (e) { + /* empty */ + } + if (!converter.write) { + value = encodeURIComponent(String(value)).replace( + /%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, + decodeURIComponent + ) + } else { + value = converter.write(value, key) + } + key = encodeURIComponent(String(key)) + key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) + key = key.replace(/[()]/g, escape) + + var stringifiedAttributes = '' + for (var attributeName in attributes) { + if (!attributes[attributeName]) { + continue + } + stringifiedAttributes += '; ' + attributeName + if (attributes[attributeName] === true) { + continue + } + stringifiedAttributes += '=' + attributes[attributeName] + } + return (document.cookie = key + '=' + value + stringifiedAttributes) + } + // Read + if (!key) { + result = {} + } + // To prevent the for loop in the first place assign an empty array + // in case there are no cookies at all. Also prevents odd result when + // calling "get()" + var cookies = document.cookie ? document.cookie.split('; ') : [] + var rdecode = /(%[0-9A-Z]{2})+/g + var i = 0 + + for (; i < cookies.length; i++) { + var parts = cookies[i].split('=') + var cookie = parts.slice(1).join('=') + + if (cookie.charAt(0) === '"') { + cookie = cookie.slice(1, -1) + } + try { + var name = parts[0].replace(rdecode, decodeURIComponent) + cookie = converter.read + ? converter.read(cookie, name) + : converter(cookie, name) || + cookie.replace(rdecode, decodeURIComponent) + if (this.json) { + try { + cookie = JSON.parse(cookie) + } catch (e) { + /* empty */ + } + } + if (key === name) { + result = cookie + break + } + if (!key) { + result[name] = cookie + } + } catch (e) { + /* empty */ + } + } + return result + } + api.set = api + api.get = function (key) { + return api.call(api, key) + } + api.getJSON = function () { + return api.apply({ json: true }, [].slice.call(arguments)) + } + api.defaults = {} + api.remove = function (key, attributes) { + api(key, '', extend(attributes, { expires: -1 })) + } + api.withConverter = init + return api + } + return init(function () {}) + }, + showThemeInConsole: function () { + var stunInfo = '主题不错?⭐star 支持一下 ->' + var stunURL = 'https://github.com/liuyib/hexo-theme-stun' + var stunNameStr = + '\n\n ___ ___ ___ ___ \n /\\ \\ /\\ \\ /\\__\\ /\\__\\ \n /::\\ \\ \\:\\ \\ /:/ / /::| | \n /:/\\ \\ \\ \\:\\ \\ /:/ / /:|:| | \n _\\:\\ \\ \\ \\ /::\\ \\ /:/ / ___ /:/|:| |__ \n /\\ \\:\\ \\ \\__\\ /:/\\:\\__\\ /:/__/ /\\__\\ /:/ |:| /\\__\\ \n \\:\\ \\:\\ \\/__/ /:/ \\/__/ \\:\\ \\ /:/ / \\/__|:|/:/ / \n \\:\\ \\:\\__\\ /:/ / \\:\\ /:/ / |:/:/ / \n \\:\\/:/ / \\/__/ \\:\\/:/ / |::/ / \n \\::/ / \\::/ / /:/ / \n \\/__/ \\/__/ \\/__/ \n \n' + var stunInfoStyle = + 'background-color: #49b1f5; color: #fff; padding: 8px; font-size: 14px;' + var stunURLStyle = + 'background-color: #ffbca2; padding: 8px; font-size: 14px;' + var stunNameStyle = 'background-color: #eaf8ff;' + + console.log( + '%c%s%c%s%c%s', + stunInfoStyle, + stunInfo, + stunURLStyle, + stunURL, + stunNameStyle, + stunNameStr + ) + }, + /** + * Change the event code to keyCode. + * @param {String} code Event code + */ + codeToKeyCode: function (code) { + var codes = { + ArrowLeft: 37, + ArrowRight: 39, + Escape: 27, + Enter: 13 + } + return codes[code] + }, + /** + * "Alert" component + * @param {String} status The Status of message. Values: success / info / warning / error. + * @param {String} text The text to show. + * @param {Number} delay Message stay time (unit is 's', default 5s). + */ + popAlert: function (status, text, delay) { + if ($('.stun-message').length !== 0) { + $('.stun-message').remove() + } + + var $alert = $( + '
' + + `
` + + `` + + `${text}` + + '
' + + '
' + ) + + $('body').append($alert) + $(document).ready(function () { + $('.stun-alert') + .velocity('stop') + .velocity('transition.slideDownBigIn', { + duration: 300 + }) + .velocity('reverse', { + delay: delay * 1000 || 5000, + duration: 260, + complete: function () { + $('.stun-alert').css('display', 'none') + } + }) + }) + }, + /** + * Copy any text. + * @param {HTMLElement} container Container of text. + */ + copyText: function (container) { + try { + var selection = window.getSelection() + var range = document.createRange() + // Select text by the content of node. + range.selectNodeContents(container) + selection.removeAllRanges() + selection.addRange(range) + + var text = selection.toString() + var input = document.createElement('input') + // Create a temporary input to make the + // execCommand command take effect. + input.style.display = 'none' + input.setAttribute('readonly', 'readonly') + input.setAttribute('value', text) + document.body.appendChild(input) + input.setSelectionRange(0, -1) + + if (document.execCommand('copy')) { + document.execCommand('copy') + document.body.removeChild(input) + return true + } + document.body.removeChild(input) + } catch (e) { + return false + } + }, + // Wrap images with fancybox support. + wrapImageWithFancyBox: function () { + $('.content img') + .not(':hidden') + .each(function () { + var $img = $(this) + var imgTitle = $img.attr('title') || $img.attr('alt') + var $imgWrap = $img.parent('a') + var imgSource = ['data-src', 'data-original', 'src'] + var imgSrc = '' + + if (!$imgWrap[0]) { + for (var i = 0; i < imgSource.length; i++) { + if ($img.attr(imgSource[i])) { + imgSrc = $img.attr(imgSource[i]) + break + } + } + $imgWrap = $img + .wrap(``) + .parent('a') + if ($img.is('.gallery img')) { + $imgWrap.attr('data-fancybox', 'gallery') + } else { + $imgWrap.attr('data-fancybox', 'default') + } + } + if (imgTitle) { + $imgWrap.attr('title', imgTitle).attr('data-caption', imgTitle) + } + }) + + $().fancybox({ + selector: '[data-fancybox]', + loop: true, + transitionEffect: 'slide', + hash: false, + buttons: [ + 'share', + 'slideShow', + 'fullScreen', + 'download', + 'thumbs', + 'close' + ] + }) + }, + // Display the image in the gallery as a waterfall. + showImageToWaterfall: function () { + var gConfig = CONFIG.galleryWaterfall + var colWidth = parseInt(gConfig.colWidth) + var colGapX = parseInt(gConfig.gapX) + var GALLERY_IMG_SELECTOR = '.gallery img' + + this.waitAllImageLoad(GALLERY_IMG_SELECTOR, function () { + $('.gallery').masonry({ + itemSelector: GALLERY_IMG_SELECTOR, + columnWidth: colWidth, + percentPosition: true, + gutter: colGapX, + transitionDuration: 0 + }) + }) + }, + // Lazy load the images of post. + lazyLoadImage: function () { + $('img.lazyload').lazyload() + }, + // Add a mark icon to the link with `target="_blank"` attribute. + addIconToExternalLink: function (container) { + if (!$(container)[0]) { + return + } + + var $wrapper = $('') + var $icon = $( + '' + + `` + + '' + ) + + $(container) + .find('a[target="_blank"]') + .addClass('exturl__link') + .wrap($wrapper) + .parent('.exturl') + .append($icon) + }, + // Switch to the prev / next post by shortcuts. + registerSwitchPost: function () { + var keyLeft = this.codeToKeyCode('ArrowLeft') + var keyRight = this.codeToKeyCode('ArrowRight') + + $(document).on('keydown', function (e) { + var isPrev = e.keyCode === keyLeft + var isNext = e.keyCode === keyRight + + if (e.ctrlKey) { + if (isPrev) { + var prevElem = $('.paginator-prev a')[0] + prevElem && prevElem.click() + } else if (isNext) { + var nextElem = $('.paginator-next a')[0] + nextElem && nextElem.click() + } + } + }) + }, + // Show / Hide the reward QR. + registerShowReward: function () { + $('.reward-button').on('click', function () { + var $container = $('.reward-qrcode') + if ($container.is(':visible')) { + $container.css('display', 'none') + } else { + $container.velocity('stop').velocity('transition.slideDownIn', { + duration: 300 + }) + } + }) + }, + // Click to zoom in image, without fancybox. + registerZoomImage: function () { + $('#content-wrap img') + .not(':hidden') + .each(function () { + if ($(this).attr('data-zoom') === 'none') return + $(this).addClass('zoomimg') + }) + + var $imgMask = $('
') + var $imgClone = null + var isZoom = false + + $(window).on('scroll', closeZoom) + $(document).on('click', closeZoom) + + $('.zoomimg').on('click', function (e) { + e.stopPropagation() + if (isZoom) { + closeZoom() + return + } + isZoom = true + $imgClone = $(this) + .clone() + .addClass('zoomimg-clone') + + var SIDE_GAP = parseInt(CONFIG.zoomImage.gapAside || 20) + var imgRect = this.getBoundingClientRect() + var imgOuterW = $(this).outerWidth() + var imgOuterH = $(this).outerHeight() + var imgW = $(this).width() + var imgH = $(this).height() + var imgL = $(this).offset().left + (imgOuterW - imgW) / 2 + var imgT = $(this).offset().top + (imgOuterH - imgH) / 2 + var winW = $(window).width() - SIDE_GAP * 2 + var winH = $(window).height() - SIDE_GAP * 2 + var scaleX = winW / imgW + var scaleY = winH / imgH + var scale = (scaleX < scaleY ? scaleX : scaleY) || 1 + var translateX = winW / 2 - (imgRect.x + imgOuterW / 2) + SIDE_GAP + var translateY = winH / 2 - (imgRect.y + imgOuterH / 2) + SIDE_GAP + + $(this).addClass('zoomimg--hide') + $('body') + .append($imgMask) + .append($imgClone) + $imgMask.velocity({ + opacity: 1 + }) + $imgClone.css({ + left: imgL, + top: imgT, + width: imgW, + height: imgH + }) + $imgClone.velocity( + { + translateX: translateX, + translateY: translateY, + scale: scale + }, + { duration: 300 } + ) + }) + + function closeZoom () { + if (!isZoom) { + return + } + + isZoom = false + $imgClone.velocity('reverse') + $imgMask.velocity('reverse', { + complete: function () { + $imgMask.remove() + $imgClone.remove() + $('.zoomimg').removeClass('zoomimg--hide') + } + }) + } + }, + /** + * Add the header to code block. + * @param {string} type The type of header. value: 'carbon' | null. + */ + addCodeHeader: function (type) { + $('figure.highlight').each(function () { + if (!$(this).find('figcaption')[0]) { + var content = '' + if (!type) { + var CODEBLOCK_CLASS_NAME = 'highlight' + var lang = $(this) + .attr('class') + .split(/\s/) + .filter(function (e) { + return e !== CODEBLOCK_CLASS_NAME + }) + + content += `
${lang}
` + } else if (type === 'carbon') { + content += ` +
+
+
+
+
+ ` + } + + $(`
${content}
`).insertBefore( + $(this) + .children() + .first() + ) + } + }) + }, + addCopyButton: function (type) { + var btnContainer = '.post-copyright,' + var $copyIcon = $( + `
` + + `` + + '
' + ) + + if (type === 'simple' || type === 'carbon') { + btnContainer += '.highlight figcaption:not(".custom")' + } else { + btnContainer += '.highlight figcaption' + } + // Add a copy button to the selected elements. + $(btnContainer).append($copyIcon) + }, + registerCopyEvent: function () { + $('.copy-button').on('click', function () { + var container = null + // Select the container of code block. + var codeContainer = $(this) + .parents('figure.highlight') + .find('td.code')[0] + + if (codeContainer) { + container = codeContainer + } else { + // Select the container of text. + container = $(this).parent()[0] + } + if (Stun.utils.copyText(container)) { + Stun.utils.popAlert('success', CONFIG.prompt.copySuccess) + } else { + Stun.utils.popAlert('error', CONFIG.prompt.copyError) + } + }) + }, + /** + * Wait for all images to load. + * @param {String} selector jQuery selector. + * @param {Function} callback Callback. + */ + waitAllImageLoad: function (selector, callback) { + var imgDefereds = [] + $(selector).each(function () { + var dfd = $.Deferred() + $(this).bind('load', function () { + dfd.resolve() + }) + + if (this.complete) { + setTimeout(function () { + dfd.resolve() + }, 500) + } + imgDefereds.push(dfd) + }) + $.when.apply(null, imgDefereds).then(callback) + } +}