From a6fdf9260c7406f31ab3a06710c6419a0f2d2bf7 Mon Sep 17 00:00:00 2001 From: eddy1937 Date: Thu, 2 May 2024 00:31:16 +0800 Subject: [PATCH] Site updated: 2024-05-02 00:31:14 --- 404.html | 344 ++ CNAME | 1 + archives/2024/04/index.html | 341 ++ archives/2024/index.html | 341 ++ archives/index.html | 341 ++ css/main.css | 2973 ++++++++++++++++++ css/noscript.css | 48 + en/first-post/index.html | 338 ++ en/index.html | 335 ++ en/test/index.html | 365 +++ github-card-lib/githubcard.js | 1 + images/apple-touch-icon-next.png | Bin 0 -> 1544 bytes images/avatar.gif | Bin 0 -> 1785 bytes images/core/404.png | Bin 0 -> 26231 bytes images/favicon-16x16-next.png | Bin 0 -> 435 bytes images/favicon-32x32-next.png | Bin 0 -> 640 bytes images/icons/apple-touch-icon.png | Bin 0 -> 4616 bytes images/icons/avatar.png | Bin 0 -> 160819 bytes images/icons/eddy-icon-white-64.png | Bin 0 -> 1402 bytes images/icons/favicon-16x16.png | Bin 0 -> 708 bytes images/icons/favicon-32x32.png | Bin 0 -> 1341 bytes images/icons/safari-pinned-tab.svg | 98 + images/logo-algolia-nebula-blue-full.svg | 1 + images/logo.svg | 1 + index.html | 416 +++ js/bookmark.js | 56 + js/comments-buttons.js | 25 + js/comments.js | 21 + js/config.js | 66 + js/motion.js | 140 + js/next-boot.js | 79 + js/pjax.js | 50 + js/schedule.js | 138 + js/schemes/muse.js | 60 + js/third-party/addtoany.js | 8 + js/third-party/analytics/baidu-analytics.js | 7 + js/third-party/analytics/google-analytics.js | 53 + js/third-party/analytics/growingio.js | 10 + js/third-party/analytics/matomo.js | 19 + js/third-party/chat/chatra.js | 19 + js/third-party/chat/tidio.js | 10 + js/third-party/comments/changyan.js | 39 + js/third-party/comments/disqus.js | 41 + js/third-party/comments/disqusjs.js | 23 + js/third-party/comments/gitalk.js | 24 + js/third-party/comments/isso.js | 15 + js/third-party/comments/livere.js | 19 + js/third-party/comments/utterances.js | 17 + js/third-party/fancybox.js | 35 + js/third-party/math/katex.js | 7 + js/third-party/math/mathjax.js | 36 + js/third-party/pace.js | 7 + js/third-party/quicklink.js | 37 + js/third-party/search/algolia-search.js | 130 + js/third-party/search/local-search.js | 99 + js/third-party/statistics/firestore.js | 60 + js/third-party/statistics/lean-analytics.js | 107 + js/third-party/tags/mermaid.js | 32 + js/third-party/tags/pdf.js | 23 + js/third-party/tags/wavedrom.js | 13 + js/utils.js | 489 +++ placeholder | 0 search.xml | 24 + zh-tw/first-post/image.png | Bin 0 -> 2858 bytes zh-tw/first-post/index.html | 376 +++ zh-tw/index.html | 416 +++ zh-tw/test/index.html | 368 +++ 67 files changed, 9142 insertions(+) create mode 100644 404.html create mode 100644 CNAME create mode 100644 archives/2024/04/index.html create mode 100644 archives/2024/index.html create mode 100644 archives/index.html create mode 100644 css/main.css create mode 100644 css/noscript.css create mode 100644 en/first-post/index.html create mode 100644 en/index.html create mode 100644 en/test/index.html create mode 100644 github-card-lib/githubcard.js create mode 100644 images/apple-touch-icon-next.png create mode 100644 images/avatar.gif create mode 100644 images/core/404.png create mode 100644 images/favicon-16x16-next.png create mode 100644 images/favicon-32x32-next.png create mode 100644 images/icons/apple-touch-icon.png create mode 100644 images/icons/avatar.png create mode 100644 images/icons/eddy-icon-white-64.png create mode 100644 images/icons/favicon-16x16.png create mode 100644 images/icons/favicon-32x32.png create mode 100644 images/icons/safari-pinned-tab.svg create mode 100644 images/logo-algolia-nebula-blue-full.svg create mode 100644 images/logo.svg create mode 100644 index.html create mode 100644 js/bookmark.js create mode 100644 js/comments-buttons.js create mode 100644 js/comments.js create mode 100644 js/config.js create mode 100644 js/motion.js create mode 100644 js/next-boot.js create mode 100644 js/pjax.js create mode 100644 js/schedule.js create mode 100644 js/schemes/muse.js create mode 100644 js/third-party/addtoany.js create mode 100644 js/third-party/analytics/baidu-analytics.js create mode 100644 js/third-party/analytics/google-analytics.js create mode 100644 js/third-party/analytics/growingio.js create mode 100644 js/third-party/analytics/matomo.js create mode 100644 js/third-party/chat/chatra.js create mode 100644 js/third-party/chat/tidio.js create mode 100644 js/third-party/comments/changyan.js create mode 100644 js/third-party/comments/disqus.js create mode 100644 js/third-party/comments/disqusjs.js create mode 100644 js/third-party/comments/gitalk.js create mode 100644 js/third-party/comments/isso.js create mode 100644 js/third-party/comments/livere.js create mode 100644 js/third-party/comments/utterances.js create mode 100644 js/third-party/fancybox.js create mode 100644 js/third-party/math/katex.js create mode 100644 js/third-party/math/mathjax.js create mode 100644 js/third-party/pace.js create mode 100644 js/third-party/quicklink.js create mode 100644 js/third-party/search/algolia-search.js create mode 100644 js/third-party/search/local-search.js create mode 100644 js/third-party/statistics/firestore.js create mode 100644 js/third-party/statistics/lean-analytics.js create mode 100644 js/third-party/tags/mermaid.js create mode 100644 js/third-party/tags/pdf.js create mode 100644 js/third-party/tags/wavedrom.js create mode 100644 js/utils.js delete mode 100644 placeholder create mode 100644 search.xml create mode 100644 zh-tw/first-post/image.png create mode 100644 zh-tw/first-post/index.html create mode 100644 zh-tw/index.html create mode 100644 zh-tw/test/index.html diff --git a/404.html b/404.html new file mode 100644 index 0000000..ebfeee2 --- /dev/null +++ b/404.html @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Sorry! Post Not Found | ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + + +
+ + + +
+ + + + + + + +
+

+ Sorry! Post Not Found +

+ + +
+ + + + +
+ + +
+ + + + + +
+ + + +
+
+
+ + + + + + +
+
+ + + + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..d95266b --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +blog.ady.tw \ No newline at end of file diff --git a/archives/2024/04/index.html b/archives/2024/04/index.html new file mode 100644 index 0000000..3653a61 --- /dev/null +++ b/archives/2024/04/index.html @@ -0,0 +1,341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +歸檔 | ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + + +
+
+
+ 嗯..! 目前共有 3 篇文章。 繼續努力。 +
+ + +
+ 2024 +
+ + + + + + + + +
+
+ + + + +
+
+ + + + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2024/index.html b/archives/2024/index.html new file mode 100644 index 0000000..687c0b4 --- /dev/null +++ b/archives/2024/index.html @@ -0,0 +1,341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +歸檔 | ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + + +
+
+
+ 嗯..! 目前共有 3 篇文章。 繼續努力。 +
+ + +
+ 2024 +
+ + + + + + + + +
+
+ + + + +
+
+ + + + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 0000000..64b59b2 --- /dev/null +++ b/archives/index.html @@ -0,0 +1,341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +歸檔 | ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + + +
+
+
+ 嗯..! 目前共有 3 篇文章。 繼續努力。 +
+ + +
+ 2024 +
+ + + + + + + + +
+
+ + + + +
+
+ + + + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..69e7da4 --- /dev/null +++ b/css/main.css @@ -0,0 +1,2973 @@ +:root { + --body-bg-color: #eee; + --content-bg-color: #fff; + --card-bg-color: #f5f5f5; + --text-color: #555; + --blockquote-color: #666; + --link-color: #555; + --link-hover-color: #222; + --brand-color: #fff; + --brand-hover-color: #fff; + --table-row-odd-bg-color: #f9f9f9; + --table-row-hover-bg-color: #f5f5f5; + --menu-item-bg-color: #f5f5f5; + --theme-color: #222; + --btn-default-bg: #fff; + --btn-default-color: #555; + --btn-default-border-color: #555; + --btn-default-hover-bg: #222; + --btn-default-hover-color: #fff; + --btn-default-hover-border-color: #222; + --highlight-background: #f3f3f3; + --highlight-foreground: #444; + --highlight-gutter-background: #e1e1e1; + --highlight-gutter-foreground: #555; + color-scheme: light; +} +@media (prefers-color-scheme: dark) { + :root { + --body-bg-color: #282828; + --content-bg-color: #333; + --card-bg-color: #555; + --text-color: #ccc; + --blockquote-color: #bbb; + --link-color: #ccc; + --link-hover-color: #eee; + --brand-color: #ddd; + --brand-hover-color: #ddd; + --table-row-odd-bg-color: #282828; + --table-row-hover-bg-color: #363636; + --menu-item-bg-color: #555; + --theme-color: #222; + --btn-default-bg: #222; + --btn-default-color: #ccc; + --btn-default-border-color: #555; + --btn-default-hover-bg: #666; + --btn-default-hover-color: #ccc; + --btn-default-hover-border-color: #666; + --highlight-background: #1c1b1b; + --highlight-foreground: #fff; + --highlight-gutter-background: #323131; + --highlight-gutter-foreground: #e8e8e8; + color-scheme: dark; + } + img { + opacity: 0.75; + } + img:hover { + opacity: 0.9; + } + iframe { + color-scheme: light; + } +} +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} +body { + margin: 0; +} +main { + display: block; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} +a { + background: 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 { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +img { + border-style: none; +} +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} +button, +input { +/* 1 */ + overflow: visible; +} +button, +select { +/* 1 */ + text-transform: none; +} +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 { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} +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; +} +::selection { + background: #262a30; + color: #eee; +} +html, +body { + height: 100%; +} +body { + background: var(--body-bg-color); + box-sizing: border-box; + color: var(--text-color); + font-family: Lato, 'PingFang SC', 'Microsoft YaHei', sans-serif; + font-size: 1em; + line-height: 2; + min-height: 100%; + position: relative; + transition: padding 0.2s ease-in-out; +} +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: Lato, 'PingFang SC', 'Microsoft YaHei', sans-serif; + font-weight: bold; + line-height: 1.5; + margin: 30px 0 15px; +} +h1 { + font-size: 1.5em; +} +h2 { + font-size: 1.375em; +} +h3 { + font-size: 1.25em; +} +h4 { + font-size: 1.125em; +} +h5 { + font-size: 1em; +} +h6 { + font-size: 0.875em; +} +p { + margin: 0 0 20px; +} +a { + border-bottom: 1px solid #999; + color: var(--link-color); + cursor: pointer; + outline: 0; + text-decoration: none; + overflow-wrap: break-word; +} +a:hover { + border-bottom-color: var(--link-hover-color); + color: var(--link-hover-color); +} +iframe, +img, +video, +embed { + display: block; + margin-left: auto; + margin-right: auto; + max-width: 100%; +} +hr { + background-image: repeating-linear-gradient(-45deg, #ddd, #ddd 4px, transparent 4px, transparent 8px); + border: 0; + height: 3px; + margin: 40px 0; +} +blockquote { + border-left: 4px solid #ddd; + color: var(--blockquote-color); + margin: 0; + padding: 0 15px; +} +blockquote cite::before { + content: '-'; + padding: 0 5px; +} +dt { + font-weight: bold; +} +dd { + margin: 0; + padding: 0; +} +.table-container { + overflow: auto; +} +table { + border-collapse: collapse; + border-spacing: 0; + font-size: 0.875em; + margin: 0 0 20px; + width: 100%; +} +tbody tr:nth-of-type(odd) { + background: var(--table-row-odd-bg-color); +} +tbody tr:hover { + background: var(--table-row-hover-bg-color); +} +caption, +th, +td { + padding: 8px; +} +th, +td { + border: 1px solid #ddd; + border-bottom: 3px solid #ddd; +} +th { + font-weight: 700; + padding-bottom: 10px; +} +td { + border-bottom-width: 1px; +} +.btn { + background: var(--btn-default-bg); + border: 2px solid var(--btn-default-border-color); + border-radius: 2px; + color: var(--btn-default-color); + display: inline-block; + font-size: 0.875em; + line-height: 2; + padding: 0 20px; + transition: background-color 0.2s ease-in-out; +} +.btn:hover { + background: var(--btn-default-hover-bg); + border-color: var(--btn-default-hover-border-color); + color: var(--btn-default-hover-color); +} +.btn + .btn { + margin: 0 0 8px 8px; +} +.btn .fa-fw { + text-align: left; + width: 1.285714285714286em; +} +.toggle { + line-height: 0; +} +.toggle .toggle-line { + background: #fff; + display: block; + height: 2px; + left: 0; + position: relative; + top: 0; + transition: all 0.4s; + width: 100%; +} +.toggle .toggle-line:first-child { + margin-top: 1px; +} +.toggle .toggle-line:not(:first-child) { + margin-top: 4px; +} +.toggle.toggle-arrow :first-child { + left: 50%; + top: 2px; + transform: rotate(45deg); + width: 50%; +} +.toggle.toggle-arrow :last-child { + left: 50%; + top: -2px; + transform: rotate(-45deg); + width: 50%; +} +.toggle.toggle-close :nth-child(2) { + opacity: 0; +} +.toggle.toggle-close :first-child { + top: 6px; + transform: rotate(45deg); +} +.toggle.toggle-close :last-child { + top: -6px; + transform: rotate(-45deg); +} +pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em +} +code.hljs { + padding: 3px 5px +} +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em +} +code.hljs { + padding: 3px 5px +} +/* end baseline CSS */ +.hljs { + background: #F3F3F3; + color: #444 +} +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ + +} +/* purposely ignored */ +.hljs-formula, +.hljs-attr, +.hljs-property, +.hljs-params { + +} +.hljs-comment { + color: #697070 +} +.hljs-tag, +.hljs-punctuation { + color: #444a +} +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444 +} +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold +} +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000 +} +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold +} +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #ab5656 +} +/* Language color: hue: 90; */ +.hljs-literal { + color: #695 +} +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300 +} +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199 +} +.hljs-meta .hljs-string { + color: #38a +} +/* Misc effects */ +.hljs-emphasis { + font-style: italic +} +.hljs-strong { + font-weight: bold +} +@media (prefers-color-scheme: dark) { +pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em +} +code.hljs { + padding: 3px 5px +} +/*! + Theme: StackOverflow Dark + Description: Dark theme as used on stackoverflow.com + Author: stackoverflow.com + Maintainer: @Hirse + Website: https://github.com/StackExchange/Stacks + License: MIT + Updated: 2021-05-15 + + Updated for @stackoverflow/stacks v0.64.0 + Code Blocks: /blob/v0.64.0/lib/css/components/_stacks-code-blocks.less + Colors: /blob/v0.64.0/lib/css/exports/_stacks-constants-colors.less +*/ +.hljs { + /* var(--highlight-color) */ + color: #ffffff; + /* var(--highlight-bg) */ + background: #1c1b1b +} +.hljs-subst { + /* var(--highlight-color) */ + color: #ffffff +} +.hljs-comment { + /* var(--highlight-comment) */ + color: #999999 +} +.hljs-keyword, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-section { + /* var(--highlight-keyword) */ + color: #88aece +} +.hljs-attr { + /* var(--highlight-attribute); */ + color: #88aece +} +.hljs-attribute { + /* var(--highlight-symbol) */ + color: #c59bc1 +} +.hljs-name, +.hljs-type, +.hljs-number, +.hljs-selector-id, +.hljs-quote, +.hljs-template-tag { + /* var(--highlight-namespace) */ + color: #f08d49 +} +.hljs-selector-class { + /* var(--highlight-keyword) */ + color: #88aece +} +.hljs-string, +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr { + /* var(--highlight-variable) */ + color: #b5bd68 +} +.hljs-meta, +.hljs-selector-pseudo { + /* var(--highlight-keyword) */ + color: #88aece +} +.hljs-built_in, +.hljs-title, +.hljs-literal { + /* var(--highlight-literal) */ + color: #f08d49 +} +.hljs-bullet, +.hljs-code { + /* var(--highlight-punctuation) */ + color: #cccccc +} +.hljs-meta .hljs-string { + /* var(--highlight-variable) */ + color: #b5bd68 +} +.hljs-deletion { + /* var(--highlight-deletion) */ + color: #de7176 +} +.hljs-addition { + /* var(--highlight-addition) */ + color: #76c490 +} +.hljs-emphasis { + font-style: italic +} +.hljs-strong { + font-weight: bold +} +.hljs-formula, +.hljs-operator, +.hljs-params, +.hljs-property, +.hljs-punctuation, +.hljs-tag { + /* purposely ignored */ + +} +} +code, +kbd, +figure.highlight, +pre { + background: var(--highlight-background); + color: var(--highlight-foreground); +} +figure.highlight, +pre { + line-height: 1.6; + margin: 0 auto 20px; +} +figure.highlight figcaption, +pre .caption, +pre figcaption { + background: var(--highlight-gutter-background); + color: var(--highlight-foreground); + display: flow-root; + font-size: 0.875em; + line-height: 1.2; + padding: 0.5em; +} +figure.highlight figcaption a, +pre .caption a, +pre figcaption a { + color: var(--highlight-foreground); + float: right; +} +figure.highlight figcaption a:hover, +pre .caption a:hover, +pre figcaption a:hover { + border-bottom-color: var(--highlight-foreground); +} +pre, +code { + font-family: consolas, Menlo, monospace, 'PingFang SC', 'Microsoft YaHei'; +} +code { + border-radius: 3px; + font-size: 0.875em; + padding: 2px 4px; + overflow-wrap: break-word; +} +kbd { + border: 2px solid #ccc; + border-radius: 0.2em; + box-shadow: 0.1em 0.1em 0.2em rgba(0,0,0,0.1); + font-family: inherit; + padding: 0.1em 0.3em; + white-space: nowrap; +} +figure.highlight { + overflow: auto; + position: relative; +} +figure.highlight pre { + border: 0; + margin: 0; + padding: 10px 0; +} +figure.highlight table { + border: 0; + margin: 0; + width: auto; +} +figure.highlight td { + border: 0; + padding: 0; +} +figure.highlight .gutter { + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; + user-select: none; +} +figure.highlight .gutter pre { + background: var(--highlight-gutter-background); + color: var(--highlight-gutter-foreground); + padding-left: 10px; + padding-right: 10px; + text-align: right; +} +figure.highlight .code pre { + padding-left: 10px; + width: 100%; +} +figure.highlight .marked { + background: rgba(0,0,0,0.3); +} +pre .caption, +pre figcaption { + margin-bottom: 10px; +} +.gist table { + width: auto; +} +.gist table td { + border: 0; +} +pre { + overflow: auto; + padding: 10px; +} +pre code { + background: none; + padding: 0; + text-shadow: none; +} +.blockquote-center { + border-left: 0; + margin: 40px 0; + padding: 0; + position: relative; + text-align: center; +} +.blockquote-center::before, +.blockquote-center::after { + left: 0; + line-height: 1; + opacity: 0.6; + position: absolute; + width: 100%; +} +.blockquote-center::before { + border-top: 1px solid #ccc; + text-align: left; + top: -20px; + content: '\f10d'; + font-family: 'Font Awesome 6 Free'; + font-weight: 900; +} +.blockquote-center::after { + border-bottom: 1px solid #ccc; + bottom: -20px; + text-align: right; + content: '\f10e'; + font-family: 'Font Awesome 6 Free'; + font-weight: 900; +} +.blockquote-center p, +.blockquote-center div { + text-align: center; +} +.group-picture { + margin-bottom: 20px; +} +.group-picture .group-picture-row { + display: flex; + gap: 3px; + margin-bottom: 3px; +} +.group-picture .group-picture-column { + flex: 1; +} +.group-picture .group-picture-column img { + height: 100%; + margin: 0; + object-fit: cover; + width: 100%; +} +.post-body .label { + color: #555; + padding: 0 2px; +} +.post-body .label.default { + background: #f0f0f0; +} +.post-body .label.primary { + background: #efe6f7; +} +.post-body .label.info { + background: #e5f2f8; +} +.post-body .label.success { + background: #e7f4e9; +} +.post-body .label.warning { + background: #fcf6e1; +} +.post-body .label.danger { + background: #fae8eb; +} +.post-body .link-grid { + display: grid; + grid-gap: 1.5rem; + gap: 1.5rem; + grid-template-columns: 1fr 1fr; + margin-bottom: 20px; + padding: 1rem; +} +@media (max-width: 767px) { + .post-body .link-grid { + grid-template-columns: 1fr; + } +} +.post-body .link-grid .link-grid-container { + border: solid #ddd; + box-shadow: 1rem 1rem 0.5rem rgba(0,0,0,0.5); + min-height: 5rem; + min-width: 0; + padding: 0.5rem; + position: relative; + transition: background 0.3s; +} +.post-body .link-grid .link-grid-container:hover { + animation: next-shake 0.5s; + background: var(--card-bg-color); +} +.post-body .link-grid .link-grid-container:active { + box-shadow: 0.5rem 0.5rem 0.25rem rgba(0,0,0,0.5); + transform: translate(0.2rem, 0.2rem); +} +.post-body .link-grid .link-grid-container .link-grid-image { + border: 1px solid #ddd; + border-radius: 50%; + box-sizing: border-box; + height: 5rem; + padding: 3px; + position: absolute; + width: 5rem; +} +.post-body .link-grid .link-grid-container p { + margin: 0 1rem 0 6rem; +} +.post-body .link-grid .link-grid-container p:first-of-type { + font-size: 1.2em; +} +.post-body .link-grid .link-grid-container p:last-of-type { + font-size: 0.8em; + line-height: 1.3rem; + opacity: 0.7; +} +.post-body .link-grid .link-grid-container a { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +@keyframes next-shake { + 0% { + transform: translate(1pt, 1pt) rotate(0deg); + } + 10% { + transform: translate(-1pt, -2pt) rotate(-1deg); + } + 20% { + transform: translate(-3pt, 0pt) rotate(1deg); + } + 30% { + transform: translate(3pt, 2pt) rotate(0deg); + } + 40% { + transform: translate(1pt, -1pt) rotate(1deg); + } + 50% { + transform: translate(-1pt, 2pt) rotate(-1deg); + } + 60% { + transform: translate(-3pt, 1pt) rotate(0deg); + } + 70% { + transform: translate(3pt, 1pt) rotate(-1deg); + } + 80% { + transform: translate(-1pt, -1pt) rotate(1deg); + } + 90% { + transform: translate(1pt, 2pt) rotate(0deg); + } + 100% { + transform: translate(1pt, -2pt) rotate(-1deg); + } +} +.post-body .note { + border-radius: 3px; + margin-bottom: 20px; + padding: 1em; + position: relative; + border: 1px solid #eee; + border-left-width: 5px; +} +.post-body .note summary { + cursor: pointer; + outline: 0; +} +.post-body .note summary p { + display: inline; +} +.post-body .note h2, +.post-body .note h3, +.post-body .note h4, +.post-body .note h5, +.post-body .note h6 { + border-bottom: initial; + margin: 0; + padding-top: 0; +} +.post-body .note :first-child { + margin-top: 0; +} +.post-body .note :last-child { + margin-bottom: 0; +} +.post-body .note.default { + border-left-color: #777; +} +.post-body .note.default h2, +.post-body .note.default h3, +.post-body .note.default h4, +.post-body .note.default h5, +.post-body .note.default h6 { + color: #777; +} +.post-body .note.primary { + border-left-color: #6f42c1; +} +.post-body .note.primary h2, +.post-body .note.primary h3, +.post-body .note.primary h4, +.post-body .note.primary h5, +.post-body .note.primary h6 { + color: #6f42c1; +} +.post-body .note.info { + border-left-color: #428bca; +} +.post-body .note.info h2, +.post-body .note.info h3, +.post-body .note.info h4, +.post-body .note.info h5, +.post-body .note.info h6 { + color: #428bca; +} +.post-body .note.success { + border-left-color: #5cb85c; +} +.post-body .note.success h2, +.post-body .note.success h3, +.post-body .note.success h4, +.post-body .note.success h5, +.post-body .note.success h6 { + color: #5cb85c; +} +.post-body .note.warning { + border-left-color: #f0ad4e; +} +.post-body .note.warning h2, +.post-body .note.warning h3, +.post-body .note.warning h4, +.post-body .note.warning h5, +.post-body .note.warning h6 { + color: #f0ad4e; +} +.post-body .note.danger { + border-left-color: #d9534f; +} +.post-body .note.danger h2, +.post-body .note.danger h3, +.post-body .note.danger h4, +.post-body .note.danger h5, +.post-body .note.danger h6 { + color: #d9534f; +} +.post-body .tabs { + margin-bottom: 20px; +} +.post-body .tabs, +.tabs-comment { + padding-top: 10px; +} +.post-body .tabs ul.nav-tabs, +.tabs-comment ul.nav-tabs { + background: var(--content-bg-color); + display: flex; + display: flex; + flex-wrap: wrap; + justify-content: center; + margin: 0; + padding: 0; + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 5; +} +@media (max-width: 413px) { + .post-body .tabs ul.nav-tabs, + .tabs-comment ul.nav-tabs { + display: block; + margin-bottom: 5px; + } +} +.post-body .tabs ul.nav-tabs li.tab, +.tabs-comment ul.nav-tabs li.tab { + border-bottom: 1px solid #ddd; + border-left: 1px solid transparent; + border-right: 1px solid transparent; + border-radius: 0 0 0 0; + border-top: 3px solid transparent; + flex-grow: 1; + list-style-type: none; +} +@media (max-width: 413px) { + .post-body .tabs ul.nav-tabs li.tab, + .tabs-comment ul.nav-tabs li.tab { + border-bottom: 1px solid transparent; + border-left: 3px solid transparent; + border-right: 1px solid transparent; + border-top: 1px solid transparent; + } +} +@media (max-width: 413px) { + .post-body .tabs ul.nav-tabs li.tab, + .tabs-comment ul.nav-tabs li.tab { + border-radius: 0; + } +} +.post-body .tabs ul.nav-tabs li.tab a, +.tabs-comment ul.nav-tabs li.tab a { + border-bottom: initial; + display: block; + line-height: 1.8; + padding: 0.25em 0.75em; + text-align: center; + transition: all 0.2s ease-out; +} +.post-body .tabs ul.nav-tabs li.tab a i[class^='fa'], +.tabs-comment ul.nav-tabs li.tab a i[class^='fa'] { + width: 1.285714285714286em; +} +.post-body .tabs ul.nav-tabs li.tab.active, +.tabs-comment ul.nav-tabs li.tab.active { + border-bottom-color: transparent; + border-left-color: #ddd; + border-right-color: #ddd; + border-top-color: #fc6423; +} +@media (max-width: 413px) { + .post-body .tabs ul.nav-tabs li.tab.active, + .tabs-comment ul.nav-tabs li.tab.active { + border-bottom-color: #ddd; + border-left-color: #fc6423; + border-right-color: #ddd; + border-top-color: #ddd; + } +} +.post-body .tabs ul.nav-tabs li.tab.active a, +.tabs-comment ul.nav-tabs li.tab.active a { + cursor: default; +} +.post-body .tabs .tab-content, +.tabs-comment .tab-content { + border: 1px solid #ddd; + border-radius: 0 0 0 0; + border-top-color: transparent; +} +@media (max-width: 413px) { + .post-body .tabs .tab-content, + .tabs-comment .tab-content { + border-radius: 0; + border-top-color: #ddd; + } +} +.post-body .tabs .tab-content .tab-pane, +.tabs-comment .tab-content .tab-pane { + padding: 20px 20px 0; +} +.post-body .tabs .tab-content .tab-pane:not(.active), +.tabs-comment .tab-content .tab-pane:not(.active) { + display: none; +} +.pagination .prev, +.pagination .next, +.pagination .page-number, +.pagination .space { + display: inline-block; + margin: -1px 10px 0; + padding: 0 10px; +} +@media (max-width: 767px) { + .pagination .prev, + .pagination .next, + .pagination .page-number, + .pagination .space { + margin: 0 5px; + } +} +.pagination .page-number.current { + background: #ccc; + border-color: #ccc; + color: var(--content-bg-color); +} +.pagination { + border-top: 1px solid #eee; + margin: 120px 0 0; + text-align: center; +} +.pagination .prev, +.pagination .next, +.pagination .page-number { + border-bottom: 0; + border-top: 1px solid #eee; + transition: border-color 0.2s ease-in-out; +} +.pagination .prev:hover, +.pagination .next:hover, +.pagination .page-number:hover { + border-top-color: var(--link-hover-color); +} +@media (max-width: 767px) { + .pagination { + border-top: 0; + } + .pagination .prev, + .pagination .next, + .pagination .page-number { + border-bottom: 1px solid #eee; + border-top: 0; + } + .pagination .prev:hover, + .pagination .next:hover, + .pagination .page-number:hover { + border-bottom-color: var(--link-hover-color); + } +} +.pagination .space { + margin: 0; + padding: 0; +} +.comments { + margin-top: 60px; + overflow: hidden; +} +.comment-button-group { + display: flex; + display: flex; + flex-wrap: wrap; + justify-content: center; + justify-content: center; + margin: 1em 0; +} +.comment-button-group .comment-button { + margin: 0.1em 0.2em; +} +.comment-button-group .comment-button.active { + background: var(--btn-default-hover-bg); + border-color: var(--btn-default-hover-border-color); + color: var(--btn-default-hover-color); +} +.comment-position { + display: none; +} +.comment-position.active { + display: block; +} +.tabs-comment { + margin-top: 4em; + padding-top: 0; +} +.tabs-comment .comments { + margin-top: 0; + padding-top: 0; +} +.headband { + background: var(--theme-color); + height: 3px; +} +@media (max-width: 991px) { + .headband { + display: none; + } +} +.site-brand-container { + display: flex; + flex-shrink: 0; + padding: 0 10px; +} +.use-motion .column, +.use-motion .site-brand-container .toggle { + opacity: 0; +} +.site-meta { + flex-grow: 1; + text-align: center; +} +@media (max-width: 767px) { + .site-meta { + text-align: center; + } +} +.custom-logo-image { + margin-top: 20px; +} +@media (max-width: 991px) { + .custom-logo-image { + display: none; + } +} +.brand { + border-bottom: 0; + color: var(--brand-color); + display: inline-block; + padding: 0; +} +.brand:hover { + color: var(--brand-hover-color); +} +.site-title { + font-family: Lato, 'PingFang SC', 'Microsoft YaHei', sans-serif; + font-size: 1.375em; + font-weight: normal; + line-height: 1.5; + margin: 0; +} +.site-subtitle { + color: #ddd; + font-size: 0.8125em; + margin: 10px 10px 0; +} +.use-motion .site-title, +.use-motion .site-subtitle, +.use-motion .custom-logo-image { + opacity: 0; + position: relative; + top: -10px; +} +.site-nav-toggle, +.site-nav-right { + display: none; +} +@media (max-width: 767px) { + .site-nav-toggle, + .site-nav-right { + display: flex; + flex-direction: column; + justify-content: center; + } +} +.site-nav-toggle .toggle, +.site-nav-right .toggle { + color: var(--text-color); + padding: 10px; + width: 22px; +} +.site-nav-toggle .toggle .toggle-line, +.site-nav-right .toggle .toggle-line { + background: var(--text-color); + border-radius: 1px; +} +@media (max-width: 767px) { + .site-nav { + --scroll-height: 0; + height: 0; + overflow: hidden; + transition: 0.2s ease-in-out; + transition-property: height, visibility; + visibility: hidden; + } + body:not(.site-nav-on) .site-nav .animated { + animation: none; + } + body.site-nav-on .site-nav { + height: var(--scroll-height); + visibility: unset; + } +} +.menu { + margin: 0; + padding: 1em 0; + text-align: center; +} +.menu-item { + display: inline-block; + list-style: none; + margin: 0 10px; +} +@media (max-width: 767px) { + .menu-item { + display: block; + margin-top: 10px; + } + .menu-item.menu-item-search { + display: none; + } +} +.menu-item a { + border-bottom: 0; + display: block; + font-size: 0.8125em; + transition: border-color 0.2s ease-in-out; +} +.menu-item a:hover, +.menu-item a.menu-item-active { + background: var(--menu-item-bg-color); +} +.menu-item i[class^='fa'] { + margin-right: 8px; +} +.menu-item .badge { + display: inline-block; + font-weight: bold; + line-height: 1; + margin-left: 0.35em; + margin-top: 0.35em; + text-align: center; + white-space: nowrap; +} +@media (max-width: 767px) { + .menu-item .badge { + float: right; + margin-left: 0; + } +} +.use-motion .menu-item { + visibility: hidden; +} +.github-corner :hover .octo-arm { + animation: octocat-wave 560ms ease-in-out; +} +.github-corner svg { + color: #fff; + fill: var(--theme-color); + position: absolute; + right: 0; + top: 0; + z-index: 5; +} +@media (max-width: 991px) { + .github-corner { + display: none; + } + .github-corner svg { + color: var(--theme-color); + fill: #fff; + } + .github-corner .github-corner:hover .octo-arm { + animation: none; + } + .github-corner .github-corner .octo-arm { + animation: octocat-wave 560ms ease-in-out; + } +} +@keyframes octocat-wave { + 0%, 100% { + transform: rotate(0); + } + 20%, 60% { + transform: rotate(-25deg); + } + 40%, 80% { + transform: rotate(10deg); + } +} +.sidebar-inner { + color: #999; + padding: 18px 10px; + text-align: center; + display: flex; + flex-direction: column; + justify-content: center; +} +.cc-license .cc-opacity { + border-bottom: 0; + opacity: 0.7; +} +.cc-license .cc-opacity:hover { + opacity: 0.9; +} +.cc-license img { + display: inline-block; +} +.site-author-image { + border: 1px solid #eee; + max-width: 120px; + padding: 2px; + border-radius: 50%; +} +.site-author-name { + color: var(--text-color); + font-weight: 600; + margin: 0; +} +.site-description { + color: #999; + font-size: 0.8125em; + margin-top: 0; +} +.links-of-author a { + font-size: 0.8125em; +} +.sidebar .sidebar-button:not(:first-child) { + margin-top: 15px; +} +.sidebar .sidebar-button button { + background: transparent; + color: #fc6423; + cursor: pointer; + line-height: 2; + padding: 0 15px; + border: 1px solid #fc6423; + border-radius: 4px; +} +.sidebar .sidebar-button button:hover { + background: #fc6423; + color: #fff; +} +.sidebar .sidebar-button button i[class^='fa'] { + margin-right: 5px; +} +.links-of-blogroll { + font-size: 0.8125em; +} +.links-of-blogroll-title { + font-size: 0.875em; + font-weight: 600; +} +.links-of-blogroll-list { + list-style: none; + margin: 0; + padding: 0; +} +.sidebar-nav { + font-size: 0.875em; + height: 0; + margin: 0; + overflow: hidden; + padding-left: 0; + pointer-events: none; + transition: 0.2s ease-in-out; + transition-property: height, visibility; + visibility: hidden; +} +.sidebar-nav-active .sidebar-nav { + height: calc(2em + 1px); + pointer-events: unset; + visibility: unset; +} +.sidebar-nav li { + border-bottom: 1px solid transparent; + color: var(--text-color); + cursor: pointer; + display: inline-block; + transition: 0.2s ease-in-out; + transition-property: border-bottom-color, color; +} +.sidebar-nav li.sidebar-nav-overview { + margin-left: 10px; +} +.sidebar-nav li:hover { + color: #fc6423; +} +.sidebar-toc-active .sidebar-nav-toc, +.sidebar-overview-active .sidebar-nav-overview { + border-bottom-color: #fc6423; + color: #fc6423; + transition-delay: 0.2s; +} +.sidebar-toc-active .sidebar-nav-toc:hover, +.sidebar-overview-active .sidebar-nav-overview:hover { + color: #fc6423; +} +.sidebar-panel-container { + align-items: start; + display: grid; + flex: 1; + overflow-x: hidden; + overflow-y: auto; + padding-top: 0; + transition: padding-top 0.2s ease-in-out; +} +.sidebar-nav-active .sidebar-panel-container { + padding-top: 20px; +} +.sidebar-panel { + animation: deactivate-sidebar-panel 0.2s ease-in-out; + grid-area: 1/1; + height: 0; + opacity: 0; + overflow: hidden; + pointer-events: none; + transform: translateY(0); + transition: 0.2s ease-in-out; + transition-delay: 0s; + transition-property: opacity, transform, visibility; + visibility: hidden; +} +.sidebar-nav-active .sidebar-panel, +.sidebar-overview-active .sidebar-panel.post-toc-wrap { + transform: translateY(-20px); +} +.sidebar-overview-active:not(.sidebar-nav-active) .sidebar-panel.post-toc-wrap { + transition-delay: 0s, 0.2s, 0s; +} +.sidebar-overview-active .sidebar-panel.site-overview-wrap, +.sidebar-toc-active .sidebar-panel.post-toc-wrap { + animation-name: activate-sidebar-panel; + height: auto; + opacity: 1; + pointer-events: unset; + transform: translateY(0); + transition-delay: 0.2s, 0.2s, 0s; + visibility: unset; +} +.sidebar-panel.site-overview-wrap { + display: flex; + flex-direction: column; + justify-content: center; + gap: 10px; + justify-content: flex-start; +} +@keyframes deactivate-sidebar-panel { + from { + height: var(--inactive-panel-height, 0); + } + to { + height: var(--active-panel-height, 0); + } +} +@keyframes activate-sidebar-panel { + from { + height: var(--inactive-panel-height, auto); + } + to { + height: var(--active-panel-height, auto); + } +} +.sidebar-toggle { + bottom: 61px; + height: 16px; + padding: 5px; + width: 16px; + background: #222; + cursor: pointer; + opacity: 0.6; + position: fixed; + z-index: 30; + right: 30px; +} +@media (max-width: 991px) { + .sidebar-toggle { + right: 20px; + } +} +.sidebar-toggle:hover { + opacity: 0.8; +} +@media (max-width: 991px) { + .sidebar-toggle { + opacity: 0.8; + } +} +.sidebar-toggle:hover .toggle-line { + background: #fc6423; +} +@media (any-hover: hover) { + body:not(.sidebar-active) .sidebar-toggle:hover :first-child { + left: 50%; + top: 2px; + transform: rotate(45deg); + width: 50%; + } + body:not(.sidebar-active) .sidebar-toggle:hover :last-child { + left: 50%; + top: -2px; + transform: rotate(-45deg); + width: 50%; + } +} +.sidebar-active .sidebar-toggle :nth-child(2) { + opacity: 0; +} +.sidebar-active .sidebar-toggle :first-child { + top: 6px; + transform: rotate(45deg); +} +.sidebar-active .sidebar-toggle :last-child { + top: -6px; + transform: rotate(-45deg); +} +.post-toc { + font-size: 0.875em; +} +.post-toc ol { + list-style: none; + margin: 0; + padding: 0 2px 0 10px; + text-align: left; +} +.post-toc ol > :last-child { + margin-bottom: 5px; +} +.post-toc ol > ol { + padding-left: 0; +} +.post-toc ol a { + transition: all 0.2s ease-in-out; +} +.post-toc .nav-item { + line-height: 1.8; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.post-toc .nav .nav-child { + --height: 0; + height: 0; + opacity: 0; + overflow: hidden; + transition-property: height, opacity, visibility; + transition: 0.2s ease-in-out; + visibility: hidden; +} +.post-toc .nav .active > .nav-child { + height: var(--height, auto); + opacity: 1; + visibility: unset; +} +.post-toc .nav .active > a { + border-bottom-color: #fc6423; + color: #fc6423; +} +.post-toc .nav .active-current > a { + color: #fc6423; +} +.post-toc .nav .active-current > a:hover { + color: #fc6423; +} +.site-state { + display: flex; + flex-wrap: wrap; + justify-content: center; + line-height: 1.4; +} +.site-state-item { + padding: 0 15px; +} +.site-state-item a { + border-bottom: 0; + display: block; +} +.site-state-item-count { + display: block; + font-size: 1em; + font-weight: 600; +} +.site-state-item-name { + color: #999; + font-size: 0.8125em; +} +.footer { + color: #999; + font-size: 0.875em; + padding: 20px 0; + transition: 0.2s ease-in-out; + transition-property: left, right; +} +.footer.footer-fixed { + bottom: 0; + left: 0; + position: absolute; + right: 0; +} +.footer-inner { + box-sizing: border-box; + text-align: center; + display: flex; + flex-direction: column; + justify-content: center; + margin: 0 auto; + width: calc(100% - 20px); +} +@media (max-width: 767px) { + .footer-inner { + width: auto; + } +} +@media (min-width: 1200px) { + .footer-inner { + width: 1160px; + } +} +@media (min-width: 1600px) { + .footer-inner { + width: 73%; + } +} +.use-motion .footer { + opacity: 0; +} +.languages { + display: inline-block; + font-size: 1.125em; + position: relative; +} +.languages .lang-select-label span { + margin: 0 0.5em; +} +.languages .lang-select { + height: 100%; + left: 0; + opacity: 0; + position: absolute; + top: 0; + width: 100%; +} +.with-love { + color: #f00; + display: inline-block; + margin: 0 5px; +} +@keyframes icon-animate { + 0%, 100% { + transform: scale(1); + } + 10%, 30% { + transform: scale(0.9); + } + 20%, 40%, 60%, 80% { + transform: scale(1.1); + } + 50%, 70% { + transform: scale(1.1); + } +} +.back-to-top { + font-size: 12px; + align-items: center; + bottom: -100px; + color: #fff; + display: flex; + height: 26px; + transition: bottom 0.2s ease-in-out; + background: #222; + cursor: pointer; + opacity: 0.6; + position: fixed; + z-index: 30; + right: 30px; +} +.back-to-top span { + margin-right: 8px; + display: none; +} +.back-to-top .fa { + text-align: center; + width: 26px; +} +@media (max-width: 991px) { + .back-to-top { + right: 20px; + } +} +.back-to-top:hover { + opacity: 0.8; +} +@media (max-width: 991px) { + .back-to-top { + opacity: 0.8; + } +} +.back-to-top:hover { + color: #fc6423; +} +.back-to-top.back-to-top-on { + bottom: 30px; +} +.rtl.post-body p, +.rtl.post-body a, +.rtl.post-body h1, +.rtl.post-body h2, +.rtl.post-body h3, +.rtl.post-body h4, +.rtl.post-body h5, +.rtl.post-body h6, +.rtl.post-body li, +.rtl.post-body ul, +.rtl.post-body ol { + direction: rtl; + font-family: UKIJ Ekran; +} +.rtl.post-title { + font-family: UKIJ Ekran; +} +.post-button { + margin-top: 40px; + text-align: center; +} +.use-motion .post-block, +.use-motion .pagination, +.use-motion .comments { + visibility: hidden; +} +.use-motion .post-header { + visibility: hidden; +} +.use-motion .post-body { + visibility: hidden; +} +.use-motion .collection-header { + visibility: hidden; +} +.posts-collapse .post-content { + margin-bottom: 35px; + margin-left: 35px; + position: relative; +} +@media (max-width: 767px) { + .posts-collapse .post-content { + margin-left: 0; + margin-right: 0; + } +} +.posts-collapse .post-content .collection-title { + font-size: 1.125em; + position: relative; +} +.posts-collapse .post-content .collection-title::before { + background: #999; + border: 1px solid #fff; + margin-left: -6px; + margin-top: -4px; + position: absolute; + top: 50%; + border-radius: 50%; + content: ' '; + height: 10px; + width: 10px; +} +.posts-collapse .post-content .collection-year { + font-size: 1.5em; + font-weight: bold; + margin: 60px 0; + position: relative; +} +.posts-collapse .post-content .collection-year::before { + background: #bbb; + margin-left: -4px; + margin-top: -4px; + position: absolute; + top: 50%; + border-radius: 50%; + content: ' '; + height: 8px; + width: 8px; +} +.posts-collapse .post-content .collection-header { + display: block; + margin-left: 20px; +} +.posts-collapse .post-content .collection-header small { + color: #bbb; + margin-left: 5px; +} +.posts-collapse .post-content .post-header { + border-bottom: 1px dashed #ccc; + margin: 30px 2px 0; + padding-left: 15px; + position: relative; + transition: border 0.2s ease-in-out; +} +.posts-collapse .post-content .post-header::before { + background: #bbb; + border: 1px solid #fff; + left: -6px; + position: absolute; + top: 0.75em; + transition: background 0.2s ease-in-out; + border-radius: 50%; + content: ' '; + height: 6px; + width: 6px; +} +.posts-collapse .post-content .post-header:hover { + border-bottom-color: #666; +} +.posts-collapse .post-content .post-header:hover::before { + background: #222; +} +.posts-collapse .post-content .post-meta-container { + display: inline; + font-size: 0.75em; + margin-right: 10px; +} +.posts-collapse .post-content .post-title { + display: inline; +} +.posts-collapse .post-content .post-title a { + border-bottom: 0; + color: var(--link-color); +} +.posts-collapse .post-content::before { + background: #f5f5f5; + content: ' '; + height: 100%; + margin-left: -2px; + position: absolute; + top: 1.25em; + width: 4px; +} +.post-body { + font-family: Lato, 'PingFang SC', 'Microsoft YaHei', sans-serif; + overflow-wrap: break-word; +} +@media (min-width: 1200px) { + .post-body { + font-size: 1.125em; + } +} +@media (min-width: 992px) { + .post-body { + text-align: justify; + } +} +@media (max-width: 991px) { + .post-body { + text-align: justify; + } +} +.post-body h1 .header-anchor, +.post-body h2 .header-anchor, +.post-body h3 .header-anchor, +.post-body h4 .header-anchor, +.post-body h5 .header-anchor, +.post-body h6 .header-anchor, +.post-body h1 .headerlink, +.post-body h2 .headerlink, +.post-body h3 .headerlink, +.post-body h4 .headerlink, +.post-body h5 .headerlink, +.post-body h6 .headerlink { + border-bottom-style: none; + color: inherit; + float: right; + font-size: 0.875em; + margin-left: 10px; + opacity: 0; +} +.post-body h1 .header-anchor::before, +.post-body h2 .header-anchor::before, +.post-body h3 .header-anchor::before, +.post-body h4 .header-anchor::before, +.post-body h5 .header-anchor::before, +.post-body h6 .header-anchor::before, +.post-body h1 .headerlink::before, +.post-body h2 .headerlink::before, +.post-body h3 .headerlink::before, +.post-body h4 .headerlink::before, +.post-body h5 .headerlink::before, +.post-body h6 .headerlink::before { + content: '\f0c1'; + font-family: 'Font Awesome 6 Free'; + font-weight: 900; +} +.post-body h1:hover .header-anchor, +.post-body h2:hover .header-anchor, +.post-body h3:hover .header-anchor, +.post-body h4:hover .header-anchor, +.post-body h5:hover .header-anchor, +.post-body h6:hover .header-anchor, +.post-body h1:hover .headerlink, +.post-body h2:hover .headerlink, +.post-body h3:hover .headerlink, +.post-body h4:hover .headerlink, +.post-body h5:hover .headerlink, +.post-body h6:hover .headerlink { + opacity: 0.5; +} +.post-body h1:hover .header-anchor:hover, +.post-body h2:hover .header-anchor:hover, +.post-body h3:hover .header-anchor:hover, +.post-body h4:hover .header-anchor:hover, +.post-body h5:hover .header-anchor:hover, +.post-body h6:hover .header-anchor:hover, +.post-body h1:hover .headerlink:hover, +.post-body h2:hover .headerlink:hover, +.post-body h3:hover .headerlink:hover, +.post-body h4:hover .headerlink:hover, +.post-body h5:hover .headerlink:hover, +.post-body h6:hover .headerlink:hover { + opacity: 1; +} +.post-body .exturl .fa { + font-size: 0.875em; + margin-left: 4px; +} +.post-body img + figcaption, +.post-body .fancybox + figcaption { + color: #999; + font-size: 0.875em; + font-weight: bold; + line-height: 1; + margin: -15px auto 15px; + text-align: center; +} +.post-body iframe, +.post-body img, +.post-body video, +.post-body embed { + margin-bottom: 20px; +} +.post-body .video-container { + height: 0; + margin-bottom: 20px; + overflow: hidden; + padding-top: 75%; + position: relative; + width: 100%; +} +.post-body .video-container iframe, +.post-body .video-container object, +.post-body .video-container embed { + height: 100%; + left: 0; + margin: 0; + position: absolute; + top: 0; + width: 100%; +} +.post-gallery { + display: flex; + min-height: 200px; +} +.post-gallery .post-gallery-image { + flex: 1; +} +.post-gallery .post-gallery-image:not(:first-child) { + clip-path: polygon(40px 0, 100% 0, 100% 100%, 0 100%); + margin-left: -20px; +} +.post-gallery .post-gallery-image:not(:last-child) { + margin-right: -20px; +} +.post-gallery .post-gallery-image img { + height: 100%; + object-fit: cover; + opacity: 1; + width: 100%; +} +.posts-expand .post-gallery { + margin-bottom: 60px; +} +.posts-collapse .post-gallery { + margin: 15px 0; +} +.posts-expand .post-header { + font-size: 1.125em; + margin-bottom: 60px; + text-align: center; +} +.posts-expand .post-title { + font-size: 1.5em; + font-weight: normal; + margin: initial; + overflow-wrap: break-word; +} +.posts-expand .post-title-link { + border-bottom: 0; + color: var(--link-color); + display: inline-block; + position: relative; +} +.posts-expand .post-title-link::before { + background: var(--link-color); + bottom: 0; + content: ''; + height: 2px; + left: 0; + position: absolute; + transform: scaleX(0); + transition: transform 0.2s ease-in-out; + width: 100%; +} +.posts-expand .post-title-link:hover::before { + transform: scaleX(1); +} +.posts-expand .post-title-link .fa { + font-size: 0.875em; + margin-left: 5px; +} +.post-sticky-flag { + display: inline-block; + margin-right: 8px; + transform: rotate(30deg); +} +.posts-expand .post-meta-container { + color: #999; + font-family: Lato, 'PingFang SC', 'Microsoft YaHei', sans-serif; + font-size: 0.75em; + margin-top: 3px; +} +.posts-expand .post-meta-container .post-description { + font-size: 0.875em; + margin-top: 2px; +} +.posts-expand .post-meta-container time { + border-bottom: 1px dashed #999; +} +.post-meta { + display: flex; + flex-wrap: wrap; + justify-content: center; +} +:not(.post-meta-break) + .post-meta-item::before { + content: '|'; + margin: 0 0.5em; +} +.post-meta-item-icon { + margin-right: 3px; +} +@media (max-width: 991px) { + .post-meta-item-text { + display: none; + } +} +.post-meta-break { + flex-basis: 100%; + height: 0; +} +.post-nav { + border-top: 1px solid #eee; + display: flex; + gap: 30px; + justify-content: space-between; + margin-top: 1em; + padding: 10px 5px 0; +} +.post-nav-item { + flex: 1; +} +.post-nav-item a { + border-bottom: 0; + display: block; + font-size: 0.875em; + line-height: 1.6; +} +.post-nav-item a:active { + top: 2px; +} +.post-nav-item .fa { + font-size: 0.75em; +} +.post-nav-item:first-child .fa { + margin-right: 5px; +} +.post-nav-item:last-child { + text-align: right; +} +.post-nav-item:last-child .fa { + margin-left: 5px; +} +.post-footer { + display: flex; + flex-direction: column; + justify-content: center; +} +.post-eof { + background: #ccc; + height: 1px; + margin: 80px auto 60px; + width: 8%; +} +.post-block:last-of-type .post-eof { + display: none; +} +.post-copyright ul { + list-style: none; + overflow: hidden; + padding: 0.5em 1em; + position: relative; + background: var(--card-bg-color); + border-left: 3px solid #ff2a2a; + margin: 1em 0 0; +} +.post-copyright ul::after { + content: '\f25e'; + font-family: 'Font Awesome 6 Brands'; + font-size: 200px; + opacity: 0.1; + position: absolute; + right: -50px; + top: -150px; +} +.post-tags { + margin-top: 40px; + text-align: center; +} +.post-tags a { + display: inline-block; + font-size: 0.8125em; +} +.post-tags a:not(:last-child) { + margin-right: 10px; +} +.social-like { + border-top: 1px solid #eee; + font-size: 0.875em; + margin-top: 1em; + padding-top: 1em; + display: flex; + flex-wrap: wrap; + justify-content: center; +} +.social-like a { + border-bottom: none; +} +.reward-container { + margin: 1em 0 0; + padding: 1em 0; + text-align: center; +} +.reward-container button { + background: transparent; + color: #fc6423; + cursor: pointer; + line-height: 2; + padding: 0 15px; + border: 2px solid #fc6423; + border-radius: 2px; + outline: 0; + transition: all 0.2s ease-in-out; + vertical-align: text-top; +} +.reward-container button:hover { + background: #fc6423; + color: #fff; +} +.post-reward { + display: none; + padding-top: 20px; +} +.post-reward.active { + display: block; +} +.post-reward div { + display: inline-block; +} +.post-reward div span { + display: block; +} +.post-reward img { + display: inline-block; + margin: 0.8em 2em 0; + max-width: 100%; + width: 180px; +} +@keyframes next-roll { + from { + transform: rotateZ(30deg); + } + to { + transform: rotateZ(-30deg); + } +} +.category-all-page .category-all-title { + text-align: center; +} +.category-all-page .category-all { + margin-top: 20px; +} +.category-all-page .category-list { + list-style: none; + margin: 0; + padding: 0; +} +.category-all-page .category-list-item { + margin: 5px 10px; +} +.category-all-page .category-list-count { + color: #bbb; +} +.category-all-page .category-list-count::before { + content: ' ('; +} +.category-all-page .category-list-count::after { + content: ') '; +} +.category-all-page .category-list-child { + padding-left: 10px; +} +.event-list hr { + background: #222; + margin: 20px 0 45px; +} +.event-list hr::after { + background: #222; + color: #fff; + content: 'NOW'; + display: inline-block; + font-weight: bold; + padding: 0 5px; +} +.event-list .event { + --event-background: #222; + --event-foreground: #bbb; + --event-title: #fff; + background: var(--event-background); + padding: 15px; +} +.event-list .event .event-summary { + border-bottom: 0; + color: var(--event-title); + margin: 0; + padding: 0 0 0 35px; + position: relative; +} +.event-list .event .event-summary::before { + animation: dot-flash 1s alternate infinite ease-in-out; + background: var(--event-title); + left: 0; + margin-top: -6px; + position: absolute; + top: 50%; + border-radius: 50%; + content: ' '; + height: 12px; + width: 12px; +} +.event-list .event:nth-of-type(odd) .event-summary::before { + animation-delay: 0.5s; +} +.event-list .event:not(:last-child) { + margin-bottom: 20px; +} +.event-list .event .event-relative-time { + color: var(--event-foreground); + display: inline-block; + font-size: 12px; + font-weight: normal; + padding-left: 12px; +} +.event-list .event .event-details { + color: var(--event-foreground); + display: block; + line-height: 18px; + padding: 6px 0 6px 35px; +} +.event-list .event .event-details::before { + color: var(--event-foreground); + display: inline-block; + margin-right: 9px; + width: 14px; + font-family: 'Font Awesome 6 Free'; + font-weight: 900; +} +.event-list .event .event-details.event-location::before { + content: '\f041'; +} +.event-list .event .event-details.event-duration::before { + content: '\f017'; +} +.event-list .event .event-details.event-description::before { + content: '\f024'; +} +.event-list .event-past { + --event-background: #f5f5f5; + --event-foreground: #999; + --event-title: #222; +} +@keyframes dot-flash { + from { + opacity: 1; + transform: scale(1); + } + to { + opacity: 0; + transform: scale(0.8); + } +} +ul.breadcrumb { + font-size: 0.75em; + list-style: none; + margin: 1em 0; + padding: 0 2em; + text-align: center; +} +ul.breadcrumb li { + display: inline; +} +ul.breadcrumb li:not(:first-child)::before { + content: '/\00a0'; + font-weight: normal; + padding: 0.5em; +} +ul.breadcrumb li:last-child { + font-weight: bold; +} +.tag-cloud { + text-align: center; +} +.tag-cloud a { + display: inline-block; + margin: 10px; +} +.tag-cloud-0 { + border-bottom-color: #aaa; + color: #aaa; +} +.tag-cloud-1 { + border-bottom-color: #9a9a9a; + color: #9a9a9a; +} +.tag-cloud-2 { + border-bottom-color: #8b8b8b; + color: #8b8b8b; +} +.tag-cloud-3 { + border-bottom-color: #7c7c7c; + color: #7c7c7c; +} +.tag-cloud-4 { + border-bottom-color: #6c6c6c; + color: #6c6c6c; +} +.tag-cloud-5 { + border-bottom-color: #5d5d5d; + color: #5d5d5d; +} +.tag-cloud-6 { + border-bottom-color: #4e4e4e; + color: #4e4e4e; +} +.tag-cloud-7 { + border-bottom-color: #3e3e3e; + color: #3e3e3e; +} +.tag-cloud-8 { + border-bottom-color: #2f2f2f; + color: #2f2f2f; +} +.tag-cloud-9 { + border-bottom-color: #202020; + color: #202020; +} +.tag-cloud-10 { + border-bottom-color: #111; + color: #111; +} +@media (prefers-color-scheme: dark) { + .tag-cloud-0 { + border-bottom-color: #555; + color: #555; + } + .tag-cloud-1 { + border-bottom-color: #646464; + color: #646464; + } + .tag-cloud-2 { + border-bottom-color: #737373; + color: #737373; + } + .tag-cloud-3 { + border-bottom-color: #828282; + color: #828282; + } + .tag-cloud-4 { + border-bottom-color: #929292; + color: #929292; + } + .tag-cloud-5 { + border-bottom-color: #a1a1a1; + color: #a1a1a1; + } + .tag-cloud-6 { + border-bottom-color: #b0b0b0; + color: #b0b0b0; + } + .tag-cloud-7 { + border-bottom-color: #c0c0c0; + color: #c0c0c0; + } + .tag-cloud-8 { + border-bottom-color: #cfcfcf; + color: #cfcfcf; + } + .tag-cloud-9 { + border-bottom-color: #dedede; + color: #dedede; + } + .tag-cloud-10 { + border-bottom-color: #eee; + color: #eee; + } +} +.utterances { + max-width: unset; +} +.search-active { + overflow: hidden; +} +.search-pop-overlay { + background: rgba(0,0,0,0); + display: flex; + height: 100%; + left: 0; + position: fixed; + top: 0; + transition: visibility 0.4s, background 0.4s; + visibility: hidden; + width: 100%; + z-index: 40; +} +.search-active .search-pop-overlay { + background: rgba(0,0,0,0.3); + visibility: visible; +} +.search-popup { + background: var(--card-bg-color); + border-radius: 5px; + height: 80%; + margin: auto; + transform: scale(0); + transition: transform 0.4s; + width: 700px; +} +.search-active .search-popup { + transform: scale(1); +} +@media (max-width: 767px) { + .search-popup { + border-radius: 0; + height: 100%; + width: 100%; + } +} +.search-popup .search-icon, +.search-popup .popup-btn-close { + color: #999; + font-size: 18px; + padding: 0 10px; +} +.search-popup .popup-btn-close { + cursor: pointer; +} +.search-popup .popup-btn-close:hover .fa { + color: #222; +} +.search-popup .search-header { + background: #eee; + border-top-left-radius: 5px; + border-top-right-radius: 5px; + display: flex; + padding: 5px; +} +@media (prefers-color-scheme: dark) { + .search-popup .search-header { + background: #666; + } +} +.search-popup input.search-input { + background: transparent; + border: 0; + outline: 0; + width: 100%; +} +.search-popup input.search-input::-webkit-search-cancel-button { + display: none; +} +.search-popup .search-result-container { + height: calc(100% - 55px); + overflow: auto; + padding: 5px 25px; +} +.search-popup .search-result-container hr { + margin: 5px 0 10px; +} +.search-popup .search-result-container hr:first-child { + display: none; +} +.search-popup .search-result-list { + margin: 0 5px; + padding: 0; +} +.search-popup a.search-result-title { + font-weight: bold; +} +.search-popup p.search-result { + border-bottom: 1px dashed #ccc; + padding: 5px 0; +} +.search-popup .search-input-container { + flex-grow: 1; + padding: 2px; +} +.search-popup .no-result { + display: flex; +} +.search-popup .search-result-list { + width: 100%; +} +.search-popup .search-result-icon { + color: #ccc; + margin: auto; +} +mark.search-keyword { + background: transparent; + border-bottom: 1px dashed #ff2a2a; + color: #ff2a2a; + font-weight: bold; +} +.use-motion .animated { + animation-fill-mode: none; + visibility: inherit; +} +.use-motion .sidebar .animated { + animation-fill-mode: both; +} +header.header { + background: var(--content-bg-color); + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12); +} +@media (max-width: 991px) { + header.header { + border-radius: initial; + } +} +.main { + align-items: stretch; + display: flex; + justify-content: space-between; + margin: 0 auto; + width: calc(100% - 20px); +} +@media (max-width: 767px) { + .main { + width: auto; + } +} +@media (min-width: 1200px) { + .main { + width: 1160px; + } +} +@media (min-width: 1600px) { + .main { + width: 73%; + } +} +@media (max-width: 991px) { + .main { + display: block; + width: auto; + } +} +.main-inner { + border-radius: initial; + box-sizing: border-box; + width: calc(100% - 252px); +} +@media (max-width: 991px) { + .main-inner { + border-radius: initial; + width: 100%; + } +} +.footer-inner { + padding-left: 252px; +} +@media (max-width: 991px) { + .footer-inner { + padding-left: 0; + padding-right: 0; + width: auto; + } +} +.column { + width: 240px; +} +@media (max-width: 991px) { + .column { + width: auto; + } +} +.site-brand-container { + background: var(--theme-color); +} +@media (max-width: 991px) { + .site-nav-on .site-brand-container { + box-shadow: 0 0 16px rgba(0,0,0,0.5); + } +} +.site-meta { + padding: 20px 0; +} +@media (min-width: 768px) and (max-width: 991px) { + .site-nav-toggle, + .site-nav-right { + display: flex; + flex-direction: column; + justify-content: center; + } +} +.site-nav-toggle .toggle, +.site-nav-right .toggle { + color: #fff; +} +.site-nav-toggle .toggle .toggle-line, +.site-nav-right .toggle .toggle-line { + background: #fff; +} +@media (min-width: 768px) and (max-width: 991px) { + .site-nav { + --scroll-height: 0; + height: 0; + overflow: hidden; + transition: 0.2s ease-in-out; + transition-property: height, visibility; + visibility: hidden; + } + body:not(.site-nav-on) .site-nav .animated { + animation: none; + } + body.site-nav-on .site-nav { + height: var(--scroll-height); + visibility: unset; + } +} +.menu .menu-item { + display: block; + margin: 0; +} +.menu .menu-item a { + padding: 5px 20px; + position: relative; + text-align: left; + transition-property: background-color; +} +@media (max-width: 991px) { + .menu .menu-item.menu-item-search { + display: none; + } +} +.menu .menu-item .badge { + background: #ccc; + border-radius: 10px; + color: var(--content-bg-color); + float: right; + padding: 2px 5px; + text-shadow: 1px 1px 0 rgba(0,0,0,0.1); +} +.main-menu .menu-item-active::after { + background: #bbb; + border-radius: 50%; + content: ' '; + height: 6px; + margin-top: -3px; + position: absolute; + right: 15px; + top: 50%; + width: 6px; +} +.sub-menu { + margin: 0; + padding: 6px 0; +} +.sub-menu .menu-item { + display: inline-block; +} +.sub-menu .menu-item a { + background: transparent; + margin: 5px 10px; + padding: initial; +} +.sub-menu .menu-item a:hover { + background: transparent; + color: #fc6423; +} +.sub-menu .menu-item-active { + border-bottom-color: #fc6423; + color: #fc6423; +} +.sub-menu .menu-item-active:hover { + border-bottom-color: #fc6423; +} +.sidebar { + position: -webkit-sticky; + position: sticky; + top: 12px; +} +@media (max-width: 991px) { + .sidebar { + display: none; + } +} +.sidebar-inner { + background: var(--content-bg-color); + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + box-sizing: border-box; + color: var(--text-color); + margin-top: 12px; + max-height: calc(100vh - 24px); + visibility: hidden; +} +.site-state-item { + padding: 0 10px; +} +.sidebar .sidebar-button { + border-bottom: 1px dotted #ccc; + border-top: 1px dotted #ccc; +} +.sidebar .sidebar-button button { + border: 0; + color: #fc6423; + display: block; + width: 100%; +} +.sidebar .sidebar-button button:hover { + background: none; + border: 0; + color: #e34603; +} +.links-of-author { + display: flex; + flex-wrap: wrap; + justify-content: center; +} +.links-of-author-item { + margin: 5px 0 0; +} +.links-of-author-item a { + box-sizing: border-box; + display: inline-block; + max-width: 100%; + overflow: hidden; + padding: 0 5px; + text-overflow: ellipsis; + white-space: nowrap; +} +.links-of-author-item a { + border-bottom: 0; + border-radius: 4px; + display: block; +} +.links-of-author-item a:hover { + background: var(--body-bg-color); +} +.main-inner .sub-menu, +.main-inner .post-block, +.main-inner .tabs-comment, +.main-inner > .comments, +.main-inner .comment-position .comments, +.main-inner .pagination { + background: var(--content-bg-color); + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12); +} +.main-inner .post-block:not(:first-child):not(:first-child) { + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + margin-top: 12px; +} +@media (min-width: 768px) and (max-width: 991px) { + .main-inner .post-block:not(:first-child):not(:first-child) { + margin-top: 10px; + } +} +@media (max-width: 767px) { + .main-inner .post-block:not(:first-child):not(:first-child) { + margin-top: 8px; + } +} +.main-inner .tabs-comment, +.main-inner > .comments, +.main-inner .comment-position .comments, +.main-inner .pagination { + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + margin-top: 12px; +} +@media (min-width: 768px) and (max-width: 991px) { + .main-inner .tabs-comment, + .main-inner > .comments, + .main-inner .comment-position .comments, + .main-inner .pagination { + margin-top: 10px; + } +} +@media (max-width: 767px) { + .main-inner .tabs-comment, + .main-inner > .comments, + .main-inner .comment-position .comments, + .main-inner .pagination { + margin-top: 8px; + } +} +.post-block, +.comments { + padding: 40px; +} +.post-eof { + display: none; +} +.pagination { + border-top: initial; + padding: 10px 0; +} +.post-body h1, +.post-body h2 { + border-bottom: 1px solid #eee; +} +.post-body h3 { + border-bottom: 1px dotted #eee; +} +@media (min-width: 768px) and (max-width: 991px) { + .main-inner { + padding: 10px; + } + .posts-expand .post-button { + margin-top: 20px; + } + .post-block { + padding: 20px; + } + .comments { + padding: 10px 20px; + } +} +@media (max-width: 767px) { + .main-inner { + padding: 8px; + } + .posts-expand .post-button { + margin: 12px 0; + } + .post-block { + padding: 12px; + } + .comments { + padding: 10px 12px; + } +} diff --git a/css/noscript.css b/css/noscript.css new file mode 100644 index 0000000..6418c57 --- /dev/null +++ b/css/noscript.css @@ -0,0 +1,48 @@ +body { + margin-top: 2rem; +} +.use-motion .menu-item, +.use-motion .sidebar, +.use-motion .sidebar-inner, +.use-motion .post-block, +.use-motion .pagination, +.use-motion .comments, +.use-motion .post-header, +.use-motion .post-body, +.use-motion .collection-header { + visibility: visible; +} +.use-motion .column, +.use-motion .site-brand-container .toggle, +.use-motion .footer { + opacity: initial; +} +.use-motion .site-title, +.use-motion .site-subtitle, +.use-motion .custom-logo-image { + opacity: initial; + top: initial; +} +.use-motion .logo-line { + transform: scaleX(1); +} +.search-pop-overlay, +.sidebar-nav { + display: none; +} +.sidebar-panel { + display: block; +} +.noscript-warning { + background-color: #f55; + color: #fff; + font-family: sans-serif; + font-size: 1rem; + font-weight: bold; + left: 0; + position: fixed; + text-align: center; + top: 0; + width: 100%; + z-index: 50; +} diff --git a/en/first-post/index.html b/en/first-post/index.html new file mode 100644 index 0000000..993aedb --- /dev/null +++ b/en/first-post/index.html @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Sorry! Post Not Found | ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + + +
+ + + +
+ + + + + + + +
+

+ Sorry! Post Not Found +

+ + +
+ + + + +
+ +
+ + + + + +
+ + + +
+
+
+ + + + + + +
+
+ +
+ +
+ + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/en/index.html b/en/index.html new file mode 100644 index 0000000..02107c4 --- /dev/null +++ b/en/index.html @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + +
+

+ +

+ + +
+ + + + +
+ + +
+ + + + + +
+
+ +
+
+
+ + + + + +
+
+ +
+ +
+ + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/en/test/index.html b/en/test/index.html new file mode 100644 index 0000000..2f5b74f --- /dev/null +++ b/en/test/index.html @@ -0,0 +1,365 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test (英文) | ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + + +
+ + + +
+ + + + + + + +
+

+ test (英文) +

+ + +
+ + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+
+ +
+ +
+ + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/github-card-lib/githubcard.js b/github-card-lib/githubcard.js new file mode 100644 index 0000000..5059f3a --- /dev/null +++ b/github-card-lib/githubcard.js @@ -0,0 +1 @@ +(function(e){var t="//lab.lepture.com/github-cards/";var r,i=0;var a=e.getElementsByTagName("meta");var n,l,c,d;for(r=0;rPx#OHfQyMIs_1FE20E)zv2_C(h2!$jHdT!ovUm|GT@p zWo2de_xJq#{8d#|IyyQ>M@Qx533`J9dBE>4W{r{KFjMLpp4N$2iMRJCGfPM7@le{)BPzVgz zp?ByVdWYVj|4-=tUS5SkR}Te{-Fr#UrxsqJ9+ed6YY9KmoXq6n^B9DRMwF@T2u)qH z!=wh-sAdPH_8fFy0-I1d68Zp);!FTtdweUZc2nr)?5^hh99w*FOU z@NYFT^!v%iPrGly0Q*+sLVtesYh+the|AET4WK8lR^dv1IZ-3FhAuiK5V|-?gf2#j z&_yW`x^K3G&OKl4kP$$ih@p!?B6M+)2(4Rz(6$=G6WT(;6uP)cgkEi(xI(Yi7`D(w zo(Y6r>FyarFV`4e&^@lk@PfWf|DSeM5}?agV`>aDXt-c%3^!*Ij0g0Q8X5*mjbRC$9oB0MOK51O_53LU8p`RzcozW; zx3wC>721@58xhdzx?E$}LW9xpjUu4UhOZO>Z8Us+D+1bR_}&sQXJ}B}yadb|8fraT zV|YUw4WF(>KpPF;mjp}*eTo5XG<+u!&}PFoihwq!uhI`XPYZ1{e1FDs0nqR?Ym5YF zqv0DwK${KUMFjNpqb>9(0vg8Y^d$otmiJc}L#s|8wD~Z~fHtQu8PG6DgwAq-&}PFY z1KMo(WI!7YpAcwxN`zJiV(2pgG_<|npE+y^Z8UsBppAx42(;Po$$&N*J{izP!?y+W zi2YsL=fkK`KXsymhWcmL#_y-S*Y&V_u#us^S9pDvbMSkxv7uidoc36Qa`CQ+5AC^d z=CTJ%0ZkrQ=v?t(E_)>OCL8YaU+nX$$--iAUNb;m^jBG2!5*5enU|exmY3aQcv=O- znjO}ft-yw2|VZs2g-W`Epf@n*5gsJ2LLtC^nFlq8+?%Xc!{Z3_|hFI~!oeU$ep z%4jE9Y9n1{ah68@W{++)8|fc~HIM4)QycHpg}3P<_K$M$L~}7jBXs?6bDwjvo+I;D zsoi}398La6+~*osM@45l#ptQ6MrZFz597*no3v)ffsUEletxWeW~`A+ntYvaeQj?e z*kSqGXZsrrhZ>IsxH$({IR{z11zkG`GR^j$#{%z41lp5(Ne#glJc5nj-BUaKR!X?# zzN6F-<0?&z;|30?9q0Z}oHG*G)Q)s%Db~RbjMU)mp-u&Dmm0zkF~o9eRh}p?ByVnjn4wmEZ*c=^{+H00012dQ@0+Qek%>aB^>E zX>4U6ba`-PAZc)PV*mhnoa6Eg2ys>@D9TUE%t_@^00ScnE@KN5BNI!L6ay0=M1VBI uWCJ6!R3OXP)X2ol#2my2%YaCrN-hBE7ZG&wLN%2D0000`v literal 0 HcmV?d00001 diff --git a/images/avatar.gif b/images/avatar.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b5d744b17ae541e331e9296640f0418d4e7c821 GIT binary patch literal 1785 zcmc(eiCfYK1Au>kC}AoSube4(tj%1XGs-IqwL{J4`&#nMW_^ZNl2cuo5V((w@KF|BSr-Dy?Ci?Qibx<>SXfwIUgogbVv$IpPzd>aHjAZHDkmh84Xt*5 zetu+ln8)SL&&~0%H{C|LeZF5GCnaWl}%00$Q845^9#jbGjmg0YYZq% z1HxF_nwpz|7kNflF9N9Q5iJvD0w&0S9`em0*f}BgKh?c=3?YfFSYWEn(AG8D&f9}T zF|^Ozg(s2g21~=--BqP2;U+HbKfJ-6t^Mpd+Vd(rH9aPG>VjZaYzrEFkzM1W4W*?PEbt7_?0ObX=R3 zfm*vF0T2e?IaX0s7omGCFNR2kL@?w2C0yDOh`J7v?|JOT+#U{?U0_{uqpk}`=r+VP zC12fo8O3{HxoZwDCgwbOZNi&VzKT}`9?t!=AVtC=y%<;l+psDMv*su+IEO5Q?TgN0 z=&H7$Gf?L=qqi5`@bimQ^6tFqKOeh&ck{=aiDvo7nlqFv&4wkwGeO}maQB{~k%?ck zE7Cdok^c8R9AM5IP1JJ)~Cz5Sv{>KNvX5%lB* z9%4%%UT_Wehfmg@gc%I&MaBNNZg03yUt|q!t%QXZJ9njhaoqbXT&%>qob*i$7vJ9{ z<5xiO5wWzi1105!#^PQCsto8sM4BepmIPkI5zoZ?*-1r_m8zst+M_T+_C9c`BdGyZ z()dMh4bJ_{K1iXtN>KzH?;xb$$ACsu8o5!>Fp}gw-jJ7^zUL{9PKe8II{SSj5atkhyp)&z8{9L0;5~dN8IV%e^8!Cm#@R*x{T5QR+y!yez%{*GTHhd}S&e?yi8`c_py&b`IA#{jM67?2A- z96X6KMj50BNJHBI?9Zj78OXyk^6Q>ufCnUfBpmb@X3fgX_M_S)8KAM>*1*t+*UyZc z^4w;`mO~qzDlqH`0`+#Ffh1i?m ztGf;Harv-B6uCo0TB=_qclsj^84AC_7^!(v;Oi5;Kl$z+X{K*fpE(N zWyVw!0PLHXpb*M(Bl@dIQsB%LhJP-?;tE={h{Y(QpYjdD9`hDbfEiJN) znh_Ry7j#5m>=)N|?3XDh_r1_zMIHc&wJ0=9`=ky7CuDT$ia(uo`t1DDrGgKeCI{e@ z{!P0)EBNAc7g6Tp|0X`9!<~%Y?miKrA{MDPqrRMh1+NgBt?oT@PRlxMyn2}v=_`HO z`{&U{yA!^h75UlWQ#)`T_pCemHpYGaJuhRu^ZY~){h#)L$)<4Zd(gT$0zX0)xk sj2>F=QOaOm@==$w^6D`S!9xiV>IXt*{ozi=Q1Vaehf=%aC;;&N3lE276aWAK literal 0 HcmV?d00001 diff --git a/images/core/404.png b/images/core/404.png new file mode 100644 index 0000000000000000000000000000000000000000..c33436989f9272baed394c35b474c2cadc6d2e96 GIT binary patch literal 26231 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 B_yYg{ literal 0 HcmV?d00001 diff --git a/images/favicon-16x16-next.png b/images/favicon-16x16-next.png new file mode 100644 index 0000000000000000000000000000000000000000..de8c5d3a5f8215c3f7b095c9e284e061bda65f86 GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%A+0*}aIAe|4wj2{=>aRxHH1AIbUeKHFb!9Yn#DLy_vBO^maMdk0`zd#Zw z0tY~@yu3V6p{Ay$mX_Az$B+O0`?r4m`qisfPnj~MwY3$f@^9nqaG!lvI6;x#X;^) z4C~IxyaaMM3p^r=f%IJvW-JI^#13S11^9%x`eYU=fq|TyoQjGHgbgIWfB*jF%NI8{ zx2;>Zu3x`iO-&6bs0aoM3JPUqWq0n}*}Qo(P|Le_@AmKC57(%ytPE5IHwwrGiqzKD z{{8#c)YSCg!Gk}3{P_R>|Gj(no6k4eJyZq^Jd4Jw%*zpM57yY9pK zMcQgs21j>QigM54W!RCVazM0UCtHDVhG46xh5pA!(TqDDnlwLEm~eRS(JM@6p3293 zNMwDW(!P~x!s$%jghh-wOB)P19fJ88oOHECttPa5*~LF^Vp#0%pwrbyN~~|szWB|o z_J4%n&U>rEu5s2%I6jof{A;(j!|>g|;yo?%ZfFGheBJp^9_Zijs*s41pu}>8f};Gi z%$!t(lFEWqh0KDIWCn(cIgdZ_a1@4VXq@stea7=?5CgL^w_Y;0u(GiCWD#az1(ybs x!zs+ln?n>%-?(z($eANDN7zp{cr5VJV|XPlSn|oqbSlsa22WQ%mvv4FO#p=N1nU3* literal 0 HcmV?d00001 diff --git a/images/icons/apple-touch-icon.png b/images/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9234cf1dafacfbac0c1d0b3ea4d14bd51c4fafd3 GIT binary patch literal 4616 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

9GCas@ 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 z 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

tdT}|Rx_T8n&g?Sq){l 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 literal 0 HcmV?d00001 diff --git a/images/icons/eddy-icon-white-64.png b/images/icons/eddy-icon-white-64.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d5954da66230f6bc682e76d88213a6341c361b GIT binary patch literal 1402 zcmV-=1%>*FP)L3Ov{(lC-c7xE%( z5s^C=oj6w@Eq5+7&dC zHYsSV!4}Aq`^(I@>$L?69?&kQ76GKOcT8AxALGFwg4+uyar?Leq z$bA%xEorR57N~T0_rz@(F*QzQ3)GW)O45?i$MI}|x_9?+j1Q4X6ieF1;H)>g*yM9^ z_uCmUG$L|Dxh?L%!(j~MFI5TGo&nI6myB~svQ1zTgKbifZVdF~=Rp3Afq6^S*d(}; zu3`)H#Bad67fc{99~#R_dc%xSgb)G5CV5IC4UO_UeaaRJ^C8jCMf)m!1W?1xXaFz4 zlcU74w#cK!{g457|=xqUc(kea>sN>x;g>F zBw{ZtB+{T58)x99a^GTl0Tv-(fJB)so;&ShP)N(&ha>^d#C+^b(eT*f>gsB5$_w-F zM^T2~rreuYZ%p~_R@%O42Wu;4qJ)3}t-adUp1SviO?l{@uq3j3X; z4>brNG^TuYZD9salb@@CpQNPm0W0?h^RKdf7NZsc19qYx+!%BP=cwS|9Q02QlKYLQ zh}r}Y8jK!wRs~;0Imlu~a`#~g0tnaQOt2IIXM-mK#D9(_0>ouwpK8D%;Fma0P&)p_ zIo7z1k_4C_pUt0lg2CpBuowN9|H0%YJHaG?wz3Zr4oku-Q#!GJbfRBFd>anf^xV7c z<|BY6KiQe3jLsBV+|VkoMrKzV-%NQyW3<`l7&{SIJA^E-6?UoXQ3HAFtyqsO_NKhG zOXmH!0{un{EyjYIuBm$fok%-1lO3Ry*rF4?+$V}OW2QwDEuLb##lLI4uy8*@aCeoY zCthktNIEgpI6lfhsyd8;x?gfHMF7RV3G_W|h^9a>yxVI-pq3dV_I=;&0tC>HEVw_w z@Zs+Z7;wI7M+IBdCLl6Sg)|groW2fM5uiN%E2Kef8nG0>w?zt^7b7I|EsiPo3?f>TA?M9d4E5!nK?2tnOA(-O zieHYpz&u-&5TJ2PxpRR$TWm+?ZJFnsPVQVF?-lv*w9t(93Tu!%7pV8N&{(6~xxoCV z#royW1@fO33g;wuE|9hb)t#^0xxmyGmm_yBMz&BFDfe^1A9SgbepLb;r{fY9?Zx(P5gCD3$}*4K`u5h~+no7_ z5C3j+I=1HYH}6H$5)W>h;;`jmTlLC?+dju z%j^HT;{|Klm7c0a>vXzVg8FVQO%j+L@V~7A?&<%A7rSrFoEZ{ZyxE z`SWg@th}Dvy^l*MOUy~}@g8lr))lEP8?NsCz4`UKKkUEW7JW@!+_4B452_`u5hW>! zC8<`)MX5lF!N|bKMAyJX*U&V?z|zXl$jZn-+rYrez`!N(jV_9Y-29Zxv`X9>Ol?9Y z0yTtJg+!DDC6+4`6y>L7=AdS literal 0 HcmV?d00001 diff --git a/images/icons/favicon-32x32.png b/images/icons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..798f16ee86672a392b49567b515e206eecb144f3 GIT binary patch literal 1341 zcmV-D1;YA?P)kdg00004XF*Lt006O% z3;baP0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt00(qQO+^Rj1P=)e6;+uPu>b%A;z>k7R7l5t)qQByWfTYS&+p!q z+q98+x2zm!tGwDU2s6qsYi5zAk)geS(pss7lJtUwi$(sCvnY#NG&RJ?$`X{KW}6m9 zK`-<&^O{++gvyrAa;ejKpZ;(!_iop|e?7nFIp6Pj&Uw!7oQNb`=q}Th86X2e8ZnV9 zbZD{3D!bSzN)j{GQssT^(jp_pqy#a25bRKGqjWsMP3oPWO%Kva%=VaR3hi-7lx+|x zQDL`KJaM5qWqrv5OtQo@onj^!r`=x1`ic}Pw0Qz2*W%UY9c5c-Q0#CJ`l%$nPfSo2b$l2fS&W-%M9+ zphhdTn&~#hwp(qBBfT$kJW7U>bdoAfGQbw~_PIf;PhGA`xmN3}SL|Ms9n<7h-_s=# zB?H0f?li|x95m0Dsw@=m^AWgm|KcV2EmG*``3kDF15giu+n=>opnT z3KLC`@Tbp>Q09GyMD$ijWWQ(3^{z5cskYaA&tsuFrJ5X5=qwH9tJRuWSjmtK7lo@r zO9-JkEDU4Ag795Phkap17$2sGts#UX;h%6KY!45FvElykO$g!FaCNvSBttU9dY_PT z%hdGvUZBo!Ddg)=XTG0RTkevqn$GK9#I)JqGB>)+8{V?jJt{26Q6H)IhZ*ivqQwB` zqQ#WYc<+e{xB?;05P+j>18z<%r(_mi*$OT%$kzAO5mYk#lk-F|ACc&E|T~(HzuBhY!rPO_gC8w}_oQ{M*|OneQc~ zYAm+BPdLF2kEu4)OJ@4ZJKDPXLEcG$V^;di-72~YXpuv%%<$e~k%T2Ci)pZ0b5D27 zb5uT&pxL9Yb+;+TS!b8YJpx6F+~N*rOIfYa;og?k86|fZ)qByjv&}L~LZ{QDJ>a+( z9n@xo1J--P@7a@TcRW#QeD_Wyrrj65aE9UX@U;RH6&h%Zr8a37&u;8%qU1<#E6+|? zT7e3cE_P5bSjwwD%)EFvQf`eW_S>f-vq~c|oqq7K!$ym&vCNlF^rs*2u#Zj-*PA_Q zRIcGVTFm#-xhj6A$8B&T>KgA!Ri+t{{d=Ecym$J=CM%_co&E#-l3(nHurYA}001R) zMObuXVRU6WV{&C-bY%cCFfuePFf=VOHB>M;Ix#XjGBGPKFgh?W;uhzb0000bbVXQn zWMOn=I&E)cX=ZriIx;aUFfckWFq2DPB>(^bS9(-fbW&k= zAaHVTW@&6?Aar?fWguyAbYlPjc%0+%3K74o@ + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + diff --git a/images/logo-algolia-nebula-blue-full.svg b/images/logo-algolia-nebula-blue-full.svg new file mode 100644 index 0000000..886c422 --- /dev/null +++ b/images/logo-algolia-nebula-blue-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/logo.svg b/images/logo.svg new file mode 100644 index 0000000..992c1a5 --- /dev/null +++ b/images/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..3c083b3 --- /dev/null +++ b/index.html @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ADY + + + + + + + + + + + + + +

+ +
+
+
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + +
+

+ +

+ + +
+ + + + +
+ + +
+ + + + + +
+
+ +
+
+
+ + + + + + + +
+ + + +
+ + + + + + + +
+

+ +

+ + +
+ + + + +
+ + +

測試 i18n 語系使用

    +
  • 切換語系可對應至該語系同一篇文章
  • +
  • 沒有該語系文章會產生 Post not found,但不是導至 404,所以可以來回切換語系
  • +
+ + +
+ + + + + +
+
+ +
+
+
+ + + + + +
+
+ +
+ +
+ + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/js/bookmark.js b/js/bookmark.js new file mode 100644 index 0000000..8e3ae6a --- /dev/null +++ b/js/bookmark.js @@ -0,0 +1,56 @@ +/* global CONFIG */ + +document.addEventListener('DOMContentLoaded', () => { + 'use strict'; + + const doSaveScroll = () => { + localStorage.setItem('bookmark' + location.pathname, window.scrollY); + }; + + const scrollToMark = () => { + let top = localStorage.getItem('bookmark' + location.pathname); + top = parseInt(top, 10); + // If the page opens with a specific hash, just jump out + if (!isNaN(top) && location.hash === '') { + // Auto scroll to the position + window.anime({ + targets : document.scrollingElement, + duration : 200, + easing : 'linear', + scrollTop: top + }); + } + }; + // Register everything + const init = function(trigger) { + // Create a link element + const link = document.querySelector('.book-mark-link'); + // Scroll event + window.addEventListener('scroll', () => link.classList.toggle('book-mark-link-fixed', window.scrollY === 0), { passive: true }); + // Register beforeunload event when the trigger is auto + if (trigger === 'auto') { + // Register beforeunload event + window.addEventListener('beforeunload', doSaveScroll); + document.addEventListener('pjax:send', doSaveScroll); + } + // Save the position by clicking the icon + link.addEventListener('click', () => { + doSaveScroll(); + window.anime({ + targets : link, + duration: 200, + easing : 'linear', + top : -30, + complete: () => { + setTimeout(() => { + link.style.top = ''; + }, 400); + } + }); + }); + scrollToMark(); + document.addEventListener('pjax:success', scrollToMark); + }; + + init(CONFIG.bookmark.save); +}); diff --git a/js/comments-buttons.js b/js/comments-buttons.js new file mode 100644 index 0000000..505c21b --- /dev/null +++ b/js/comments-buttons.js @@ -0,0 +1,25 @@ +/* global CONFIG */ + +(function() { + const commentButton = document.querySelectorAll('.comment-button'); + commentButton.forEach(element => { + const commentClass = element.classList[2]; + element.addEventListener('click', () => { + commentButton.forEach(active => active.classList.toggle('active', active === element)); + document.querySelectorAll('.comment-position').forEach(active => active.classList.toggle('active', active.classList.contains(commentClass))); + if (CONFIG.comments.storage) { + localStorage.setItem('comments_active', commentClass); + } + }); + }); + let { activeClass } = CONFIG.comments; + if (CONFIG.comments.storage) { + activeClass = localStorage.getItem('comments_active') || activeClass; + } + if (activeClass) { + const activeButton = document.querySelector(`.comment-button.${activeClass}`); + if (activeButton) { + activeButton.click(); + } + } +})(); diff --git a/js/comments.js b/js/comments.js new file mode 100644 index 0000000..4045e8c --- /dev/null +++ b/js/comments.js @@ -0,0 +1,21 @@ +/* global CONFIG */ + +window.addEventListener('tabs:register', () => { + let { activeClass } = CONFIG.comments; + if (CONFIG.comments.storage) { + activeClass = localStorage.getItem('comments_active') || activeClass; + } + if (activeClass) { + const activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`); + if (activeTab) { + activeTab.click(); + } + } +}); +if (CONFIG.comments.storage) { + window.addEventListener('tabs:click', event => { + if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return; + const commentClass = event.target.classList[1]; + localStorage.setItem('comments_active', commentClass); + }); +} diff --git a/js/config.js b/js/config.js new file mode 100644 index 0000000..caa0075 --- /dev/null +++ b/js/config.js @@ -0,0 +1,66 @@ +if (!window.NexT) window.NexT = {}; + +(function() { + const className = 'next-config'; + + const staticConfig = {}; + let variableConfig = {}; + + const parse = text => JSON.parse(text || '{}'); + + const update = name => { + const targetEle = document.querySelector(`.${className}[data-name="${name}"]`); + if (!targetEle) return; + const parsedConfig = parse(targetEle.text); + if (name === 'main') { + Object.assign(staticConfig, parsedConfig); + } else { + variableConfig[name] = parsedConfig; + } + }; + + update('main'); + + window.CONFIG = new Proxy({}, { + get(overrideConfig, name) { + let existing; + if (name in staticConfig) { + existing = staticConfig[name]; + } else { + if (!(name in variableConfig)) update(name); + existing = variableConfig[name]; + } + + // For unset override and mixable existing + if (!(name in overrideConfig) && typeof existing === 'object') { + // Get ready to mix. + overrideConfig[name] = {}; + } + + if (name in overrideConfig) { + const override = overrideConfig[name]; + + // When mixable + if (typeof override === 'object' && typeof existing === 'object') { + // Mix, proxy changes to the override. + return new Proxy({ ...existing, ...override }, { + set(target, prop, value) { + target[prop] = value; + override[prop] = value; + return true; + } + }); + } + + return override; + } + + // Only when not mixable and override hasn't been set. + return existing; + } + }); + + document.addEventListener('pjax:success', () => { + variableConfig = {}; + }); +})(); diff --git a/js/motion.js b/js/motion.js new file mode 100644 index 0000000..aad22db --- /dev/null +++ b/js/motion.js @@ -0,0 +1,140 @@ +/* global NexT, CONFIG */ + +NexT.motion = {}; + +NexT.motion.integrator = { + queue: [], + init : function() { + this.queue = []; + return this; + }, + add: function(fn) { + const sequence = fn(); + if (CONFIG.motion.async) this.queue.push(sequence); + else this.queue = this.queue.concat(sequence); + return this; + }, + bootstrap: function() { + if (!CONFIG.motion.async) this.queue = [this.queue]; + this.queue.forEach(sequence => { + const timeline = window.anime.timeline({ + duration: 200, + easing : 'linear' + }); + sequence.forEach(item => { + if (item.deltaT) timeline.add(item, item.deltaT); + else timeline.add(item); + }); + }); + } +}; + +NexT.motion.middleWares = { + header: function() { + const sequence = []; + + function getMistLineSettings(targets) { + sequence.push({ + targets, + scaleX : [0, 1], + duration: 500, + deltaT : '-=200' + }); + } + + function pushToSequence(targets, sequenceQueue = false) { + sequence.push({ + targets, + opacity: 1, + top : 0, + deltaT : sequenceQueue ? '-=200' : '-=0' + }); + } + + pushToSequence('.column'); + CONFIG.scheme === 'Mist' && getMistLineSettings('.logo-line'); + CONFIG.scheme === 'Muse' && pushToSequence('.custom-logo-image'); + pushToSequence('.site-title'); + pushToSequence('.site-brand-container .toggle', true); + pushToSequence('.site-subtitle'); + (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') && pushToSequence('.custom-logo-image'); + + const menuItemTransition = CONFIG.motion.transition.menu_item; + if (menuItemTransition) { + document.querySelectorAll('.menu-item').forEach(targets => { + sequence.push({ + targets, + complete: () => targets.classList.add('animated', menuItemTransition), + deltaT : '-=200' + }); + }); + } + + return sequence; + }, + + subMenu: function() { + const subMenuItem = document.querySelectorAll('.sub-menu .menu-item'); + if (subMenuItem.length > 0) { + subMenuItem.forEach(element => { + element.classList.add('animated'); + }); + } + return []; + }, + + postList: function() { + const sequence = []; + const { post_block, post_header, post_body, coll_header } = CONFIG.motion.transition; + + function animate(animation, elements) { + if (!animation) return; + elements.forEach(targets => { + sequence.push({ + targets, + complete: () => targets.classList.add('animated', animation), + deltaT : '-=100' + }); + }); + } + + document.querySelectorAll('.post-block').forEach(targets => { + sequence.push({ + targets, + complete: () => targets.classList.add('animated', post_block), + deltaT : '-=100' + }); + animate(coll_header, targets.querySelectorAll('.collection-header')); + animate(post_header, targets.querySelectorAll('.post-header')); + animate(post_body, targets.querySelectorAll('.post-body')); + }); + + animate(post_block, document.querySelectorAll('.pagination, .comments')); + + return sequence; + }, + + sidebar: function() { + const sequence = []; + const sidebar = document.querySelectorAll('.sidebar-inner'); + const sidebarTransition = CONFIG.motion.transition.sidebar; + // Only for Pisces | Gemini. + if (sidebarTransition && (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini')) { + sidebar.forEach(targets => { + sequence.push({ + targets, + complete: () => targets.classList.add('animated', sidebarTransition), + deltaT : '-=100' + }); + }); + } + return sequence; + }, + + footer: function() { + return [{ + targets: document.querySelector('.footer'), + opacity: 1 + }]; + } +}; diff --git a/js/next-boot.js b/js/next-boot.js new file mode 100644 index 0000000..fceb80b --- /dev/null +++ b/js/next-boot.js @@ -0,0 +1,79 @@ +/* global NexT, CONFIG */ + +NexT.boot = {}; + +NexT.boot.registerEvents = function() { + + NexT.utils.registerScrollPercent(); + NexT.utils.registerCanIUseTag(); + + // Mobile top menu bar. + document.querySelector('.site-nav-toggle .toggle').addEventListener('click', event => { + event.currentTarget.classList.toggle('toggle-close'); + const siteNav = document.querySelector('.site-nav'); + if (!siteNav) return; + siteNav.style.setProperty('--scroll-height', siteNav.scrollHeight + 'px'); + document.body.classList.toggle('site-nav-on'); + }); + + document.querySelectorAll('.sidebar-nav li').forEach((element, index) => { + element.addEventListener('click', () => { + NexT.utils.activateSidebarPanel(index); + }); + }); + + window.addEventListener('hashchange', () => { + const tHash = location.hash; + if (tHash !== '' && !tHash.match(/%\S{2}/)) { + const target = document.querySelector(`.tabs ul.nav-tabs li a[href="${tHash}"]`); + target && target.click(); + } + }); + + window.addEventListener('tabs:click', e => { + NexT.utils.registerCodeblock(e.target); + }); +}; + +NexT.boot.refresh = function() { + + /** + * Register JS handlers by condition option. + * Need to add config option in Front-End at 'scripts/helpers/next-config.js' file. + */ + CONFIG.prism && window.Prism.highlightAll(); + CONFIG.mediumzoom && window.mediumZoom('.post-body :not(a) > img, .post-body > img', { + background: 'var(--content-bg-color)' + }); + CONFIG.lazyload && window.lozad('.post-body img').observe(); + CONFIG.pangu && window.pangu.spacingPage(); + + CONFIG.exturl && NexT.utils.registerExtURL(); + NexT.utils.wrapTableWithBox(); + NexT.utils.registerCodeblock(); + NexT.utils.registerTabsTag(); + NexT.utils.registerActiveMenuItem(); + NexT.utils.registerLangSelect(); + NexT.utils.registerSidebarTOC(); + NexT.utils.registerPostReward(); + NexT.utils.registerVideoIframe(); +}; + +NexT.boot.motion = function() { + // Define Motion Sequence & Bootstrap Motion. + if (CONFIG.motion.enable) { + NexT.motion.integrator + .add(NexT.motion.middleWares.header) + .add(NexT.motion.middleWares.postList) + .add(NexT.motion.middleWares.sidebar) + .add(NexT.motion.middleWares.footer) + .bootstrap(); + } + NexT.utils.updateSidebarPosition(); +}; + +document.addEventListener('DOMContentLoaded', () => { + NexT.boot.registerEvents(); + NexT.boot.refresh(); + NexT.boot.motion(); +}); diff --git a/js/pjax.js b/js/pjax.js new file mode 100644 index 0000000..f81a6a0 --- /dev/null +++ b/js/pjax.js @@ -0,0 +1,50 @@ +/* global NexT, CONFIG, Pjax */ + +const pjax = new Pjax({ + selectors: [ + 'head title', + 'script[type="application/json"]', + // Precede .main-inner to prevent placeholder TOC changes asap + '.post-toc-wrap', + '.main-inner', + '.languages', + '.pjax' + ], + switches: { + '.post-toc-wrap': function(oldWrap, newWrap) { + if (newWrap.querySelector('.post-toc')) { + Pjax.switches.outerHTML.call(this, oldWrap, newWrap); + } else { + const curTOC = oldWrap.querySelector('.post-toc'); + if (curTOC) { + curTOC.classList.add('placeholder-toc'); + } + this.onSwitch(); + } + } + }, + analytics: false, + cacheBust: false, + scrollTo : !CONFIG.bookmark.enable +}); + +document.addEventListener('pjax:success', () => { + pjax.executeScripts(document.querySelectorAll('script[data-pjax]')); + NexT.boot.refresh(); + // Define Motion Sequence & Bootstrap Motion. + if (CONFIG.motion.enable) { + NexT.motion.integrator + .init() + .add(NexT.motion.middleWares.subMenu) + .add(NexT.motion.middleWares.postList) + // Add sidebar-post-related transition. + .add(NexT.motion.middleWares.sidebar) + .bootstrap(); + } + if (CONFIG.sidebar.display !== 'remove') { + const hasTOC = document.querySelector('.post-toc:not(.placeholder-toc)'); + document.querySelector('.sidebar-inner').classList.toggle('sidebar-nav-active', hasTOC); + NexT.utils.activateSidebarPanel(hasTOC ? 0 : 1); + NexT.utils.updateSidebarPosition(); + } +}); diff --git a/js/schedule.js b/js/schedule.js new file mode 100644 index 0000000..8f0c26c --- /dev/null +++ b/js/schedule.js @@ -0,0 +1,138 @@ +/* global CONFIG */ + +// https://developers.google.com/calendar/api/v3/reference/events/list +(function() { + // Initialization + const calendar = { + orderBy : 'startTime', + showLocation: false, + offsetMax : 72, + offsetMin : 4, + showDeleted : false, + singleEvents: true, + maxResults : 250 + }; + + // Read config form theme config file + Object.assign(calendar, CONFIG.calendar); + + const now = new Date(); + const timeMax = new Date(); + const timeMin = new Date(); + + timeMax.setHours(now.getHours() + calendar.offsetMax); + timeMin.setHours(now.getHours() - calendar.offsetMin); + + // Build URL + const params = { + key : calendar.api_key, + orderBy : calendar.orderBy, + timeMax : timeMax.toISOString(), + timeMin : timeMin.toISOString(), + showDeleted : calendar.showDeleted, + singleEvents: calendar.singleEvents, + maxResults : calendar.maxResults + }; + + const request_url = new URL(`https://www.googleapis.com/calendar/v3/calendars/${calendar.calendar_id}/events`); + Object.entries(params).forEach(param => request_url.searchParams.append(...param)); + + function getRelativeTime(current, previous) { + const msPerMinute = 60 * 1000; + const msPerHour = msPerMinute * 60; + const msPerDay = msPerHour * 24; + const msPerMonth = msPerDay * 30; + const msPerYear = msPerDay * 365; + + let elapsed = current - previous; + const tense = elapsed > 0 ? ' ago' : ' later'; + + elapsed = Math.abs(elapsed); + + if (elapsed < msPerHour) { + return Math.round(elapsed / msPerMinute) + ' minutes' + tense; + } else if (elapsed < msPerDay) { + return Math.round(elapsed / msPerHour) + ' hours' + tense; + } else if (elapsed < msPerMonth) { + return 'about ' + Math.round(elapsed / msPerDay) + ' days' + tense; + } else if (elapsed < msPerYear) { + return 'about ' + Math.round(elapsed / msPerMonth) + ' months' + tense; + } + + return 'about ' + Math.round(elapsed / msPerYear) + ' years' + tense; + } + + function buildEventDOM(tense, event, start, end) { + const durationFormat = { + weekday: 'short', + hour : '2-digit', + minute : '2-digit' + }; + const relativeTime = tense === 'now' ? 'NOW' : getRelativeTime(now, start); + const duration = start.toLocaleTimeString([], durationFormat) + ' - ' + end.toLocaleTimeString([], durationFormat); + + let location = ''; + if (calendar.showLocation && event.location) { + location = `${event.location}`; + } + let description = ''; + if (event.description) { + description = `${event.description}`; + } + + const eventContent = `
+

+ ${event.summary} + ${relativeTime} +

+ ${location} + ${duration} + ${description} +
`; + return eventContent; + } + + function fetchData() { + const eventList = document.querySelector('.event-list'); + if (!eventList) return; + + fetch(request_url.href).then(response => { + return response.json(); + }).then(data => { + if (data.items.length === 0) { + eventList.innerHTML = '
'; + return; + } + // Clean the event list + eventList.innerHTML = ''; + let prevEnd = 0; // used to decide where to insert an
+ const utc = new Date().getTimezoneOffset() * 60000; + + data.items.forEach(event => { + // Parse data + const start = new Date(event.start.dateTime || (new Date(event.start.date).getTime() + utc)); + const end = new Date(event.end.dateTime || (new Date(event.end.date).getTime() + utc)); + + let tense = 'now'; + if (end < now) { + tense = 'past'; + } else if (start > now) { + tense = 'future'; + } + + if (tense === 'future' && prevEnd < now) { + eventList.insertAdjacentHTML('beforeend', '
'); + } + + eventList.insertAdjacentHTML('beforeend', buildEventDOM(tense, event, start, end)); + prevEnd = end; + }); + }); + } + + fetchData(); + const fetchDataTimer = setInterval(fetchData, 60000); + document.addEventListener('pjax:send', () => { + clearInterval(fetchDataTimer); + }); +})(); diff --git a/js/schemes/muse.js b/js/schemes/muse.js new file mode 100644 index 0000000..ba60b51 --- /dev/null +++ b/js/schemes/muse.js @@ -0,0 +1,60 @@ +/* global CONFIG */ + +document.addEventListener('DOMContentLoaded', () => { + + const isRight = CONFIG.sidebar.position === 'right'; + + const sidebarToggleMotion = { + mouse: {}, + init : function() { + window.addEventListener('mousedown', this.mousedownHandler.bind(this)); + window.addEventListener('mouseup', this.mouseupHandler.bind(this)); + document.querySelector('.sidebar-dimmer').addEventListener('click', this.clickHandler.bind(this)); + document.querySelector('.sidebar-toggle').addEventListener('click', this.clickHandler.bind(this)); + window.addEventListener('sidebar:show', this.showSidebar); + window.addEventListener('sidebar:hide', this.hideSidebar); + }, + mousedownHandler: function(event) { + this.mouse.X = event.pageX; + this.mouse.Y = event.pageY; + }, + mouseupHandler: function(event) { + const deltaX = event.pageX - this.mouse.X; + const deltaY = event.pageY - this.mouse.Y; + const clickingBlankPart = Math.hypot(deltaX, deltaY) < 20 && event.target.matches('.main'); + // Fancybox has z-index property, but medium-zoom does not, so the sidebar will overlay the zoomed image. + if (clickingBlankPart || event.target.matches('img.medium-zoom-image')) { + this.hideSidebar(); + } + }, + clickHandler: function() { + document.body.classList.contains('sidebar-active') ? this.hideSidebar() : this.showSidebar(); + }, + showSidebar: function() { + document.body.classList.add('sidebar-active'); + const animateAction = isRight ? 'fadeInRight' : 'fadeInLeft'; + document.querySelectorAll('.sidebar .animated').forEach((element, index) => { + element.style.animationDelay = (100 * index) + 'ms'; + element.classList.remove(animateAction); + setTimeout(() => { + // Trigger a DOM reflow + element.classList.add(animateAction); + }); + }); + }, + hideSidebar: function() { + document.body.classList.remove('sidebar-active'); + } + }; + if (CONFIG.sidebar.display !== 'remove') sidebarToggleMotion.init(); + + function updateFooterPosition() { + const footer = document.querySelector('.footer'); + const containerHeight = document.querySelector('.main').offsetHeight + footer.offsetHeight; + footer.classList.toggle('footer-fixed', containerHeight <= window.innerHeight); + } + + updateFooterPosition(); + window.addEventListener('resize', updateFooterPosition); + window.addEventListener('scroll', updateFooterPosition, { passive: true }); +}); diff --git a/js/third-party/addtoany.js b/js/third-party/addtoany.js new file mode 100644 index 0000000..f9009f8 --- /dev/null +++ b/js/third-party/addtoany.js @@ -0,0 +1,8 @@ +/* global NexT */ + +document.addEventListener('page:loaded', () => { + NexT.utils.getScript('https://static.addtoany.com/menu/page.js', { condition: window.a2a }) + .then(() => { + window.a2a.init(); + }); +}); diff --git a/js/third-party/analytics/baidu-analytics.js b/js/third-party/analytics/baidu-analytics.js new file mode 100644 index 0000000..c10e7d0 --- /dev/null +++ b/js/third-party/analytics/baidu-analytics.js @@ -0,0 +1,7 @@ +/* global _hmt */ + +if (!window._hmt) window._hmt = []; + +document.addEventListener('pjax:success', () => { + _hmt.push(['_trackPageview', location.pathname]); +}); diff --git a/js/third-party/analytics/google-analytics.js b/js/third-party/analytics/google-analytics.js new file mode 100644 index 0000000..8601806 --- /dev/null +++ b/js/third-party/analytics/google-analytics.js @@ -0,0 +1,53 @@ +/* global CONFIG, dataLayer, gtag */ + +if (!CONFIG.google_analytics.only_pageview) { + if (CONFIG.hostname === location.hostname) { + window.dataLayer = window.dataLayer || []; + window.gtag = function() { + dataLayer.push(arguments); + }; + gtag('js', new Date()); + gtag('config', CONFIG.google_analytics.tracking_id); + + document.addEventListener('pjax:success', () => { + gtag('event', 'page_view', { + page_location: location.href, + page_path : location.pathname, + page_title : document.title + }); + }); + } +} else { + const sendPageView = () => { + if (CONFIG.hostname !== location.hostname) return; + const uid = localStorage.getItem('uid') || (Math.random() + '.' + Math.random()); + localStorage.setItem('uid', uid); + fetch( + 'https://www.google-analytics.com/mp/collect?' + new URLSearchParams({ + api_secret : CONFIG.google_analytics.measure_protocol_api_secret, + measurement_id: CONFIG.google_analytics.tracking_id + }), + { + method : 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + client_id: uid, + events : [ + { + name : 'page_view', + params: { + page_location: location.href, + page_title : document.title + } + } + ] + }), + mode: 'no-cors' + } + ); + }; + document.addEventListener('pjax:complete', sendPageView); + sendPageView(); +} diff --git a/js/third-party/analytics/growingio.js b/js/third-party/analytics/growingio.js new file mode 100644 index 0000000..0460833 --- /dev/null +++ b/js/third-party/analytics/growingio.js @@ -0,0 +1,10 @@ +/* global CONFIG, gio */ + +if (!window.gio) { + window.gio = function() { + (window.gio.q = window.gio.q || []).push(arguments); + }; +} + +gio('init', `${CONFIG.growingio_analytics}`, {}); +gio('send'); diff --git a/js/third-party/analytics/matomo.js b/js/third-party/analytics/matomo.js new file mode 100644 index 0000000..290a3e0 --- /dev/null +++ b/js/third-party/analytics/matomo.js @@ -0,0 +1,19 @@ +/* global CONFIG */ + +if (CONFIG.matomo.enable) { + window._paq = window._paq || []; + const _paq = window._paq; + + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + const u = CONFIG.matomo.server_url; + _paq.push(['setTrackerUrl', u + 'matomo.php']); + _paq.push(['setSiteId', CONFIG.matomo.site_id]); + const d = document; + const g = d.createElement('script'); + const s = d.getElementsByTagName('script')[0]; + g.async = true; + g.src = u + 'matomo.js'; + s.parentNode.insertBefore(g, s); +} diff --git a/js/third-party/chat/chatra.js b/js/third-party/chat/chatra.js new file mode 100644 index 0000000..e495b8e --- /dev/null +++ b/js/third-party/chat/chatra.js @@ -0,0 +1,19 @@ +/* global CONFIG, Chatra */ + +(function() { + if (CONFIG.chatra.embed) { + window.ChatraSetup = { + mode : 'frame', + injectTo: CONFIG.chatra.embed + }; + } + + window.ChatraID = CONFIG.chatra.id; + + const chatButton = document.querySelector('.sidebar-button button'); + if (chatButton) { + chatButton.addEventListener('click', () => { + Chatra('openChat', true); + }); + } +})(); diff --git a/js/third-party/chat/tidio.js b/js/third-party/chat/tidio.js new file mode 100644 index 0000000..bffb918 --- /dev/null +++ b/js/third-party/chat/tidio.js @@ -0,0 +1,10 @@ +/* global tidioChatApi */ + +(function() { + const chatButton = document.querySelector('.sidebar-button button'); + if (chatButton) { + chatButton.addEventListener('click', () => { + tidioChatApi.open(); + }); + } +})(); diff --git a/js/third-party/comments/changyan.js b/js/third-party/comments/changyan.js new file mode 100644 index 0000000..18a1be4 --- /dev/null +++ b/js/third-party/comments/changyan.js @@ -0,0 +1,39 @@ +/* global NexT, CONFIG */ + +document.addEventListener('page:loaded', () => { + const { appid, appkey } = CONFIG.changyan; + const mainJs = 'https://cy-cdn.kuaizhan.com/upload/changyan.js'; + const countJs = `https://cy-cdn.kuaizhan.com/upload/plugins/plugins.list.count.js?clientId=${appid}`; + + // Get the number of comments + setTimeout(() => { + return NexT.utils.getScript(countJs, { + attributes: { + async: true, + id : 'cy_cmt_num' + } + }); + }, 0); + + // When scroll to comment section + if (CONFIG.page.comments && !CONFIG.page.isHome) { + NexT.utils.loadComments('#SOHUCS') + .then(() => { + return NexT.utils.getScript(mainJs, { + attributes: { + async: true + } + }); + }) + .then(() => { + window.changyan.api.config({ + appid, + conf: appkey + }); + }) + .catch(error => { + // eslint-disable-next-line no-console + console.error('Failed to load Changyan', error); + }); + } +}); diff --git a/js/third-party/comments/disqus.js b/js/third-party/comments/disqus.js new file mode 100644 index 0000000..4d1ca9e --- /dev/null +++ b/js/third-party/comments/disqus.js @@ -0,0 +1,41 @@ +/* global NexT, CONFIG, DISQUS */ + +document.addEventListener('page:loaded', () => { + + if (CONFIG.disqus.count) { + if (window.DISQUSWIDGETS) { + window.DISQUSWIDGETS.getCount({ reset: true }); + } else { + // Defer loading until the whole page loading is completed + NexT.utils.getScript(`https://${CONFIG.disqus.shortname}.disqus.com/count.js`, { + attributes: { id: 'dsq-count-scr', defer: true } + }); + } + } + + if (CONFIG.page.comments) { + // `disqus_config` should be a global variable + // See https://help.disqus.com/en/articles/1717084-javascript-configuration-variables + window.disqus_config = function() { + this.page.url = CONFIG.page.permalink; + this.page.identifier = CONFIG.page.path; + this.page.title = CONFIG.page.title; + if (CONFIG.disqus.i18n.disqus !== 'disqus') { + this.language = CONFIG.disqus.i18n.disqus; + } + }; + NexT.utils.loadComments('#disqus_thread').then(() => { + if (window.DISQUS) { + DISQUS.reset({ + reload: true, + config: window.disqus_config + }); + } else { + NexT.utils.getScript(`https://${CONFIG.disqus.shortname}.disqus.com/embed.js`, { + attributes: { dataset: { timestamp: '' + +new Date() } } + }); + } + }); + } + +}); diff --git a/js/third-party/comments/disqusjs.js b/js/third-party/comments/disqusjs.js new file mode 100644 index 0000000..d8401ee --- /dev/null +++ b/js/third-party/comments/disqusjs.js @@ -0,0 +1,23 @@ +/* global NexT, CONFIG, DisqusJS */ + +document.addEventListener('page:loaded', () => { + if (!CONFIG.page.comments) return; + + NexT.utils.loadComments('#disqus_thread') + .then(() => NexT.utils.getScript(CONFIG.disqusjs.js, { condition: window.DisqusJS })) + .then(() => { + window.dsqjs = new DisqusJS({ + api : CONFIG.disqusjs.api || 'https://disqus.com/api/', + apikey : CONFIG.disqusjs.apikey, + shortname : CONFIG.disqusjs.shortname, + url : CONFIG.page.permalink, + identifier: CONFIG.page.path, + title : CONFIG.page.title + }); + window.dsqjs.render(document.querySelector('.disqusjs-container')); + }); +}); + +document.addEventListener('pjax:send', () => { + if (window.dsqjs) window.dsqjs.destroy(); +}); diff --git a/js/third-party/comments/gitalk.js b/js/third-party/comments/gitalk.js new file mode 100644 index 0000000..08d07f4 --- /dev/null +++ b/js/third-party/comments/gitalk.js @@ -0,0 +1,24 @@ +/* global NexT, CONFIG, Gitalk */ + +document.addEventListener('page:loaded', () => { + if (!CONFIG.page.comments) return; + + NexT.utils.loadComments('.gitalk-container') + .then(() => NexT.utils.getScript(CONFIG.gitalk.js, { + condition: window.Gitalk + })) + .then(() => { + const gitalk = new Gitalk({ + clientID : CONFIG.gitalk.client_id, + clientSecret : CONFIG.gitalk.client_secret, + repo : CONFIG.gitalk.repo, + owner : CONFIG.gitalk.github_id, + admin : [CONFIG.gitalk.admin_user], + id : CONFIG.gitalk.path_md5, + proxy : CONFIG.gitalk.proxy, + language : CONFIG.gitalk.language || window.navigator.language, + distractionFreeMode: CONFIG.gitalk.distraction_free_mode + }); + gitalk.render(document.querySelector('.gitalk-container')); + }); +}); diff --git a/js/third-party/comments/isso.js b/js/third-party/comments/isso.js new file mode 100644 index 0000000..2c70601 --- /dev/null +++ b/js/third-party/comments/isso.js @@ -0,0 +1,15 @@ +/* global NexT, CONFIG */ + +document.addEventListener('page:loaded', () => { + if (!CONFIG.page.comments) return; + + NexT.utils.loadComments('#isso-thread') + .then(() => NexT.utils.getScript(`${CONFIG.isso}js/embed.min.js`, { + attributes: { + dataset: { + isso: `${CONFIG.isso}` + } + }, + parentNode: document.querySelector('#isso-thread') + })); +}); diff --git a/js/third-party/comments/livere.js b/js/third-party/comments/livere.js new file mode 100644 index 0000000..c4bcd2e --- /dev/null +++ b/js/third-party/comments/livere.js @@ -0,0 +1,19 @@ +/* global NexT, CONFIG, LivereTower */ + +document.addEventListener('page:loaded', () => { + if (!CONFIG.page.comments) return; + + NexT.utils.loadComments('#lv-container').then(() => { + window.livereOptions = { + refer: CONFIG.page.path.replace(/index\.html$/, '') + }; + + if (typeof LivereTower === 'function') return; + + NexT.utils.getScript('https://cdn-city.livere.com/js/embed.dist.js', { + attributes: { + async: true + } + }); + }); +}); diff --git a/js/third-party/comments/utterances.js b/js/third-party/comments/utterances.js new file mode 100644 index 0000000..332ee05 --- /dev/null +++ b/js/third-party/comments/utterances.js @@ -0,0 +1,17 @@ +/* global NexT, CONFIG */ + +document.addEventListener('page:loaded', () => { + if (!CONFIG.page.comments) return; + + NexT.utils.loadComments('.utterances-container') + .then(() => NexT.utils.getScript('https://utteranc.es/client.js', { + attributes: { + async : true, + crossOrigin : 'anonymous', + 'repo' : CONFIG.utterances.repo, + 'issue-term': CONFIG.utterances.issue_term, + 'theme' : CONFIG.utterances.theme + }, + parentNode: document.querySelector('.utterances-container') + })); +}); diff --git a/js/third-party/fancybox.js b/js/third-party/fancybox.js new file mode 100644 index 0000000..178db4b --- /dev/null +++ b/js/third-party/fancybox.js @@ -0,0 +1,35 @@ +/* global Fancybox */ + +document.addEventListener('page:loaded', () => { + + /** + * Wrap images with fancybox. + */ + document.querySelectorAll('.post-body :not(a) > img, .post-body > img').forEach(image => { + const imageLink = image.dataset.src || image.src; + const imageWrapLink = document.createElement('a'); + imageWrapLink.classList.add('fancybox'); + imageWrapLink.href = imageLink; + imageWrapLink.setAttribute('itemscope', ''); + imageWrapLink.setAttribute('itemtype', 'http://schema.org/ImageObject'); + imageWrapLink.setAttribute('itemprop', 'url'); + + let dataFancybox = 'default'; + if (image.closest('.post-gallery') !== null) { + dataFancybox = 'gallery'; + } else if (image.closest('.group-picture') !== null) { + dataFancybox = 'group'; + } + imageWrapLink.dataset.fancybox = dataFancybox; + + const imageTitle = image.title || image.alt; + if (imageTitle) { + imageWrapLink.title = imageTitle; + // Make sure img captions will show correctly in fancybox + imageWrapLink.dataset.caption = imageTitle; + } + image.wrap(imageWrapLink); + }); + + Fancybox.bind('[data-fancybox]'); +}); diff --git a/js/third-party/math/katex.js b/js/third-party/math/katex.js new file mode 100644 index 0000000..ad745b1 --- /dev/null +++ b/js/third-party/math/katex.js @@ -0,0 +1,7 @@ +/* global NexT, CONFIG */ + +document.addEventListener('page:loaded', () => { + if (!CONFIG.enableMath) return; + + NexT.utils.getScript(CONFIG.katex.copy_tex_js).catch(() => {}); +}); diff --git a/js/third-party/math/mathjax.js b/js/third-party/math/mathjax.js new file mode 100644 index 0000000..fe4d448 --- /dev/null +++ b/js/third-party/math/mathjax.js @@ -0,0 +1,36 @@ +/* global NexT, CONFIG, MathJax */ + +document.addEventListener('page:loaded', () => { + if (!CONFIG.enableMath) return; + + if (typeof MathJax === 'undefined') { + window.MathJax = { + tex: { + inlineMath: { '[+]': [['$', '$']] }, + tags : CONFIG.mathjax.tags + }, + options: { + renderActions: { + insertedScript: [200, () => { + document.querySelectorAll('mjx-container').forEach(node => { + const target = node.parentNode; + if (target.nodeName.toLowerCase() === 'li') { + target.parentNode.classList.add('has-jax'); + } + }); + }, '', false] + } + } + }; + NexT.utils.getScript(CONFIG.mathjax.js, { + attributes: { + defer: true + } + }); + } else { + MathJax.startup.document.state(0); + MathJax.typesetClear(); + MathJax.texReset(); + MathJax.typesetPromise(); + } +}); diff --git a/js/third-party/pace.js b/js/third-party/pace.js new file mode 100644 index 0000000..c22d59f --- /dev/null +++ b/js/third-party/pace.js @@ -0,0 +1,7 @@ +/* global Pace */ + +Pace.options.restartOnPushState = false; + +document.addEventListener('pjax:send', () => { + Pace.restart(); +}); diff --git a/js/third-party/quicklink.js b/js/third-party/quicklink.js new file mode 100644 index 0000000..2543ad1 --- /dev/null +++ b/js/third-party/quicklink.js @@ -0,0 +1,37 @@ +/* global CONFIG, quicklink */ + +(function() { + if (typeof CONFIG.quicklink.ignores === 'string') { + const ignoresStr = `[${CONFIG.quicklink.ignores}]`; + CONFIG.quicklink.ignores = JSON.parse(ignoresStr); + } + + let resetFn = null; + + const onRefresh = () => { + if (resetFn) resetFn(); + if (!CONFIG.quicklink.enable) return; + + let ignoresArr = CONFIG.quicklink.ignores || []; + if (!Array.isArray(ignoresArr)) { + ignoresArr = [ignoresArr]; + } + + resetFn = quicklink.listen({ + timeout : CONFIG.quicklink.timeout, + priority: CONFIG.quicklink.priority, + ignores : [ + uri => uri.includes('#'), + uri => uri === CONFIG.quicklink.url, + ...ignoresArr + ] + }); + }; + + if (CONFIG.quicklink.delay) { + window.addEventListener('load', onRefresh); + document.addEventListener('pjax:success', onRefresh); + } else { + document.addEventListener('page:loaded', onRefresh); + } +})(); diff --git a/js/third-party/search/algolia-search.js b/js/third-party/search/algolia-search.js new file mode 100644 index 0000000..12a554c --- /dev/null +++ b/js/third-party/search/algolia-search.js @@ -0,0 +1,130 @@ +/* global instantsearch, algoliasearch, CONFIG, pjax */ + +document.addEventListener('DOMContentLoaded', () => { + const { indexName, appID, apiKey, hits } = CONFIG.algolia; + + const search = instantsearch({ + indexName, + searchClient : algoliasearch(appID, apiKey), + searchFunction: helper => { + if (document.querySelector('.search-input').value) { + helper.search(); + } + } + }); + + if (typeof pjax === 'object') { + search.on('render', () => { + pjax.refresh(document.querySelector('.algolia-hits')); + }); + } + + // Registering Widgets + search.addWidgets([ + instantsearch.widgets.configure({ + hitsPerPage: hits.per_page || 10 + }), + + instantsearch.widgets.searchBox({ + container : '.search-input-container', + placeholder : CONFIG.i18n.placeholder, + // Hide default icons of algolia search + showReset : false, + showSubmit : false, + showLoadingIndicator: false, + cssClasses : { + input: 'search-input' + } + }), + + instantsearch.widgets.stats({ + container: '.algolia-stats', + templates: { + text: data => { + const stats = CONFIG.i18n.hits_time + .replace('${hits}', data.nbHits) + .replace('${time}', data.processingTimeMS); + return `${stats} + Algolia`; + } + }, + cssClasses: { + text: 'search-stats' + } + }), + + instantsearch.widgets.hits({ + container : '.algolia-hits', + escapeHTML: false, + templates : { + item: data => { + const { title, excerpt, excerptStrip, contentStripTruncate } = data._highlightResult; + let result = `${title.value}`; + const content = excerpt || excerptStrip || contentStripTruncate; + if (content && content.value) { + const div = document.createElement('div'); + div.innerHTML = content.value; + result += `

${div.textContent.substring(0, 100)}...

`; + } + return result; + }, + empty: data => { + return `
+ ${CONFIG.i18n.empty.replace('${query}', data.query)} +
`; + } + }, + cssClasses: { + list: 'search-result-list' + } + }), + + instantsearch.widgets.pagination({ + container: '.algolia-pagination', + scrollTo : false, + showFirst: false, + showLast : false, + templates: { + first : '', + last : '', + previous: '', + next : '' + }, + cssClasses: { + list : ['pagination', 'algolia-pagination'], + item : 'pagination-item', + link : 'page-number', + selectedItem: 'current', + disabledItem: 'disabled-item' + } + }) + ]); + + search.start(); + + // Handle and trigger popup window + document.querySelectorAll('.popup-trigger').forEach(element => { + element.addEventListener('click', () => { + document.body.classList.add('search-active'); + setTimeout(() => document.querySelector('.search-input').focus(), 500); + }); + }); + + // Monitor main search box + const onPopupClose = () => { + document.body.classList.remove('search-active'); + }; + + document.querySelector('.search-pop-overlay').addEventListener('click', event => { + if (event.target === document.querySelector('.search-pop-overlay')) { + onPopupClose(); + } + }); + document.querySelector('.popup-btn-close').addEventListener('click', onPopupClose); + document.addEventListener('pjax:success', onPopupClose); + window.addEventListener('keyup', event => { + if (event.key === 'Escape') { + onPopupClose(); + } + }); +}); diff --git a/js/third-party/search/local-search.js b/js/third-party/search/local-search.js new file mode 100644 index 0000000..92a264d --- /dev/null +++ b/js/third-party/search/local-search.js @@ -0,0 +1,99 @@ +/* global CONFIG, pjax, LocalSearch */ + +document.addEventListener('DOMContentLoaded', () => { + if (!CONFIG.path) { + // Search DB path + console.warn('`hexo-generator-searchdb` plugin is not installed!'); + return; + } + const localSearch = new LocalSearch({ + path : CONFIG.path, + top_n_per_article: CONFIG.localsearch.top_n_per_article, + unescape : CONFIG.localsearch.unescape + }); + + const input = document.querySelector('.search-input'); + + const inputEventFunction = () => { + if (!localSearch.isfetched) return; + const searchText = input.value.trim().toLowerCase(); + const keywords = searchText.split(/[-\s]+/); + const container = document.querySelector('.search-result-container'); + let resultItems = []; + if (searchText.length > 0) { + // Perform local searching + resultItems = localSearch.getResultItems(keywords); + } + if (keywords.length === 1 && keywords[0] === '') { + container.classList.add('no-result'); + container.innerHTML = '
'; + } else if (resultItems.length === 0) { + container.classList.add('no-result'); + container.innerHTML = '
'; + } else { + resultItems.sort((left, right) => { + if (left.includedCount !== right.includedCount) { + return right.includedCount - left.includedCount; + } else if (left.hitCount !== right.hitCount) { + return right.hitCount - left.hitCount; + } + return right.id - left.id; + }); + const stats = CONFIG.i18n.hits.replace('${hits}', resultItems.length); + + container.classList.remove('no-result'); + container.innerHTML = `
${stats}
+
+
    ${resultItems.map(result => result.item).join('')}
`; + if (typeof pjax === 'object') pjax.refresh(container); + } + }; + + localSearch.highlightSearchWords(document.querySelector('.post-body')); + if (CONFIG.localsearch.preload) { + localSearch.fetchData(); + } + + if (CONFIG.localsearch.trigger === 'auto') { + input.addEventListener('input', inputEventFunction); + } else { + document.querySelector('.search-icon').addEventListener('click', inputEventFunction); + input.addEventListener('keypress', event => { + if (event.key === 'Enter') { + inputEventFunction(); + } + }); + } + window.addEventListener('search:loaded', inputEventFunction); + + // Handle and trigger popup window + document.querySelectorAll('.popup-trigger').forEach(element => { + element.addEventListener('click', () => { + document.body.classList.add('search-active'); + // Wait for search-popup animation to complete + setTimeout(() => input.focus(), 500); + if (!localSearch.isfetched) localSearch.fetchData(); + }); + }); + + // Monitor main search box + const onPopupClose = () => { + document.body.classList.remove('search-active'); + }; + + document.querySelector('.search-pop-overlay').addEventListener('click', event => { + if (event.target === document.querySelector('.search-pop-overlay')) { + onPopupClose(); + } + }); + document.querySelector('.popup-btn-close').addEventListener('click', onPopupClose); + document.addEventListener('pjax:success', () => { + localSearch.highlightSearchWords(document.querySelector('.post-body')); + onPopupClose(); + }); + window.addEventListener('keyup', event => { + if (event.key === 'Escape') { + onPopupClose(); + } + }); +}); diff --git a/js/third-party/statistics/firestore.js b/js/third-party/statistics/firestore.js new file mode 100644 index 0000000..3ea7ba6 --- /dev/null +++ b/js/third-party/statistics/firestore.js @@ -0,0 +1,60 @@ +/* global CONFIG, firebase */ + +firebase.initializeApp({ + apiKey : CONFIG.firestore.apiKey, + projectId: CONFIG.firestore.projectId +}); + +(function() { + const getCount = (doc, increaseCount) => { + // IncreaseCount will be false when not in article page + return doc.get().then(d => { + // Has no data, initialize count + let count = d.exists ? d.data().count : 0; + // If first view this article + if (increaseCount) { + // Increase count + count++; + doc.set({ + count + }); + } + return count; + }); + }; + + const db = firebase.firestore(); + const articles = db.collection(CONFIG.firestore.collection); + + document.addEventListener('page:loaded', () => { + + if (CONFIG.page.isPost) { + // Fix issue #118 + // https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent + const title = document.querySelector('.post-title').textContent.trim(); + const doc = articles.doc(title); + let increaseCount = CONFIG.hostname === location.hostname; + if (localStorage.getItem(title)) { + increaseCount = false; + } else { + // Mark as visited + localStorage.setItem(title, true); + } + getCount(doc, increaseCount).then(count => { + document.querySelector('.firestore-visitors-count').innerText = count; + }); + } else if (CONFIG.page.isHome) { + const promises = [...document.querySelectorAll('.post-title')].map(element => { + const title = element.textContent.trim(); + const doc = articles.doc(title); + return getCount(doc); + }); + Promise.all(promises).then(counts => { + const metas = document.querySelectorAll('.firestore-visitors-count'); + counts.forEach((val, idx) => { + metas[idx].innerText = val; + }); + }); + } + }); +})(); diff --git a/js/third-party/statistics/lean-analytics.js b/js/third-party/statistics/lean-analytics.js new file mode 100644 index 0000000..8397112 --- /dev/null +++ b/js/third-party/statistics/lean-analytics.js @@ -0,0 +1,107 @@ +/* global CONFIG */ +/* eslint-disable no-console */ + +(function() { + const leancloudSelector = url => { + url = encodeURI(url); + return document.getElementById(url).querySelector('.leancloud-visitors-count'); + }; + + const addCount = Counter => { + const visitors = document.querySelector('.leancloud_visitors'); + const url = decodeURI(visitors.id); + const title = visitors.dataset.flagTitle; + + Counter('get', `/classes/Counter?where=${encodeURIComponent(JSON.stringify({ url }))}`) + .then(response => response.json()) + .then(({ results }) => { + if (results.length > 0) { + const counter = results[0]; + leancloudSelector(url).innerText = counter.time + 1; + Counter('put', '/classes/Counter/' + counter.objectId, { + time: { + '__op' : 'Increment', + 'amount': 1 + } + }) + .catch(error => { + console.error('Failed to save visitor count', error); + }); + } else if (CONFIG.leancloud_visitors.security) { + leancloudSelector(url).innerText = 'Counter not initialized! More info at console err msg.'; + console.error('ATTENTION! LeanCloud counter has security bug, see how to solve it here: https://github.com/theme-next/hexo-leancloud-counter-security. \n However, you can still use LeanCloud without security, by setting `security` option to `false`.'); + } else { + Counter('post', '/classes/Counter', { title, url, time: 1 }) + .then(response => response.json()) + .then(() => { + leancloudSelector(url).innerText = 1; + }) + .catch(error => { + console.error('Failed to create', error); + }); + } + }) + .catch(error => { + console.error('LeanCloud Counter Error', error); + }); + }; + + const showTime = Counter => { + const visitors = document.querySelectorAll('.leancloud_visitors'); + const entries = [...visitors].map(element => { + return decodeURI(element.id); + }); + + Counter('get', `/classes/Counter?where=${encodeURIComponent(JSON.stringify({ url: { '$in': entries } }))}`) + .then(response => response.json()) + .then(({ results }) => { + for (const url of entries) { + const target = results.find(item => item.url === url); + leancloudSelector(url).innerText = target ? target.time : 0; + } + }) + .catch(error => { + console.error('LeanCloud Counter Error', error); + }); + }; + + const { app_id, app_key, server_url } = CONFIG.leancloud_visitors; + const fetchData = api_server => { + const Counter = (method, url, data) => { + return fetch(`${api_server}/1.1${url}`, { + method, + headers: { + 'X-LC-Id' : app_id, + 'X-LC-Key' : app_key, + 'Content-Type': 'application/json' + }, + body: JSON.stringify(data) + }); + }; + if (CONFIG.page.isPost) { + if (CONFIG.hostname !== location.hostname) return; + addCount(Counter); + } else if (document.querySelectorAll('.post-title-link').length >= 1) { + showTime(Counter); + } + }; + + let api_server; + if (server_url) { + api_server = server_url; + } else if (app_id.slice(-9) === '-MdYXbMMI') { + api_server = `https://${app_id.slice(0, 8).toLowerCase()}.api.lncldglobal.com`; + } + + document.addEventListener('page:loaded', () => { + if (api_server) { + fetchData(api_server); + } else { + fetch(`https://app-router.leancloud.cn/2/route?appId=${app_id}`) + .then(response => response.json()) + .then(({ api_server }) => { + fetchData(`https://${api_server}`); + }); + } + }); +})(); diff --git a/js/third-party/tags/mermaid.js b/js/third-party/tags/mermaid.js new file mode 100644 index 0000000..54f6288 --- /dev/null +++ b/js/third-party/tags/mermaid.js @@ -0,0 +1,32 @@ +/* global NexT, CONFIG, mermaid */ + +document.addEventListener('page:loaded', () => { + const mermaidElements = document.querySelectorAll('.mermaid'); + if (mermaidElements.length) { + NexT.utils.getScript(CONFIG.mermaid.js, { + condition: window.mermaid + }).then(() => { + mermaidElements.forEach(element => { + const newElement = document.createElement('div'); + newElement.innerHTML = element.innerHTML; + newElement.className = element.className; + const parent = element.parentNode; + // Fix issue #347 + // Support mermaid inside backtick code block + if (parent.matches('pre')) { + parent.parentNode.replaceChild(newElement, parent); + } else { + parent.replaceChild(newElement, element); + } + }); + mermaid.initialize({ + theme : CONFIG.darkmode && window.matchMedia('(prefers-color-scheme: dark)').matches ? CONFIG.mermaid.theme.dark : CONFIG.mermaid.theme.light, + logLevel : 4, + flowchart: { curve: 'linear' }, + gantt : { axisFormat: '%m/%d/%Y' }, + sequence : { actorMargin: 50 } + }); + mermaid.run(); + }); + } +}); diff --git a/js/third-party/tags/pdf.js b/js/third-party/tags/pdf.js new file mode 100644 index 0000000..7e82891 --- /dev/null +++ b/js/third-party/tags/pdf.js @@ -0,0 +1,23 @@ +/* global NexT, CONFIG, PDFObject */ + +document.addEventListener('page:loaded', () => { + if (document.querySelectorAll('.pdf-container').length) { + NexT.utils.getScript(CONFIG.pdf.object_url, { + condition: window.PDFObject + }).then(() => { + document.querySelectorAll('.pdf-container').forEach(element => { + PDFObject.embed(element.dataset.target, element, { + pdfOpenParams: { + navpanes : 0, + toolbar : 0, + statusbar: 0, + pagemode : 'thumbs', + view : 'FitH' + }, + PDFJS_URL: CONFIG.pdf.url, + height : element.dataset.height + }); + }); + }); + } +}); diff --git a/js/third-party/tags/wavedrom.js b/js/third-party/tags/wavedrom.js new file mode 100644 index 0000000..ddd9a1d --- /dev/null +++ b/js/third-party/tags/wavedrom.js @@ -0,0 +1,13 @@ +/* global NexT, CONFIG, WaveDrom */ + +document.addEventListener('page:loaded', () => { + NexT.utils.getScript(CONFIG.wavedrom.js, { + condition: window.WaveDrom + }).then(() => { + NexT.utils.getScript(CONFIG.wavedrom_skin.js, { + condition: window.WaveSkin + }).then(() => { + WaveDrom.ProcessAll(); + }); + }); +}); diff --git a/js/utils.js b/js/utils.js new file mode 100644 index 0000000..808d838 --- /dev/null +++ b/js/utils.js @@ -0,0 +1,489 @@ +/* global NexT, CONFIG */ + +HTMLElement.prototype.wrap = function(wrapper) { + this.parentNode.insertBefore(wrapper, this); + this.parentNode.removeChild(this); + wrapper.appendChild(this); +}; + +(function() { + const onPageLoaded = () => document.dispatchEvent( + new Event('page:loaded', { + bubbles: true + }) + ); + + if (document.readyState === 'loading') { + document.addEventListener('readystatechange', onPageLoaded, { once: true }); + } else { + onPageLoaded(); + } + document.addEventListener('pjax:success', onPageLoaded); +})(); + +NexT.utils = { + + registerExtURL: function() { + document.querySelectorAll('span.exturl').forEach(element => { + const link = document.createElement('a'); + // https://stackoverflow.com/questions/30106476/using-javascripts-atob-to-decode-base64-doesnt-properly-decode-utf-8-strings + link.href = decodeURIComponent(atob(element.dataset.url).split('').map(c => { + return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); + }).join('')); + link.rel = 'noopener external nofollow noreferrer'; + link.target = '_blank'; + link.className = element.className; + link.title = element.title; + link.innerHTML = element.innerHTML; + element.parentNode.replaceChild(link, element); + }); + }, + + registerCodeblock: function(element) { + const inited = !!element; + let figure = (inited ? element : document).querySelectorAll('figure.highlight'); + let isHljsWithWrap = true; + if (figure.length === 0) { + figure = document.querySelectorAll('pre:not(.mermaid)'); + isHljsWithWrap = false; + } + figure.forEach(element => { + if (!inited) { + let span = element.querySelectorAll('.code .line span'); + if (span.length === 0) { + // Hljs without line_number and wrap + span = element.querySelectorAll('code.highlight span'); + } + span.forEach(s => { + s.classList.forEach(name => { + s.classList.replace(name, `hljs-${name}`); + }); + }); + } + const height = parseInt(window.getComputedStyle(element).height.replace('px', ''), 10); + const needFold = CONFIG.fold.enable && (height > CONFIG.fold.height); + if (!needFold && !CONFIG.copycode.enable) return; + let target; + if (isHljsWithWrap && CONFIG.copycode.style === 'mac') { + target = element; + } else { + let box = element.querySelector('.code-container'); + if (!box) { + // https://github.com/next-theme/hexo-theme-next/issues/98 + // https://github.com/next-theme/hexo-theme-next/pull/508 + const container = element.querySelector('.table-container') || element; + box = document.createElement('div'); + box.className = 'code-container'; + container.wrap(box); + + // add "notranslate" to prevent Google Translate from translating it, which also completely messes up the layout + box.classList.add('notranslate'); + } + target = box; + } + if (needFold && !target.classList.contains('unfold')) { + target.classList.add('highlight-fold'); + target.insertAdjacentHTML('beforeend', '
'); + target.querySelector('.expand-btn').addEventListener('click', () => { + target.classList.remove('highlight-fold'); + target.classList.add('unfold'); + }); + } + if (inited || !CONFIG.copycode.enable) return; + // One-click copy code support. + target.insertAdjacentHTML('beforeend', '
'); + const button = target.querySelector('.copy-btn'); + button.addEventListener('click', () => { + const lines = element.querySelector('.code') || element.querySelector('code'); + const code = lines.innerText; + if (navigator.clipboard) { + // https://caniuse.com/mdn-api_clipboard_writetext + navigator.clipboard.writeText(code).then(() => { + button.querySelector('i').className = 'fa fa-check-circle fa-fw'; + }, () => { + button.querySelector('i').className = 'fa fa-times-circle fa-fw'; + }); + } else { + const ta = document.createElement('textarea'); + ta.style.top = window.scrollY + 'px'; // Prevent page scrolling + ta.style.position = 'absolute'; + ta.style.opacity = '0'; + ta.readOnly = true; + ta.value = code; + document.body.append(ta); + ta.select(); + ta.setSelectionRange(0, code.length); + ta.readOnly = false; + const result = document.execCommand('copy'); + button.querySelector('i').className = result ? 'fa fa-check-circle fa-fw' : 'fa fa-times-circle fa-fw'; + ta.blur(); // For iOS + button.blur(); + document.body.removeChild(ta); + } + }); + element.addEventListener('mouseleave', () => { + setTimeout(() => { + button.querySelector('i').className = 'fa fa-copy fa-fw'; + }, 300); + }); + }); + }, + + wrapTableWithBox: function() { + document.querySelectorAll('table').forEach(element => { + const box = document.createElement('div'); + box.className = 'table-container'; + element.wrap(box); + }); + }, + + registerVideoIframe: function() { + document.querySelectorAll('iframe').forEach(element => { + const supported = [ + 'www.youtube.com', + 'player.vimeo.com', + 'player.youku.com', + 'player.bilibili.com', + 'www.tudou.com' + ].some(host => element.src.includes(host)); + if (supported && !element.parentNode.matches('.video-container')) { + const box = document.createElement('div'); + box.className = 'video-container'; + element.wrap(box); + const width = Number(element.width); + const height = Number(element.height); + if (width && height) { + box.style.paddingTop = (height / width * 100) + '%'; + } + } + }); + }, + + updateActiveNav: function() { + if (!Array.isArray(NexT.utils.sections)) return; + let index = NexT.utils.sections.findIndex(element => { + return element && element.getBoundingClientRect().top > 10; + }); + if (index === -1) { + index = NexT.utils.sections.length - 1; + } else if (index > 0) { + index--; + } + this.activateNavByIndex(index); + }, + + registerScrollPercent: function() { + const backToTop = document.querySelector('.back-to-top'); + const readingProgressBar = document.querySelector('.reading-progress-bar'); + // For init back to top in sidebar if page was scrolled after page refresh. + window.addEventListener('scroll', () => { + if (backToTop || readingProgressBar) { + const contentHeight = document.body.scrollHeight - window.innerHeight; + const scrollPercent = contentHeight > 0 ? Math.min(100 * window.scrollY / contentHeight, 100) : 0; + if (backToTop) { + backToTop.classList.toggle('back-to-top-on', Math.round(scrollPercent) >= 5); + backToTop.querySelector('span').innerText = Math.round(scrollPercent) + '%'; + } + if (readingProgressBar) { + readingProgressBar.style.setProperty('--progress', scrollPercent.toFixed(2) + '%'); + } + } + this.updateActiveNav(); + }, { passive: true }); + + backToTop && backToTop.addEventListener('click', () => { + window.anime({ + targets : document.scrollingElement, + duration : 500, + easing : 'linear', + scrollTop: 0 + }); + }); + }, + + /** + * Tabs tag listener (without twitter bootstrap). + */ + registerTabsTag: function() { + // Binding `nav-tabs` & `tab-content` by real time permalink changing. + document.querySelectorAll('.tabs ul.nav-tabs .tab').forEach(element => { + element.addEventListener('click', event => { + event.preventDefault(); + // Prevent selected tab to select again. + if (element.classList.contains('active')) return; + const nav = element.parentNode; + // Get the height of `tab-pane` which is activated before, and set it as the height of `tab-content` with extra margin / paddings. + const tabContent = nav.nextElementSibling; + tabContent.style.overflow = 'hidden'; + tabContent.style.transition = 'height 1s'; + // Comment system selection tab does not contain .active class. + const activeTab = tabContent.querySelector('.active') || tabContent.firstElementChild; + // Hight might be `auto`. + const prevHeight = parseInt(window.getComputedStyle(activeTab).height.replace('px', ''), 10) || 0; + const paddingTop = parseInt(window.getComputedStyle(activeTab).paddingTop.replace('px', ''), 10); + const marginBottom = parseInt(window.getComputedStyle(activeTab.firstElementChild).marginBottom.replace('px', ''), 10); + tabContent.style.height = prevHeight + paddingTop + marginBottom + 'px'; + // Add & Remove active class on `nav-tabs` & `tab-content`. + [...nav.children].forEach(target => { + target.classList.toggle('active', target === element); + }); + // https://stackoverflow.com/questions/20306204/using-queryselector-with-ids-that-are-numbers + const tActive = document.getElementById(element.querySelector('a').getAttribute('href').replace('#', '')); + [...tActive.parentNode.children].forEach(target => { + target.classList.toggle('active', target === tActive); + }); + // Trigger event + tActive.dispatchEvent(new Event('tabs:click', { + bubbles: true + })); + // Get the height of `tab-pane` which is activated now. + const hasScrollBar = document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight); + const currHeight = parseInt(window.getComputedStyle(tabContent.querySelector('.active')).height.replace('px', ''), 10); + // Reset the height of `tab-content` and see the animation. + tabContent.style.height = currHeight + paddingTop + marginBottom + 'px'; + // Change the height of `tab-content` may cause scrollbar show / disappear, which may result in the change of the `tab-pane`'s height + setTimeout(() => { + if ((document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight)) !== hasScrollBar) { + tabContent.style.transition = 'height 0.3s linear'; + // After the animation, we need reset the height of `tab-content` again. + const currHeightAfterScrollBarChange = parseInt(window.getComputedStyle(tabContent.querySelector('.active')).height.replace('px', ''), 10); + tabContent.style.height = currHeightAfterScrollBarChange + paddingTop + marginBottom + 'px'; + } + // Remove all the inline styles, and let the height be adaptive again. + setTimeout(() => { + tabContent.style.transition = ''; + tabContent.style.height = ''; + }, 250); + }, 1000); + if (!CONFIG.stickytabs) return; + const offset = nav.parentNode.getBoundingClientRect().top + window.scrollY + 10; + window.anime({ + targets : document.scrollingElement, + duration : 500, + easing : 'linear', + scrollTop: offset + }); + }); + }); + + window.dispatchEvent(new Event('tabs:register')); + }, + + registerCanIUseTag: function() { + // Get responsive height passed from iframe. + window.addEventListener('message', ({ data }) => { + if (typeof data === 'string' && data.includes('ciu_embed')) { + const featureID = data.split(':')[1]; + const height = data.split(':')[2]; + document.querySelector(`iframe[data-feature=${featureID}]`).style.height = parseInt(height, 10) + 5 + 'px'; + } + }, false); + }, + + registerActiveMenuItem: function() { + document.querySelectorAll('.menu-item a[href]').forEach(target => { + const isSamePath = target.pathname === location.pathname || target.pathname === location.pathname.replace('index.html', ''); + const isSubPath = !CONFIG.root.startsWith(target.pathname) && location.pathname.startsWith(target.pathname); + target.classList.toggle('menu-item-active', target.hostname === location.hostname && (isSamePath || isSubPath)); + }); + }, + + registerLangSelect: function() { + const selects = document.querySelectorAll('.lang-select'); + selects.forEach(sel => { + sel.value = CONFIG.page.lang; + sel.addEventListener('change', () => { + const target = sel.options[sel.selectedIndex]; + document.querySelectorAll('.lang-select-label span').forEach(span => { + span.innerText = target.text; + }); + // Disable Pjax to force refresh translation of menu item + window.location.href = target.dataset.href; + }); + }); + }, + + registerSidebarTOC: function() { + this.sections = [...document.querySelectorAll('.post-toc:not(.placeholder-toc) li a.nav-link')].map(element => { + const target = document.getElementById(decodeURI(element.getAttribute('href')).replace('#', '')); + // TOC item animation navigate. + element.addEventListener('click', event => { + event.preventDefault(); + const offset = target.getBoundingClientRect().top + window.scrollY; + window.anime({ + targets : document.scrollingElement, + duration : 500, + easing : 'linear', + scrollTop: offset, + complete : () => { + history.pushState(null, document.title, element.href); + } + }); + }); + return target; + }); + this.updateActiveNav(); + }, + + registerPostReward: function() { + const button = document.querySelector('.reward-container button'); + if (!button) return; + button.addEventListener('click', () => { + document.querySelector('.post-reward').classList.toggle('active'); + }); + }, + + activateNavByIndex: function(index) { + const nav = document.querySelector('.post-toc:not(.placeholder-toc) .nav'); + if (!nav) return; + + const navItemList = nav.querySelectorAll('.nav-item'); + const target = navItemList[index]; + if (!target || target.classList.contains('active-current')) return; + + const singleHeight = navItemList[navItemList.length - 1].offsetHeight; + + nav.querySelectorAll('.active').forEach(navItem => { + navItem.classList.remove('active', 'active-current'); + }); + target.classList.add('active', 'active-current'); + + let activateEle = target.querySelector('.nav-child') || target.parentElement; + let navChildHeight = 0; + + while (nav.contains(activateEle)) { + if (activateEle.classList.contains('nav-item')) { + activateEle.classList.add('active'); + } else { // .nav-child or .nav + // scrollHeight isn't reliable for transitioning child items. + // The last nav-item in a list has a margin-bottom of 5px. + navChildHeight += (singleHeight * activateEle.childElementCount) + 5; + activateEle.style.setProperty('--height', `${navChildHeight}px`); + } + activateEle = activateEle.parentElement; + } + + // Scrolling to center active TOC element if TOC content is taller then viewport. + const tocElement = document.querySelector(CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini' ? '.sidebar-panel-container' : '.sidebar'); + if (!document.querySelector('.sidebar-toc-active')) return; + window.anime({ + targets : tocElement, + duration : 200, + easing : 'linear', + scrollTop: tocElement.scrollTop - (tocElement.offsetHeight / 2) + target.getBoundingClientRect().top - tocElement.getBoundingClientRect().top + }); + }, + + updateSidebarPosition: function() { + if (window.innerWidth < 1200 || CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') return; + // Expand sidebar on post detail page by default, when post has a toc. + const hasTOC = document.querySelector('.post-toc:not(.placeholder-toc)'); + let display = CONFIG.page.sidebar; + if (typeof display !== 'boolean') { + // There's no definition sidebar in the page front-matter. + display = CONFIG.sidebar.display === 'always' || (CONFIG.sidebar.display === 'post' && hasTOC); + } + if (display) { + window.dispatchEvent(new Event('sidebar:show')); + } + }, + + activateSidebarPanel: function(index) { + const sidebar = document.querySelector('.sidebar-inner'); + const activeClassNames = ['sidebar-toc-active', 'sidebar-overview-active']; + if (sidebar.classList.contains(activeClassNames[index])) return; + + const panelContainer = sidebar.querySelector('.sidebar-panel-container'); + const tocPanel = panelContainer.firstElementChild; + const overviewPanel = panelContainer.lastElementChild; + + let postTOCHeight = tocPanel.scrollHeight; + // For TOC activation, try to use the animated TOC height + if (index === 0) { + const nav = tocPanel.querySelector('.nav'); + if (nav) { + postTOCHeight = parseInt(nav.style.getPropertyValue('--height'), 10); + } + } + const panelHeights = [ + postTOCHeight, + overviewPanel.scrollHeight + ]; + panelContainer.style.setProperty('--inactive-panel-height', `${panelHeights[1 - index]}px`); + panelContainer.style.setProperty('--active-panel-height', `${panelHeights[index]}px`); + + sidebar.classList.replace(activeClassNames[1 - index], activeClassNames[index]); + }, + + getScript: function(src, options = {}, legacyCondition) { + if (typeof options === 'function') { + return this.getScript(src, { + condition: legacyCondition + }).then(options); + } + const { + condition = false, + attributes: { + id = '', + async = false, + defer = false, + crossOrigin = '', + dataset = {}, + ...otherAttributes + } = {}, + parentNode = null + } = options; + return new Promise((resolve, reject) => { + if (condition) { + resolve(); + } else { + const script = document.createElement('script'); + + if (id) script.id = id; + if (crossOrigin) script.crossOrigin = crossOrigin; + script.async = async; + script.defer = defer; + Object.assign(script.dataset, dataset); + Object.entries(otherAttributes).forEach(([name, value]) => { + script.setAttribute(name, String(value)); + }); + + script.onload = resolve; + script.onerror = reject; + + if (typeof src === 'object') { + const { url, integrity } = src; + script.src = url; + if (integrity) { + script.integrity = integrity; + script.crossOrigin = 'anonymous'; + } + } else { + script.src = src; + } + (parentNode || document.head).appendChild(script); + } + }); + }, + + loadComments: function(selector, legacyCallback) { + if (legacyCallback) { + return this.loadComments(selector).then(legacyCallback); + } + return new Promise(resolve => { + const element = document.querySelector(selector); + if (!CONFIG.comments.lazyload || !element) { + resolve(); + return; + } + const intersectionObserver = new IntersectionObserver((entries, observer) => { + const entry = entries[0]; + if (!entry.isIntersecting) return; + + resolve(); + observer.disconnect(); + }); + intersectionObserver.observe(element); + }); + } +}; diff --git a/placeholder b/placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/search.xml b/search.xml new file mode 100644 index 0000000..d0d2c95 --- /dev/null +++ b/search.xml @@ -0,0 +1,24 @@ + + + + test (英文) + /en/test/ + + + + test (中文) + /zh-tw/test/ + + + + 你好! 世界 + /zh-tw/first-post/ + + +

測試 i18n 語系使用

    +
  • 切換語系可對應至該語系同一篇文章
  • +
  • 沒有該語系文章會產生 Post not found,但不是導至 404,所以可以來回切換語系
  • +
+]]>
+
+
diff --git a/zh-tw/first-post/image.png b/zh-tw/first-post/image.png new file mode 100644 index 0000000000000000000000000000000000000000..63b0933ff5b431af0f699dedb170c574b5eed4af GIT binary patch literal 2858 zcmb7GX;_l!8pbm%wrVq_Wr{XkWs~Dpsp+^JD^qi!)O3{8%*>L$ND&nTJ!R#Tsh!++ zGnW*RG(c04la-}{=7Jjv6$vA5L!W?%I)gSdXPR@Jy87`g?|VJ({l4GxeD{4nH;=p8 zZ&<6b76O56aCA8027xGniuXF@Rf@Y*u=2R#p@ed?KLn}j&>T|?Rs`F+*g_!H$?N6= zRw~A8E<1RmAdrnumoB9j$OmU3khOHjBeot1{KWX-FTm4IDMe&_m4)&VLNAKD? zxM*BaUc1`#)Hd}9b)%yz&YGCk84u)HG^}@E=561(Iqdqwb&(xw^^~29_t<3*d#keV zY*u2cb{DTXXx3dx&d#Id<*@N!(;!y`n%@Awz`;$^WQhEdk>I|3{FMAmXXoOaXQ<>n zhMY`~^_dUgAyrgjXXV_@ zvgk*g7s}q2As1?*7G>J%HrUz3U$^|a&`G~VvRMceb=H=3sz3;DLo>gE7%vpg8A4Q3 zjaL8b^)++I3SEYh&cT3=2i2$2POil0 zGo+_z)RS5+KScAxtE)wakY?!y%UHv=yA^?9eu_X}u{mkM2DFNt9w`W6v(2Qd&OO>X zQtwN zQsQm)`FF5qKslTf1}(^yr{B_84=V`V%aEqRb$I8Z308lH{A)`8Ov3-qlgtuKaxF0T z(i+u0Nz_IB($;RcWttv2Dhd|&(V^q_k!0-x$HQBD_JBYZFXa|xf!xdEwSGSBAMMy^ z7Hv;zl3>vX*k1lIzBq6)lI1lvBZ9U9-1xfWCZd*&XRal>XfDKrNb=uf;9nnAD7~3) zQktWU`*HX&h!Iy5)rH~-7Cu!52!l2poIhK9Hw1dbo9){&V{}dSwLan%e-odH=e6cu zL-kow`hkI{fD3V^$wtU2_WAIJfkFIn ze56U@(E_VV+nnuA3ns~YaRLig5Cta6V2p%UK}@?GWc$_v4>xAqd4yai5WBUx@qVd3 zU8KgXSq(q~nqs*Z8(>H!({23#hYA$1C&0c_y)x=ckz+|RAaOu6Ff*YyjQk5lI?Vd& z;%^yjapD*-=D10CU`D2f$EEL>8{#0BPkG?+s2BGw0rs%>8m6IXFe0{Q#T;Mzld`oVpNa%EI!b8e*P72Pk;#1G`u&r?wD zVC>>BFTL%Zc`${-dr{%lQ(Osi9|=1@+W7YMP|}6HE`lnv@zkLAwt6OyVq7|e{V6D- zd;;FVXXyvGkn}P^KVfX|QT$&(-rc*pV73SmW;%_v%&HxScL>q#S;l}VQh$A- zE*OK^M;aWIy?v8D*tqnu?fQ0VWtD=ncvQ%!<-6Cyz-+}N(S7c9YvWEB{ptAjkxV2X z?nso6e!0}i|3S8bRcI971*3z&nOQRHg~epiByRlMV;jQuzl+AL$p6FfK3)1{Q~VHO z*wyN;dkYkFT3x!+{cbpi)t97A@Ea+pQE|buNofeZ`qJ@=TFsXDtqLvlZ3?eeh~;=_ zTZg2I!tu#GkXP2%NC3+GkYxPD|7Y6%X}!#HD8QU)LobttEJk z-k)%H_m?6@eG)3hur2y8L_3hpxGR4xj7~|Zc^wUpGW^~&p^LcwDUP(vE>khBJPkoS zh1yg*l2fHC_^?pO7K&GWXTp4<%%&1*COP3+RMyzBOvC?F0%Gja5&fP4?0d)tn1oHW zh~LFfUt$gC>ToVwr=<0BKXNhQ1#?YfqyuX$% z_`9{0Lm^1NT zzj_MyryoDn6mHxuopd=F=TYB_J#X^TyMq^)$M=mh=+&oHHsid*G=J_jaTwL1Ktnc! zrGvAY#mMppwr0X~Ked1u31jR`An&=bEWu0z?>RAH{W7G`y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +你好! 世界 | ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + + +
+ + + +
+ + + + + + + +
+

+ 你好! 世界 +

+ + +
+ + + + +
+ +

測試 i18n 語系使用

    +
  • 切換語系可對應至該語系同一篇文章
  • +
  • 沒有該語系文章會產生 Post not found,但不是導至 404,所以可以來回切換語系
  • +
+ +
+ + + + + + +
+
+ + + + + + +
+
+
+ +
+ +
+ + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zh-tw/index.html b/zh-tw/index.html new file mode 100644 index 0000000..5fe4767 --- /dev/null +++ b/zh-tw/index.html @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + +
+

+ +

+ + +
+ + + + +
+ + +
+ + + + + +
+
+ +
+
+
+ + + + + + + +
+ + + +
+ + + + + + + +
+

+ +

+ + +
+ + + + +
+ + +

測試 i18n 語系使用

    +
  • 切換語系可對應至該語系同一篇文章
  • +
  • 沒有該語系文章會產生 Post not found,但不是導至 404,所以可以來回切換語系
  • +
+ + +
+ + + + + +
+
+ +
+
+
+ + + + + +
+
+ +
+ +
+ + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zh-tw/test/index.html b/zh-tw/test/index.html new file mode 100644 index 0000000..d5c4649 --- /dev/null +++ b/zh-tw/test/index.html @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test (中文) | ADY + + + + + + + + + + + + + +
+ +
+
+
+ + + + + +
+ + + + + + + +
+ +
+ +
+ + + + + +
+ +
+ + + + + +
+ + + +
+ + + + + + + +
+

+ test (中文) +

+ + +
+ + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+
+ +
+ +
+ + +
+ + 0% +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +