diff options
| author | Eltrac <eltrac233@gmail.com> | 2024-11-19 22:04:02 +0800 |
|---|---|---|
| committer | Eltrac <eltrac233@gmail.com> | 2024-11-19 22:04:02 +0800 |
| commit | 0690a920e28e6b9ee541a8767405f5f1f736dfa0 (patch) | |
| tree | 8460df607258426ac97f3c8c295a73e7b32a0a42 | |
| parent | 3e641ac0e63b010251f9f307e5f1ff68ce9764b1 (diff) | |
chore(hugo): stop importing theme as a git submodule
40 files changed, 3907 insertions, 7 deletions
diff --git a/.gitmodules b/.gitmodules index a7453e9d..e69de29b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "themes/yinyang"] - path = themes/yinyang - url = https://github.com/joway/hugo-theme-yinyang.git diff --git a/public/index.html b/public/index.html index 12062591..023db275 100644 --- a/public/index.html +++ b/public/index.html @@ -31,8 +31,8 @@ "accountablePerson" : "", "copyrightHolder" : "", "copyrightYear" : "2024", - "datePublished": "2024-11-18 09:40:00 \u002b0800 CST", - "dateModified" : "2024-11-18 09:40:00 \u002b0800 CST", + "datePublished": "2024-11-19 09:40:00 \u002b0800 CST", + "dateModified" : "2024-11-19 09:40:00 \u002b0800 CST", "url" : "http:\/\/localhost:1313\/", "keywords" : [ ] } diff --git a/public/posts/index.html b/public/posts/index.html index 0316f413..fe88592c 100644 --- a/public/posts/index.html +++ b/public/posts/index.html @@ -31,8 +31,8 @@ "accountablePerson" : "", "copyrightHolder" : "", "copyrightYear" : "2024", - "datePublished": "2024-11-18 09:40:00 \u002b0800 CST", - "dateModified" : "2024-11-18 09:40:00 \u002b0800 CST", + "datePublished": "2024-11-19 09:40:00 \u002b0800 CST", + "dateModified" : "2024-11-19 09:40:00 \u002b0800 CST", "url" : "http:\/\/localhost:1313\/posts\/", "keywords" : [ ] } diff --git a/themes/yinyang b/themes/yinyang deleted file mode 160000 -Subproject 088f1780703c96f8e0c2e4fd51a70f50e4e2329 diff --git a/themes/yinyang/archetypes/default.md b/themes/yinyang/archetypes/default.md new file mode 100644 index 00000000..ac36e062 --- /dev/null +++ b/themes/yinyang/archetypes/default.md @@ -0,0 +1,2 @@ ++++ ++++ diff --git a/themes/yinyang/assets/css/flexboxgrid-6.3.1.min.css b/themes/yinyang/assets/css/flexboxgrid-6.3.1.min.css new file mode 100644 index 00000000..7e27ea94 --- /dev/null +++ b/themes/yinyang/assets/css/flexboxgrid-6.3.1.min.css @@ -0,0 +1,852 @@ +.container, +.container-fluid { + margin-right: auto; + margin-left: auto +} + +.container-fluid { + padding-right: 2rem; + padding-left: 2rem +} + +.row { + box-sizing: border-box; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -.5rem; + margin-left: -.5rem +} + +.row.reverse { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse +} + +.col.reverse { + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse +} + +.col-xs, +.col-xs-1, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-offset-0, +.col-xs-offset-1, +.col-xs-offset-10, +.col-xs-offset-11, +.col-xs-offset-12, +.col-xs-offset-2, +.col-xs-offset-3, +.col-xs-offset-4, +.col-xs-offset-5, +.col-xs-offset-6, +.col-xs-offset-7, +.col-xs-offset-8, +.col-xs-offset-9 { + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding-right: .5rem; + padding-left: .5rem +} + +.col-xs { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100% +} + +.col-xs-1 { + -ms-flex-preferred-size: 8.33333333%; + flex-basis: 8.33333333%; + max-width: 8.33333333% +} + +.col-xs-2 { + -ms-flex-preferred-size: 16.66666667%; + flex-basis: 16.66666667%; + max-width: 16.66666667% +} + +.col-xs-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25% +} + +.col-xs-4 { + -ms-flex-preferred-size: 33.33333333%; + flex-basis: 33.33333333%; + max-width: 33.33333333% +} + +.col-xs-5 { + -ms-flex-preferred-size: 41.66666667%; + flex-basis: 41.66666667%; + max-width: 41.66666667% +} + +.col-xs-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50% +} + +.col-xs-7 { + -ms-flex-preferred-size: 58.33333333%; + flex-basis: 58.33333333%; + max-width: 58.33333333% +} + +.col-xs-8 { + -ms-flex-preferred-size: 66.66666667%; + flex-basis: 66.66666667%; + max-width: 66.66666667% +} + +.col-xs-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75% +} + +.col-xs-10 { + -ms-flex-preferred-size: 83.33333333%; + flex-basis: 83.33333333%; + max-width: 83.33333333% +} + +.col-xs-11 { + -ms-flex-preferred-size: 91.66666667%; + flex-basis: 91.66666667%; + max-width: 91.66666667% +} + +.col-xs-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100% +} + +.col-xs-offset-0 { + margin-left: 0 +} + +.col-xs-offset-1 { + margin-left: 8.33333333% +} + +.col-xs-offset-2 { + margin-left: 16.66666667% +} + +.col-xs-offset-3 { + margin-left: 25% +} + +.col-xs-offset-4 { + margin-left: 33.33333333% +} + +.col-xs-offset-5 { + margin-left: 41.66666667% +} + +.col-xs-offset-6 { + margin-left: 50% +} + +.col-xs-offset-7 { + margin-left: 58.33333333% +} + +.col-xs-offset-8 { + margin-left: 66.66666667% +} + +.col-xs-offset-9 { + margin-left: 75% +} + +.col-xs-offset-10 { + margin-left: 83.33333333% +} + +.col-xs-offset-11 { + margin-left: 91.66666667% +} + +.start-xs { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: start +} + +.center-xs { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center +} + +.end-xs { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: end +} + +.top-xs { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start +} + +.middle-xs { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.bottom-xs { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end +} + +.around-xs { + -ms-flex-pack: distribute; + justify-content: space-around +} + +.between-xs { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between +} + +.first-xs { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 +} + +.last-xs { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 +} + +@media only screen and (min-width:48em) { + .container { + width: 49rem + } + .col-sm, + .col-sm-1, + .col-sm-10, + .col-sm-11, + .col-sm-12, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-offset-0, + .col-sm-offset-1, + .col-sm-offset-10, + .col-sm-offset-11, + .col-sm-offset-12, + .col-sm-offset-2, + .col-sm-offset-3, + .col-sm-offset-4, + .col-sm-offset-5, + .col-sm-offset-6, + .col-sm-offset-7, + .col-sm-offset-8, + .col-sm-offset-9 { + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding-right: .5rem; + padding-left: .5rem + } + .col-sm { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100% + } + .col-sm-1 { + -ms-flex-preferred-size: 8.33333333%; + flex-basis: 8.33333333%; + max-width: 8.33333333% + } + .col-sm-2 { + -ms-flex-preferred-size: 16.66666667%; + flex-basis: 16.66666667%; + max-width: 16.66666667% + } + .col-sm-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25% + } + .col-sm-4 { + -ms-flex-preferred-size: 33.33333333%; + flex-basis: 33.33333333%; + max-width: 33.33333333% + } + .col-sm-5 { + -ms-flex-preferred-size: 41.66666667%; + flex-basis: 41.66666667%; + max-width: 41.66666667% + } + .col-sm-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50% + } + .col-sm-7 { + -ms-flex-preferred-size: 58.33333333%; + flex-basis: 58.33333333%; + max-width: 58.33333333% + } + .col-sm-8 { + -ms-flex-preferred-size: 66.66666667%; + flex-basis: 66.66666667%; + max-width: 66.66666667% + } + .col-sm-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75% + } + .col-sm-10 { + -ms-flex-preferred-size: 83.33333333%; + flex-basis: 83.33333333%; + max-width: 83.33333333% + } + .col-sm-11 { + -ms-flex-preferred-size: 91.66666667%; + flex-basis: 91.66666667%; + max-width: 91.66666667% + } + .col-sm-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100% + } + .col-sm-offset-0 { + margin-left: 0 + } + .col-sm-offset-1 { + margin-left: 8.33333333% + } + .col-sm-offset-2 { + margin-left: 16.66666667% + } + .col-sm-offset-3 { + margin-left: 25% + } + .col-sm-offset-4 { + margin-left: 33.33333333% + } + .col-sm-offset-5 { + margin-left: 41.66666667% + } + .col-sm-offset-6 { + margin-left: 50% + } + .col-sm-offset-7 { + margin-left: 58.33333333% + } + .col-sm-offset-8 { + margin-left: 66.66666667% + } + .col-sm-offset-9 { + margin-left: 75% + } + .col-sm-offset-10 { + margin-left: 83.33333333% + } + .col-sm-offset-11 { + margin-left: 91.66666667% + } + .start-sm { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: start + } + .center-sm { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center + } + .end-sm { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: end + } + .top-sm { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start + } + .middle-sm { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center + } + .bottom-sm { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end + } + .around-sm { + -ms-flex-pack: distribute; + justify-content: space-around + } + .between-sm { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between + } + .first-sm { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .last-sm { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } +} + +@media only screen and (min-width:64em) { + .container { + width: 65rem + } + .col-md, + .col-md-1, + .col-md-10, + .col-md-11, + .col-md-12, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-offset-0, + .col-md-offset-1, + .col-md-offset-10, + .col-md-offset-11, + .col-md-offset-12, + .col-md-offset-2, + .col-md-offset-3, + .col-md-offset-4, + .col-md-offset-5, + .col-md-offset-6, + .col-md-offset-7, + .col-md-offset-8, + .col-md-offset-9 { + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding-right: .5rem; + padding-left: .5rem + } + .col-md { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100% + } + .col-md-1 { + -ms-flex-preferred-size: 8.33333333%; + flex-basis: 8.33333333%; + max-width: 8.33333333% + } + .col-md-2 { + -ms-flex-preferred-size: 16.66666667%; + flex-basis: 16.66666667%; + max-width: 16.66666667% + } + .col-md-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25% + } + .col-md-4 { + -ms-flex-preferred-size: 33.33333333%; + flex-basis: 33.33333333%; + max-width: 33.33333333% + } + .col-md-5 { + -ms-flex-preferred-size: 41.66666667%; + flex-basis: 41.66666667%; + max-width: 41.66666667% + } + .col-md-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50% + } + .col-md-7 { + -ms-flex-preferred-size: 58.33333333%; + flex-basis: 58.33333333%; + max-width: 58.33333333% + } + .col-md-8 { + -ms-flex-preferred-size: 66.66666667%; + flex-basis: 66.66666667%; + max-width: 66.66666667% + } + .col-md-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75% + } + .col-md-10 { + -ms-flex-preferred-size: 83.33333333%; + flex-basis: 83.33333333%; + max-width: 83.33333333% + } + .col-md-11 { + -ms-flex-preferred-size: 91.66666667%; + flex-basis: 91.66666667%; + max-width: 91.66666667% + } + .col-md-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100% + } + .col-md-offset-0 { + margin-left: 0 + } + .col-md-offset-1 { + margin-left: 8.33333333% + } + .col-md-offset-2 { + margin-left: 16.66666667% + } + .col-md-offset-3 { + margin-left: 25% + } + .col-md-offset-4 { + margin-left: 33.33333333% + } + .col-md-offset-5 { + margin-left: 41.66666667% + } + .col-md-offset-6 { + margin-left: 50% + } + .col-md-offset-7 { + margin-left: 58.33333333% + } + .col-md-offset-8 { + margin-left: 66.66666667% + } + .col-md-offset-9 { + margin-left: 75% + } + .col-md-offset-10 { + margin-left: 83.33333333% + } + .col-md-offset-11 { + margin-left: 91.66666667% + } + .start-md { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: start + } + .center-md { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center + } + .end-md { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: end + } + .top-md { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start + } + .middle-md { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center + } + .bottom-md { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end + } + .around-md { + -ms-flex-pack: distribute; + justify-content: space-around + } + .between-md { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between + } + .first-md { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .last-md { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } +} + +@media only screen and (min-width:75em) { + .container { + width: 76rem + } + .col-lg, + .col-lg-1, + .col-lg-10, + .col-lg-11, + .col-lg-12, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-offset-0, + .col-lg-offset-1, + .col-lg-offset-10, + .col-lg-offset-11, + .col-lg-offset-12, + .col-lg-offset-2, + .col-lg-offset-3, + .col-lg-offset-4, + .col-lg-offset-5, + .col-lg-offset-6, + .col-lg-offset-7, + .col-lg-offset-8, + .col-lg-offset-9 { + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + padding-right: .5rem; + padding-left: .5rem + } + .col-lg { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100% + } + .col-lg-1 { + -ms-flex-preferred-size: 8.33333333%; + flex-basis: 8.33333333%; + max-width: 8.33333333% + } + .col-lg-2 { + -ms-flex-preferred-size: 16.66666667%; + flex-basis: 16.66666667%; + max-width: 16.66666667% + } + .col-lg-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25% + } + .col-lg-4 { + -ms-flex-preferred-size: 33.33333333%; + flex-basis: 33.33333333%; + max-width: 33.33333333% + } + .col-lg-5 { + -ms-flex-preferred-size: 41.66666667%; + flex-basis: 41.66666667%; + max-width: 41.66666667% + } + .col-lg-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50% + } + .col-lg-7 { + -ms-flex-preferred-size: 58.33333333%; + flex-basis: 58.33333333%; + max-width: 58.33333333% + } + .col-lg-8 { + -ms-flex-preferred-size: 66.66666667%; + flex-basis: 66.66666667%; + max-width: 66.66666667% + } + .col-lg-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75% + } + .col-lg-10 { + -ms-flex-preferred-size: 83.33333333%; + flex-basis: 83.33333333%; + max-width: 83.33333333% + } + .col-lg-11 { + -ms-flex-preferred-size: 91.66666667%; + flex-basis: 91.66666667%; + max-width: 91.66666667% + } + .col-lg-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100% + } + .col-lg-offset-0 { + margin-left: 0 + } + .col-lg-offset-1 { + margin-left: 8.33333333% + } + .col-lg-offset-2 { + margin-left: 16.66666667% + } + .col-lg-offset-3 { + margin-left: 25% + } + .col-lg-offset-4 { + margin-left: 33.33333333% + } + .col-lg-offset-5 { + margin-left: 41.66666667% + } + .col-lg-offset-6 { + margin-left: 50% + } + .col-lg-offset-7 { + margin-left: 58.33333333% + } + .col-lg-offset-8 { + margin-left: 66.66666667% + } + .col-lg-offset-9 { + margin-left: 75% + } + .col-lg-offset-10 { + margin-left: 83.33333333% + } + .col-lg-offset-11 { + margin-left: 91.66666667% + } + .start-lg { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: start + } + .center-lg { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center + } + .end-lg { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: end + } + .top-lg { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start + } + .middle-lg { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center + } + .bottom-lg { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end + } + .around-lg { + -ms-flex-pack: distribute; + justify-content: space-around + } + .between-lg { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between + } + .first-lg { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .last-lg { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } +}
\ No newline at end of file diff --git a/themes/yinyang/assets/css/index.css b/themes/yinyang/assets/css/index.css new file mode 100644 index 00000000..8a1fe949 --- /dev/null +++ b/themes/yinyang/assets/css/index.css @@ -0,0 +1,480 @@ +/* global */ + +:root { + --background-color: #F5F5F7; + --block-background-color: #E9E8ED; + --border-color: #d0d7de; + --text-color: #1D1D1F; + --secondary-text-color: #6E6E73; + --link-color: #277BD9; + + --strong-text-color: #B6506A; + --em-text-color: #0271A4; + + --mono-font-family: "Courier New", Courier, "Menlo", "Monaco", Consolas, "Liberation Mono", + "Lucida Console", monospace; + --serif-font-family: "Noto Serif SC", "Source Han Serif", "STSong", "Hiragino Mincho Pro", + "SimSun", serif; +} + +.dark { + --background-color: #1D2021; + --block-background-color: #181A1B; + --border-color: #d0d7de; + --text-color: #D2CEC9; + --secondary-text-color: #A1998D; + --link-color: #277BD9 +} + +@media (prefers-color-scheme: dark) { + :root { + --background-color: #1D2021; + --block-background-color: #181A1B; + --border-color: #d0d7de; + --text-color: #D2CEC9; + --secondary-text-color: #A1998D; + --link-color: #277BD9 + } +} + +body { + font-family: var(--serif-font-family); + -webkit-font-smoothing: antialiased; + margin: 0 20px; + background-color: var(--background-color); + color: var(--text-color) +} + +body::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + width: 100%; + z-index: -1; + height: 5rem; + background-image: linear-gradient(to bottom, var(--block-background-color), transparent) +} + +article { + max-width: 700px; + margin-left: auto; + margin-right: auto; +} + +a { + color: var(--text-color); + text-decoration: none; + text-underline-offset: 0.25rem; +} + +a:hover { + text-decoration: underline; +} + +.post-ads { + margin: 50px 0; +} + +.markdown-body { + font-size: 18px; + max-width: 100%; +} + +.markdown-body a { + text-decoration: underline; + color: var(--link-color); +} + +.markdown-body blockquote { + margin: 0; + padding: 0 1em; + color: var(--secondary-text-color); + border-left: 0.25em solid var(--border-color); +} + +.markdown-body pre { + padding: 16px; + overflow: auto; + border-radius: 10px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + font-size: 85%; + background-color: var(--block-background-color); + border-radius: 6px; +} + +/* reset code */ + +.markdown-body pre > code { + padding: 0; + font-size: 100%; + background-color: inherit; + border: 0; +} + +/* i18n */ + +.Chinese .markdown-body { + line-height: 200%; +} + +/* header */ + +.site-date-catalog { + font-size: 2rem; +} + +.header-title { + font-size: 2rem; + font-weight: 900; + margin-top: 32px; + text-align: center; + letter-spacing: .15rem; +} +.header-title a { + text-decoration: none; +} + +.header-subtitle { + color: var(--secondary-text-color); +} + +.header-items { + margin: 1rem auto; + display: flex; + justify-content: center; + align-items: center; + background-color: var(--text-color); + width: fit-content; + padding: 0.25rem 0.75rem; + border-radius: 1rem; +} + +.header-item a { + color: var(--background-color); +} + +.header-item { + margin: 0 5px; +} + +.header-line { + width: 100%; + border-width: 1px; + border-color: var(--border-color); + border-style: solid none none none; +} + +.lang-switch { + font-weight: 600; +} + +/* posts list */ + +#posts-list { + min-height: 600px; +} + +#posts-list ul { + list-style-type: none; + padding-inline-start: 1em; +} + +.featured-post .posts-title a { + font-weight: 800; + display: block; +} + +.posts-line { + font-size: 1.2rem; + margin: 12px 0; +} + +#posts-list > section:nth-child(1) > ul:nth-child(3) > li.first-post > div > div.posts-title.col-xs-9.col-sm-10 > div { + align-items: flex-start; +} + +.posts-categories { + font-size: 0.8rem; + text-align: center; +} + +.posts-category { + padding: 3px 0; + border: var(--border-color) 2px solid; + border-radius: 5px; + background-color: var(--background-color); + /* margin-bottom: 3px; */ +} + +.posts-date { + font-family: var(--mono-font-family); + color: var(--secondary-text-color) +} + +.posts-year-section { + --section-height: 9rem; + min-height: var(--section-height); + position: relative; + margin: 2rem 0; +} + +.posts-year-title { + font-weight: 900; + position: absolute; + right: 0; + color: var(--text-color); + opacity: 0.25; + font-size: calc(var(--section-height) / 2); + margin: 0; + line-height: 1; + z-index: -1; +} + +#posts-list hr { + border: 1px solid var(--border-color); + margin: 3rem 0; +} + +.posts-subtitle { + color: var(--secondary-text-color) +} + +.site-footer { + margin-top: 50px; + /* margin-bottom: 80px; */ + /* display: flex; */ + /* justify-content: flex-end; */ + /* flex-wrap: wrap; */ + /* padding: 12px 0; */ + /* border-width: 3px; */ + /* border-style: solid none; */ + /* border-color: #000; */ +} + +.site-footer-item { + margin-right: 12px; +} + +/* post */ + +.post-header { + margin-bottom: 2rem; +} + +.post-title { + font-size: 2rem; + font-weight: 900; +} + +.post-subtitle { + display: block; + color: var(--secondary-text-color); + font-style: italic; + font-size: 1.2rem; +} + +.post-tags { + display: inline; + font-weight: 600; + padding: 2px 5px; + margin-right: 6px; + border: var(--text-color) 2px solid; + border-radius: 5px; +} + +.post-date { + color: var(--secondary-text-color) +} + +.post-author { + float: right; + font-weight: 600; +} + +.page-content { + min-height: 60%; +} + +.post-content { + margin-bottom: 50px; + line-height: 2 +} + +.post-content p { + hyphens: auto; + text-justify: ideographic; + margin-bottom: 1em; +} + +.post-content strong { + color: var(--strong-text-color) +} + +.post-content em { + color: var(--em-text-color) +} + +.post-content hr { + margin: 2.5rem auto; + border: 0.1rem dashed var(--border-color); +} + +.post-content ul { + list-style-type: square; +} + +.post-content img { + max-width: 100%; + display: block; + margin-right: auto; + margin-top: 6px; +} + +.post-content .post-gallery { + display: flex; + flex-wrap: wrap; + gap: 6px; +} + +.post-content .post-gallery img { + margin-right: auto; + margin-top: auto; + width: calc(50% - 3px); +} + +.post-content figure { + margin: 0; +} + +.post-content figure figcaption h4 { + font-size: 0.9rem; + color: var(--secondary-text-color); + font-weight: 400; +} + +.related-content { + border-width: 3px; + border-style: solid; + border-color: #000; + padding: 0 10px; + margin-bottom: 50px; + margin-top: 100px; +} + +.related-content li { + margin: 5px 0; +} + +/* taxonomy */ + +.taxonomy-term { + font-size: 2rem; + text-align: center; + display: flex; + justify-content: center; + align-items: center; + + background-color: var(--block-background-color); + padding: 0.5rem 1rem; + border-radius: 1rem; + width: fit-content; + margin: 2rem auto +} + +.taxonomy-term::before, +.taxonomy-term::after { + margin: 0.5rem; + color: var(--secondary-text-color); + font-size: 0.75em +} + +.taxonomy-term::before { + content: "《"; +} + +.taxonomy-term::after { + content: "》"; +} + +/* gallery */ + +.gallery-img { + text-align: center; +} + +.gallery-img span { + text-align: center; +} + +.gallery-img-desc { + font-size: 0.8em; + font-weight: 800; +} + +/* disqus */ + +#disqus_thread { + position: relative; +} + +#disqus_thread:after { + content: ""; + display: block; + height: 55px; + width: 100%; + position: absolute; + bottom: 0; + background: var(--background-color); +} + +@media screen and (max-width: 600px) { + .header-title, + .header-subtitle, + .header-items { + /* text-align: center; */ + } + + .posts-line { + font-size: 16px; + } + + .markdown-body { + font-size: 16px; + } + .post-title { + font-size: 2rem; + } + .post-content p { + letter-spacing: 0.05em; + } + .post-content .post-gallery img { + width: 100%; + } +} + +@media screen and (max-width: 48em) { + .posts-category { + display: none; + } +} + +/* callouts */ + +.callout { + background-color: var(--block-background-color); + border-radius: .25rem; + padding: 1rem 1.25rem; + line-height: 1.75; + + display: flex; + gap: .75rem; +} + +.callout .callout-content p { + margin: 0; +} diff --git a/themes/yinyang/assets/css/waline.css b/themes/yinyang/assets/css/waline.css new file mode 100644 index 00000000..45cb4e0f --- /dev/null +++ b/themes/yinyang/assets/css/waline.css @@ -0,0 +1,1281 @@ +:root { + --waline-font-size: 1rem; + --waline-white: #fff; + --waline-light-grey: #999; + --waline-dark-grey: #666; + --waline-theme-color: #27ae60; + --waline-active-color: #2ecc71; + --waline-color: #444; + --waline-bg-color: #fff; + --waline-bg-color-light: #f8f8f8; + --waline-bg-color-hover: #f0f0f0; + --waline-border-color: #ddd; + --waline-disable-bg-color: #f8f8f8; + --waline-disable-color: #000; + --waline-code-bg-color: #282c34; + --waline-bq-color: #f0f0f0; + --waline-avatar-size: 3.25rem; + --waline-m-avatar-size: calc(var(--waline-avatar-size) * 9 / 13); + --waline-badge-color: #3498db; + --waline-badge-font-size: 0.75em; + --waline-info-bg-color: #f8f8f8; + --waline-info-color: #999; + --waline-info-font-size: 0.625em; + --waline-border: 1px solid var(--waline-border-color); + --waline-avatar-radius: 50%; + --waline-box-shadow: none +} + +[data-waline] { + font-size: var(--waline-font-size); + text-align: start +} + +[dir=rtl] [data-waline] { + direction: rtl +} + +[data-waline] * { + box-sizing: content-box; + line-height: 1.75 +} + +[data-waline] p { + color: var(--waline-color) +} + +[data-waline] a { + position: relative; + display: inline-block; + color: var(--waline-theme-color); + text-decoration: none; + word-break: break-word; + cursor: pointer +} + +[data-waline] a:hover { + color: var(--waline-active-color) +} + +[data-waline] img { + max-width: 100%; + max-height: 400px; + border: none +} + +[data-waline] hr { + margin: .825em 0; + border-style: dashed; + border-color: var(--waline-bg-color-light) +} + +[data-waline] code,[data-waline] pre { + margin: 0; + padding: .2em .4em; + border-radius: 3px; + background: var(--waline-bg-color-light); + font-size: 85% +} + +[data-waline] pre { + overflow: auto; + padding: 10px; + line-height: 1.45 +} + +[data-waline] pre::-webkit-scrollbar { + width: 6px; + height: 6px +} + +[data-waline] pre::-webkit-scrollbar-track-piece:horizontal { + -webkit-border-radius: 6px; + border-radius: 6px; + background: rgba(0,0,0,.1) +} + +[data-waline] pre::-webkit-scrollbar-thumb:horizontal { + width: 6px; + -webkit-border-radius: 6px; + border-radius: 6px; + background: var(--waline-theme-color) +} + +[data-waline] pre code { + padding: 0; + background: rgba(0,0,0,0); + color: var(--waline-color); + white-space: pre-wrap; + word-break: keep-all +} + +[data-waline] blockquote { + margin: .5em 0; + padding: .5em 0 .5em 1em; + border-inline-start:8px solid var(--waline-bq-color);color: var(--waline-dark-grey) +} + +[data-waline] blockquote>p { + margin: 0 +} + +[data-waline] ol,[data-waline] ul { + margin-inline-start:1.25em;padding: 0 +} + +[data-waline] input[type=checkbox],[data-waline] input[type=radio] { + display: inline-block; + vertical-align: middle; + margin-top: -2px +} + +.wl-btn { + display: inline-block; + vertical-align: middle; + min-width: 2.5em; + margin-bottom: 0; + padding: .5em 1em; + border: 1px solid var(--waline-border-color); + border-radius: .5em; + background: rgba(0,0,0,0); + color: var(--waline-color); + font-weight: 400; + font-size: .75em; + line-height: 1.5; + text-align: center; + white-space: nowrap; + cursor: pointer; + user-select: none; + touch-action: manipulation; + transition-duration: .4s +} + +.wl-btn:hover,.wl-btn:active { + border-color: var(--waline-theme-color); + color: var(--waline-theme-color) +} + +.wl-btn:disabled { + border-color: var(--waline-border-color); + background: var(--waline-disable-bg-color); + color: var(--waline-disable-color); + cursor: not-allowed +} + +.wl-btn.primary { + border-color: var(--waline-theme-color); + background: var(--waline-theme-color); + color: var(--waline-white) +} + +.wl-btn.primary:hover,.wl-btn.primary:active { + border-color: var(--waline-active-color); + background: var(--waline-active-color); + color: var(--waline-white) +} + +.wl-btn.primary:disabled { + border-color: var(--waline-border-color); + background: var(--waline-disable-bg-color); + color: var(--waline-disable-color); + cursor: not-allowed +} + +.wl-loading { + text-align: center +} + +.wl-loading svg { + margin: 0 auto +} + +.wl-comment { + position: relative; + display: flex; + margin-bottom: .75em +} + +.wl-close { + position: absolute; + inset-inline-end: -4px; + top: -4px; + padding: 0; + border: none; + background: rgba(0,0,0,0); + line-height: 1; + cursor: pointer +} + +.wl-login-info { + max-width: 80px; + margin-top: .75em; + text-align: center +} + +.wl-logout-btn { + position: absolute; + inset-inline-end: -10px; + top: -10px; + padding: 3px; + border: none; + background: rgba(0,0,0,0); + line-height: 0; + cursor: pointer +} + +.wl-avatar { + position: relative; + width: var(--waline-avatar-size); + height: var(--waline-avatar-size); + margin: 0 auto; + border: var(--waline-border); + border-radius: var(--waline-avatar-radius) +} + +@media(max-width: 720px) { + .wl-avatar { + width:var(--waline-m-avatar-size); + height: var(--waline-m-avatar-size) + } +} + +.wl-avatar img { + width: 100%; + height: 100%; + border-radius: var(--waline-avatar-radius) +} + +.wl-login-nick { + display: block; + color: var(--waline-theme-color); + font-size: .75em; + word-break: break-all +} + +.wl-panel { + position: relative; + flex-shrink: 1; + width: 100%; + margin: .5em; + border: var(--waline-border); + border-radius: .75em; + background: var(--waline-bg-color); + box-shadow: var(--waline-box-shadow) +} + +.wl-header { + display: flex; + overflow: hidden; + padding: 0 4px; + border-bottom: 2px dashed var(--waline-border-color); + border-top-left-radius: .75em; + border-top-right-radius: .75em +} + +@media(max-width: 580px) { + .wl-header { + display:block + } +} + +.wl-header label { + min-width: 40px; + padding: .75em .5em; + color: var(--waline-color); + font-size: .75em; + text-align: center +} + +.wl-header input { + flex: 1; + resize: none; + width: 0; + padding: .5em; + background: rgba(0,0,0,0); + font-size: .625em +} + +.wl-header-item { + display: flex; + flex: 1 +} + +@media(max-width: 580px) { + .wl-header-item:not(:last-child) { + border-bottom:2px dashed var(--waline-border-color) + } +} + +.wl-header-1 .wl-header-item { + width: 100% +} + +.wl-header-2 .wl-header-item { + width: 50% +} + +@media(max-width: 580px) { + .wl-header-2 .wl-header-item { + flex:0; + width: 100% + } +} + +.wl-header-3 .wl-header-item { + width: 33.33% +} + +@media(max-width: 580px) { + .wl-header-3 .wl-header-item { + width:100% + } +} + +.wl-editor { + position: relative; + resize: vertical; + width: calc(100% - 1em); + min-height: 8.75em; + margin: .75em .5em; + border-radius: .5em; + background: rgba(0,0,0,0); + font-size: .875em +} + +.wl-editor,.wl-input { + max-width: 100%; + border: none; + color: var(--waline-color); + outline: none; + transition: all .25s ease +} + +.wl-editor:focus,.wl-input:focus { + background: var(--waline-bg-color-light) +} + +.wl-preview { + padding: 0 .5em .5em +} + +.wl-preview h4 { + margin: .25em; + font-weight: bold; + font-size: .9375em +} + +.wl-preview .wl-content { + min-height: 1.25em; + padding: .25em; + word-break: break-word; + hyphens: auto +} + +.wl-preview .wl-content>*:first-child { + margin-top: 0 +} + +.wl-preview .wl-content>*:last-child { + margin-bottom: 0 +} + +.wl-footer { + position: relative; + display: flex; + flex-wrap: wrap; + margin: .5em .75em +} + +.wl-actions { + display: flex; + flex: 2; + align-items: center +} + +.wl-action { + display: inline-flex; + align-items: center; + justify-content: center; + width: 1.5em; + height: 1.5em; + margin: 2px; + padding: 0; + border: none; + background: rgba(0,0,0,0); + color: var(--waline-color); + font-size: 16px; + cursor: pointer +} + +.wl-action:hover { + color: var(--waline-theme-color) +} + +.wl-action.active { + color: var(--waline-active-color) +} + +#wl-image-upload { + display: none +} + +#wl-image-upload:focus+label { + color: var(--waline-color) +} + +#wl-image-upload:focus-visible+label { + outline: -webkit-focus-ring-color auto 1px +} + +.wl-info { + display: flex; + flex: 3; + align-items: center; + justify-content: flex-end +} + +.wl-info .wl-text-number { + color: var(--waline-info-color); + font-size: .75em +} + +.wl-info .wl-text-number .illegal { + color: red +} + +.wl-info button { + margin-inline-start:.75em} + +.wl-info button svg { + display: block; + margin: 0 auto; + line-height: 18px +} + +.wl-emoji-popup { + position: absolute; + inset-inline-start: 1.25em; + top: 100%; + z-index: 10; + display: none; + width: 100%; + max-width: 526px; + border: var(--waline-border); + border-radius: 6px; + background: var(--waline-bg-color); + box-shadow: var(--waline-box-shadow) +} + +.wl-emoji-popup.display { + display: block +} + +.wl-emoji-popup button { + display: inline-block; + vertical-align: middle; + width: 2em; + margin: .125em; + padding: 0; + border-width: 0; + background: rgba(0,0,0,0); + font-size: inherit; + line-height: 2; + text-align: center; + cursor: pointer +} + +.wl-emoji-popup button:hover { + background: var(--waline-bg-color-hover) +} + +.wl-emoji-popup .wl-emoji { + display: inline-block; + vertical-align: middle; + max-width: 1.5em; + max-height: 1.5em +} + +.wl-emoji-popup .wl-tab-wrapper { + overflow-y: auto; + max-height: 145px; + padding: .5em +} + +.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar { + width: 6px; + height: 6px +} + +.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar-track-piece:vertical { + -webkit-border-radius: 6px; + border-radius: 6px; + background: rgba(0,0,0,.1) +} + +.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar-thumb:vertical { + width: 6px; + -webkit-border-radius: 6px; + border-radius: 6px; + background: var(--waline-theme-color) +} + +.wl-emoji-popup .wl-tabs { + position: relative; + overflow-x: auto; + padding: 0 6px; + white-space: nowrap +} + +.wl-emoji-popup .wl-tabs::before { + content: " "; + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 2; + height: 1px; + background: var(--waline-border-color) +} + +.wl-emoji-popup .wl-tabs::-webkit-scrollbar { + width: 6px; + height: 6px +} + +.wl-emoji-popup .wl-tabs::-webkit-scrollbar-track-piece:horizontal { + -webkit-border-radius: 6px; + border-radius: 6px; + background: rgba(0,0,0,.1) +} + +.wl-emoji-popup .wl-tabs::-webkit-scrollbar-thumb:horizontal { + height: 6px; + -webkit-border-radius: 6px; + border-radius: 6px; + background: var(--waline-theme-color) +} + +.wl-emoji-popup .wl-tab { + position: relative; + margin: 0; + padding: 0 .5em +} + +.wl-emoji-popup .wl-tab.active { + z-index: 3; + border: 1px solid var(--waline-border-color); + border-top-width: 0; + border-bottom-right-radius: 6px; + border-bottom-left-radius: 6px; + background: var(--waline-bg-color) +} + +.wl-gif-popup { + position: absolute; + inset-inline-start: 1.25em; + top: 100%; + z-index: 10; + width: calc(100% - 3em); + padding: .75em .75em .25em; + border: var(--waline-border); + border-radius: 6px; + background: var(--waline-bg-color); + box-shadow: var(--waline-box-shadow); + opacity: 0; + visibility: hidden; + transition: transform .2s ease-out,opacity .2s ease-out; + transform: scale(0.9, 0.9); + transform-origin: 0 0 +} + +.wl-gif-popup.display { + opacity: 1; + visibility: visible; + transform: none +} + +.wl-gif-popup input { + box-sizing: border-box; + width: 100%; + margin-bottom: 10px; + padding: 3px 5px; + border: var(--waline-border) +} + +.wl-gif-popup img { + display: block; + box-sizing: border-box; + width: 100%; + border-width: 2px; + border-style: solid; + border-color: #fff; + cursor: pointer +} + +.wl-gif-popup img:hover { + border-color: var(--waline-theme-color); + border-radius: 2px +} + +.wl-gallery { + display: flex; + overflow-y: auto; + max-height: 80vh +} + +.wl-gallery-column { + display: flex; + flex: 1; + flex-direction: column; + height: -webkit-max-content; + height: -moz-max-content; + height: max-content +} + +.wl-cards .wl-user { + --avatar-size: var(--waline-avatar-size); + position: relative; + margin-inline-end:.75em} + +@media(max-width: 720px) { + .wl-cards .wl-user { + --avatar-size: var(--waline-m-avatar-size) + } +} + +.wl-cards .wl-user .wl-user-avatar { + width: var(--avatar-size); + height: var(--avatar-size); + border-radius: var(--waline-avatar-radius); + box-shadow: var(--waline-box-shadow) +} + +.wl-cards .wl-user .verified-icon { + position: absolute; + inset-inline-start: calc(var(--avatar-size)*3/4); + top: calc(var(--avatar-size)*3/4); + border-radius: 50%; + background: var(--waline-bg-color); + box-shadow: var(--waline-box-shadow) +} + +.wl-card-item { + position: relative; + display: flex; + padding: .5em +} + +.wl-card-item .wl-card-item { + padding-inline-end:0} + +.wl-card { + flex: 1; + width: 0; + padding-bottom: .5em; + border-bottom: 1px dashed var(--waline-border-color) +} + +.wl-card:first-child { + margin-inline-start:1em} + +.wl-card-item:last-child>.wl-card { + border-bottom: none +} + +.wl-card .wl-nick svg { + position: relative; + bottom: -0.125em; + line-height: 1 +} + +.wl-card .wl-head { + overflow: hidden; + line-height: 1.5 +} + +.wl-card .wl-head .wl-nick { + position: relative; + display: inline-block; + margin-inline-end:.5em;font-weight: bold; + font-size: .875em; + line-height: 1; + text-decoration: none +} + +.wl-card span.wl-nick { + color: var(--waline-dark-grey) +} + +.wl-card .wl-badge { + display: inline-block; + margin-inline-end:1em;padding: 0 .3em; + border: 1px solid var(--waline-badge-color); + border-radius: 4px; + color: var(--waline-badge-color); + font-size: var(--waline-badge-font-size) +} + +.wl-card .wl-time { + margin-inline-end:.875em;color: var(--waline-info-color); + font-size: .75em +} + +.wl-card .wl-meta { + position: relative; + line-height: 1 +} + +.wl-card .wl-meta>span { + display: inline-block; + margin-inline-end:.25em;padding: 2px 4px; + border-radius: .2em; + background: var(--waline-info-bg-color); + color: var(--waline-info-color); + font-size: var(--waline-info-font-size); + line-height: 1.5 +} + +.wl-card .wl-meta>span:empty { + display: none +} + +.wl-card .wl-comment-actions { + float: right; + line-height: 1 +} + +[dir=rtl] .wl-card .wl-comment-actions { + float: left +} + +.wl-card .wl-delete,.wl-card .wl-like,.wl-card .wl-reply,.wl-card .wl-edit { + display: inline-flex; + align-items: center; + border: none; + background: rgba(0,0,0,0); + color: var(--waline-color); + line-height: 1; + cursor: pointer; + transition: color .2s ease +} + +.wl-card .wl-delete:hover,.wl-card .wl-like:hover,.wl-card .wl-reply:hover,.wl-card .wl-edit:hover { + color: var(--waline-theme-color) +} + +.wl-card .wl-delete.active,.wl-card .wl-like.active,.wl-card .wl-reply.active,.wl-card .wl-edit.active { + color: var(--waline-active-color) +} + +.wl-card .wl-content { + position: relative; + margin-bottom: .75em; + padding-top: .625em; + font-size: .875em; + line-height: 2; + word-wrap: break-word +} + +.wl-card .wl-content.expand { + overflow: hidden; + max-height: 8em; + cursor: pointer +} + +.wl-card .wl-content.expand::before { + content: ""; + position: absolute; + inset-inline-start: 0; + top: 0; + bottom: 3.15em; + z-index: 999; + display: block; + width: 100%; + background: linear-gradient(180deg, #000, rgba(255, 255, 255, 0.9)) +} + +.wl-card .wl-content.expand::after { + content: attr(data-expand); + position: absolute; + inset-inline-start: 0; + bottom: 0; + z-index: 999; + display: block; + width: 100%; + height: 3.15em; + background: rgba(255,255,255,.9); + color: #828586; + line-height: 3.15em; + text-align: center +} + +.wl-card .wl-content>*:first-child { + margin-top: 0 +} + +.wl-card .wl-content>*:last-child { + margin-bottom: 0 +} + +.wl-card .wl-admin-actions { + margin: 8px 0; + font-size: 12px; + text-align: right +} + +.wl-card .wl-comment-status { + margin: 0 8px +} + +.wl-card .wl-comment-status .wl-btn { + border-radius: 0 +} + +.wl-card .wl-comment-status .wl-btn:first-child { + border-inline-end:0;border-radius: .5em 0 0 .5em +} + +.wl-card .wl-comment-status .wl-btn:last-child { + border-inline-start:0;border-radius: 0 .5em .5em 0 +} + +.wl-card .wl-quote { + border-inline-start:1px dashed rgba(237,237,237,.5)} + +.wl-card .wl-quote .wl-user { + --avatar-size: var(--waline-m-avatar-size) +} + +.wl-close-icon { + color: var(--waline-border-color) +} + +.wl-content .vemoji,.wl-content .wl-emoji { + display: inline-block; + vertical-align: baseline; + height: 1.25em; + margin: -0.125em .25em +} + +.wl-content .wl-tex { + background: var(--waline-info-bg-color); + color: var(--waline-info-color) +} + +.wl-content span.wl-tex { + display: inline-block; + margin-inline-end:.25em;padding: 2px 4px; + border-radius: .2em; + font-size: var(--waline-info-font-size); + line-height: 1.5 +} + +.wl-content p.wl-tex { + text-align: center +} + +.wl-content .katex-display { + overflow: auto hidden; + padding-top: .2em; + padding-bottom: .2em; + -webkit-overflow-scrolling: touch +} + +.wl-content .katex-display::-webkit-scrollbar { + height: 3px +} + +.wl-content .katex-error { + color: red +} + +.wl-count { + flex: 1; + font-weight: bold; + font-size: 1.25em +} + +.wl-empty { + overflow: auto; + padding: 1.25em; + color: var(--waline-color); + text-align: center +} + +.wl-operation { + text-align: center +} + +.wl-operation button { + margin: 1em 0 +} + +.wl-power { + padding: .5em 0; + color: var(--waline-light-grey); + font-size: var(--waline-info-font-size); + text-align: end +} + +.wl-meta-head { + display: flex; + flex-direction: row; + align-items: center; + padding: .375em +} + +.wl-sort { + margin: 0; + list-style-type: none +} + +.wl-sort li { + display: inline-block; + color: var(--waline-info-color); + font-size: .75em; + cursor: pointer +} + +.wl-sort li.active { + color: var(--waline-theme-color) +} + +.wl-sort li+li { + margin-inline-start:1em} + +.wl-reaction { + overflow: auto hidden; + margin-bottom: 1.75em; + text-align: center +} + +.wl-reaction img { + width: 100%; + height: 100%; + transition: all 250ms ease-in-out +} + +.wl-reaction-title { + margin: 16px auto; + font-weight: bold; + font-size: 18px +} + +.wl-reaction-list { + display: flex; + flex-direction: row; + gap: 16px; + justify-content: center; + margin: 0; + padding: 8px; + list-style-type: none +} + +@media(max-width: 580px) { + .wl-reaction-list { + gap:12px + } +} + +[data-waline] .wl-reaction-list { + margin-inline-start:0} + +.wl-reaction-item { + display: flex; + flex-direction: column; + align-items: center; + cursor: pointer +} + +.wl-reaction-item:hover img,.wl-reaction-item.active img { + transform: scale(1.15) +} + +.wl-reaction-img { + position: relative; + width: 42px; + height: 42px +} + +@media(max-width: 580px) { + .wl-reaction-img { + width:32px; + height: 32px + } +} + +.wl-reaction-loading { + position: absolute; + inset-inline-end: -5px; + top: -4px; + width: 18px; + height: 18px; + color: var(--waline-theme-color) +} + +.wl-reaction-votes { + position: absolute; + inset-inline-end: -9px; + top: -9px; + min-width: 1em; + padding: 2px; + border: 1px solid var(--waline-theme-color); + border-radius: 1em; + background: var(--waline-bg-color); + color: var(--waline-theme-color); + font-weight: 700; + font-size: .75em; + line-height: 1 +} + +.wl-reaction-item.active .wl-reaction-votes { + background: var(--waline-theme-color); + color: var(--waline-bg-color) +} + +.wl-reaction-text { + font-size: .875em +} + +.wl-reaction-item.active .wl-reaction-text { + color: var(--waline-theme-color) +} + +.wl-content pre,.wl-content pre[class*=language-] { + overflow: auto; + margin: .75rem 0; + padding: 1rem 1.25rem; + border-radius: 6px; + background: var(--waline-code-bg-color); + line-height: 1.4 +} + +.wl-content pre code,.wl-content pre[class*=language-] code { + padding: 0; + border-radius: 0; + background: rgba(0,0,0,0) !important; + color: #bbb; + direction: ltr +} + +.wl-content code[class*=language-],.wl-content pre[class*=language-] { + background: none; + color: #ccc; + font-size: 1em; + font-family: Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-wrap: normal; + word-break: normal; + tab-size: 4; + hyphens: none +} + +.wl-content pre[class*=language-] { + overflow: auto +} + +.wl-content :not(pre)>code[class*=language-],.wl-content pre[class*=language-] { + background: #2d2d2d +} + +.wl-content :not(pre)>code[class*=language-] { + padding: .1em; + border-radius: .3em; + white-space: normal +} + +.wl-content .token.comment,.wl-content .token.block-comment,.wl-content .token.prolog,.wl-content .token.doctype,.wl-content .token.cdata { + color: #999 +} + +.wl-content .token.punctuation { + color: #ccc +} + +.wl-content .token.tag,.wl-content .token.attr-name,.wl-content .token.namespace,.wl-content .token.deleted { + color: #e2777a +} + +.wl-content .token.function-name { + color: #6196cc +} + +.wl-content .token.boolean,.wl-content .token.number,.wl-content .token.function { + color: #f08d49 +} + +.wl-content .token.property,.wl-content .token.class-name,.wl-content .token.constant,.wl-content .token.symbol { + color: #f8c555 +} + +.wl-content .token.selector,.wl-content .token.important,.wl-content .token.atrule,.wl-content .token.keyword,.wl-content .token.builtin { + color: #cc99cd +} + +.wl-content .token.string,.wl-content .token.char,.wl-content .token.attr-value,.wl-content .token.regex,.wl-content .token.variable { + color: #7ec699 +} + +.wl-content .token.operator,.wl-content .token.entity,.wl-content .token.url { + color: #67cdcc +} + +.wl-content .token.important,.wl-content .token.bold { + font-weight: bold +} + +.wl-content .token.italic { + font-style: italic +} + +.wl-content .token.entity { + cursor: help +} + +.wl-content .token.inserted { + color: green +} + +.wl-recent-item p { + display: inline +} + +.wl-user-list { + padding: 0; + list-style: none +} + +.wl-user-list a,.wl-user-list a:hover,.wl-user-list a:visited { + color: var(--waline-color); + text-decoration: none +} + +.wl-user-list .wl-user-avatar { + position: relative; + display: inline-block; + overflow: hidden; + margin-inline-end:10px;border-radius: 4px; + line-height: 0 +} + +.wl-user-list .wl-user-avatar>img { + width: var(--waline-user-avatar-size, 48px); + height: var(--waline-user-avatar-size, 48px) +} + +.wl-user-list .wl-user-badge { + position: absolute; + inset-inline-end: 0; + bottom: 0; + min-width: .7em; + height: 1.5em; + padding: 0 .4em; + border-radius: 4px; + background: var(--waline-info-bg-color); + color: var(--waline-info-color); + font-weight: bold; + font-size: 10px; + line-height: 1.5em; + text-align: center +} + +.wl-user-list .wl-user-item { + margin: 10px 0 +} + +.wl-user-list .wl-user-item:nth-child(1) .wl-user-badge { + background: var(--waline-rank-gold-bg-color, #fa3939); + color: var(--waline-white); + font-weight: bold +} + +.wl-user-list .wl-user-item:nth-child(2) .wl-user-badge { + background: var(--waline-rank-silver-bg-color, #fb811c); + color: var(--waline-white); + font-weight: bold +} + +.wl-user-list .wl-user-item:nth-child(3) .wl-user-badge { + background: var(--waline-rank-copper-bg-color, #feb207); + color: var(--waline-white) +} + +.wl-user-list .wl-user-meta { + display: inline-block; + vertical-align: top +} + +.wl-user-list .wl-badge { + display: inline-block; + vertical-align: text-top; + margin-inline-start:.5em;padding: 0 .3em; + border: 1px solid var(--waline-badge-color); + border-radius: 4px; + color: var(--waline-badge-color); + font-size: var(--waline-badge-font-size) +} + +.wl-user-wall { + padding: 0; + list-style: none +} + +.wl-user-wall .wl-user-badge,.wl-user-wall .wl-user-meta { + display: none +} + +.wl-user-wall .wl-user-item { + position: relative; + display: inline-block; + transition: transform ease-in-out .2s +} + +.wl-user-wall .wl-user-item::before,.wl-user-wall .wl-user-item::after { + position: absolute; + bottom: 100%; + left: 50%; + z-index: 10; + opacity: 0; + pointer-events: none; + transition: all .18s ease-out .18s; + transform: translate(-50%, 4px); + transform-origin: top +} + +.wl-user-wall .wl-user-item::before { + content: ""; + width: 0; + height: 0; + border: 5px solid rgba(0,0,0,0); + border-top-color: rgba(16,16,16,.95) +} + +.wl-user-wall .wl-user-item::after { + content: attr(aria-label); + margin-bottom: 10px; + padding: .5em 1em; + border-radius: 2px; + background: rgba(16,16,16,.95); + color: #fff; + font-size: 12px; + white-space: nowrap +} + +.wl-user-wall .wl-user-item:hover { + transform: scale(1.1) +} + +.wl-user-wall .wl-user-item:hover::before,.wl-user-wall .wl-user-item:hover::after { + opacity: 1; + pointer-events: none; + transform: translate(-50%, 0) +} + +.wl-user-wall .wl-user-item img { + width: var(--waline-user-avatar-size, 48px); + height: var(--waline-user-avatar-size, 48px) +} + +/*# sourceMappingURL=waline.css.map */ diff --git a/themes/yinyang/exampleSite/.gitignore b/themes/yinyang/exampleSite/.gitignore new file mode 100644 index 00000000..ca4d540a --- /dev/null +++ b/themes/yinyang/exampleSite/.gitignore @@ -0,0 +1,27 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test + +/public +/themes +.DS_Store diff --git a/themes/yinyang/exampleSite/LICENSE b/themes/yinyang/exampleSite/LICENSE new file mode 100644 index 00000000..4527efb9 --- /dev/null +++ b/themes/yinyang/exampleSite/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Steve Francia + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.
\ No newline at end of file diff --git a/themes/yinyang/exampleSite/README.md b/themes/yinyang/exampleSite/README.md new file mode 100644 index 00000000..49eb04a2 --- /dev/null +++ b/themes/yinyang/exampleSite/README.md @@ -0,0 +1,26 @@ +# hugoBasicExample + +This is an example site for [Hugo](https://gohugo.io/). + +It is intended to be a demo site for the various [Hugo themes](https://themes.gohugo.io/). + +# Using + +1. [Install Hugo](https://gohugo.io/overview/installing/) +2. Clone this repository +```bash +git clone https://github.com/gohugoio/hugoBasicExample.git +cd hugoBasicExample +``` +3. Clone the repository you want to test. If you want to test all hugo themes, you can clone [the full list](https://github.com/gohugoio/hugoThemes) +```bash +git clone --recursive https://URL/OF/YOUR/THEME themes/YOURTHEME +``` +or +```bash +git clone --recursive https://github.com/gohugoio/hugoThemes.git themes +``` +4. Run Hugo and select the theme of your choosing +```bash +hugo server -t YOURTHEME +``` diff --git a/themes/yinyang/exampleSite/config.toml b/themes/yinyang/exampleSite/config.toml new file mode 100644 index 00000000..8af9b605 --- /dev/null +++ b/themes/yinyang/exampleSite/config.toml @@ -0,0 +1,32 @@ +baseURL = "https://example.com" +languageCode = "en-us" +title = "Example YinYong Blog" +theme = "yinyang" +DefaultContentLanguage = "en" + +[author] + name = "Joway Wang" + homepage = "https://joway.io/" + +[languages] + [languages.en] + contentDir = "content/en" + languageName = "English" + weight = 1 + [languages.cn] + contentDir = "content/cn" + languageName = "Chinese" + weight = 1 + +[params] +disqus = "joway" # disqus account name +extraHead = '' +mainSections = ["posts"] + +[[params.socials]] +name = "RSS" +link = "/index.xml" + +[[params.socials]] +name = "About" +link = "https://joway.io" diff --git a/themes/yinyang/exampleSite/content/about.md b/themes/yinyang/exampleSite/content/about.md new file mode 100644 index 00000000..77adcf16 --- /dev/null +++ b/themes/yinyang/exampleSite/content/about.md @@ -0,0 +1,18 @@ ++++ +title = "About Hugo" +date = "2014-04-09" +menu = "main" ++++ + +Hugo is the **world’s fastest framework for building websites**. It is written in Go. + +It makes use of a variety of open source projects including: + +* https://github.com/russross/blackfriday +* https://github.com/alecthomas/chroma +* https://github.com/muesli/smartcrop +* https://github.com/spf13/cobra +* https://github.com/spf13/viper + +Learn more and contribute on [GitHub](https://github.com/gohugoio). + diff --git a/themes/yinyang/exampleSite/content/cn/posts/cn.md b/themes/yinyang/exampleSite/content/cn/posts/cn.md new file mode 100644 index 00000000..94f27abf --- /dev/null +++ b/themes/yinyang/exampleSite/content/cn/posts/cn.md @@ -0,0 +1,17 @@ +--- +title: 赤壁赋 +date: 2018-03-04 +categories: ['诗歌'] +draft: false +--- + +## 原文 + +壬戌之秋,七月既望,蘇子與客泛舟遊於赤壁之下。清風徐來,水波不興。舉酒屬客,誦明月之詩,歌窈窕之章。少焉,月出於東山之上,徘徊於斗牛之間。白露橫江,水光接天。縱一葦之所如,凌萬頃之茫然。浩浩乎如馮虛御風,而不知其所止;飄飄乎如遺世獨立,羽化而登仙。 + +於是飲酒樂甚,扣舷而歌之。歌曰:“桂棹兮蘭槳,擊空明兮溯流光。渺渺兮予懷,望美人兮天一方。”客有吹洞簫者,倚歌而和之。其聲嗚嗚然,如怨如慕,如泣如訴;餘音嫋嫋,不絕如縷。舞幽壑之潛蛟,泣孤舟之嫠婦。 + +蘇子愀然,正襟危坐,而問客曰:“何爲其然也?”客曰:“‘月明星稀,烏鵲南飛。’此非曹孟德之詩乎?西望夏口,東望武昌,山川相繆,鬱乎蒼蒼,此非孟德之困於周郎者乎?方其破荊州,下江陵,順流而東也,舳艫千里,旌旗蔽空,釃酒臨江,橫槊賦詩,固一世之雄也,而今安在哉?況吾與子漁樵於江渚之上,侶魚蝦而友麋鹿,駕一葉之扁舟,舉匏樽以相屬。寄蜉蝣於天地,渺滄海之一粟。哀吾生之須臾,羨長 江之無窮。挾飛仙以遨遊,抱明月而長終。知不可乎驟得,託遺響於悲風。” + +蘇子曰:“客亦知夫水與月乎?逝者如斯,而未嘗往也;盈虛者如彼,而卒莫消長也。蓋將自其變者而觀之,則天地曾不能以一瞬;自其不變者而觀之,則物與我皆無盡也,而又何羨乎!且夫天地之間,物各有主,苟非吾之所有,雖一毫而莫取。惟江上之清風,與山間之明月,耳得之而爲聲,目遇之而成色,取之無禁,用之不竭。是造物者之無盡藏也,而吾與子之所共適。”(共適 一作:共食) +客喜而笑,洗盞更酌。餚核既盡,杯盤狼籍。相與枕藉乎舟中,不知東方之既白。 diff --git a/themes/yinyang/exampleSite/content/en/posts/goisforlovers.md b/themes/yinyang/exampleSite/content/en/posts/goisforlovers.md new file mode 100644 index 00000000..5171f65c --- /dev/null +++ b/themes/yinyang/exampleSite/content/en/posts/goisforlovers.md @@ -0,0 +1,343 @@ ++++ +title = "(Hu)go Template Primer" +description = "" +tags = [ + "go", + "golang", + "templates", + "themes", + "development", +] +date = "2014-04-02" +categories = [ + "Develop", +] +menu = "main" ++++ + +Hugo uses the excellent [Go][] [html/template][gohtmltemplate] library for +its template engine. It is an extremely lightweight engine that provides a very +small amount of logic. In our experience that it is just the right amount of +logic to be able to create a good static website. If you have used other +template systems from different languages or frameworks you will find a lot of +similarities in Go templates. + +This document is a brief primer on using Go templates. The [Go docs][gohtmltemplate] +provide more details. + +## Introduction to Go Templates + +Go templates provide an extremely simple template language. It adheres to the +belief that only the most basic of logic belongs in the template or view layer. +One consequence of this simplicity is that Go templates parse very quickly. + +A unique characteristic of Go templates is they are content aware. Variables and +content will be sanitized depending on the context of where they are used. More +details can be found in the [Go docs][gohtmltemplate]. + +## Basic Syntax + +Golang templates are HTML files with the addition of variables and +functions. + +**Go variables and functions are accessible within {{ }}** + +Accessing a predefined variable "foo": + + {{ foo }} + +**Parameters are separated using spaces** + +Calling the add function with input of 1, 2: + + {{ add 1 2 }} + +**Methods and fields are accessed via dot notation** + +Accessing the Page Parameter "bar" + + {{ .Params.bar }} + +**Parentheses can be used to group items together** + + {{ if or (isset .Params "alt") (isset .Params "caption") }} Caption {{ end }} + + +## Variables + +Each Go template has a struct (object) made available to it. In hugo each +template is passed either a page or a node struct depending on which type of +page you are rendering. More details are available on the +[variables](/layout/variables) page. + +A variable is accessed by referencing the variable name. + + <title>{{ .Title }}</title> + +Variables can also be defined and referenced. + + {{ $address := "123 Main St."}} + {{ $address }} + + +## Functions + +Go template ship with a few functions which provide basic functionality. The Go +template system also provides a mechanism for applications to extend the +available functions with their own. [Hugo template +functions](/layout/functions) provide some additional functionality we believe +are useful for building websites. Functions are called by using their name +followed by the required parameters separated by spaces. Template +functions cannot be added without recompiling hugo. + +**Example:** + + {{ add 1 2 }} + +## Includes + +When including another template you will pass to it the data it will be +able to access. To pass along the current context please remember to +include a trailing dot. The templates location will always be starting at +the /layout/ directory within Hugo. + +**Example:** + + {{ template "chrome/header.html" . }} + + +## Logic + +Go templates provide the most basic iteration and conditional logic. + +### Iteration + +Just like in Go, the Go templates make heavy use of range to iterate over +a map, array or slice. The following are different examples of how to use +range. + +**Example 1: Using Context** + + {{ range array }} + {{ . }} + {{ end }} + +**Example 2: Declaring value variable name** + + {{range $element := array}} + {{ $element }} + {{ end }} + +**Example 2: Declaring key and value variable name** + + {{range $index, $element := array}} + {{ $index }} + {{ $element }} + {{ end }} + +### Conditionals + +If, else, with, or, & and provide the framework for handling conditional +logic in Go Templates. Like range, each statement is closed with `end`. + + +Go Templates treat the following values as false: + +* false +* 0 +* any array, slice, map, or string of length zero + +**Example 1: If** + + {{ if isset .Params "title" }}<h4>{{ index .Params "title" }}</h4>{{ end }} + +**Example 2: If -> Else** + + {{ if isset .Params "alt" }} + {{ index .Params "alt" }} + {{else}} + {{ index .Params "caption" }} + {{ end }} + +**Example 3: And & Or** + + {{ if and (or (isset .Params "title") (isset .Params "caption")) (isset .Params "attr")}} + +**Example 4: With** + +An alternative way of writing "if" and then referencing the same value +is to use "with" instead. With rebinds the context `.` within its scope, +and skips the block if the variable is absent. + +The first example above could be simplified as: + + {{ with .Params.title }}<h4>{{ . }}</h4>{{ end }} + +**Example 5: If -> Else If** + + {{ if isset .Params "alt" }} + {{ index .Params "alt" }} + {{ else if isset .Params "caption" }} + {{ index .Params "caption" }} + {{ end }} + +## Pipes + +One of the most powerful components of Go templates is the ability to +stack actions one after another. This is done by using pipes. Borrowed +from unix pipes, the concept is simple, each pipeline's output becomes the +input of the following pipe. + +Because of the very simple syntax of Go templates, the pipe is essential +to being able to chain together function calls. One limitation of the +pipes is that they only can work with a single value and that value +becomes the last parameter of the next pipeline. + +A few simple examples should help convey how to use the pipe. + +**Example 1 :** + + {{ if eq 1 1 }} Same {{ end }} + +is the same as + + {{ eq 1 1 | if }} Same {{ end }} + +It does look odd to place the if at the end, but it does provide a good +illustration of how to use the pipes. + +**Example 2 :** + + {{ index .Params "disqus_url" | html }} + +Access the page parameter called "disqus_url" and escape the HTML. + +**Example 3 :** + + {{ if or (or (isset .Params "title") (isset .Params "caption")) (isset .Params "attr")}} + Stuff Here + {{ end }} + +Could be rewritten as + + {{ isset .Params "caption" | or isset .Params "title" | or isset .Params "attr" | if }} + Stuff Here + {{ end }} + + +## Context (aka. the dot) + +The most easily overlooked concept to understand about Go templates is that {{ . }} +always refers to the current context. In the top level of your template this +will be the data set made available to it. Inside of a iteration it will have +the value of the current item. When inside of a loop the context has changed. . +will no longer refer to the data available to the entire page. If you need to +access this from within the loop you will likely want to set it to a variable +instead of depending on the context. + +**Example:** + + {{ $title := .Site.Title }} + {{ range .Params.tags }} + <li> <a href="{{ $baseurl }}/tags/{{ . | urlize }}">{{ . }}</a> - {{ $title }} </li> + {{ end }} + +Notice how once we have entered the loop the value of {{ . }} has changed. We +have defined a variable outside of the loop so we have access to it from within +the loop. + +# Hugo Parameters + +Hugo provides the option of passing values to the template language +through the site configuration (for sitewide values), or through the meta +data of each specific piece of content. You can define any values of any +type (supported by your front matter/config format) and use them however +you want to inside of your templates. + + +## Using Content (page) Parameters + +In each piece of content you can provide variables to be used by the +templates. This happens in the [front matter](/content/front-matter). + +An example of this is used in this documentation site. Most of the pages +benefit from having the table of contents provided. Sometimes the TOC just +doesn't make a lot of sense. We've defined a variable in our front matter +of some pages to turn off the TOC from being displayed. + +Here is the example front matter: + +``` +--- +title: "Permalinks" +date: "2013-11-18" +aliases: + - "/doc/permalinks/" +groups: ["extras"] +groups_weight: 30 +notoc: true +--- +``` + +Here is the corresponding code inside of the template: + + {{ if not .Params.notoc }} + <div id="toc" class="well col-md-4 col-sm-6"> + {{ .TableOfContents }} + </div> + {{ end }} + + + +## Using Site (config) Parameters +In your top-level configuration file (eg, `config.yaml`) you can define site +parameters, which are values which will be available to you in chrome. + +For instance, you might declare: + +```yaml +params: + CopyrightHTML: "Copyright © 2013 John Doe. All Rights Reserved." + TwitterUser: "spf13" + SidebarRecentLimit: 5 +``` + +Within a footer layout, you might then declare a `<footer>` which is only +provided if the `CopyrightHTML` parameter is provided, and if it is given, +you would declare it to be HTML-safe, so that the HTML entity is not escaped +again. This would let you easily update just your top-level config file each +January 1st, instead of hunting through your templates. + +``` +{{if .Site.Params.CopyrightHTML}}<footer> +<div class="text-center">{{.Site.Params.CopyrightHTML | safeHtml}}</div> +</footer>{{end}} +``` + +An alternative way of writing the "if" and then referencing the same value +is to use "with" instead. With rebinds the context `.` within its scope, +and skips the block if the variable is absent: + +``` +{{with .Site.Params.TwitterUser}}<span class="twitter"> +<a href="https://twitter.com/{{.}}" rel="author"> +<img src="/images/twitter.png" width="48" height="48" title="Twitter: {{.}}" + alt="Twitter"></a> +</span>{{end}} +``` + +Finally, if you want to pull "magic constants" out of your layouts, you can do +so, such as in this example: + +``` +<nav class="recent"> + <h1>Recent Posts</h1> + <ul>{{range first .Site.Params.SidebarRecentLimit .Site.Recent}} + <li><a href="{{.RelPermalink}}">{{.Title}}</a></li> + {{end}}</ul> +</nav> +``` + + +[go]: https://golang.org/ +[gohtmltemplate]: https://golang.org/pkg/html/template/ diff --git a/themes/yinyang/exampleSite/content/en/posts/hugoisforlovers.md b/themes/yinyang/exampleSite/content/en/posts/hugoisforlovers.md new file mode 100644 index 00000000..1a09a768 --- /dev/null +++ b/themes/yinyang/exampleSite/content/en/posts/hugoisforlovers.md @@ -0,0 +1,88 @@ ++++ +title = "Getting Started with Hugo" +description = "" +tags = [ + "go", + "golang", + "hugo", + "development", +] +date = "2014-04-02" +categories = [ + "Golang", +] +menu = "main" ++++ + +## Step 1. Install Hugo + +Go to [Hugo releases](https://github.com/spf13/hugo/releases) and download the +appropriate version for your OS and architecture. + +Save it somewhere specific as we will be using it in the next step. + +More complete instructions are available at [Install Hugo](https://gohugo.io/getting-started/installing/) + +## Step 2. Build the Docs + +Hugo has its own example site which happens to also be the documentation site +you are reading right now. + +Follow the following steps: + + 1. Clone the [Hugo repository](http://github.com/spf13/hugo) + 2. Go into the repo + 3. Run hugo in server mode and build the docs + 4. Open your browser to http://localhost:1313 + +Corresponding pseudo commands: + + git clone https://github.com/spf13/hugo + cd hugo + /path/to/where/you/installed/hugo server --source=./docs + > 29 pages created + > 0 tags index created + > in 27 ms + > Web Server is available at http://localhost:1313 + > Press ctrl+c to stop + +Once you've gotten here, follow along the rest of this page on your local build. + +## Step 3. Change the docs site + +Stop the Hugo process by hitting Ctrl+C. + +Now we are going to run hugo again, but this time with hugo in watch mode. + + /path/to/hugo/from/step/1/hugo server --source=./docs --watch + > 29 pages created + > 0 tags index created + > in 27 ms + > Web Server is available at http://localhost:1313 + > Watching for changes in /Users/spf13/Code/hugo/docs/content + > Press ctrl+c to stop + + +Open your [favorite editor](http://vim.spf13.com) and change one of the source +content pages. How about changing this very file to *fix the typo*. How about changing this very file to *fix the typo*. + +Content files are found in `docs/content/`. Unless otherwise specified, files +are located at the same relative location as the url, in our case +`docs/content/overview/quickstart.md`. + +Change and save this file.. Notice what happened in your terminal. + + > Change detected, rebuilding site + + > 29 pages created + > 0 tags index created + > in 26 ms + +Refresh the browser and observe that the typo is now fixed. + +Notice how quick that was. Try to refresh the site before it's finished building. I double dare you. +Having nearly instant feedback enables you to have your creativity flow without waiting for long builds. + +## Step 4. Have fun + +The best way to learn something is to play with it. diff --git a/themes/yinyang/exampleSite/content/en/posts/migrate-from-jekyll.md b/themes/yinyang/exampleSite/content/en/posts/migrate-from-jekyll.md new file mode 100644 index 00000000..43e8344e --- /dev/null +++ b/themes/yinyang/exampleSite/content/en/posts/migrate-from-jekyll.md @@ -0,0 +1,159 @@ +--- +date: 2014-03-10 +linktitle: Migrating from Jekyll +menu: + main: + parent: tutorials +prev: /tutorials/mathjax +title: Migrate to Hugo from Jekyll +categories: [ + "Docs", +] +weight: 10 +--- + +## Move static content to `static` +Jekyll has a rule that any directory not starting with `_` will be copied as-is to the `_site` output. Hugo keeps all static content under `static`. You should therefore move it all there. +With Jekyll, something that looked like + + ▾ <root>/ + ▾ images/ + logo.png + +should become + + ▾ <root>/ + ▾ static/ + ▾ images/ + logo.png + +Additionally, you'll want any files that should reside at the root (such as `CNAME`) to be moved to `static`. + +## Create your Hugo configuration file +Hugo can read your configuration as JSON, YAML or TOML. Hugo supports parameters custom configuration too. Refer to the [Hugo configuration documentation](/overview/configuration/) for details. + +## Set your configuration publish folder to `_site` +The default is for Jekyll to publish to `_site` and for Hugo to publish to `public`. If, like me, you have [`_site` mapped to a git submodule on the `gh-pages` branch](http://blog.blindgaenger.net/generate_github_pages_in_a_submodule.html), you'll want to do one of two alternatives: + +1. Change your submodule to point to map `gh-pages` to public instead of `_site` (recommended). + + git submodule deinit _site + git rm _site + git submodule add -b gh-pages git@github.com:your-username/your-repo.git public + +2. Or, change the Hugo configuration to use `_site` instead of `public`. + + { + .. + "publishdir": "_site", + .. + } + +## Convert Jekyll templates to Hugo templates +That's the bulk of the work right here. The documentation is your friend. You should refer to [Jekyll's template documentation](http://jekyllrb.com/docs/templates/) if you need to refresh your memory on how you built your blog and [Hugo's template](/layout/templates/) to learn Hugo's way. + +As a single reference data point, converting my templates for [heyitsalex.net](http://heyitsalex.net/) took me no more than a few hours. + +## Convert Jekyll plugins to Hugo shortcodes +Jekyll has [plugins](http://jekyllrb.com/docs/plugins/); Hugo has [shortcodes](/doc/shortcodes/). It's fairly trivial to do a port. + +### Implementation +As an example, I was using a custom [`image_tag`](https://github.com/alexandre-normand/alexandre-normand/blob/74bb12036a71334fdb7dba84e073382fc06908ec/_plugins/image_tag.rb) plugin to generate figures with caption when running Jekyll. As I read about shortcodes, I found Hugo had a nice built-in shortcode that does exactly the same thing. + +Jekyll's plugin: + + module Jekyll + class ImageTag < Liquid::Tag + @url = nil + @caption = nil + @class = nil + @link = nil + // Patterns + IMAGE_URL_WITH_CLASS_AND_CAPTION = + IMAGE_URL_WITH_CLASS_AND_CAPTION_AND_LINK = /(\w+)(\s+)((https?:\/\/|\/)(\S+))(\s+)"(.*?)"(\s+)->((https?:\/\/|\/)(\S+))(\s*)/i + IMAGE_URL_WITH_CAPTION = /((https?:\/\/|\/)(\S+))(\s+)"(.*?)"/i + IMAGE_URL_WITH_CLASS = /(\w+)(\s+)((https?:\/\/|\/)(\S+))/i + IMAGE_URL = /((https?:\/\/|\/)(\S+))/i + def initialize(tag_name, markup, tokens) + super + if markup =~ IMAGE_URL_WITH_CLASS_AND_CAPTION_AND_LINK + @class = $1 + @url = $3 + @caption = $7 + @link = $9 + elsif markup =~ IMAGE_URL_WITH_CLASS_AND_CAPTION + @class = $1 + @url = $3 + @caption = $7 + elsif markup =~ IMAGE_URL_WITH_CAPTION + @url = $1 + @caption = $5 + elsif markup =~ IMAGE_URL_WITH_CLASS + @class = $1 + @url = $3 + elsif markup =~ IMAGE_URL + @url = $1 + end + end + def render(context) + if @class + source = "<figure class='#{@class}'>" + else + source = "<figure>" + end + if @link + source += "<a href=\"#{@link}\">" + end + source += "<img src=\"#{@url}\">" + if @link + source += "</a>" + end + source += "<figcaption>#{@caption}</figcaption>" if @caption + source += "</figure>" + source + end + end + end + Liquid::Template.register_tag('image', Jekyll::ImageTag) + +is written as this Hugo shortcode: + + <!-- image --> + <figure {{ with .Get "class" }}class="{{.}}"{{ end }}> + {{ with .Get "link"}}<a href="{{.}}">{{ end }} + <img src="{{ .Get "src" }}" {{ if or (.Get "alt") (.Get "caption") }}alt="{{ with .Get "alt"}}{{.}}{{else}}{{ .Get "caption" }}{{ end }}"{{ end }} /> + {{ if .Get "link"}}</a>{{ end }} + {{ if or (or (.Get "title") (.Get "caption")) (.Get "attr")}} + <figcaption>{{ if isset .Params "title" }} + {{ .Get "title" }}{{ end }} + {{ if or (.Get "caption") (.Get "attr")}}<p> + {{ .Get "caption" }} + {{ with .Get "attrlink"}}<a href="{{.}}"> {{ end }} + {{ .Get "attr" }} + {{ if .Get "attrlink"}}</a> {{ end }} + </p> {{ end }} + </figcaption> + {{ end }} + </figure> + <!-- image --> + +### Usage +I simply changed: + + {% image full http://farm5.staticflickr.com/4136/4829260124_57712e570a_o_d.jpg "One of my favorite touristy-type photos. I secretly waited for the good light while we were "having fun" and took this. Only regret: a stupid pole in the top-left corner of the frame I had to clumsily get rid of at post-processing." ->http://www.flickr.com/photos/alexnormand/4829260124/in/set-72157624547713078/ %} + +to this (this example uses a slightly extended version named `fig`, different than the built-in `figure`): + + {{%/* fig class="full" src="http://farm5.staticflickr.com/4136/4829260124_57712e570a_o_d.jpg" title="One of my favorite touristy-type photos. I secretly waited for the good light while we were having fun and took this. Only regret: a stupid pole in the top-left corner of the frame I had to clumsily get rid of at post-processing." link="http://www.flickr.com/photos/alexnormand/4829260124/in/set-72157624547713078/" */%}} + +As a bonus, the shortcode named parameters are, arguably, more readable. + +## Finishing touches +### Fix content +Depending on the amount of customization that was done with each post with Jekyll, this step will require more or less effort. There are no hard and fast rules here except that `hugo server --watch` is your friend. Test your changes and fix errors as needed. + +### Clean up +You'll want to remove the Jekyll configuration at this point. If you have anything else that isn't used, delete it. + +## A practical example in a diff +[Hey, it's Alex](http://heyitsalex.net/) was migrated in less than a _father-with-kids day_ from Jekyll to Hugo. You can see all the changes (and screw-ups) by looking at this [diff](https://github.com/alexandre-normand/alexandre-normand/compare/869d69435bd2665c3fbf5b5c78d4c22759d7613a...b7f6605b1265e83b4b81495423294208cc74d610). diff --git a/themes/yinyang/exampleSite/layouts/.gitkeep b/themes/yinyang/exampleSite/layouts/.gitkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/themes/yinyang/exampleSite/layouts/.gitkeep diff --git a/themes/yinyang/exampleSite/static/.gitignore b/themes/yinyang/exampleSite/static/.gitignore new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/themes/yinyang/exampleSite/static/.gitignore diff --git a/themes/yinyang/images/screenshot.png b/themes/yinyang/images/screenshot.png Binary files differnew file mode 100644 index 00000000..1cdb886d --- /dev/null +++ b/themes/yinyang/images/screenshot.png diff --git a/themes/yinyang/images/tn.png b/themes/yinyang/images/tn.png Binary files differnew file mode 100644 index 00000000..bc19f046 --- /dev/null +++ b/themes/yinyang/images/tn.png diff --git a/themes/yinyang/layouts/404.html b/themes/yinyang/layouts/404.html new file mode 100644 index 00000000..b58ec77b --- /dev/null +++ b/themes/yinyang/layouts/404.html @@ -0,0 +1,7 @@ +{{ define "main"}} + <main id="main"> + <div> + <h1 id="title"><a href="{{ "/" | relURL }}">Go Home</a></h1> + </div> + </main> +{{ end }}
\ No newline at end of file diff --git a/themes/yinyang/layouts/_default/list.html b/themes/yinyang/layouts/_default/list.html new file mode 100644 index 00000000..ff829709 --- /dev/null +++ b/themes/yinyang/layouts/_default/list.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html lang="en"> +{{ partial "head.html" . }} + +<body> + <article class="posts"> + <div class="row"> + <div class="col-xs-12"> + {{ partial "header.html" . }} + + <h1 class="taxonomy-term">{{.Data.Term}}</h1> + <div id="posts-list"> + {{ range .Pages }} + <div class="row posts-line"> + <div class="posts-date col-xs-2"> + <time datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}">{{ .Date.Format "06/01/02"}}</time> + </div> + <div class="posts-title col-xs-10"> + <div class="row"> + <div class="col-xs-12"> + <a href="{{ .RelPermalink }}"> + {{ .Title }}{{ with .Params.subtitle }}:<span class="posts-subtitle">{{. }}</span> + {{ end }} + </a> + </div> + </div> + </div> + </div> + {{ end }} + </div> + + {{ partial "footer.html" . }} + </div> + </div> + </article> + + {{ partial "scripts.html" . }} +</body> + +</html>
\ No newline at end of file diff --git a/themes/yinyang/layouts/_default/single.html b/themes/yinyang/layouts/_default/single.html new file mode 100644 index 00000000..c194ccb2 --- /dev/null +++ b/themes/yinyang/layouts/_default/single.html @@ -0,0 +1,95 @@ +<!DOCTYPE html> +<html lang="en"> +{{ partial "head.html" . }} + +<body> + <article class="post {{ .Site.Language.LanguageName }}" id="article"> + <div class="row"> + <div class="col-xs-12"> + <div class="site-header"> + {{ partial "header.html" . }} + </div> + <header class="post-header"> + <h1 class="post-title"> + {{ .Title }} + {{ with .Params.subtitle }} + <small class="post-subtitle">{{ . }}</small> + {{ end }} + </h1> + + + {{ if in .Site.Params.mainSections .Type }} + <div class="row post-desc"> + <div class="col-xs-6"> + {{ if .Date }} + <time class="post-date" datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}"> + {{ .Date.Format "02 Jan 2006" }} + </time> + {{ end }} + <span> / </span> + <span> + <span class="waline-pageview-count">…</span> + Views + </span> + </div> + <div class="col-xs-6"> + {{ if .Site.Author.name }} + <div class="post-author"> + <a target="_blank" href="{{ .Site.Author.homepage }}">@{{ .Site.Author.name }}</a> + </div> + {{ end }} + </div> + </div> + {{ end }} + </header> + + <div class="post-content markdown-body"> + {{ .Site.Params.postHeaderContent | safeHTML }} + {{ .Content }} + </div> + + <div class="row middle-xs"> + <div class="col-xs-12"> + {{ range .Params.tags }} + <div class="post-tags"> + <a href="{{ site.LanguagePrefix }}/tags/{{ lower . | urlize }}/"> + {{ . }} + </a> + </div> + {{ end }} + </div> + </div> + {{ if in .Site.Params.mainSections .Type }} + <div class="row"> + <div class="col-xs-12"> + {{ .Site.Params.postFooterContent | safeHTML }} + </div> + </div> + + {{ partial "related.html" . }} + + {{ if .Site.Params.postAds }} + <div class="post-ads">{{ .Site.Params.postAds | safeHTML }}</div> + {{ end }} + <!-- split --> + <div style="height: 50px;"></div> + {{ if .Site.Params.disqus }} + <div class="post-comments"> + {{ partial "disqus.html" . }} + </div> + {{ end }} + {{ end }} + + {{ partial "footer.html" . }} + </div> + </div> + </article> + + {{ partial "scripts.html" . }} + {{ if .Site.Params.extraBody }} + {{ .Site.Params.extraBody | safeHTML }} + {{ end }} + +</body> + +</html>
\ No newline at end of file diff --git a/themes/yinyang/layouts/gallery/single.html b/themes/yinyang/layouts/gallery/single.html new file mode 100644 index 00000000..94ed0663 --- /dev/null +++ b/themes/yinyang/layouts/gallery/single.html @@ -0,0 +1,45 @@ +<!DOCTYPE html> +<html lang="en"> +{{ partial "head.html" . }} + +<body> + <article class="post {{ .Site.Language.LanguageName }}" id="article"> + <div class="row"> + <div class="col-xs-12"> + <div class="site-header"> + {{ partial "header.html" . }} + </div> + <header class="post-header"> + <h1 class="post-title">{{ .Title }}</h1> + </header> + + <div class="post-content page-content markdown-body"> + <div class="row gallery"> + {{ range .Params.gallery }} + <div class="col-xs-6 gallery-img"> + <img src="{{ .url }}" alt="{{ .name }}"> + <span class="gallery-img-desc">{{ .name }}</span> + </div> + {{ end }} + </div> + </div> + + {{ if .Site.Params.disqus }} + <div class="post-comments"> + {{ partial "disqus.html" . }} + </div> + {{ end }} + + {{ partial "footer.html" . }} + </div> + </div> + </article> + + {{ partial "scripts.html" . }} + {{ if .Site.Params.extraBody }} + {{ .Site.Params.extraBody | safeHTML }} + {{ end }} + +</body> + +</html>
\ No newline at end of file diff --git a/themes/yinyang/layouts/index.html b/themes/yinyang/layouts/index.html new file mode 100644 index 00000000..baf542f6 --- /dev/null +++ b/themes/yinyang/layouts/index.html @@ -0,0 +1,72 @@ +<!DOCTYPE html> +<html lang="{{ .Site.LanguageCode }}" prefix="og: http://ogp.me/ns#"> +{{ partial "head.html" . }} + +<body> + <article class="posts"> + <div class="row"> + <div class="col-xs-12"> + {{ partial "header.html" . }} + <div id="posts-list"> + {{ $currentYear := now.Format "2006" }} <!-- 获取当前年份 --> + + {{ $isFirstPost := true }} <!-- 用于标记首页的第一篇文章 --> + + {{ range (where site.RegularPages "Type" "in" site.Params.mainSections).GroupByDate "2006" -}} + <section class="posts-year-section"> + <h1 class="site-date-catalog posts-year-title">{{ .Key }}</h1> + + {{ range .Pages.GroupByDate "01" }} + <h2>{{ .Key }} 月</h2> + <ul> + {{ range .Pages }} + <li class="{{ if $isFirstPost }}first-post{{ end }}"> + <!-- 首页第一篇文章特殊展示 --> + <div class="row posts-line {{ if $isFirstPost }}featured-post{{ end }}"> + <div class="posts-date col-xs-3 col-sm-2"> + <time datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}">{{ .Date.Format "Jan 02" }}</time> + </div> + <div class="posts-title col-xs-9 col-sm-10"> + <div class="row"> + <div class="col-xs-11 col-sm-10"> + <a href="{{ .RelPermalink }}">{{ .Title }}</a> + <div class="posts-excerpt"> + {{ if $isFirstPost }} + {{ if .Params.description }} + <p>{{.Params.description }}</p> + {{ else }} + {{ .Summary }} + {{ end }} + {{ $isFirstPost = false }} + {{ end }} + </div> + </div> + <div class="col-xs-1 col-sm-2 posts-categories"> + {{ with .Params.categories }} + <div class="posts-category"> + <a href="/categories/{{ . }}/"><strong>{{ . }}</strong></a> + </div> + {{ end }} + </div> + </div> + </div> + </div> + </li> + {{ end }} + </ul> + {{ end }} + + </section> + <hr> + {{ end }} + </div> + + {{ partial "footer.html" . }} + </div> + </div> + </article> + + {{ partial "scripts.html" . }} +</body> + +</html> diff --git a/themes/yinyang/layouts/partials/disqus.html b/themes/yinyang/layouts/partials/disqus.html new file mode 100644 index 00000000..162b351f --- /dev/null +++ b/themes/yinyang/layouts/partials/disqus.html @@ -0,0 +1,19 @@ +<div id="disqus_thread"></div> +<script> + window.addEventListener("load", () => { + (function() { + // DON'T EDIT BELOW THIS LINE + var d = document, + s = d.createElement("script"); + s.src = "https://{{ .Site.Params.disqus }}.disqus.com/embed.js"; + s.setAttribute("data-timestamp", +new Date()); + (d.head || d.body).appendChild(s); + })(); + }); +</script> +<noscript + >Please enable JavaScript to view the + <a href="https://disqus.com/?ref_noscript" + >comments powered by Disqus.</a + ></noscript +> diff --git a/themes/yinyang/layouts/partials/footer.html b/themes/yinyang/layouts/partials/footer.html new file mode 100644 index 00000000..e6091b54 --- /dev/null +++ b/themes/yinyang/layouts/partials/footer.html @@ -0,0 +1,11 @@ +<div class="site-footer"> + <p style="text-align: center;">You've reached the end.</p> + <!-- {{ range .Site.Params.socials }} + <div class="site-footer-item"> + <a href="{{ .link }}" target="_blank">{{ .name }}</a> + </div> + {{ end }} --> + <!-- <div class="site-footer-item"> + <a href="https://github.com/joway/hugo-theme-yinyang" target="_blank">Theme</a> + </div> --> +</div>
\ No newline at end of file diff --git a/themes/yinyang/layouts/partials/head.html b/themes/yinyang/layouts/partials/head.html new file mode 100644 index 00000000..e8178a62 --- /dev/null +++ b/themes/yinyang/layouts/partials/head.html @@ -0,0 +1,72 @@ +<head> + <meta charset="utf-8" /> + {{ hugo.Generator }} + + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta name="author" content="{{ .Site.Author.name }}" /> + <meta property="og:url" content="{{ .Permalink }}" /> + <link rel="canonical" href="{{ .Permalink }}" /> + + {{- if .Site.Params.staticPrefix -}} + <link rel="dns-prefetch" href="{{ .Site.Params.staticPrefix }}" /> + {{- end -}} + + {{- if .Site.Params.favicon -}} + <link rel="apple-touch-icon" href="{{ .Site.Params.favicon }}" /> + <link rel="icon" href="{{ .Site.Params.favicon }}" /> + <link rel="shortcut" href="{{ .Site.Params.favicon }}" /> + {{- end -}} + <link rel="alternate" type="application/atom+xml" href="{{.Site.BaseURL}}index.xml" title="{{ .Site.Title }}"> + + {{ partial "seo" . }} + + {{- if .IsHome -}} + <title>{{ .Site.Title }}</title> + <meta property="og:title" content="{{ .Site.Title }}" /> + <meta property="og:type" content="website" /> + <meta property="og:description" content="{{ .Site.Params.description }}" /> + <meta name="description" content="{{ .Site.Params.description }}" /> + {{- else -}} + <title>{{ .Title }}</title> + <meta property="og:title" content="{{ .Title }}" /> + <meta property="og:type" content="article" /> + <meta property="og:description" content="{{ default .Summary .Description | plainify }}" /> + <meta name="description" content="{{ default .Summary .Description | plainify }}" /> + {{- end }} + <meta property="og:locale" content="{{ .Site.LanguageCode }}" /> + {{- if .Params.album -}} + <meta property="og:image" content="{{ .Params.album }}" /> + {{- else -}} + <meta property="og:image" content="{{ .Site.Params.favicon }}" /> + {{ end }} + + <!-- Stylesheets --> + {{ with resources.Get "css/index.css" | minify }} + <style>{{ .Content | safeCSS }}</style> + {{ end }} + {{ with resources.Get "css/flexboxgrid-6.3.1.min.css" | minify }} + <style>{{ .Content | safeCSS }}</style> + {{ end }} + {{ with resources.Get "css/waline.css" | minify }} + <style>{{ .Content | safeCSS }}</style> + {{ end }} + + {{ range .Site.Params.extraCSSFiles -}} + <link rel="stylesheet" href="{{ $.Site.Params.staticPrefix }}{{ . | relURL }}"> + {{- end }} + + <link href="{{ .Site.Params.staticPrefix }}{{ "index.xml" | relURL }}" rel="alternate" type="application/rss+xml" + title="{{ .Site.Title }}"> + + <!-- quicklink require --> + <!-- <script> + /* Disable minification (remove `.min` from URL path) for more info + https://polyfill.io/v2/polyfill.min.js?features=IntersectionObserver + */ + (function (undefined) { }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {}); + </script> --> + + {{ if .Site.Params.TwitterCards }}{{ template "_internal/twitter_cards.html" . }}{{ end }} + {{ .Site.Params.extraHead | safeHTML }} +</head> diff --git a/themes/yinyang/layouts/partials/header.html b/themes/yinyang/layouts/partials/header.html new file mode 100644 index 00000000..ad5e180a --- /dev/null +++ b/themes/yinyang/layouts/partials/header.html @@ -0,0 +1,23 @@ +{{ $curLanguageName := .Site.Language.LanguageName }} +<header> + <div class="header-title"> + <a href="{{ .Site.LanguagePrefix }}/" + >{{ or .Site.Params.headTitle .Site.Author.name }}</a + > + </div> + <div class="header-subtitle">{{ .Site.Params.Description }}</div> +</header> +<div class="header-items"> + {{ range .Site.Params.socials }} + <div class="header-item"> + <a href="{{ .link }}" target="{{ .target }}">{{ .name }}</a> + </div> + {{ end }} +</div> +<div class="row"> + {{ range .Site.Languages -}} {{ if ne .LanguageName $curLanguageName }} + <div class="lang-switch col-xs-3 col-xs-offset-9"> + <a href="/{{ .Lang }}/">{{ .LanguageName }}</a> + </div> + {{ end }} {{ end }} +</div> diff --git a/themes/yinyang/layouts/partials/related.html b/themes/yinyang/layouts/partials/related.html new file mode 100644 index 00000000..51e01be1 --- /dev/null +++ b/themes/yinyang/layouts/partials/related.html @@ -0,0 +1,11 @@ +{{ $related := (where site.RegularPages "Type" "in" site.Params.mainSections).Related . | first 3 }} +{{ with $related }} +<div class="related-content"> + <h3>Related Posts</h3> + <ul> + {{ range . }} + <li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li> + {{ end }} + </ul> +</div> +{{ end }} diff --git a/themes/yinyang/layouts/partials/scripts.html b/themes/yinyang/layouts/partials/scripts.html new file mode 100644 index 00000000..d2fa2810 --- /dev/null +++ b/themes/yinyang/layouts/partials/scripts.html @@ -0,0 +1,16 @@ +<!-- <script src="https://unpkg.com/quicklink@0.1.1/dist/quicklink.umd.js"></script> --> +{{ if and .Site.Params.lazyImage (not .IsHome) -}} +<script src="{{ .Site.Params.staticPrefix }}{{ "js/lazyload.min.js" | relURL }}"></script> +<script> + var lazyImage = new LazyLoad({ + container: document.getElementById('article') + }); +</script> +{{ end }} +<script> + // var posts = document.getElementById('posts-list'); + // posts && quicklink({ + // el: posts, + // priority: true, + // }); +</script> diff --git a/themes/yinyang/layouts/partials/seo.html b/themes/yinyang/layouts/partials/seo.html new file mode 100644 index 00000000..7cfe93c9 --- /dev/null +++ b/themes/yinyang/layouts/partials/seo.html @@ -0,0 +1,29 @@ +<script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "BlogPosting", + "mainEntityOfPage": { + "@type": "WebPage", + "@id": "{{ .Site.BaseURL }}" + }, + "articleSection" : "{{ .Section }}", + "name" : "{{ .Title }}", + "headline" : "{{ .Title }}", + {{ if .IsHome -}} + "description" : "{{ .Site.Params.description | plainify }}", + {{- else -}} + "description" : "{{ default .Summary .Description | plainify }}", + {{- end }} + "inLanguage" : "en-US", + "author" : "{{ .Site.Author.name }}", + "creator" : "{{ .Site.Author.name }}", + "publisher": "{{ .Site.Author.name }}", + "accountablePerson" : "{{ .Site.Author.name }}", + "copyrightHolder" : "{{ .Site.Author.name }}", + "copyrightYear" : "{{ .Date.Format "2006" }}", + "datePublished": "{{ .Date }}", + "dateModified" : "{{ .Date }}", + "url" : "{{ .Permalink }}", + "keywords" : [ {{ if isset .Params "tags" }}{{ range .Params.tags }}"{{ . }}",{{ end }}{{ end }} ] + } +</script> diff --git a/themes/yinyang/layouts/shortcodes/callout.html b/themes/yinyang/layouts/shortcodes/callout.html new file mode 100644 index 00000000..62112390 --- /dev/null +++ b/themes/yinyang/layouts/shortcodes/callout.html @@ -0,0 +1,6 @@ +<div class="callout"> + <div class="callout-icon">{{ index .Params 1 }}</div> + <div class="callout-text"> + {{ index .Params 0 | markdownify }} + </div> +</div>
\ No newline at end of file diff --git a/themes/yinyang/static/fonts/Arvo.woff2 b/themes/yinyang/static/fonts/Arvo.woff2 Binary files differnew file mode 100644 index 00000000..03a457a4 --- /dev/null +++ b/themes/yinyang/static/fonts/Arvo.woff2 diff --git a/themes/yinyang/static/fonts/PermanentMarker-Regular.woff2 b/themes/yinyang/static/fonts/PermanentMarker-Regular.woff2 Binary files differnew file mode 100644 index 00000000..f4f49c0e --- /dev/null +++ b/themes/yinyang/static/fonts/PermanentMarker-Regular.woff2 diff --git a/themes/yinyang/static/images/tag.svg b/themes/yinyang/static/images/tag.svg new file mode 100644 index 00000000..2dc7d2fb --- /dev/null +++ b/themes/yinyang/static/images/tag.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M19 18l2 1V3c0-1.1-.9-2-2-2H8.99C7.89 1 7 1.9 7 3h10c1.1 0 2 .9 2 2v13zM15 5H5c-1.1 0-2 .9-2 2v16l7-3 7 3V7c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file diff --git a/themes/yinyang/static/js/lazyload.min.js b/themes/yinyang/static/js/lazyload.min.js new file mode 100644 index 00000000..de094a9f --- /dev/null +++ b/themes/yinyang/static/js/lazyload.min.js @@ -0,0 +1,2 @@ +var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(t,e){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.LazyLoad=e()}(this,function(){"use strict";function t(t,e,n){var o=e._settings;!n&&i(t)||(C(o.callback_enter,t),R.indexOf(t.tagName)>-1&&(N(t,e),I(t,o.class_loading)),E(t,e),a(t),C(o.callback_set,t))}var e={elements_selector:"img",container:document,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",class_loading:"loading",class_loaded:"loaded",class_error:"error",load_delay:0,callback_load:null,callback_error:null,callback_set:null,callback_enter:null,callback_finish:null,to_webp:!1},n=function(t){return _extends({},e,t)},o=function(t,e){return t.getAttribute("data-"+e)},r=function(t,e,n){var o="data-"+e;null!==n?t.setAttribute(o,n):t.removeAttribute(o)},a=function(t){return r(t,"was-processed","true")},i=function(t){return"true"===o(t,"was-processed")},s=function(t,e){return r(t,"ll-timeout",e)},c=function(t){return o(t,"ll-timeout")},l=function(t){return t.filter(function(t){return!i(t)})},u=function(t,e){return t.filter(function(t){return t!==e})},d=function(t,e){var n,o=new t(e);try{n=new CustomEvent("LazyLoad::Initialized",{detail:{instance:o}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent("LazyLoad::Initialized",!1,!1,{instance:o})}window.dispatchEvent(n)},f=function(t,e){return e?t.replace(/\.(jpe?g|png)/gi,".webp"):t},_="undefined"!=typeof window,v=_&&!("onscroll"in window)||/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),g=_&&"IntersectionObserver"in window,h=_&&"classList"in document.createElement("p"),b=_&&function(){var t=document.createElement("canvas");return!(!t.getContext||!t.getContext("2d"))&&0===t.toDataURL("image/webp").indexOf("data:image/webp")}(),m=function(t,e,n,r){for(var a,i=0;a=t.children[i];i+=1)if("SOURCE"===a.tagName){var s=o(a,n);p(a,e,s,r)}},p=function(t,e,n,o){n&&t.setAttribute(e,f(n,o))},y=function(t,e){var n=b&&e.to_webp,r=o(t,e.data_src),a=o(t,e.data_bg);if(r){var i=f(r,n);t.style.backgroundImage='url("'+i+'")'}if(a){var s=f(a,n);t.style.backgroundImage=s}},w={IMG:function(t,e){var n=b&&e.to_webp,r=e.data_srcset,a=t.parentNode;a&&"PICTURE"===a.tagName&&m(a,"srcset",r,n);var i=o(t,e.data_sizes);p(t,"sizes",i);var s=o(t,r);p(t,"srcset",s,n);var c=o(t,e.data_src);p(t,"src",c,n)},IFRAME:function(t,e){var n=o(t,e.data_src);p(t,"src",n)},VIDEO:function(t,e){var n=e.data_src,r=o(t,n);m(t,"src",n),p(t,"src",r),t.load()}},E=function(t,e){var n=e._settings,o=t.tagName,r=w[o];if(r)return r(t,n),e._updateLoadingCount(1),void(e._elements=u(e._elements,t));y(t,n)},I=function(t,e){h?t.classList.add(e):t.className+=(t.className?" ":"")+e},L=function(t,e){h?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},C=function(t,e){t&&t(e)},O=function(t,e,n){t.addEventListener(e,n)},k=function(t,e,n){t.removeEventListener(e,n)},x=function(t,e,n){O(t,"load",e),O(t,"loadeddata",e),O(t,"error",n)},A=function(t,e,n){k(t,"load",e),k(t,"loadeddata",e),k(t,"error",n)},z=function(t,e,n){var o=n._settings,r=e?o.class_loaded:o.class_error,a=e?o.callback_load:o.callback_error,i=t.target;L(i,o.class_loading),I(i,r),C(a,i),n._updateLoadingCount(-1)},N=function(t,e){var n=function n(r){z(r,!0,e),A(t,n,o)},o=function o(r){z(r,!1,e),A(t,n,o)};x(t,n,o)},R=["IMG","IFRAME","VIDEO"],S=function(e,n,o){t(e,o),n.unobserve(e)},M=function(t){var e=c(t);e&&(clearTimeout(e),s(t,null))},j=function(t,e,n){var o=n._settings.load_delay,r=c(t);r||(r=setTimeout(function(){S(t,e,n),M(t)},o),s(t,r))},D=function(t){return t.isIntersecting||t.intersectionRatio>0},T=function(t){return{root:t.container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}},U=function(t,e){this._settings=n(t),this._setObserver(),this._loadingCount=0,this.update(e)};return U.prototype={_manageIntersection:function(t){var e=this._observer,n=this._settings.load_delay,o=t.target;n?D(t)?j(o,e,this):M(o):D(t)&&S(o,e,this)},_onIntersection:function(t){t.forEach(this._manageIntersection.bind(this))},_setObserver:function(){g&&(this._observer=new IntersectionObserver(this._onIntersection.bind(this),T(this._settings)))},_updateLoadingCount:function(t){this._loadingCount+=t,0===this._elements.length&&0===this._loadingCount&&C(this._settings.callback_finish)},update:function(t){var e=this,n=this._settings,o=t||n.container.querySelectorAll(n.elements_selector);this._elements=l(Array.prototype.slice.call(o)),!v&&this._observer?this._elements.forEach(function(t){e._observer.observe(t)}):this.loadAll()},destroy:function(){var t=this;this._observer&&(this._elements.forEach(function(e){t._observer.unobserve(e)}),this._observer=null),this._elements=null,this._settings=null},load:function(e,n){t(e,this,n)},loadAll:function(){var t=this;this._elements.forEach(function(e){t.load(e)})}},_&&function(t,e){if(e)if(e.length)for(var n,o=0;n=e[o];o+=1)d(t,n);else d(t,e)}(U,window.lazyLoadOptions),U}); +//# sourceMappingURL=lazyload.min.js.map
\ No newline at end of file diff --git a/themes/yinyang/static/js/waline.js b/themes/yinyang/static/js/waline.js new file mode 100644 index 00000000..8cbc5d36 --- /dev/null +++ b/themes/yinyang/static/js/waline.js @@ -0,0 +1,83 @@ +var Io=Object.defineProperty;var Lo=(e,t,n)=>t in e?Io(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ji=(e,t,n)=>Lo(e,typeof t!="symbol"?t+"":t,n);const zi={"Content-Type":"application/json"},rt=e=>`${e.replace(/\/?$/,"/")}api/`,_t=(e,t="")=>{if(typeof e=="object"&&e.errno)throw new TypeError(`${t} failed with ${e.errno}: ${e.errmsg}`);return e},Sr=({serverURL:e,lang:t,paths:n,type:r,signal:i})=>fetch(`${rt(e)}article?path=${encodeURIComponent(n.join(","))}&type=${encodeURIComponent(r.join(","))}&lang=${t}`,{signal:i}).then(s=>s.json()).then(s=>_t(s,"Get counter").data),zn=({serverURL:e,lang:t,path:n,type:r,action:i})=>fetch(`${rt(e)}article?lang=${t}`,{method:"POST",headers:zi,body:JSON.stringify({path:n,type:r,action:i})}).then(s=>s.json()).then(s=>_t(s,"Update counter").data),Pi=({serverURL:e,lang:t,path:n,page:r,pageSize:i,sortBy:s,signal:l,token:o})=>{const a={};return o&&(a.Authorization=`Bearer ${o}`),fetch(`${rt(e)}comment?path=${encodeURIComponent(n)}&pageSize=${i}&page=${r}&lang=${t}&sortBy=${s}`,{signal:l,headers:a}).then(u=>u.json()).then(u=>_t(u,"Get comment data").data)},Fi=({serverURL:e,lang:t,token:n,comment:r})=>{const i={"Content-Type":"application/json"};return n&&(i.Authorization=`Bearer ${n}`),fetch(`${rt(e)}comment?lang=${t}`,{method:"POST",headers:i,body:JSON.stringify(r)}).then(s=>s.json())},Di=({serverURL:e,lang:t,token:n,objectId:r})=>fetch(`${rt(e)}comment/${r}?lang=${t}`,{method:"DELETE",headers:{Authorization:`Bearer ${n}`}}).then(i=>i.json()).then(i=>_t(i,"Delete comment")),en=({serverURL:e,lang:t,token:n,objectId:r,comment:i})=>fetch(`${rt(e)}comment/${r}?lang=${t}`,{method:"PUT",headers:{...zi,Authorization:`Bearer ${n}`},body:JSON.stringify(i)}).then(s=>s.json()).then(s=>_t(s,"Update comment")),Hi=({serverURL:e,lang:t,paths:n,signal:r})=>fetch(`${rt(e)}comment?type=count&url=${encodeURIComponent(n.join(","))}&lang=${t}`,{signal:r}).then(i=>i.json()).then(i=>_t(i,"Get comment count").data),Ui=({lang:e,serverURL:t})=>{const n=(window.innerWidth-450)/2,r=(window.innerHeight-450)/2,i=window.open(`${t.replace(/\/$/,"")}/ui/login?lng=${encodeURIComponent(e)}`,"_blank",`width=450,height=450,left=${n},top=${r},scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no`);return i==null||i.postMessage({type:"TOKEN",data:null},"*"),new Promise(s=>{const l=({data:o})=>{!o||typeof o!="object"||o.type!=="userInfo"||o.data.token&&(i==null||i.close(),window.removeEventListener("message",l),s(o.data))};window.addEventListener("message",l)})},Ni=({serverURL:e,lang:t,paths:n,signal:r})=>Sr({serverURL:e,lang:t,paths:n,type:["time"],signal:r}),Vi=e=>zn({...e,type:"time",action:"inc"}),Bi=({serverURL:e,lang:t,count:n,signal:r,token:i})=>{const s={};return i&&(s.Authorization=`Bearer ${i}`),fetch(`${rt(e)}comment?type=recent&count=${n}&lang=${t}`,{signal:r,headers:s}).then(l=>l.json())},Wi=({serverURL:e,signal:t,pageSize:n,lang:r})=>fetch(`${rt(e)}user?pageSize=${n}&lang=${r}`,{signal:t}).then(i=>i.json()).then(i=>_t(i,"user list")).then(i=>i.data),Mo=["nick","mail","link"],qi=e=>e.filter(t=>Mo.includes(t)),Ki=["//unpkg.com/@waline/emojis@1.1.0/weibo"],Oo=["//unpkg.com/@waline/emojis/tieba/tieba_agree.png","//unpkg.com/@waline/emojis/tieba/tieba_look_down.png","//unpkg.com/@waline/emojis/tieba/tieba_sunglasses.png","//unpkg.com/@waline/emojis/tieba/tieba_pick_nose.png","//unpkg.com/@waline/emojis/tieba/tieba_awkward.png","//unpkg.com/@waline/emojis/tieba/tieba_sleep.png"],jo=e=>new Promise((t,n)=>{if(e.size>128e3)return n(new Error("File too large! File size limit 128KB"));const r=new FileReader;r.readAsDataURL(e),r.onload=()=>{var i;return t(((i=r.result)==null?void 0:i.toString())??"")},r.onerror=n}),zo=e=>e===!0?'<p class="wl-tex">TeX is not available in preview</p>':'<span class="wl-tex">TeX is not available in preview</span>',Po=e=>{const t=async(n,r={})=>fetch(`https://api.giphy.com/v1/gifs/${n}?${new URLSearchParams({lang:e,limit:"20",rating:"g",api_key:"6CIMLkNMMOhRcXPoMCPkFy4Ybk2XUiMp",...r}).toString()}`).then(i=>i.json()).then(({data:i})=>i.map(s=>({title:s.title,src:s.images.downsized_medium.url})));return{search:n=>t("search",{q:n,offset:"0"}),default:()=>t("trending",{}),more:(n,r=0)=>t("search",{q:n,offset:r.toString()})}},Fo=/[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af\u0400-\u04FF]+|\w+/,Do=/</,Ho=/(?:^|\s)\/\/(.+?)$/gm,Uo=/\/\*([\S\s]*?)\*\//gm,No=new RegExp(`(${Fo.source}|${Do.source})|((?:${Ho.source})|(?:${Uo.source}))`,"gmi"),Gi=["23AC69","91C132","F19726","E8552D","1AAB8E","E1147F","2980C1","1BA1E6","9FA0A0","F19726","E30B20","E30B20","A3338B"],Er={},Vo=e=>{let t=0;return e.replace(No,(n,r,i)=>{if(i)return`<span style="color: slategray">${i}</span>`;if(r==="<")return"<";let s;Er[r]?s=Er[r]:(s=Gi[t],Er[r]=s);const l=`<span style="color: #${s}">${r}</span>`;return t=++t%Gi.length,l})},Bo=["nick","nickError","mail","mailError","link","optional","placeholder","sofa","submit","like","cancelLike","reply","cancelReply","comment","refresh","more","preview","emoji","uploadImage","seconds","minutes","hours","days","now","uploading","login","logout","admin","sticky","word","wordHint","anonymous","level0","level1","level2","level3","level4","level5","gif","gifSearchPlaceholder","profile","approved","waiting","spam","unsticky","oldest","latest","hottest","reactionTitle"],Ye=e=>Object.fromEntries(e.map((t,n)=>[Bo[n],t]));var Wo=Ye(["Benutzername","Der Benutzername darf nicht weniger als 3 Bytes umfassen.","E-Mail","Bitte bestätigen Sie Ihre E-Mail-Adresse.","Webseite","Optional","Kommentieren Sie hier...","Noch keine Kommentare.","Senden","Gefällt mir","Gefällt mir nicht mehr","Antworten","Antwort abbrechen","Kommentare","Aktualisieren","Mehr laden...","Vorschau","Emoji","Ein Bild hochladen","Vor einigen Sekunden","Vor einigen Minuten","Vor einigen Stunden","Vor einigen Tagen","Gerade eben","Hochladen läuft","Anmelden","Abmelden","Admin","Angeheftet","Wörter","Bitte geben Sie Kommentare zwischen $0 und $1 Wörtern ein! Aktuelle Anzahl der Wörter: $2","Anonym","Zwerge","Hobbits","Ents","Magier","Elfen","Maïar","GIF","Nach einem GIF suchen","Profil","Genehmigt","Ausstehend","Spam","Lösen","Älteste","Neueste","Am beliebtesten","Was denken Sie?"]),Zi=Ye(["NickName","NickName cannot be less than 3 bytes.","E-Mail","Please confirm your email address.","Website","Optional","Comment here...","No comment yet.","Submit","Like","Cancel like","Reply","Cancel reply","Comments","Refresh","Load More...","Preview","Emoji","Upload Image","seconds ago","minutes ago","hours ago","days ago","just now","Uploading","Login","logout","Admin","Sticky","Words",`Please input comments between $0 and $1 words! + Current word number: $2`,"Anonymous","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Search GIF","Profile","Approved","Waiting","Spam","Unsticky","Oldest","Latest","Hottest","What do you think?"]),Qi=Ye(["Nombre de usuario","El nombre de usuario no puede tener menos de 3 bytes.","Correo electrónico","Por favor confirma tu dirección de correo electrónico.","Sitio web","Opcional","Comenta aquí...","Sin comentarios todavía.","Enviar","Like","Anular like","Responder","Anular respuesta","Comentarios","Recargar","Cargar Más...","Previsualizar","Emoji","Subir Imagen","segundos atrás","minutos atrás","horas atrás","días atrás","justo ahora","Subiendo","Iniciar sesión","cerrar sesión","Admin","Fijado","Palabras",`Por favor escriba entre $0 y $1 palabras! + El número actual de palabras: $2`,"Anónimo","Enanos","Hobbits","Ents","Magos","Elfos","Maiar","GIF","Buscar GIF","Perfil","Aprobado","Esperando","Spam","Desfijar","Más antiguos","Más recientes","Más vistos","¿Qué piensas?"]),Ji=Ye(["Pseudo","Le pseudo ne peut pas faire moins de 3 octets.","E-mail","Veuillez confirmer votre adresse e-mail.","Site Web","Optionnel","Commentez ici...","Aucun commentaire pour l'instant.","Envoyer","J'aime","Annuler le j'aime","Répondre","Annuler la réponse","Commentaires","Actualiser","Charger plus...","Aperçu","Emoji","Télécharger une image","Il y a quelques secondes","Il y a quelques minutes","Il y a quelques heures","Il y a quelques jours","À l'instant","Téléchargement en cours","Connexion","Déconnexion","Admin","Épinglé","Mots",`Veuillez saisir des commentaires entre $0 et $1 mots ! + Nombre actuel de mots : $2`,"Anonyme","Nains","Hobbits","Ents","Mages","Elfes","Maïar","GIF","Rechercher un GIF","Profil","Approuvé","En attente","Indésirable","Détacher","Le plus ancien","Dernier","Le plus populaire","Qu'en pensez-vous ?"]),Yi=Ye(["ニックネーム","3バイト以上のニックネームをご入力ください.","メールアドレス","メールアドレスをご確認ください.","サイト","オプション","ここにコメント","コメントしましょう~","提出する","Like","Cancel like","返信する","キャンセル","コメント","更新","さらに読み込む","プレビュー","絵文字","画像をアップロード","秒前","分前","時間前","日前","たっだ今","アップロード","ログインする","ログアウト","管理者","トップに置く","ワード",`コメントは $0 から $1 ワードの間でなければなりません! + 現在の単語番号: $2`,"匿名","うえにん","なかにん","しもおし","特にしもおし","かげ","なぬし","GIF","探す GIF","個人情報","承認済み","待っている","スパム","べたつかない","逆順","正順","人気順","どう思いますか?"]),qo=Ye(["Apelido","Apelido não pode ser menor que 3 bytes.","E-Mail","Por favor, confirme seu endereço de e-mail.","Website","Opcional","Comente aqui...","Nenhum comentário, ainda.","Enviar","Like","Cancel like","Responder","Cancelar resposta","Comentários","Refrescar","Carregar Mais...","Visualizar","Emoji","Enviar Imagem","segundos atrás","minutos atrás","horas atrás","dias atrás","agora mesmo","Enviando","Entrar","Sair","Admin","Sticky","Palavras",`Favor enviar comentário com $0 a $1 palavras! + Número de palavras atuais: $2`,"Anônimo","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Pesquisar GIF","informação pessoal","Aprovado","Espera","Spam","Unsticky","Mais velho","Mais recentes","Mais quente","O que você acha?"]),Xi=Ye(["Псевдоним","Никнейм не может быть меньше 3 байт.","Эл. адрес","Пожалуйста, подтвердите адрес вашей электронной почты.","Веб-сайт","Необязательный","Комментарий здесь...","Пока нет комментариев.","Отправить","Like","Cancel like","Отвечать","Отменить ответ","Комментарии","Обновить","Загрузи больше...","Превью","эмодзи","Загрузить изображение","секунд назад","несколько минут назад","несколько часов назад","дней назад","прямо сейчас","Загрузка","Авторизоваться","Выход из системы","Админ","Липкий","Слова",`Пожалуйста, введите комментарии от $0 до $1 слов! +Номер текущего слова: $2`,"Анонимный","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Поиск GIF","Персональные данные","Одобренный","Ожидающий","Спам","Нелипкий","самый старый","последний","самый горячий","Что вы думаете?"]),es=Ye(["Tên","Tên không được nhỏ hơn 3 ký tự.","E-Mail","Vui lòng xác nhập địa chỉ email của bạn.","Website","Tùy chọn","Hãy bình luận có văn hoá!","Chưa có bình luận","Gửi","Thích","Bỏ thích","Trả lời","Hủy bỏ","bình luận","Làm mới","Tải thêm...","Xem trước","Emoji","Tải lên hình ảnh","giây trước","phút trước","giờ trước","ngày trước","Vừa xong","Đang tải lên","Đăng nhập","đăng xuất","Quản trị viên","Dính","từ",`Bình luận phải có độ dài giữa $0 và $1 từ! + Số từ hiện tại: $2`,"Vô danh","Người lùn","Người tí hon","Thần rừng","Pháp sư","Tiên tộc","Maiar","Ảnh GIF","Tìm kiếm ảnh GIF","thông tin cá nhân","Đã được phê duyệt","Đang chờ đợi","Thư rác","Không dính","lâu đời nhất","muộn nhất","nóng nhất","What do you think?"]),ts=Ye(["昵称","昵称不能少于3个字符","邮箱","请填写正确的邮件地址","网址","可选","欢迎评论","来发评论吧~","提交","喜欢","取消喜欢","回复","取消回复","评论","刷新","加载更多...","预览","表情","上传图片","秒前","分钟前","小时前","天前","刚刚","正在上传","登录","退出","博主","置顶","字",`评论字数应在 $0 到 $1 字之间! +当前字数:$2`,"匿名","潜水","冒泡","吐槽","活跃","话痨","传说","表情包","搜索表情包","个人资料","通过","待审核","垃圾","取消置顶","按倒序","按正序","按热度","你认为这篇文章怎么样?"]),Ko=Ye(["暱稱","暱稱不能少於3個字元","郵箱","請填寫正確的郵件地址","網址","可選","歡迎留言","來發留言吧~","送出","喜歡","取消喜歡","回覆","取消回覆","留言","重整","載入更多...","預覽","表情","上傳圖片","秒前","分鐘前","小時前","天前","剛剛","正在上傳","登入","登出","管理者","置頂","字",`留言字數應在 $0 到 $1 字之間! +目前字數:$2`,"匿名","潛水","冒泡","吐槽","活躍","多話","傳說","表情包","搜尋表情包","個人資料","通過","待審核","垃圾","取消置頂","最早","最新","熱門","你認為這篇文章怎麼樣?"]);const ns="en-US",Pn={zh:ts,"zh-cn":ts,"zh-tw":Ko,en:Zi,"en-us":Zi,fr:Ji,"fr-fr":Ji,jp:Yi,"jp-jp":Yi,"pt-br":qo,ru:Xi,"ru-ru":Xi,vi:es,"vi-vn":es,de:Wo,es:Qi,"es-mx":Qi},rs=e=>Pn[e.toLowerCase()]||Pn[ns.toLowerCase()],is=e=>Object.keys(Pn).includes(e.toLowerCase())?e:ns,ss=e=>{try{e=decodeURI(e)}catch{}return e},ls=(e="")=>e.replace(/\/$/u,""),os=e=>/^(https?:)?\/\//.test(e),Fn=e=>{const t=ls(e);return os(t)?t:`https://${t}`},Go=e=>Array.isArray(e)?e:e?[0,e]:!1,Tr=(e,t)=>typeof e=="function"?e:e===!1?!1:t,Zo=({serverURL:e,path:t=location.pathname,lang:n=typeof navigator>"u"?"en-US":navigator.language,locale:r,emoji:i=Ki,meta:s=["nick","mail","link"],requiredMeta:l=[],dark:o=!1,pageSize:a=10,wordLimit:u,imageUploader:c,highlighter:h,texRenderer:p,copyright:m=!0,login:w="enable",search:k,reaction:C,recaptchaV3Key:v="",turnstileKey:$="",commentSorting:U="latest",...A})=>({serverURL:Fn(e),path:ss(t),lang:is(n),locale:{...rs(is(n)),...typeof r=="object"?r:{}},wordLimit:Go(u),meta:qi(s),requiredMeta:qi(l),imageUploader:Tr(c,jo),highlighter:Tr(h,Vo),texRenderer:Tr(p,zo),dark:o,emoji:typeof i=="boolean"?i?Ki:[]:i,pageSize:a,login:w,copyright:m,search:k===!1?!1:typeof k=="object"?k:Po(n),recaptchaV3Key:v,turnstileKey:$,reaction:Array.isArray(C)?C:C===!0?Oo:[],commentSorting:U,...A}),Ft=e=>typeof e=="string",Ar="{--waline-white:#000;--waline-light-grey:#666;--waline-dark-grey:#999;--waline-color:#888;--waline-bg-color:#1e1e1e;--waline-bg-color-light:#272727;--waline-bg-color-hover: #444;--waline-border-color:#333;--waline-disable-bg-color:#444;--waline-disable-color:#272727;--waline-bq-color:#272727;--waline-info-bg-color:#272727;--waline-info-color:#666}",Qo=e=>Ft(e)?e==="auto"?`@media(prefers-color-scheme:dark){body${Ar}}`:`${e}${Ar}`:e===!0?`:root${Ar}`:"",Rr=(e,t)=>{let n=e.toString();for(;n.length<t;)n="0"+n;return n},Jo=e=>{const t=Rr(e.getDate(),2),n=Rr(e.getMonth()+1,2);return`${Rr(e.getFullYear(),2)}-${n}-${t}`},Yo=(e,t,n)=>{if(!e)return"";const r=Ft(e)?new Date(e.includes(" ")?e.replace(/-/g,"/"):e):e,i=t.getTime()-r.getTime(),s=Math.floor(i/(24*3600*1e3));if(s===0){const l=i%864e5,o=Math.floor(l/(3600*1e3));if(o===0){const a=l%36e5,u=Math.floor(a/(60*1e3));if(u===0){const c=a%6e4;return`${Math.round(c/1e3)} ${n.seconds}`}return`${u} ${n.minutes}`}return`${o} ${n.hours}`}return s<0?n.now:s<8?`${s} ${n.days}`:Jo(r)},Xo=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,ea=e=>Xo.test(e);/** +* @vue/shared v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Ir(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const ce={},Dt=[],$t=()=>{},ta=()=>!1,Dn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Lr=e=>e.startsWith("onUpdate:"),Te=Object.assign,as=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},na=Object.prototype.hasOwnProperty,se=(e,t)=>na.call(e,t),B=Array.isArray,Ht=e=>tn(e)==="[object Map]",Ut=e=>tn(e)==="[object Set]",cs=e=>tn(e)==="[object Date]",ee=e=>typeof e=="function",we=e=>typeof e=="string",Xe=e=>typeof e=="symbol",pe=e=>e!==null&&typeof e=="object",us=e=>(pe(e)||ee(e))&&ee(e.then)&&ee(e.catch),fs=Object.prototype.toString,tn=e=>fs.call(e),ra=e=>tn(e).slice(8,-1),hs=e=>tn(e)==="[object Object]",Mr=e=>we(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,nn=Ir(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Hn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ia=/-(\w)/g,qe=Hn(e=>e.replace(ia,(t,n)=>n?n.toUpperCase():"")),sa=/\B([A-Z])/g,Ct=Hn(e=>e.replace(sa,"-$1").toLowerCase()),Un=Hn(e=>e.charAt(0).toUpperCase()+e.slice(1)),Or=Hn(e=>e?`on${Un(e)}`:""),pt=(e,t)=>!Object.is(e,t),Nn=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},ds=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Vn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ps;const jr=()=>ps||(ps=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function rn(e){if(B(e)){const t={};for(let n=0;n<e.length;n++){const r=e[n],i=we(r)?ca(r):rn(r);if(i)for(const s in i)t[s]=i[s]}return t}else if(we(e)||pe(e))return e}const la=/;(?![^(]*\))/g,oa=/:([^]+)/,aa=/\/\*[^]*?\*\//g;function ca(e){const t={};return e.replace(aa,"").split(la).forEach(n=>{if(n){const r=n.split(oa);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ve(e){let t="";if(we(e))t=e;else if(B(e))for(let n=0;n<e.length;n++){const r=ve(e[n]);r&&(t+=r+" ")}else if(pe(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const ua="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",fa=Ir(ua);function gs(e){return!!e||e===""}function ha(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=St(e[r],t[r]);return n}function St(e,t){if(e===t)return!0;let n=cs(e),r=cs(t);if(n||r)return n&&r?e.getTime()===t.getTime():!1;if(n=Xe(e),r=Xe(t),n||r)return e===t;if(n=B(e),r=B(t),n||r)return n&&r?ha(e,t):!1;if(n=pe(e),r=pe(t),n||r){if(!n||!r)return!1;const i=Object.keys(e).length,s=Object.keys(t).length;if(i!==s)return!1;for(const l in e){const o=e.hasOwnProperty(l),a=t.hasOwnProperty(l);if(o&&!a||!o&&a||!St(e[l],t[l]))return!1}}return String(e)===String(t)}function zr(e,t){return e.findIndex(n=>St(n,t))}const ms=e=>!!(e&&e.__v_isRef===!0),X=e=>we(e)?e:e==null?"":B(e)||pe(e)&&(e.toString===fs||!ee(e.toString))?ms(e)?X(e.value):JSON.stringify(e,vs,2):String(e),vs=(e,t)=>ms(t)?vs(e,t.value):Ht(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i],s)=>(n[Pr(r,s)+" =>"]=i,n),{})}:Ut(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Pr(n))}:Xe(t)?Pr(t):pe(t)&&!B(t)&&!hs(t)?String(t):t,Pr=(e,t="")=>{var n;return Xe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ae;class da{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ae,!t&&Ae&&(this.index=(Ae.scopes||(Ae.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=Ae;try{return Ae=this,t()}finally{Ae=n}}}on(){Ae=this}off(){Ae=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n<r;n++)this.effects[n].stop();for(n=0,r=this.cleanups.length;n<r;n++)this.cleanups[n]();if(this.scopes)for(n=0,r=this.scopes.length;n<r;n++)this.scopes[n].stop(!0);if(!this.detached&&this.parent&&!t){const i=this.parent.scopes.pop();i&&i!==this&&(this.parent.scopes[this.index]=i,i.index=this.index)}this.parent=void 0,this._active=!1}}}function bs(){return Ae}function pa(e,t=!1){Ae&&Ae.cleanups.push(e)}let ue;const Fr=new WeakSet;class ys{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.nextEffect=void 0,this.cleanup=void 0,this.scheduler=void 0,Ae&&Ae.active&&Ae.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Fr.has(this)&&(Fr.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||(this.flags|=8,this.nextEffect=sn,sn=this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Cs(this),xs(this);const t=ue,n=Ke;ue=this,Ke=!0;try{return this.fn()}finally{ks(this),ue=t,Ke=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Nr(t);this.deps=this.depsTail=void 0,Cs(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Fr.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Ur(this)&&this.run()}get dirty(){return Ur(this)}}let ws=0,sn;function Dr(){ws++}function Hr(){if(--ws>0)return;let e;for(;sn;){let t=sn;for(sn=void 0;t;){const n=t.nextEffect;if(t.nextEffect=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function xs(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ks(e){let t,n=e.depsTail;for(let r=n;r;r=r.prevDep)r.version===-1?(r===n&&(n=r.prevDep),Nr(r),ga(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0;e.deps=t,e.depsTail=n}function Ur(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&_s(t.dep.computed)===!1||t.dep.version!==t.version)return!0;return!!e._dirty}function _s(e){if(e.flags&2)return!1;if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ln))return;e.globalVersion=ln;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&!Ur(e)){e.flags&=-3;return}const n=ue,r=Ke;ue=e,Ke=!0;try{xs(e);const i=e.fn(e._value);(t.version===0||pt(i,e._value))&&(e._value=i,t.version++)}catch(i){throw t.version++,i}finally{ue=n,Ke=r,ks(e),e.flags&=-3}}function Nr(e){const{dep:t,prevSub:n,nextSub:r}=e;if(n&&(n.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=n,e.nextSub=void 0),t.subs===e&&(t.subs=n),!t.subs&&t.computed){t.computed.flags&=-5;for(let i=t.computed.deps;i;i=i.nextDep)Nr(i)}}function ga(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ke=!0;const $s=[];function Et(){$s.push(Ke),Ke=!1}function Tt(){const e=$s.pop();Ke=e===void 0?!0:e}function Cs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ue;ue=void 0;try{t()}finally{ue=n}}}let ln=0;class Vr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0}track(t){if(!ue||!Ke||ue===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ue)n=this.activeLink={dep:this,sub:ue,version:this.version,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0,prevActiveLink:void 0},ue.deps?(n.prevDep=ue.depsTail,ue.depsTail.nextDep=n,ue.depsTail=n):ue.deps=ue.depsTail=n,ue.flags&4&&Ss(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ue.depsTail,n.nextDep=void 0,ue.depsTail.nextDep=n,ue.depsTail=n,ue.deps===n&&(ue.deps=r)}return n}trigger(t){this.version++,ln++,this.notify(t)}notify(t){Dr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()}finally{Hr()}}}function Ss(e){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Ss(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}const Br=new WeakMap,At=Symbol(""),Wr=Symbol(""),on=Symbol("");function Ce(e,t,n){if(Ke&&ue){let r=Br.get(e);r||Br.set(e,r=new Map);let i=r.get(n);i||r.set(n,i=new Vr),i.track()}}function it(e,t,n,r,i,s){const l=Br.get(e);if(!l){ln++;return}let o=[];if(t==="clear")o=[...l.values()];else{const a=B(e),u=a&&Mr(n);if(a&&n==="length"){const c=Number(r);l.forEach((h,p)=>{(p==="length"||p===on||!Xe(p)&&p>=c)&&o.push(h)})}else{const c=h=>h&&o.push(h);switch(n!==void 0&&c(l.get(n)),u&&c(l.get(on)),t){case"add":a?u&&c(l.get("length")):(c(l.get(At)),Ht(e)&&c(l.get(Wr)));break;case"delete":a||(c(l.get(At)),Ht(e)&&c(l.get(Wr)));break;case"set":Ht(e)&&c(l.get(At));break}}}Dr();for(const a of o)a.trigger();Hr()}function Nt(e){const t=te(e);return t===e?t:(Ce(t,"iterate",on),Ge(e)?t:t.map(Se))}function Bn(e){return Ce(e=te(e),"iterate",on),e}const ma={__proto__:null,[Symbol.iterator](){return qr(this,Symbol.iterator,Se)},concat(...e){return Nt(this).concat(...e.map(t=>B(t)?Nt(t):t))},entries(){return qr(this,"entries",e=>(e[1]=Se(e[1]),e))},every(e,t){return st(this,"every",e,t,void 0,arguments)},filter(e,t){return st(this,"filter",e,t,n=>n.map(Se),arguments)},find(e,t){return st(this,"find",e,t,Se,arguments)},findIndex(e,t){return st(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return st(this,"findLast",e,t,Se,arguments)},findLastIndex(e,t){return st(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return st(this,"forEach",e,t,void 0,arguments)},includes(...e){return Kr(this,"includes",e)},indexOf(...e){return Kr(this,"indexOf",e)},join(e){return Nt(this).join(e)},lastIndexOf(...e){return Kr(this,"lastIndexOf",e)},map(e,t){return st(this,"map",e,t,void 0,arguments)},pop(){return an(this,"pop")},push(...e){return an(this,"push",e)},reduce(e,...t){return Es(this,"reduce",e,t)},reduceRight(e,...t){return Es(this,"reduceRight",e,t)},shift(){return an(this,"shift")},some(e,t){return st(this,"some",e,t,void 0,arguments)},splice(...e){return an(this,"splice",e)},toReversed(){return Nt(this).toReversed()},toSorted(e){return Nt(this).toSorted(e)},toSpliced(...e){return Nt(this).toSpliced(...e)},unshift(...e){return an(this,"unshift",e)},values(){return qr(this,"values",Se)}};function qr(e,t,n){const r=Bn(e),i=r[t]();return r!==e&&!Ge(e)&&(i._next=i.next,i.next=()=>{const s=i._next();return s.value&&(s.value=n(s.value)),s}),i}const va=Array.prototype;function st(e,t,n,r,i,s){const l=Bn(e),o=l!==e&&!Ge(e),a=l[t];if(a!==va[t]){const h=a.apply(e,s);return o?Se(h):h}let u=n;l!==e&&(o?u=function(h,p){return n.call(this,Se(h),p,e)}:n.length>2&&(u=function(h,p){return n.call(this,h,p,e)}));const c=a.call(l,u,r);return o&&i?i(c):c}function Es(e,t,n,r){const i=Bn(e);let s=n;return i!==e&&(Ge(e)?n.length>3&&(s=function(l,o,a){return n.call(this,l,o,a,e)}):s=function(l,o,a){return n.call(this,l,Se(o),a,e)}),i[t](s,...r)}function Kr(e,t,n){const r=te(e);Ce(r,"iterate",on);const i=r[t](...n);return(i===-1||i===!1)&&Jr(n[0])?(n[0]=te(n[0]),r[t](...n)):i}function an(e,t,n=[]){Et(),Dr();const r=te(e)[t].apply(e,n);return Hr(),Tt(),r}const ba=Ir("__proto__,__v_isRef,__isVue"),Ts=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Xe));function ya(e){Xe(e)||(e=String(e));const t=te(this);return Ce(t,"has",e),t.hasOwnProperty(e)}class As{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const i=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(i?s?La:Ps:s?zs:js).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const l=B(t);if(!i){let a;if(l&&(a=ma[n]))return a;if(n==="hasOwnProperty")return ya}const o=Reflect.get(t,n,ke(t)?t:r);return(Xe(n)?Ts.has(n):ba(n))||(i||Ce(t,"get",n),s)?o:ke(o)?l&&Mr(n)?o:o.value:pe(o)?i?un(o):cn(o):o}}class Rs extends As{constructor(t=!1){super(!1,t)}set(t,n,r,i){let s=t[n];if(!this._isShallow){const a=Rt(s);if(!Ge(r)&&!Rt(r)&&(s=te(s),r=te(r)),!B(t)&&ke(s)&&!ke(r))return a?!1:(s.value=r,!0)}const l=B(t)&&Mr(n)?Number(n)<t.length:se(t,n),o=Reflect.set(t,n,r,ke(t)?t:i);return t===te(i)&&(l?pt(r,s)&&it(t,"set",n,r):it(t,"add",n,r)),o}deleteProperty(t,n){const r=se(t,n),i=Reflect.deleteProperty(t,n);return i&&r&&it(t,"delete",n,void 0),i}has(t,n){const r=Reflect.has(t,n);return(!Xe(n)||!Ts.has(n))&&Ce(t,"has",n),r}ownKeys(t){return Ce(t,"iterate",B(t)?"length":At),Reflect.ownKeys(t)}}class wa extends As{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const xa=new Rs,ka=new wa,_a=new Rs(!0),Gr=e=>e,Wn=e=>Reflect.getPrototypeOf(e);function qn(e,t,n=!1,r=!1){e=e.__v_raw;const i=te(e),s=te(t);n||(pt(t,s)&&Ce(i,"get",t),Ce(i,"get",s));const{has:l}=Wn(i),o=r?Gr:n?Yr:Se;if(l.call(i,t))return o(e.get(t));if(l.call(i,s))return o(e.get(s));e!==i&&e.get(t)}function Kn(e,t=!1){const n=this.__v_raw,r=te(n),i=te(e);return t||(pt(e,i)&&Ce(r,"has",e),Ce(r,"has",i)),e===i?n.has(e):n.has(e)||n.has(i)}function Gn(e,t=!1){return e=e.__v_raw,!t&&Ce(te(e),"iterate",At),Reflect.get(e,"size",e)}function Is(e,t=!1){!t&&!Ge(e)&&!Rt(e)&&(e=te(e));const n=te(this);return Wn(n).has.call(n,e)||(n.add(e),it(n,"add",e,e)),this}function Ls(e,t,n=!1){!n&&!Ge(t)&&!Rt(t)&&(t=te(t));const r=te(this),{has:i,get:s}=Wn(r);let l=i.call(r,e);l||(e=te(e),l=i.call(r,e));const o=s.call(r,e);return r.set(e,t),l?pt(t,o)&&it(r,"set",e,t):it(r,"add",e,t),this}function Ms(e){const t=te(this),{has:n,get:r}=Wn(t);let i=n.call(t,e);i||(e=te(e),i=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return i&&it(t,"delete",e,void 0),s}function Os(){const e=te(this),t=e.size!==0,n=e.clear();return t&&it(e,"clear",void 0,void 0),n}function Zn(e,t){return function(r,i){const s=this,l=s.__v_raw,o=te(l),a=t?Gr:e?Yr:Se;return!e&&Ce(o,"iterate",At),l.forEach((u,c)=>r.call(i,a(u),a(c),s))}}function Qn(e,t,n){return function(...r){const i=this.__v_raw,s=te(i),l=Ht(s),o=e==="entries"||e===Symbol.iterator&&l,a=e==="keys"&&l,u=i[e](...r),c=n?Gr:t?Yr:Se;return!t&&Ce(s,"iterate",a?Wr:At),{next(){const{value:h,done:p}=u.next();return p?{value:h,done:p}:{value:o?[c(h[0]),c(h[1])]:c(h),done:p}},[Symbol.iterator](){return this}}}}function gt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function $a(){const e={get(s){return qn(this,s)},get size(){return Gn(this)},has:Kn,add:Is,set:Ls,delete:Ms,clear:Os,forEach:Zn(!1,!1)},t={get(s){return qn(this,s,!1,!0)},get size(){return Gn(this)},has:Kn,add(s){return Is.call(this,s,!0)},set(s,l){return Ls.call(this,s,l,!0)},delete:Ms,clear:Os,forEach:Zn(!1,!0)},n={get(s){return qn(this,s,!0)},get size(){return Gn(this,!0)},has(s){return Kn.call(this,s,!0)},add:gt("add"),set:gt("set"),delete:gt("delete"),clear:gt("clear"),forEach:Zn(!0,!1)},r={get(s){return qn(this,s,!0,!0)},get size(){return Gn(this,!0)},has(s){return Kn.call(this,s,!0)},add:gt("add"),set:gt("set"),delete:gt("delete"),clear:gt("clear"),forEach:Zn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=Qn(s,!1,!1),n[s]=Qn(s,!0,!1),t[s]=Qn(s,!1,!0),r[s]=Qn(s,!0,!0)}),[e,n,t,r]}const[Ca,Sa,Ea,Ta]=$a();function Zr(e,t){const n=t?e?Ta:Ea:e?Sa:Ca;return(r,i,s)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(se(n,i)&&i in r?n:r,i,s)}const Aa={get:Zr(!1,!1)},Ra={get:Zr(!1,!0)},Ia={get:Zr(!0,!1)},js=new WeakMap,zs=new WeakMap,Ps=new WeakMap,La=new WeakMap;function Ma(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Oa(e){return e.__v_skip||!Object.isExtensible(e)?0:Ma(ra(e))}function cn(e){return Rt(e)?e:Qr(e,!1,xa,Aa,js)}function ja(e){return Qr(e,!1,_a,Ra,zs)}function un(e){return Qr(e,!0,ka,Ia,Ps)}function Qr(e,t,n,r,i){if(!pe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=i.get(e);if(s)return s;const l=Oa(e);if(l===0)return e;const o=new Proxy(e,l===2?r:n);return i.set(e,o),o}function Vt(e){return Rt(e)?Vt(e.__v_raw):!!(e&&e.__v_isReactive)}function Rt(e){return!!(e&&e.__v_isReadonly)}function Ge(e){return!!(e&&e.__v_isShallow)}function Jr(e){return e?!!e.__v_raw:!1}function te(e){const t=e&&e.__v_raw;return t?te(t):e}function za(e){return Object.isExtensible(e)&&ds(e,"__v_skip",!0),e}const Se=e=>pe(e)?cn(e):e,Yr=e=>pe(e)?un(e):e;function ke(e){return e?e.__v_isRef===!0:!1}function q(e){return Fs(e,!1)}function Pa(e){return Fs(e,!0)}function Fs(e,t){return ke(e)?e:new Fa(e,t)}class Fa{constructor(t,n){this.dep=new Vr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:te(t),this._value=n?t:Se(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Ge(t)||Rt(t);t=r?t:te(t),pt(t,n)&&(this._rawValue=t,this._value=r?t:Se(t),this.dep.trigger())}}function K(e){return ke(e)?e.value:e}const Da={get:(e,t,n)=>t==="__v_raw"?e:K(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return ke(i)&&!ke(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Ds(e){return Vt(e)?e:new Proxy(e,Da)}class Ha{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Vr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ln-1,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){ue!==this&&(this.flags|=16,this.dep.notify())}get value(){const t=this.dep.track();return _s(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Ua(e,t,n=!1){let r,i;return ee(e)?r=e:(r=e.get,i=e.set),new Ha(r,i,n)}const Jn={},Yn=new WeakMap;let It;function Na(e,t=!1,n=It){if(n){let r=Yn.get(n);r||Yn.set(n,r=[]),r.push(e)}}function Va(e,t,n=ce){const{immediate:r,deep:i,once:s,scheduler:l,augmentJob:o,call:a}=n,u=A=>i?A:Ge(A)||i===!1||i===0?lt(A,1):lt(A);let c,h,p,m,w=!1,k=!1;if(ke(e)?(h=()=>e.value,w=Ge(e)):Vt(e)?(h=()=>u(e),w=!0):B(e)?(k=!0,w=e.some(A=>Vt(A)||Ge(A)),h=()=>e.map(A=>{if(ke(A))return A.value;if(Vt(A))return u(A);if(ee(A))return a?a(A,2):A()})):ee(e)?t?h=a?()=>a(e,2):e:h=()=>{if(p){Et();try{p()}finally{Tt()}}const A=It;It=c;try{return a?a(e,3,[m]):e(m)}finally{It=A}}:h=$t,t&&i){const A=h,j=i===!0?1/0:i;h=()=>lt(A(),j)}const C=bs(),v=()=>{c.stop(),C&&as(C.effects,c)};if(s)if(t){const A=t;t=(...j)=>{A(...j),v()}}else{const A=h;h=()=>{A(),v()}}let $=k?new Array(e.length).fill(Jn):Jn;const U=A=>{if(!(!(c.flags&1)||!c.dirty&&!A))if(t){const j=c.run();if(i||w||(k?j.some((W,H)=>pt(W,$[H])):pt(j,$))){p&&p();const W=It;It=c;try{const H=[j,$===Jn?void 0:k&&$[0]===Jn?[]:$,m];a?a(t,3,H):t(...H),$=j}finally{It=W}}}else c.run()};return o&&o(U),c=new ys(h),c.scheduler=l?()=>l(U,!1):U,m=A=>Na(A,!1,c),p=c.onStop=()=>{const A=Yn.get(c);if(A){if(a)a(A,4);else for(const j of A)j();Yn.delete(c)}},t?r?U(!0):$=c.run():l?l(U.bind(null,!0),!0):c.run(),v.pause=c.pause.bind(c),v.resume=c.resume.bind(c),v.stop=v,v}function lt(e,t=1/0,n){if(t<=0||!pe(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,ke(e))lt(e.value,t,n);else if(B(e))for(let r=0;r<e.length;r++)lt(e[r],t,n);else if(Ut(e)||Ht(e))e.forEach(r=>{lt(r,t,n)});else if(hs(e)){for(const r in e)lt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&<(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function fn(e,t,n,r){try{return r?e(...r):e()}catch(i){Xn(i,t,n)}}function ot(e,t,n,r){if(ee(e)){const i=fn(e,t,n,r);return i&&us(i)&&i.catch(s=>{Xn(s,t,n)}),i}if(B(e)){const i=[];for(let s=0;s<e.length;s++)i.push(ot(e[s],t,n,r));return i}}function Xn(e,t,n,r=!0){const i=t?t.vnode:null,{errorHandler:s,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||ce;if(t){let o=t.parent;const a=t.proxy,u=`https://vuejs.org/error-reference/#runtime-${n}`;for(;o;){const c=o.ec;if(c){for(let h=0;h<c.length;h++)if(c[h](e,a,u)===!1)return}o=o.parent}if(s){Et(),fn(s,null,10,[e,a,u]),Tt();return}}Ba(e,n,i,r,l)}function Ba(e,t,n,r=!0,i=!1){if(i)throw e;console.error(e)}let hn=!1,Xr=!1;const Re=[];let et=0;const Bt=[];let mt=null,Wt=0;const Hs=Promise.resolve();let ei=null;function qt(e){const t=ei||Hs;return e?t.then(this?e.bind(this):e):t}function Wa(e){let t=hn?et+1:0,n=Re.length;for(;t<n;){const r=t+n>>>1,i=Re[r],s=dn(i);s<e||s===e&&i.flags&2?t=r+1:n=r}return t}function ti(e){if(!(e.flags&1)){const t=dn(e),n=Re[Re.length-1];!n||!(e.flags&2)&&t>=dn(n)?Re.push(e):Re.splice(Wa(t),0,e),e.flags|=1,Us()}}function Us(){!hn&&!Xr&&(Xr=!0,ei=Hs.then(Bs))}function qa(e){B(e)?Bt.push(...e):mt&&e.id===-1?mt.splice(Wt+1,0,e):e.flags&1||(Bt.push(e),e.flags|=1),Us()}function Ns(e,t,n=hn?et+1:0){for(;n<Re.length;n++){const r=Re[n];if(r&&r.flags&2){if(e&&r.id!==e.uid)continue;Re.splice(n,1),n--,r.flags&4&&(r.flags&=-2),r(),r.flags&=-2}}}function Vs(e){if(Bt.length){const t=[...new Set(Bt)].sort((n,r)=>dn(n)-dn(r));if(Bt.length=0,mt){mt.push(...t);return}for(mt=t,Wt=0;Wt<mt.length;Wt++){const n=mt[Wt];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}mt=null,Wt=0}}const dn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Bs(e){Xr=!1,hn=!0;try{for(et=0;et<Re.length;et++){const t=Re[et];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),fn(t,t.i,t.i?15:14),t.flags&=-2)}}finally{for(;et<Re.length;et++){const t=Re[et];t&&(t.flags&=-2)}et=0,Re.length=0,Vs(),hn=!1,ei=null,(Re.length||Bt.length)&&Bs()}}let Oe=null,Ws=null;function er(e){const t=Oe;return Oe=e,Ws=e&&e.type.__scopeId||null,t}function Ka(e,t=Oe,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&pl(-1);const s=er(t);let l;try{l=e(...i)}finally{er(s),r._d&&pl(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function tr(e,t){if(Oe===null)return e;const n=cr(Oe),r=e.dirs||(e.dirs=[]);for(let i=0;i<t.length;i++){let[s,l,o,a=ce]=t[i];s&&(ee(s)&&(s={mounted:s,updated:s}),s.deep&<(l),r.push({dir:s,instance:n,value:l,oldValue:void 0,arg:o,modifiers:a}))}return e}function Lt(e,t,n,r){const i=e.dirs,s=t&&t.dirs;for(let l=0;l<i.length;l++){const o=i[l];s&&(o.oldValue=s[l].value);let a=o.dir[r];a&&(Et(),ot(a,n,8,[e.el,o,e,t]),Tt())}}const Ga=Symbol("_vte"),Za=e=>e.__isTeleport;function ni(e,t){e.shapeFlag&6&&e.component?(e.transition=t,ni(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}/*! #__NO_SIDE_EFFECTS__ */function pn(e,t){return ee(e)?Te({name:e.name},t,{setup:e}):e}function Qa(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ri(e,t,n,r,i=!1){if(B(e)){e.forEach((w,k)=>ri(w,t&&(B(t)?t[k]:t),n,r,i));return}if(gn(r)&&!i)return;const s=r.shapeFlag&4?cr(r.component):r.el,l=i?null:s,{i:o,r:a}=e,u=t&&t.r,c=o.refs===ce?o.refs={}:o.refs,h=o.setupState,p=te(h),m=h===ce?()=>!1:w=>se(p,w);if(u!=null&&u!==a&&(we(u)?(c[u]=null,m(u)&&(h[u]=null)):ke(u)&&(u.value=null)),ee(a))fn(a,o,12,[l,c]);else{const w=we(a),k=ke(a);if(w||k){const C=()=>{if(e.f){const v=w?m(a)?h[a]:c[a]:a.value;i?B(v)&&as(v,s):B(v)?v.includes(s)||v.push(s):w?(c[a]=[s],m(a)&&(h[a]=c[a])):(a.value=[s],e.k&&(c[e.k]=a.value))}else w?(c[a]=l,m(a)&&(h[a]=l)):k&&(a.value=l,e.k&&(c[e.k]=l))};l?(C.id=-1,De(C,n)):C()}}}const gn=e=>!!e.type.__asyncLoader,Ja=e=>e.type.__isKeepAlive;function Ya(e,t,n=Le,r=!1){if(n){const i=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...l)=>{Et();const o=mi(n),a=ot(t,n,e,l);return o(),Tt(),a});return r?i.unshift(s):i.push(s),s}}const ii=e=>(t,n=Le)=>{(!ar||e==="sp")&&Ya(e,(...r)=>t(...r),n)},mn=ii("m"),Xa=ii("bum"),si=ii("um"),ec="components";function tc(e,t){return rc(ec,e,!0,t)||e}const nc=Symbol.for("v-ndc");function rc(e,t,n=!0,r=!1){const i=Oe||Le;if(i){const s=i.type;{const o=Wc(s,!1);if(o&&(o===t||o===qe(t)||o===Un(qe(t))))return s}const l=qs(i[e]||s[e],t)||qs(i.appContext[e],t);return!l&&r?s:l}}function qs(e,t){return e&&(e[t]||e[qe(t)]||e[Un(qe(t))])}function Ne(e,t,n,r){let i;const s=n,l=B(e);if(l||we(e)){const o=l&&Vt(e);o&&(e=Bn(e)),i=new Array(e.length);for(let a=0,u=e.length;a<u;a++)i[a]=t(o?Se(e[a]):e[a],a,void 0,s)}else if(typeof e=="number"){i=new Array(e);for(let o=0;o<e;o++)i[o]=t(o+1,o,void 0,s)}else if(pe(e))if(e[Symbol.iterator])i=Array.from(e,(o,a)=>t(o,a,void 0,s));else{const o=Object.keys(e);i=new Array(o.length);for(let a=0,u=o.length;a<u;a++){const c=o[a];i[a]=t(e[c],c,a,s)}}else i=[];return i}const li=e=>e?bl(e)?cr(e):li(e.parent):null,vn=Te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>li(e.parent),$root:e=>li(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>e.type,$forceUpdate:e=>e.f||(e.f=()=>{ti(e.update)}),$nextTick:e=>e.n||(e.n=qt.bind(e.proxy)),$watch:e=>$t}),oi=(e,t)=>e!==ce&&!e.__isScriptSetup&&se(e,t),ic={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:i,props:s,accessCache:l,type:o,appContext:a}=e;let u;if(t[0]!=="$"){const m=l[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return s[t]}else{if(oi(r,t))return l[t]=1,r[t];if(i!==ce&&se(i,t))return l[t]=2,i[t];if((u=e.propsOptions[0])&&se(u,t))return l[t]=3,s[t];if(n!==ce&&se(n,t))return l[t]=4,n[t];l[t]=0}}const c=vn[t];let h,p;if(c)return t==="$attrs"&&Ce(e.attrs,"get",""),c(e);if((h=o.__cssModules)&&(h=h[t]))return h;if(n!==ce&&se(n,t))return l[t]=4,n[t];if(p=a.config.globalProperties,se(p,t))return p[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:s}=e;return oi(i,t)?(i[t]=n,!0):r!==ce&&se(r,t)?(r[t]=n,!0):se(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:s}},l){let o;return!!n[l]||e!==ce&&se(e,l)||oi(t,l)||(o=s[0])&&se(o,l)||se(r,l)||se(vn,l)||se(i.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:se(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ks(e){return B(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function sc(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:s,config:{optionMergeStrategies:l}}=e.appContext,o=s.get(t);let a;return o?a=o:!i.length&&!n&&!r?a=t:(a={},i.length&&i.forEach(u=>nr(a,u,l,!0)),nr(a,t,l)),pe(t)&&s.set(t,a),a}function nr(e,t,n,r=!1){const{mixins:i,extends:s}=t;s&&nr(e,s,n,!0),i&&i.forEach(l=>nr(e,l,n,!0));for(const l in t)if(!(r&&l==="expose")){const o=lc[l]||n&&n[l];e[l]=o?o(e[l],t[l]):t[l]}return e}const lc={data:Gs,props:Qs,emits:Qs,methods:bn,computed:bn,beforeCreate:Ie,created:Ie,beforeMount:Ie,mounted:Ie,beforeUpdate:Ie,updated:Ie,beforeDestroy:Ie,beforeUnmount:Ie,destroyed:Ie,unmounted:Ie,activated:Ie,deactivated:Ie,errorCaptured:Ie,serverPrefetch:Ie,components:bn,directives:bn,watch:ac,provide:Gs,inject:oc};function Gs(e,t){return t?e?function(){return Te(ee(e)?e.call(this,this):e,ee(t)?t.call(this,this):t)}:t:e}function oc(e,t){return bn(Zs(e),Zs(t))}function Zs(e){if(B(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Ie(e,t){return e?[...new Set([].concat(e,t))]:t}function bn(e,t){return e?Te(Object.create(null),e,t):t}function Qs(e,t){return e?B(e)&&B(t)?[...new Set([...e,...t])]:Te(Object.create(null),Ks(e),Ks(t??{})):t}function ac(e,t){if(!e)return t;if(!t)return e;const n=Te(Object.create(null),e);for(const r in t)n[r]=Ie(e[r],t[r]);return n}function Js(){return{app:null,config:{isNativeTag:ta,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let cc=0;function uc(e,t){return function(r,i=null){ee(r)||(r=Te({},r)),i!=null&&!pe(i)&&(i=null);const s=Js(),l=new WeakSet,o=[];let a=!1;const u=s.app={_uid:cc++,_component:r,_props:i,_container:null,_context:s,_instance:null,version:Kc,get config(){return s.config},set config(c){},use(c,...h){return l.has(c)||(c&&ee(c.install)?(l.add(c),c.install(u,...h)):ee(c)&&(l.add(c),c(u,...h))),u},mixin(c){return u},component(c,h){return h?(s.components[c]=h,u):s.components[c]},directive(c,h){return h?(s.directives[c]=h,u):s.directives[c]},mount(c,h,p){if(!a){const m=u._ceVNode||oe(r,i);return m.appContext=s,p===!0?p="svg":p===!1&&(p=void 0),h&&t?t(m,c):e(m,c,p),a=!0,u._container=c,c.__vue_app__=u,cr(m.component)}},onUnmount(c){o.push(c)},unmount(){a&&(ot(o,u._instance,16),e(null,u._container),delete u._container.__vue_app__)},provide(c,h){return s.provides[c]=h,u},runWithContext(c){const h=Kt;Kt=u;try{return c()}finally{Kt=h}}};return u}}let Kt=null;function fc(e,t){if(Le){let n=Le.provides;const r=Le.parent&&Le.parent.provides;r===n&&(n=Le.provides=Object.create(r)),n[e]=t}}function rr(e,t,n=!1){const r=Le||Oe;if(r||Kt){const i=Kt?Kt._context.provides:r?r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&ee(t)?t.call(r&&r.proxy):t}}const Ys={},Xs=()=>Object.create(Ys),el=e=>Object.getPrototypeOf(e)===Ys;function hc(e,t,n,r=!1){const i={},s=Xs();e.propsDefaults=Object.create(null),tl(e,t,i,s);for(const l in e.propsOptions[0])l in i||(i[l]=void 0);n?e.props=r?i:ja(i):e.type.props?e.props=i:e.props=s,e.attrs=s}function dc(e,t,n,r){const{props:i,attrs:s,vnode:{patchFlag:l}}=e,o=te(i),[a]=e.propsOptions;let u=!1;if((r||l>0)&&!(l&16)){if(l&8){const c=e.vnode.dynamicProps;for(let h=0;h<c.length;h++){let p=c[h];if(ir(e.emitsOptions,p))continue;const m=t[p];if(a)if(se(s,p))m!==s[p]&&(s[p]=m,u=!0);else{const w=qe(p);i[w]=ai(a,o,w,m,e,!1)}else m!==s[p]&&(s[p]=m,u=!0)}}}else{tl(e,t,i,s)&&(u=!0);let c;for(const h in o)(!t||!se(t,h)&&((c=Ct(h))===h||!se(t,c)))&&(a?n&&(n[h]!==void 0||n[c]!==void 0)&&(i[h]=ai(a,o,h,void 0,e,!0)):delete i[h]);if(s!==o)for(const h in s)(!t||!se(t,h))&&(delete s[h],u=!0)}u&&it(e.attrs,"set","")}function tl(e,t,n,r){const[i,s]=e.propsOptions;let l=!1,o;if(t)for(let a in t){if(nn(a))continue;const u=t[a];let c;i&&se(i,c=qe(a))?!s||!s.includes(c)?n[c]=u:(o||(o={}))[c]=u:ir(e.emitsOptions,a)||(!(a in r)||u!==r[a])&&(r[a]=u,l=!0)}if(s){const a=te(n),u=o||ce;for(let c=0;c<s.length;c++){const h=s[c];n[h]=ai(i,a,h,u[h],e,!se(u,h))}}return l}function ai(e,t,n,r,i,s){const l=e[n];if(l!=null){const o=se(l,"default");if(o&&r===void 0){const a=l.default;if(l.type!==Function&&!l.skipFactory&&ee(a)){const{propsDefaults:u}=i;if(n in u)r=u[n];else{const c=mi(i);r=u[n]=a.call(null,t),c()}}else r=a;i.ce&&i.ce._setProp(n,r)}l[0]&&(s&&!o?r=!1:l[1]&&(r===""||r===Ct(n))&&(r=!0))}return r}function pc(e,t,n=!1){const r=t.propsCache,i=r.get(e);if(i)return i;const s=e.props,l={},o=[];if(!s&&!!1)return pe(e)&&r.set(e,Dt),Dt;if(B(s))for(let c=0;c<s.length;c++){const h=qe(s[c]);nl(h)&&(l[h]=ce)}else if(s)for(const c in s){const h=qe(c);if(nl(h)){const p=s[c],m=l[h]=B(p)||ee(p)?{type:p}:Te({},p),w=m.type;let k=!1,C=!0;if(B(w))for(let v=0;v<w.length;++v){const $=w[v],U=ee($)&&$.name;if(U==="Boolean"){k=!0;break}else U==="String"&&(C=!1)}else k=ee(w)&&w.name==="Boolean";m[0]=k,m[1]=C,(k||se(m,"default"))&&o.push(h)}}const u=[l,o];return pe(e)&&r.set(e,u),u}function nl(e){return e[0]!=="$"&&!nn(e)}const rl=e=>e[0]==="_"||e==="$stable",ci=e=>B(e)?e.map(tt):[tt(e)],gc=(e,t,n)=>{if(t._n)return t;const r=Ka((...i)=>ci(t(...i)),n);return r._c=!1,r},il=(e,t,n)=>{const r=e._ctx;for(const i in e){if(rl(i))continue;const s=e[i];if(ee(s))t[i]=gc(i,s,r);else if(s!=null){const l=ci(s);t[i]=()=>l}}},sl=(e,t)=>{const n=ci(t);e.slots.default=()=>n},ll=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},mc=(e,t,n)=>{const r=e.slots=Xs();if(e.vnode.shapeFlag&32){const i=t._;i?(ll(r,t,n),n&&ds(r,"_",i,!0)):il(t,r)}else t&&sl(e,t)},vc=(e,t,n)=>{const{vnode:r,slots:i}=e;let s=!0,l=ce;if(r.shapeFlag&32){const o=t._;o?n&&o===1?s=!1:ll(i,t,n):(s=!t.$stable,il(t,i)),l=t}else t&&(sl(e,t),l={default:1});if(s)for(const o in i)!rl(o)&&l[o]==null&&delete i[o]};function bc(){typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__!="boolean"&&(jr().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1)}const De=Lc;function yc(e){return wc(e)}function wc(e,t){bc();const n=jr();n.__VUE__=!0;const{insert:r,remove:i,patchProp:s,createElement:l,createText:o,createComment:a,setText:u,setElementText:c,parentNode:h,nextSibling:p,setScopeId:m=$t,insertStaticContent:w}=e,k=(f,d,g,y=null,b=null,x=null,R=void 0,E=null,S=!!d.dynamicChildren)=>{if(f===d)return;f&&!xn(f,d)&&(y=kt(f),je(f,b,x,!0),f=null),d.patchFlag===-2&&(S=!1,d.dynamicChildren=null);const{type:_,ref:M,shapeFlag:I}=d;switch(_){case sr:C(f,d,g,y);break;case Ot:v(f,d,g,y);break;case hi:f==null&&$(d,g,y,R);break;case he:me(f,d,g,y,b,x,R,E,S);break;default:I&1?j(f,d,g,y,b,x,R,E,S):I&6?P(f,d,g,y,b,x,R,E,S):(I&64||I&128)&&_.process(f,d,g,y,b,x,R,E,S,T)}M!=null&&b&&ri(M,f&&f.ref,x,d||f,!d)},C=(f,d,g,y)=>{if(f==null)r(d.el=o(d.children),g,y);else{const b=d.el=f.el;d.children!==f.children&&u(b,d.children)}},v=(f,d,g,y)=>{f==null?r(d.el=a(d.children||""),g,y):d.el=f.el},$=(f,d,g,y)=>{[f.el,f.anchor]=w(f.children,d,g,y,f.el,f.anchor)},U=({el:f,anchor:d},g,y)=>{let b;for(;f&&f!==d;)b=p(f),r(f,g,y),f=b;r(d,g,y)},A=({el:f,anchor:d})=>{let g;for(;f&&f!==d;)g=p(f),i(f),f=g;i(d)},j=(f,d,g,y,b,x,R,E,S)=>{d.type==="svg"?R="svg":d.type==="math"&&(R="mathml"),f==null?W(d,g,y,b,x,R,E,S):Me(f,d,b,x,R,E,S)},W=(f,d,g,y,b,x,R,E)=>{let S,_;const{props:M,shapeFlag:I,transition:F,dirs:V}=f;if(S=f.el=l(f.type,x,M&&M.is,M),I&8?c(S,f.children):I&16&&Y(f.children,S,null,y,b,ui(f,x),R,E),V&&Lt(f,null,y,"created"),H(S,f,f.scopeId,R,y),M){for(const fe in M)fe!=="value"&&!nn(fe)&&s(S,fe,null,M[fe],x,y);"value"in M&&s(S,"value",null,M.value,x),(_=M.onVnodeBeforeMount)&&nt(_,y,f)}V&&Lt(f,null,y,"beforeMount");const Z=xc(b,F);Z&&F.beforeEnter(S),r(S,d,g),((_=M&&M.onVnodeMounted)||Z||V)&&De(()=>{_&&nt(_,y,f),Z&&F.enter(S),V&&Lt(f,null,y,"mounted")},b)},H=(f,d,g,y,b)=>{if(g&&m(f,g),y)for(let x=0;x<y.length;x++)m(f,y[x]);if(b){let x=b.subTree;if(d===x||dl(x.type)&&(x.ssContent===d||x.ssFallback===d)){const R=b.vnode;H(f,R,R.scopeId,R.slotScopeIds,b.parent)}}},Y=(f,d,g,y,b,x,R,E,S=0)=>{for(let _=S;_<f.length;_++){const M=f[_]=E?vt(f[_]):tt(f[_]);k(null,M,d,g,y,b,x,R,E)}},Me=(f,d,g,y,b,x,R)=>{const E=d.el=f.el;let{patchFlag:S,dynamicChildren:_,dirs:M}=d;S|=f.patchFlag&16;const I=f.props||ce,F=d.props||ce;let V;if(g&&Mt(g,!1),(V=F.onVnodeBeforeUpdate)&&nt(V,g,d,f),M&&Lt(d,f,g,"beforeUpdate"),g&&Mt(g,!0),(I.innerHTML&&F.innerHTML==null||I.textContent&&F.textContent==null)&&c(E,""),_?G(f.dynamicChildren,_,E,g,y,ui(d,b),x):R||ye(f,d,E,null,g,y,ui(d,b),x,!1),S>0){if(S&16)re(E,I,F,g,b);else if(S&2&&I.class!==F.class&&s(E,"class",null,F.class,b),S&4&&s(E,"style",I.style,F.style,b),S&8){const Z=d.dynamicProps;for(let fe=0;fe<Z.length;fe++){const ie=Z[fe],ze=I[ie],$e=F[ie];($e!==ze||ie==="value")&&s(E,ie,ze,$e,b,g)}}S&1&&f.children!==d.children&&c(E,d.children)}else!R&&_==null&&re(E,I,F,g,b);((V=F.onVnodeUpdated)||M)&&De(()=>{V&&nt(V,g,d,f),M&&Lt(d,f,g,"updated")},y)},G=(f,d,g,y,b,x,R)=>{for(let E=0;E<d.length;E++){const S=f[E],_=d[E],M=S.el&&(S.type===he||!xn(S,_)||S.shapeFlag&70)?h(S.el):g;k(S,_,M,null,y,b,x,R,!0)}},re=(f,d,g,y,b)=>{if(d!==g){if(d!==ce)for(const x in d)!nn(x)&&!(x in g)&&s(f,x,d[x],null,b,y);for(const x in g){if(nn(x))continue;const R=g[x],E=d[x];R!==E&&x!=="value"&&s(f,x,E,R,b,y)}"value"in g&&s(f,"value",d.value,g.value,b)}},me=(f,d,g,y,b,x,R,E,S)=>{const _=d.el=f?f.el:o(""),M=d.anchor=f?f.anchor:o("");let{patchFlag:I,dynamicChildren:F,slotScopeIds:V}=d;V&&(E=E?E.concat(V):V),f==null?(r(_,g,y),r(M,g,y),Y(d.children||[],g,M,b,x,R,E,S)):I>0&&I&64&&F&&f.dynamicChildren?(G(f.dynamicChildren,F,g,b,x,R,E),(d.key!=null||b&&d===b.subTree)&&ol(f,d,!0)):ye(f,d,g,M,b,x,R,E,S)},P=(f,d,g,y,b,x,R,E,S)=>{d.slotScopeIds=E,f==null?d.shapeFlag&512?b.ctx.activate(d,g,y,R,S):Q(d,g,y,b,x,R,S):le(f,d,S)},Q=(f,d,g,y,b,x,R)=>{const E=f.component=Dc(f,y,b);if(Ja(f)&&(E.ctx.renderer=T),Uc(E,!1,R),E.asyncDep){if(b&&b.registerDep(E,xe,R),!f.el){const S=E.subTree=oe(Ot);v(null,S,d,g)}}else xe(E,f,d,g,b,x,R)},le=(f,d,g)=>{const y=d.component=f.component;if(Rc(f,d,g))if(y.asyncDep&&!y.asyncResolved){be(y,d,g);return}else y.next=d,y.update();else d.el=f.el,y.vnode=d},xe=(f,d,g,y,b,x,R)=>{const E=()=>{if(f.isMounted){let{next:I,bu:F,u:V,parent:Z,vnode:fe}=f;{const Pe=al(f);if(Pe){I&&(I.el=fe.el,be(f,I,R)),Pe.asyncDep.then(()=>{f.isUnmounted||E()});return}}let ie=I,ze;Mt(f,!1),I?(I.el=fe.el,be(f,I,R)):I=fe,F&&Nn(F),(ze=I.props&&I.props.onVnodeBeforeUpdate)&&nt(ze,Z,I,fe),Mt(f,!0);const $e=fi(f),We=f.subTree;f.subTree=$e,k(We,$e,h(We.el),kt(We),f,b,x),I.el=$e.el,ie===null&&Ic(f,$e.el),V&&De(V,b),(ze=I.props&&I.props.onVnodeUpdated)&&De(()=>nt(ze,Z,I,fe),b)}else{let I;const{el:F,props:V}=d,{bm:Z,m:fe,parent:ie,root:ze,type:$e}=f,We=gn(d);if(Mt(f,!1),Z&&Nn(Z),!We&&(I=V&&V.onVnodeBeforeMount)&&nt(I,ie,d),Mt(f,!0),F&&de){const Pe=()=>{f.subTree=fi(f),de(F,f.subTree,f,b,null)};We&&$e.__asyncHydrate?$e.__asyncHydrate(F,f,Pe):Pe()}else{ze.ce&&ze.ce._injectChildStyle($e);const Pe=f.subTree=fi(f);k(null,Pe,g,y,f,b,x),d.el=Pe.el}if(fe&&De(fe,b),!We&&(I=V&&V.onVnodeMounted)){const Pe=d;De(()=>nt(I,ie,Pe),b)}(d.shapeFlag&256||ie&&gn(ie.vnode)&&ie.vnode.shapeFlag&256)&&f.a&&De(f.a,b),f.isMounted=!0,d=g=y=null}};f.scope.on();const S=f.effect=new ys(E);f.scope.off();const _=f.update=S.run.bind(S),M=f.job=S.runIfDirty.bind(S);M.i=f,M.id=f.uid,S.scheduler=()=>ti(M),Mt(f,!0),_()},be=(f,d,g)=>{d.component=f;const y=f.vnode.props;f.vnode=d,f.next=null,dc(f,d.props,y,g),vc(f,d.children,g),Et(),Ns(f),Tt()},ye=(f,d,g,y,b,x,R,E,S=!1)=>{const _=f&&f.children,M=f?f.shapeFlag:0,I=d.children,{patchFlag:F,shapeFlag:V}=d;if(F>0){if(F&128){dt(_,I,g,y,b,x,R,E,S);return}else if(F&256){Ee(_,I,g,y,b,x,R,E,S);return}}V&8?(M&16&&xt(_,b,x),I!==_&&c(g,I)):M&16?V&16?dt(_,I,g,y,b,x,R,E,S):xt(_,b,x,!0):(M&8&&c(g,""),V&16&&Y(I,g,y,b,x,R,E,S))},Ee=(f,d,g,y,b,x,R,E,S)=>{f=f||Dt,d=d||Dt;const _=f.length,M=d.length,I=Math.min(_,M);let F;for(F=0;F<I;F++){const V=d[F]=S?vt(d[F]):tt(d[F]);k(f[F],V,g,null,b,x,R,E,S)}_>M?xt(f,b,x,!0,!1,I):Y(d,g,y,b,x,R,E,S,I)},dt=(f,d,g,y,b,x,R,E,S)=>{let _=0;const M=d.length;let I=f.length-1,F=M-1;for(;_<=I&&_<=F;){const V=f[_],Z=d[_]=S?vt(d[_]):tt(d[_]);if(xn(V,Z))k(V,Z,g,null,b,x,R,E,S);else break;_++}for(;_<=I&&_<=F;){const V=f[I],Z=d[F]=S?vt(d[F]):tt(d[F]);if(xn(V,Z))k(V,Z,g,null,b,x,R,E,S);else break;I--,F--}if(_>I){if(_<=F){const V=F+1,Z=V<M?d[V].el:y;for(;_<=F;)k(null,d[_]=S?vt(d[_]):tt(d[_]),g,Z,b,x,R,E,S),_++}}else if(_>F)for(;_<=I;)je(f[_],b,x,!0),_++;else{const V=_,Z=_,fe=new Map;for(_=Z;_<=F;_++){const Fe=d[_]=S?vt(d[_]):tt(d[_]);Fe.key!=null&&fe.set(Fe.key,_)}let ie,ze=0;const $e=F-Z+1;let We=!1,Pe=0;const Xt=new Array($e);for(_=0;_<$e;_++)Xt[_]=0;for(_=V;_<=I;_++){const Fe=f[_];if(ze>=$e){je(Fe,b,x,!0);continue}let Je;if(Fe.key!=null)Je=fe.get(Fe.key);else for(ie=Z;ie<=F;ie++)if(Xt[ie-Z]===0&&xn(Fe,d[ie])){Je=ie;break}Je===void 0?je(Fe,b,x,!0):(Xt[Je-Z]=_+1,Je>=Pe?Pe=Je:We=!0,k(Fe,d[Je],g,null,b,x,R,E,S),ze++)}const Mi=We?kc(Xt):Dt;for(ie=Mi.length-1,_=$e-1;_>=0;_--){const Fe=Z+_,Je=d[Fe],Oi=Fe+1<M?d[Fe+1].el:y;Xt[_]===0?k(null,Je,g,Oi,b,x,R,E,S):We&&(ie<0||_!==Mi[ie]?wt(Je,g,Oi,2):ie--)}}},wt=(f,d,g,y,b=null)=>{const{el:x,type:R,transition:E,children:S,shapeFlag:_}=f;if(_&6){wt(f.component.subTree,d,g,y);return}if(_&128){f.suspense.move(d,g,y);return}if(_&64){R.move(f,d,g,T);return}if(R===he){r(x,d,g);for(let I=0;I<S.length;I++)wt(S[I],d,g,y);r(f.anchor,d,g);return}if(R===hi){U(f,d,g);return}if(y!==2&&_&1&&E)if(y===0)E.beforeEnter(x),r(x,d,g),De(()=>E.enter(x),b);else{const{leave:I,delayLeave:F,afterLeave:V}=E,Z=()=>r(x,d,g),fe=()=>{I(x,()=>{Z(),V&&V()})};F?F(x,Z,fe):fe()}else r(x,d,g)},je=(f,d,g,y=!1,b=!1)=>{const{type:x,props:R,ref:E,children:S,dynamicChildren:_,shapeFlag:M,patchFlag:I,dirs:F,cacheIndex:V}=f;if(I===-2&&(b=!1),E!=null&&ri(E,null,g,f,!0),V!=null&&(d.renderCache[V]=void 0),M&256){d.ctx.deactivate(f);return}const Z=M&1&&F,fe=!gn(f);let ie;if(fe&&(ie=R&&R.onVnodeBeforeUnmount)&&nt(ie,d,f),M&6)jn(f.component,g,y);else{if(M&128){f.suspense.unmount(g,y);return}Z&&Lt(f,null,d,"beforeUnmount"),M&64?f.type.remove(f,d,g,T,y):_&&!_.hasOnce&&(x!==he||I>0&&I&64)?xt(_,d,g,!1,!0):(x===he&&I&384||!b&&M&16)&&xt(S,d,g),y&&On(f)}(fe&&(ie=R&&R.onVnodeUnmounted)||Z)&&De(()=>{ie&&nt(ie,d,f),Z&&Lt(f,null,d,"unmounted")},g)},On=f=>{const{type:d,el:g,anchor:y,transition:b}=f;if(d===he){Cr(g,y);return}if(d===hi){A(f);return}const x=()=>{i(g),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(f.shapeFlag&1&&b&&!b.persisted){const{leave:R,delayLeave:E}=b,S=()=>R(g,x);E?E(f.el,x,S):S()}else x()},Cr=(f,d)=>{let g;for(;f!==d;)g=p(f),i(f),f=g;i(d)},jn=(f,d,g)=>{const{bum:y,scope:b,job:x,subTree:R,um:E,m:S,a:_}=f;cl(S),cl(_),y&&Nn(y),b.stop(),x&&(x.flags|=8,je(R,f,d,g)),E&&De(E,d),De(()=>{f.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&f.asyncDep&&!f.asyncResolved&&f.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},xt=(f,d,g,y=!1,b=!1,x=0)=>{for(let R=x;R<f.length;R++)je(f[R],d,g,y,b)},kt=f=>{if(f.shapeFlag&6)return kt(f.component.subTree);if(f.shapeFlag&128)return f.suspense.next();const d=p(f.anchor||f.el),g=d&&d[Ga];return g?p(g):d};let Pt=!1;const O=(f,d,g)=>{f==null?d._vnode&&je(d._vnode,null,null,!0):k(d._vnode||null,f,d,null,null,null,g),d._vnode=f,Pt||(Pt=!0,Ns(),Vs(),Pt=!1)},T={p:k,um:je,m:wt,r:On,mt:Q,mc:Y,pc:ye,pbc:G,n:kt,o:e};let N,de;return{render:O,hydrate:N,createApp:uc(O,N)}}function ui({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function xc(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ol(e,t,n=!1){const r=e.children,i=t.children;if(B(r)&&B(i))for(let s=0;s<r.length;s++){const l=r[s];let o=i[s];o.shapeFlag&1&&!o.dynamicChildren&&((o.patchFlag<=0||o.patchFlag===32)&&(o=i[s]=vt(i[s]),o.el=l.el),!n&&o.patchFlag!==-2&&ol(l,o)),o.type===sr&&(o.el=l.el)}}function kc(e){const t=e.slice(),n=[0];let r,i,s,l,o;const a=e.length;for(r=0;r<a;r++){const u=e[r];if(u!==0){if(i=n[n.length-1],e[i]<u){t[r]=i,n.push(r);continue}for(s=0,l=n.length-1;s<l;)o=s+l>>1,e[n[o]]<u?s=o+1:l=o;u<e[n[s]]&&(s>0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,l=n[s-1];s-- >0;)n[s]=l,l=t[l];return n}function al(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:al(t)}function cl(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}const _c=Symbol.for("v-scx"),$c=()=>rr(_c);function ul(e,t){return fl(e,null,t)}function Ve(e,t,n){return fl(e,t,n)}function fl(e,t,n=ce){const{immediate:r,deep:i,flush:s,once:l}=n,o=Te({},n);let a;if(ar)if(s==="sync"){const p=$c();a=p.__watcherHandles||(p.__watcherHandles=[])}else if(!t||r)o.once=!0;else return{stop:$t,resume:$t,pause:$t};const u=Le;o.call=(p,m,w)=>ot(p,u,m,w);let c=!1;s==="post"?o.scheduler=p=>{De(p,u&&u.suspense)}:s!=="sync"&&(c=!0,o.scheduler=(p,m)=>{m?p():ti(p)}),o.augmentJob=p=>{t&&(p.flags|=4),c&&(p.flags|=2,u&&(p.id=u.uid,p.i=u))};const h=Va(e,t,o);return a&&a.push(h),h}const Cc=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${qe(t)}Modifiers`]||e[`${Ct(t)}Modifiers`];function Sc(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ce;let i=n;const s=t.startsWith("update:"),l=s&&Cc(r,t.slice(7));l&&(l.trim&&(i=n.map(c=>we(c)?c.trim():c)),l.number&&(i=n.map(Vn)));let o,a=r[o=Or(t)]||r[o=Or(qe(t))];!a&&s&&(a=r[o=Or(Ct(t))]),a&&ot(a,e,6,i);const u=r[o+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[o])return;e.emitted[o]=!0,ot(u,e,6,i)}}function Ec(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const s=e.emits;let l={};return!s&&!!1?(pe(e)&&r.set(e,null),null):(B(s)?s.forEach(a=>l[a]=null):Te(l,s),pe(e)&&r.set(e,l),l)}function ir(e,t){return!e||!Dn(t)?!1:(t=t.slice(2).replace(/Once$/,""),se(e,t[0].toLowerCase()+t.slice(1))||se(e,Ct(t))||se(e,t))}function fi(e){const{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[s],slots:l,attrs:o,emit:a,render:u,renderCache:c,props:h,data:p,setupState:m,ctx:w,inheritAttrs:k}=e,C=er(e);let v,$;try{if(n.shapeFlag&4){const A=i||r,j=A;v=tt(u.call(j,A,c,h,m,p,w)),$=o}else{const A=t;v=tt(A.length>1?A(h,{attrs:o,slots:l,emit:a}):A(h,null)),$=t.props?o:Tc(o)}}catch(A){yn.length=0,Xn(A,e,1),v=oe(Ot)}let U=v;if($&&k!==!1){const A=Object.keys($),{shapeFlag:j}=U;A.length&&j&7&&(s&&A.some(Lr)&&($=Ac($,s)),U=Gt(U,$,!1,!0))}return n.dirs&&(U=Gt(U,null,!1,!0),U.dirs=U.dirs?U.dirs.concat(n.dirs):n.dirs),n.transition&&ni(U,n.transition),v=U,er(C),v}const Tc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Dn(n))&&((t||(t={}))[n]=e[n]);return t},Ac=(e,t)=>{const n={};for(const r in e)(!Lr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Rc(e,t,n){const{props:r,children:i,component:s}=e,{props:l,children:o,patchFlag:a}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?hl(r,l,u):!!l;if(a&8){const c=t.dynamicProps;for(let h=0;h<c.length;h++){const p=c[h];if(l[p]!==r[p]&&!ir(u,p))return!0}}}else return(i||o)&&(!o||!o.$stable)?!0:r===l?!1:r?l?hl(r,l,u):!0:!!l;return!1}function hl(e,t,n){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){const s=r[i];if(t[s]!==e[s]&&!ir(n,s))return!0}return!1}function Ic({vnode:e,parent:t},n){for(;t;){const r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.el=e.el),r===e)(e=t.vnode).el=n,t=t.parent;else break}}const dl=e=>e.__isSuspense;function Lc(e,t){t&&t.pendingBranch?B(e)?t.effects.push(...e):t.effects.push(e):qa(e)}const he=Symbol.for("v-fgt"),sr=Symbol.for("v-txt"),Ot=Symbol.for("v-cmt"),hi=Symbol.for("v-stc"),yn=[];let He=null;function L(e=!1){yn.push(He=e?null:[])}function Mc(){yn.pop(),He=yn[yn.length-1]||null}let wn=1;function pl(e){wn+=e,e<0&&He&&(He.hasOnce=!0)}function gl(e){return e.dynamicChildren=wn>0?He||Dt:null,Mc(),wn>0&&He&&He.push(e),e}function z(e,t,n,r,i,s){return gl(D(e,t,n,r,i,s,!0))}function at(e,t,n,r,i){return gl(oe(e,t,n,r,i,!0))}function di(e){return e?e.__v_isVNode===!0:!1}function xn(e,t){return e.type===t.type&&e.key===t.key}const ml=({key:e})=>e??null,lr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?we(e)||ke(e)||ee(e)?{i:Oe,r:e,k:t,f:!!n}:e:null);function D(e,t=null,n=null,r=0,i=null,s=e===he?0:1,l=!1,o=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ml(t),ref:t&&lr(t),scopeId:Ws,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Oe};return o?(pi(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=we(n)?8:16),wn>0&&!l&&He&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&He.push(a),a}const oe=Oc;function Oc(e,t=null,n=null,r=0,i=null,s=!1){if((!e||e===nc)&&(e=Ot),di(e)){const o=Gt(e,t,!0);return n&&pi(o,n),wn>0&&!s&&He&&(o.shapeFlag&6?He[He.indexOf(e)]=o:He.push(o)),o.patchFlag=-2,o}if(qc(e)&&(e=e.__vccOpts),t){t=jc(t);let{class:o,style:a}=t;o&&!we(o)&&(t.class=ve(o)),pe(a)&&(Jr(a)&&!B(a)&&(a=Te({},a)),t.style=rn(a))}const l=we(e)?1:dl(e)?128:Za(e)?64:pe(e)?4:ee(e)?2:0;return D(e,t,n,r,i,l,s,!0)}function jc(e){return e?Jr(e)||el(e)?Te({},e):e:null}function Gt(e,t,n=!1,r=!1){const{props:i,ref:s,patchFlag:l,children:o,transition:a}=e,u=t?zc(i||{},t):i,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ml(u),ref:t&&t.ref?n&&s?B(s)?s.concat(lr(t)):[s,lr(t)]:lr(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==he?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Gt(e.ssContent),ssFallback:e.ssFallback&&Gt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&ni(c,a.clone(c)),c}function ct(e=" ",t=0){return oe(sr,null,e,t)}function J(e="",t=!1){return t?(L(),at(Ot,null,e)):oe(Ot,null,e)}function tt(e){return e==null||typeof e=="boolean"?oe(Ot):B(e)?oe(he,null,e.slice()):typeof e=="object"?vt(e):oe(sr,null,String(e))}function vt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Gt(e)}function pi(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(B(t))n=16;else if(typeof t=="object")if(r&65){const i=t.default;i&&(i._c&&(i._d=!1),pi(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!el(t)?t._ctx=Oe:i===3&&Oe&&(Oe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ee(t)?(t={default:t,_ctx:Oe},n=32):(t=String(t),r&64?(n=16,t=[ct(t)]):n=8);e.children=t,e.shapeFlag|=n}function zc(...e){const t={};for(let n=0;n<e.length;n++){const r=e[n];for(const i in r)if(i==="class")t.class!==r.class&&(t.class=ve([t.class,r.class]));else if(i==="style")t.style=rn([t.style,r.style]);else if(Dn(i)){const s=t[i],l=r[i];l&&s!==l&&!(B(s)&&s.includes(l))&&(t[i]=s?[].concat(s,l):l)}else i!==""&&(t[i]=r[i])}return t}function nt(e,t,n,r=null){ot(e,t,7,[n,r])}const Pc=Js();let Fc=0;function Dc(e,t,n){const r=e.type,i=(t?t.appContext:e.appContext)||Pc,s={uid:Fc++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new da(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:pc(r,i),emitsOptions:Ec(r,i),emit:null,emitted:null,propsDefaults:ce,inheritAttrs:r.inheritAttrs,ctx:ce,data:ce,props:ce,attrs:ce,slots:ce,refs:ce,setupState:ce,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=Sc.bind(null,s),e.ce&&e.ce(s),s}let Le=null;const Hc=()=>Le||Oe;let or,gi;{const e=jr(),t=(n,r)=>{let i;return(i=e[n])||(i=e[n]=[]),i.push(r),s=>{i.length>1?i.forEach(l=>l(s)):i[0](s)}};or=t("__VUE_INSTANCE_SETTERS__",n=>Le=n),gi=t("__VUE_SSR_SETTERS__",n=>ar=n)}const mi=e=>{const t=Le;return or(e),e.scope.on(),()=>{e.scope.off(),or(t)}},vl=()=>{Le&&Le.scope.off(),or(null)};function bl(e){return e.vnode.shapeFlag&4}let ar=!1;function Uc(e,t=!1,n=!1){t&&gi(t);const{props:r,children:i}=e.vnode,s=bl(e);hc(e,r,s,t),mc(e,i,n);const l=s?Nc(e,t):void 0;return t&&gi(!1),l}function Nc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ic);const{setup:r}=n;if(r){const i=e.setupContext=r.length>1?Bc(e):null,s=mi(e);Et();const l=fn(r,e,0,[e.props,i]);if(Tt(),s(),us(l)){if(gn(e)||Qa(e),l.then(vl,vl),t)return l.then(o=>{yl(e,o,t)}).catch(o=>{Xn(o,e,0)});e.asyncDep=l}else yl(e,l,t)}else xl(e,t)}function yl(e,t,n){ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:pe(t)&&(e.setupState=Ds(t)),xl(e,n)}let wl;function xl(e,t,n){const r=e.type;if(!e.render){if(!t&&wl&&!r.render){const i=r.template||sc(e).template;if(i){const{isCustomElement:s,compilerOptions:l}=e.appContext.config,{delimiters:o,compilerOptions:a}=r,u=Te(Te({isCustomElement:s,delimiters:o},l),a);r.render=wl(i,u)}}e.render=r.render||$t}}const Vc={get(e,t){return Ce(e,"get",""),e[t]}};function Bc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Vc),slots:e.slots,emit:e.emit,expose:t}}function cr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ds(za(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in vn)return vn[n](e)},has(t,n){return n in t||n in vn}})):e.proxy}function Wc(e,t=!0){return ee(e)?e.displayName||e.name:e.name||t&&e.__name}function qc(e){return ee(e)&&"__vccOpts"in e}const _e=(e,t)=>Ua(e,t,ar);function ne(e,t,n){const r=arguments.length;return r===2?pe(t)&&!B(t)?di(t)?oe(e,null,[t]):oe(e,t):oe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&di(n)&&(n=[n]),oe(e,t,n))}const Kc="3.5.3";/** +* @vue/runtime-dom v3.5.3 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let vi;const kl=typeof window<"u"&&window.trustedTypes;if(kl)try{vi=kl.createPolicy("vue",{createHTML:e=>e})}catch{}const _l=vi?e=>vi.createHTML(e):e=>e,Gc="http://www.w3.org/2000/svg",Zc="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,$l=ut&&ut.createElement("template"),Qc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t==="svg"?ut.createElementNS(Gc,e):t==="mathml"?ut.createElementNS(Zc,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,s){const l=n?n.previousSibling:t.lastChild;if(i&&(i===s||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===s||!(i=i.nextSibling)););else{$l.innerHTML=_l(r==="svg"?`<svg>${e}</svg>`:r==="mathml"?`<math>${e}</math>`:e);const o=$l.content;if(r==="svg"||r==="mathml"){const a=o.firstChild;for(;a.firstChild;)o.appendChild(a.firstChild);o.removeChild(a)}t.insertBefore(o,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Jc=Symbol("_vtc");function Yc(e,t,n){const r=e[Jc];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const ur=Symbol("_vod"),Cl=Symbol("_vsh"),Sl={beforeMount(e,{value:t},{transition:n}){e[ur]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):kn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),kn(e,!0),r.enter(e)):r.leave(e,()=>{kn(e,!1)}):kn(e,t))},beforeUnmount(e,{value:t}){kn(e,t)}};function kn(e,t){e.style.display=t?e[ur]:"none",e[Cl]=!t}const Xc=Symbol(""),eu=/(^|;)\s*display\s*:/;function tu(e,t,n){const r=e.style,i=we(n);let s=!1;if(n&&!i){if(t)if(we(t))for(const l of t.split(";")){const o=l.slice(0,l.indexOf(":")).trim();n[o]==null&&fr(r,o,"")}else for(const l in t)n[l]==null&&fr(r,l,"");for(const l in n)l==="display"&&(s=!0),fr(r,l,n[l])}else if(i){if(t!==n){const l=r[Xc];l&&(n+=";"+l),r.cssText=n,s=eu.test(n)}}else t&&e.removeAttribute("style");ur in e&&(e[ur]=s?r.display:"",e[Cl]&&(r.display="none"))}const El=/\s*!important$/;function fr(e,t,n){if(B(n))n.forEach(r=>fr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=nu(e,t);El.test(n)?e.setProperty(Ct(r),n.replace(El,""),"important"):e[r]=n}}const Tl=["Webkit","Moz","ms"],bi={};function nu(e,t){const n=bi[t];if(n)return n;let r=qe(t);if(r!=="filter"&&r in e)return bi[t]=r;r=Un(r);for(let i=0;i<Tl.length;i++){const s=Tl[i]+r;if(s in e)return bi[t]=s}return t}const Al="http://www.w3.org/1999/xlink";function Rl(e,t,n,r,i,s=fa(t)){r&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Al,t.slice(6,t.length)):e.setAttributeNS(Al,t,n):n==null||s&&!gs(n)?e.removeAttribute(t):e.setAttribute(t,s?"":Xe(n)?String(n):n)}function ru(e,t,n,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?_l(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const l=i==="OPTION"?e.getAttribute("value")||"":e.value,o=n==null?e.type==="checkbox"?"on":"":String(n);(l!==o||!("_value"in e))&&(e.value=o),n==null&&e.removeAttribute(t),e._value=n;return}let s=!1;if(n===""||n==null){const l=typeof e[t];l==="boolean"?n=gs(n):n==null&&l==="string"?(n="",s=!0):l==="number"&&(n=0,s=!0)}try{e[t]=n}catch{}s&&e.removeAttribute(t)}function ft(e,t,n,r){e.addEventListener(t,n,r)}function iu(e,t,n,r){e.removeEventListener(t,n,r)}const Il=Symbol("_vei");function su(e,t,n,r,i=null){const s=e[Il]||(e[Il]={}),l=s[t];if(r&&l)l.value=r;else{const[o,a]=lu(t);if(r){const u=s[t]=cu(r,i);ft(e,o,u,a)}else l&&(iu(e,o,l,a),s[t]=void 0)}}const Ll=/(?:Once|Passive|Capture)$/;function lu(e){let t;if(Ll.test(e)){t={};let r;for(;r=e.match(Ll);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Ct(e.slice(2)),t]}let yi=0;const ou=Promise.resolve(),au=()=>yi||(ou.then(()=>yi=0),yi=Date.now());function cu(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ot(uu(r,n.value),t,5,[r])};return n.value=e,n.attached=au(),n}function uu(e,t){if(B(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r&&r(i))}else return t}const Ml=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,fu=(e,t,n,r,i,s)=>{const l=i==="svg";t==="class"?Yc(e,r,l):t==="style"?tu(e,n,r):Dn(t)?Lr(t)||su(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):hu(e,t,r,l))?(ru(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Rl(e,t,r,l,s,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Rl(e,t,r,l))};function hu(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ml(t)&&ee(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return Ml(t)&&we(n)?!1:!!(t in e||e._isVueCE&&(/[A-Z]/.test(t)||!we(n)))}const bt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return B(t)?n=>Nn(t,n):t};function du(e){e.target.composing=!0}function Ol(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Be=Symbol("_assign"),wi={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[Be]=bt(i);const s=r||i.props&&i.props.type==="number";ft(e,t?"change":"input",l=>{if(l.target.composing)return;let o=e.value;n&&(o=o.trim()),s&&(o=Vn(o)),e[Be](o)}),n&&ft(e,"change",()=>{e.value=e.value.trim()}),t||(ft(e,"compositionstart",du),ft(e,"compositionend",Ol),ft(e,"change",Ol))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:s}},l){if(e[Be]=bt(l),e.composing)return;const o=(s||e.type==="number")&&!/^0\d/.test(e.value)?Vn(e.value):e.value,a=t??"";o!==a&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||i&&e.value.trim()===a)||(e.value=a))}},pu={deep:!0,created(e,t,n){e[Be]=bt(n),ft(e,"change",()=>{const r=e._modelValue,i=Zt(e),s=e.checked,l=e[Be];if(B(r)){const o=zr(r,i),a=o!==-1;if(s&&!a)l(r.concat(i));else if(!s&&a){const u=[...r];u.splice(o,1),l(u)}}else if(Ut(r)){const o=new Set(r);s?o.add(i):o.delete(i),l(o)}else l(Pl(e,s))})},mounted:jl,beforeUpdate(e,t,n){e[Be]=bt(n),jl(e,t,n)}};function jl(e,{value:t,oldValue:n},r){e._modelValue=t;let i;B(t)?i=zr(t,r.props.value)>-1:Ut(t)?i=t.has(r.props.value):i=St(t,Pl(e,!0)),e.checked!==i&&(e.checked=i)}const gu={created(e,{value:t},n){e.checked=St(t,n.props.value),e[Be]=bt(n),ft(e,"change",()=>{e[Be](Zt(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[Be]=bt(r),t!==n&&(e.checked=St(t,r.props.value))}},mu={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const i=Ut(t);ft(e,"change",()=>{const s=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?Vn(Zt(l)):Zt(l));e[Be](e.multiple?i?new Set(s):s:s[0]),e._assigning=!0,qt(()=>{e._assigning=!1})}),e[Be]=bt(r)},mounted(e,{value:t,modifiers:{number:n}}){zl(e,t)},beforeUpdate(e,t,n){e[Be]=bt(n)},updated(e,{value:t,modifiers:{number:n}}){e._assigning||zl(e,t)}};function zl(e,t,n){const r=e.multiple,i=B(t);if(!(r&&!i&&!Ut(t))){for(let s=0,l=e.options.length;s<l;s++){const o=e.options[s],a=Zt(o);if(r)if(i){const u=typeof a;u==="string"||u==="number"?o.selected=t.some(c=>String(c)===String(a)):o.selected=zr(t,a)>-1}else o.selected=t.has(a);else if(St(Zt(o),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Zt(e){return"_value"in e?e._value:e.value}function Pl(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const vu={created(e,t,n){hr(e,t,n,null,"created")},mounted(e,t,n){hr(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){hr(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){hr(e,t,n,r,"updated")}};function bu(e,t){switch(e){case"SELECT":return mu;case"TEXTAREA":return wi;default:switch(t){case"checkbox":return pu;case"radio":return gu;default:return wi}}}function hr(e,t,n,r,i){const l=bu(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}const yu=Te({patchProp:fu},Qc);let Fl;function wu(){return Fl||(Fl=yc(yu))}const xu=(...e)=>{const t=wu().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=_u(r);if(!i)return;const s=t._component;!ee(s)&&!s.render&&!s.template&&(s.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const l=n(i,!1,ku(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),l},t};function ku(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function _u(e){return we(e)?document.querySelector(e):e}function _n(e){return bs()?(pa(e),!0):!1}function ht(e){return typeof e=="function"?e():K(e)}const dr=typeof window<"u"&&typeof document<"u",$u=Object.prototype.toString,Cu=e=>$u.call(e)==="[object Object]",pr=()=>{};function Dl(e,t){function n(...r){return new Promise((i,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(i).catch(s)})}return n}const Hl=e=>e();function Su(e,t={}){let n,r,i=pr;const s=o=>{clearTimeout(o),i(),i=pr};return o=>{const a=ht(e),u=ht(t.maxWait);return n&&s(n),a<=0||u!==void 0&&u<=0?(r&&(s(r),r=null),Promise.resolve(o())):new Promise((c,h)=>{i=t.rejectOnCancel?h:c,u&&!r&&(r=setTimeout(()=>{n&&s(n),r=null,c(o())},u)),n=setTimeout(()=>{r&&s(r),r=null,c(o())},a)})}}function Eu(e=Hl){const t=q(!0);function n(){t.value=!1}function r(){t.value=!0}const i=(...s)=>{t.value&&e(...s)};return{isActive:un(t),pause:n,resume:r,eventFilter:i}}function Ul(e){return Hc()}function Tu(e,t=200,n={}){return Dl(Su(t,n),e)}function Au(e,t,n={}){const{eventFilter:r=Hl,...i}=n;return Ve(e,Dl(r,t),i)}function Ru(e,t,n={}){const{eventFilter:r,...i}=n,{eventFilter:s,pause:l,resume:o,isActive:a}=Eu(r);return{stop:Au(e,t,{...i,eventFilter:s}),pause:l,resume:o,isActive:a}}function xi(e,t=!0,n){Ul()?mn(e,n):t?e():qt(e)}function Iu(e,t){Ul()&&si(e,t)}function Lu(e,t=1e3,n={}){const{immediate:r=!0,immediateCallback:i=!1}=n;let s=null;const l=q(!1);function o(){s&&(clearInterval(s),s=null)}function a(){l.value=!1,o()}function u(){const c=ht(t);c<=0||(l.value=!0,i&&e(),o(),s=setInterval(e,c))}if(r&&dr&&u(),ke(t)||typeof t=="function"){const c=Ve(t,()=>{l.value&&dr&&u()});_n(c)}return _n(a),{isActive:l,pause:a,resume:u}}function Mu(e){var t;const n=ht(e);return(t=n==null?void 0:n.$el)!=null?t:n}const gr=dr?window:void 0,Nl=dr?window.document:void 0;function mr(...e){let t,n,r,i;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,i]=e,t=gr):[t,n,r,i]=e,!t)return pr;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],l=()=>{s.forEach(c=>c()),s.length=0},o=(c,h,p,m)=>(c.addEventListener(h,p,m),()=>c.removeEventListener(h,p,m)),a=Ve(()=>[Mu(t),ht(i)],([c,h])=>{if(l(),!c)return;const p=Cu(h)?{...h}:h;s.push(...n.flatMap(m=>r.map(w=>o(c,m,w,p))))},{immediate:!0,flush:"post"}),u=()=>{a(),l()};return _n(u),u}function Ou(e,t={}){const{immediate:n=!0,fpsLimit:r=void 0,window:i=gr}=t,s=q(!1),l=r?1e3/r:null;let o=0,a=null;function u(p){if(!s.value||!i)return;o||(o=p);const m=p-o;if(l&&m<l){a=i.requestAnimationFrame(u);return}o=p,e({delta:m,timestamp:p}),a=i.requestAnimationFrame(u)}function c(){!s.value&&i&&(s.value=!0,o=0,a=i.requestAnimationFrame(u))}function h(){s.value=!1,a!=null&&i&&(i.cancelAnimationFrame(a),a=null)}return n&&c(),_n(h),{isActive:un(s),pause:h,resume:c}}const vr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},br="__vueuse_ssr_handlers__",ju=zu();function zu(){return br in vr||(vr[br]=vr[br]||{}),vr[br]}function Pu(e,t){return ju[e]||t}function Fu(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Du={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Vl="vueuse-storage";function Qt(e,t,n,r={}){var i;const{flush:s="pre",deep:l=!0,listenToStorageChanges:o=!0,writeDefaults:a=!0,mergeDefaults:u=!1,shallow:c,window:h=gr,eventFilter:p,onError:m=G=>{console.error(G)},initOnMounted:w}=r,k=(c?Pa:q)(typeof t=="function"?t():t);if(!n)try{n=Pu("getDefaultStorage",()=>{var G;return(G=gr)==null?void 0:G.localStorage})()}catch(G){m(G)}if(!n)return k;const C=ht(t),v=Fu(C),$=(i=r.serializer)!=null?i:Du[v],{pause:U,resume:A}=Ru(k,()=>W(k.value),{flush:s,deep:l,eventFilter:p});h&&o&&xi(()=>{n instanceof Storage?mr(h,"storage",Y):mr(h,Vl,Me),w&&Y()}),w||Y();function j(G,re){if(h){const me={key:e,oldValue:G,newValue:re,storageArea:n};h.dispatchEvent(n instanceof Storage?new StorageEvent("storage",me):new CustomEvent(Vl,{detail:me}))}}function W(G){try{const re=n.getItem(e);if(G==null)j(re,null),n.removeItem(e);else{const me=$.write(G);re!==me&&(n.setItem(e,me),j(re,me))}}catch(re){m(re)}}function H(G){const re=G?G.newValue:n.getItem(e);if(re==null)return a&&C!=null&&n.setItem(e,$.write(C)),C;if(!G&&u){const me=$.read(re);return typeof u=="function"?u(me,C):v==="object"&&!Array.isArray(me)?{...C,...me}:me}else return typeof re!="string"?re:$.read(re)}function Y(G){if(!(G&&G.storageArea!==n)){if(G&&G.key==null){k.value=C;return}if(!(G&&G.key!==e)){U();try{(G==null?void 0:G.newValue)!==$.write(k.value)&&(k.value=H(G))}catch(re){m(re)}finally{G?qt(A):A()}}}}function Me(G){Y(G.detail)}return k}function Hu(e={}){const{controls:t=!1,interval:n="requestAnimationFrame"}=e,r=q(new Date),i=()=>r.value=new Date,s=n==="requestAnimationFrame"?Ou(i,{immediate:!0}):Lu(i,n,{immediate:!0});return t?{now:r,...s}:r}function Uu(e,t=pr,n={}){const{immediate:r=!0,manual:i=!1,type:s="text/javascript",async:l=!0,crossOrigin:o,referrerPolicy:a,noModule:u,defer:c,document:h=Nl,attrs:p={}}=n,m=q(null);let w=null;const k=$=>new Promise((U,A)=>{const j=Y=>(m.value=Y,U(Y),Y);if(!h){U(!1);return}let W=!1,H=h.querySelector(`script[src="${ht(e)}"]`);H?H.hasAttribute("data-loaded")&&j(H):(H=h.createElement("script"),H.type=s,H.async=l,H.src=ht(e),c&&(H.defer=c),o&&(H.crossOrigin=o),u&&(H.noModule=u),a&&(H.referrerPolicy=a),Object.entries(p).forEach(([Y,Me])=>H==null?void 0:H.setAttribute(Y,Me)),W=!0),H.addEventListener("error",Y=>A(Y)),H.addEventListener("abort",Y=>A(Y)),H.addEventListener("load",()=>{H.setAttribute("data-loaded","true"),t(H),j(H)}),W&&(H=h.head.appendChild(H)),$||j(H)}),C=($=!0)=>(w||(w=k($)),w),v=()=>{if(!h)return;w=null,m.value&&(m.value=null);const $=h.querySelector(`script[src="${ht(e)}"]`);$&&h.head.removeChild($)};return r&&!i&&xi(C),i||Iu(v),{scriptTag:m,load:C,unload:v}}let Nu=0;function Vu(e,t={}){const n=q(!1),{document:r=Nl,immediate:i=!0,manual:s=!1,id:l=`vueuse_styletag_${++Nu}`}=t,o=q(e);let a=()=>{};const u=()=>{if(!r)return;const h=r.getElementById(l)||r.createElement("style");h.isConnected||(h.id=l,t.media&&(h.media=t.media),r.head.appendChild(h)),!n.value&&(a=Ve(o,p=>{h.textContent=p},{immediate:!0}),n.value=!0)},c=()=>{!r||!n.value||(a(),r.head.removeChild(r.getElementById(l)),n.value=!1)};return i&&!s&&xi(u),s||_n(c),{id:l,css:o,unload:c,load:u,isLoaded:un(n)}}const Bu=e=>!!/@[0-9]+\.[0-9]+\.[0-9]+/.test(e),Wu=e=>{const t=Qt("WALINE_EMOJI",{}),n=Bu(e);if(n){const r=t.value[e];if(r)return Promise.resolve(r)}return fetch(`${e}/info.json`).then(r=>r.json()).then(r=>{const i={folder:e,...r};return n&&(t.value[e]=i),i})},Bl=(e,t="",n="",r="")=>`${t?`${t}/`:""}${n}${e}${r?`.${r}`:""}`,qu=e=>Promise.all(e.map(t=>Ft(t)?Wu(ls(t)):Promise.resolve(t))).then(t=>{const n={tabs:[],map:{}};return t.forEach(r=>{const{name:i,folder:s,icon:l,prefix:o="",type:a,items:u}=r;n.tabs.push({name:i,icon:Bl(l,s,o,a),items:u.map(c=>{const h=`${o}${c}`;return n.map[h]=Bl(c,s,o,a),h})})}),n}),Wl=e=>{e.name!=="AbortError"&&console.error(e.message)},ki=e=>e instanceof HTMLElement?e:Ft(e)?document.querySelector(e):null,Ku=e=>e.type.includes("image"),ql=e=>{const t=Array.from(e).find(Ku);return t?t.getAsFile():null};function _i(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let jt=_i();function Kl(e){jt=e}const Gl=/[&<>"']/,Gu=new RegExp(Gl.source,"g"),Zl=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,Zu=new RegExp(Zl.source,"g"),Qu={"&":"&","<":"<",">":">",'"':""","'":"'"},Ql=e=>Qu[e];function Ue(e,t){if(t){if(Gl.test(e))return e.replace(Gu,Ql)}else if(Zl.test(e))return e.replace(Zu,Ql);return e}const Ju=/(^|[^\[])\^/g;function ae(e,t){let n=typeof e=="string"?e:e.source;t=t||"";const r={replace:(i,s)=>{let l=typeof s=="string"?s:s.source;return l=l.replace(Ju,"$1"),n=n.replace(i,l),r},getRegex:()=>new RegExp(n,t)};return r}function Jl(e){try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}const $n={exec:()=>null};function Yl(e,t){const n=e.replace(/\|/g,(s,l,o)=>{let a=!1,u=l;for(;--u>=0&&o[u]==="\\";)a=!a;return a?"|":" |"}),r=n.split(/ \|/);let i=0;if(r[0].trim()||r.shift(),r.length>0&&!r[r.length-1].trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;i<r.length;i++)r[i]=r[i].trim().replace(/\\\|/g,"|");return r}function Cn(e,t,n){const r=e.length;if(r===0)return"";let i=0;for(;i<r;){const s=e.charAt(r-i-1);if(s===t&&!n)i++;else if(s!==t&&n)i++;else break}return e.slice(0,r-i)}function Yu(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return-1}function Xl(e,t,n,r){const i=t.href,s=t.title?Ue(t.title):null,l=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){r.state.inLink=!0;const o={type:"link",raw:n,href:i,title:s,text:l,tokens:r.inlineTokens(l)};return r.state.inLink=!1,o}return{type:"image",raw:n,href:i,title:s,text:Ue(l)}}function Xu(e,t){const n=e.match(/^(\s+)(?:```)/);if(n===null)return t;const r=n[1];return t.split(` +`).map(i=>{const s=i.match(/^\s+/);if(s===null)return i;const[l]=s;return l.length>=r.length?i.slice(r.length):i}).join(` +`)}class yr{options;rules;lexer;constructor(t){this.options=t||jt}space(t){const n=this.rules.block.newline.exec(t);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(t){const n=this.rules.block.code.exec(t);if(n){const r=n[0].replace(/^(?: {1,4}| {0,3}\t)/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?r:Cn(r,` +`)}}}fences(t){const n=this.rules.block.fences.exec(t);if(n){const r=n[0],i=Xu(r,n[3]||"");return{type:"code",raw:r,lang:n[2]?n[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):n[2],text:i}}}heading(t){const n=this.rules.block.heading.exec(t);if(n){let r=n[2].trim();if(/#$/.test(r)){const i=Cn(r,"#");(this.options.pedantic||!i||/ $/.test(i))&&(r=i.trim())}return{type:"heading",raw:n[0],depth:n[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(t){const n=this.rules.block.hr.exec(t);if(n)return{type:"hr",raw:Cn(n[0],` +`)}}blockquote(t){const n=this.rules.block.blockquote.exec(t);if(n){let r=Cn(n[0],` +`).split(` +`),i="",s="";const l=[];for(;r.length>0;){let o=!1;const a=[];let u;for(u=0;u<r.length;u++)if(/^ {0,3}>/.test(r[u]))a.push(r[u]),o=!0;else if(!o)a.push(r[u]);else break;r=r.slice(u);const c=a.join(` +`),h=c.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` + $1`).replace(/^ {0,3}>[ \t]?/gm,"");i=i?`${i} +${c}`:c,s=s?`${s} +${h}`:h;const p=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(h,l,!0),this.lexer.state.top=p,r.length===0)break;const m=l[l.length-1];if((m==null?void 0:m.type)==="code")break;if((m==null?void 0:m.type)==="blockquote"){const w=m,k=w.raw+` +`+r.join(` +`),C=this.blockquote(k);l[l.length-1]=C,i=i.substring(0,i.length-w.raw.length)+C.raw,s=s.substring(0,s.length-w.text.length)+C.text;break}else if((m==null?void 0:m.type)==="list"){const w=m,k=w.raw+` +`+r.join(` +`),C=this.list(k);l[l.length-1]=C,i=i.substring(0,i.length-m.raw.length)+C.raw,s=s.substring(0,s.length-w.raw.length)+C.raw,r=k.substring(l[l.length-1].raw.length).split(` +`);continue}}return{type:"blockquote",raw:i,tokens:l,text:s}}}list(t){let n=this.rules.block.list.exec(t);if(n){let r=n[1].trim();const i=r.length>1,s={type:"list",raw:"",ordered:i,start:i?+r.slice(0,-1):"",loose:!1,items:[]};r=i?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=i?r:"[*+-]");const l=new RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`);let o=!1;for(;t;){let a=!1,u="",c="";if(!(n=l.exec(t))||this.rules.block.hr.test(t))break;u=n[0],t=t.substring(u.length);let h=n[2].split(` +`,1)[0].replace(/^\t+/,v=>" ".repeat(3*v.length)),p=t.split(` +`,1)[0],m=!h.trim(),w=0;if(this.options.pedantic?(w=2,c=h.trimStart()):m?w=n[1].length+1:(w=n[2].search(/[^ ]/),w=w>4?1:w,c=h.slice(w),w+=n[1].length),m&&/^[ \t]*$/.test(p)&&(u+=p+` +`,t=t.substring(p.length+1),a=!0),!a){const v=new RegExp(`^ {0,${Math.min(3,w-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),$=new RegExp(`^ {0,${Math.min(3,w-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),U=new RegExp(`^ {0,${Math.min(3,w-1)}}(?:\`\`\`|~~~)`),A=new RegExp(`^ {0,${Math.min(3,w-1)}}#`);for(;t;){const j=t.split(` +`,1)[0];let W;if(p=j,this.options.pedantic?(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," "),W=p):W=p.replace(/\t/g," "),U.test(p)||A.test(p)||v.test(p)||$.test(p))break;if(W.search(/[^ ]/)>=w||!p.trim())c+=` +`+W.slice(w);else{if(m||h.replace(/\t/g," ").search(/[^ ]/)>=4||U.test(h)||A.test(h)||$.test(h))break;c+=` +`+p}!m&&!p.trim()&&(m=!0),u+=j+` +`,t=t.substring(j.length+1),h=W.slice(w)}}s.loose||(o?s.loose=!0:/\n[ \t]*\n[ \t]*$/.test(u)&&(o=!0));let k=null,C;this.options.gfm&&(k=/^\[[ xX]\] /.exec(c),k&&(C=k[0]!=="[ ] ",c=c.replace(/^\[[ xX]\] +/,""))),s.items.push({type:"list_item",raw:u,task:!!k,checked:C,loose:!1,text:c,tokens:[]}),s.raw+=u}s.items[s.items.length-1].raw=s.items[s.items.length-1].raw.trimEnd(),s.items[s.items.length-1].text=s.items[s.items.length-1].text.trimEnd(),s.raw=s.raw.trimEnd();for(let a=0;a<s.items.length;a++)if(this.lexer.state.top=!1,s.items[a].tokens=this.lexer.blockTokens(s.items[a].text,[]),!s.loose){const u=s.items[a].tokens.filter(h=>h.type==="space"),c=u.length>0&&u.some(h=>/\n.*\n/.test(h.raw));s.loose=c}if(s.loose)for(let a=0;a<s.items.length;a++)s.items[a].loose=!0;return s}}html(t){const n=this.rules.block.html.exec(t);if(n)return{type:"html",block:!0,raw:n[0],pre:n[1]==="pre"||n[1]==="script"||n[1]==="style",text:n[0]}}def(t){const n=this.rules.block.def.exec(t);if(n){const r=n[1].toLowerCase().replace(/\s+/g," "),i=n[2]?n[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",s=n[3]?n[3].substring(1,n[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):n[3];return{type:"def",tag:r,raw:n[0],href:i,title:s}}}table(t){const n=this.rules.block.table.exec(t);if(!n||!/[:|]/.test(n[2]))return;const r=Yl(n[1]),i=n[2].replace(/^\||\| *$/g,"").split("|"),s=n[3]&&n[3].trim()?n[3].replace(/\n[ \t]*$/,"").split(` +`):[],l={type:"table",raw:n[0],header:[],align:[],rows:[]};if(r.length===i.length){for(const o of i)/^ *-+: *$/.test(o)?l.align.push("right"):/^ *:-+: *$/.test(o)?l.align.push("center"):/^ *:-+ *$/.test(o)?l.align.push("left"):l.align.push(null);for(let o=0;o<r.length;o++)l.header.push({text:r[o],tokens:this.lexer.inline(r[o]),header:!0,align:l.align[o]});for(const o of s)l.rows.push(Yl(o,l.header.length).map((a,u)=>({text:a,tokens:this.lexer.inline(a),header:!1,align:l.align[u]})));return l}}lheading(t){const n=this.rules.block.lheading.exec(t);if(n)return{type:"heading",raw:n[0],depth:n[2].charAt(0)==="="?1:2,text:n[1],tokens:this.lexer.inline(n[1])}}paragraph(t){const n=this.rules.block.paragraph.exec(t);if(n){const r=n[1].charAt(n[1].length-1)===` +`?n[1].slice(0,-1):n[1];return{type:"paragraph",raw:n[0],text:r,tokens:this.lexer.inline(r)}}}text(t){const n=this.rules.block.text.exec(t);if(n)return{type:"text",raw:n[0],text:n[0],tokens:this.lexer.inline(n[0])}}escape(t){const n=this.rules.inline.escape.exec(t);if(n)return{type:"escape",raw:n[0],text:Ue(n[1])}}tag(t){const n=this.rules.inline.tag.exec(t);if(n)return!this.lexer.state.inLink&&/^<a /i.test(n[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:n[0]}}link(t){const n=this.rules.inline.link.exec(t);if(n){const r=n[2].trim();if(!this.options.pedantic&&/^</.test(r)){if(!/>$/.test(r))return;const l=Cn(r.slice(0,-1),"\\");if((r.length-l.length)%2===0)return}else{const l=Yu(n[2],"()");if(l>-1){const a=(n[0].indexOf("!")===0?5:4)+n[1].length+l;n[2]=n[2].substring(0,l),n[0]=n[0].substring(0,a).trim(),n[3]=""}}let i=n[2],s="";if(this.options.pedantic){const l=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);l&&(i=l[1],s=l[3])}else s=n[3]?n[3].slice(1,-1):"";return i=i.trim(),/^</.test(i)&&(this.options.pedantic&&!/>$/.test(r)?i=i.slice(1):i=i.slice(1,-1)),Xl(n,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},n[0],this.lexer)}}reflink(t,n){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){const i=(r[2]||r[1]).replace(/\s+/g," "),s=n[i.toLowerCase()];if(!s){const l=r[0].charAt(0);return{type:"text",raw:l,text:l}}return Xl(r,s,r[0],this.lexer)}}emStrong(t,n,r=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&r.match(/[\p{L}\p{N}]/u))return;if(!(i[1]||i[2]||"")||!r||this.rules.inline.punctuation.exec(r)){const l=[...i[0]].length-1;let o,a,u=l,c=0;const h=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,n=n.slice(-1*t.length+l);(i=h.exec(n))!=null;){if(o=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!o)continue;if(a=[...o].length,i[3]||i[4]){u+=a;continue}else if((i[5]||i[6])&&l%3&&!((l+a)%3)){c+=a;continue}if(u-=a,u>0)continue;a=Math.min(a,a+u+c);const p=[...i[0]][0].length,m=t.slice(0,l+i.index+p+a);if(Math.min(l,a)%2){const k=m.slice(1,-1);return{type:"em",raw:m,text:k,tokens:this.lexer.inlineTokens(k)}}const w=m.slice(2,-2);return{type:"strong",raw:m,text:w,tokens:this.lexer.inlineTokens(w)}}}}codespan(t){const n=this.rules.inline.code.exec(t);if(n){let r=n[2].replace(/\n/g," ");const i=/[^ ]/.test(r),s=/^ /.test(r)&&/ $/.test(r);return i&&s&&(r=r.substring(1,r.length-1)),r=Ue(r,!0),{type:"codespan",raw:n[0],text:r}}}br(t){const n=this.rules.inline.br.exec(t);if(n)return{type:"br",raw:n[0]}}del(t){const n=this.rules.inline.del.exec(t);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2])}}autolink(t){const n=this.rules.inline.autolink.exec(t);if(n){let r,i;return n[2]==="@"?(r=Ue(n[1]),i="mailto:"+r):(r=Ue(n[1]),i=r),{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}url(t){var r;let n;if(n=this.rules.inline.url.exec(t)){let i,s;if(n[2]==="@")i=Ue(n[0]),s="mailto:"+i;else{let l;do l=n[0],n[0]=((r=this.rules.inline._backpedal.exec(n[0]))==null?void 0:r[0])??"";while(l!==n[0]);i=Ue(n[0]),n[1]==="www."?s="http://"+n[0]:s=n[0]}return{type:"link",raw:n[0],text:i,href:s,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(t){const n=this.rules.inline.text.exec(t);if(n){let r;return this.lexer.state.inRawBlock?r=n[0]:r=Ue(n[0]),{type:"text",raw:n[0],text:r}}}}const ef=/^(?:[ \t]*(?:\n|$))+/,tf=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,nf=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Sn=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,rf=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,eo=/(?:[*+-]|\d{1,9}[.)])/,to=ae(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,eo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),$i=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,sf=/^[^\n]+/,Ci=/(?!\s*\])(?:\\.|[^\[\]\\])+/,lf=ae(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ci).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),of=ae(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,eo).getRegex(),wr="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Si=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,af=ae("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Si).replace("tag",wr).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),no=ae($i).replace("hr",Sn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",wr).getRegex(),cf=ae(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",no).getRegex(),Ei={blockquote:cf,code:tf,def:lf,fences:nf,heading:rf,hr:Sn,html:af,lheading:to,list:of,newline:ef,paragraph:no,table:$n,text:sf},ro=ae("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Sn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",wr).getRegex(),uf={...Ei,table:ro,paragraph:ae($i).replace("hr",Sn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ro).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",wr).getRegex()},ff={...Ei,html:ae(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Si).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:$n,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ae($i).replace("hr",Sn).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",to).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},io=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,hf=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,so=/^( {2,}|\\)\n(?!\s*$)/,df=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,En="\\p{P}\\p{S}",pf=ae(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,En).getRegex(),gf=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,mf=ae(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,En).getRegex(),vf=ae("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,En).getRegex(),bf=ae("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,En).getRegex(),yf=ae(/\\([punct])/,"gu").replace(/punct/g,En).getRegex(),wf=ae(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),xf=ae(Si).replace("(?:-->|$)","-->").getRegex(),kf=ae("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",xf).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),xr=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,_f=ae(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",xr).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),lo=ae(/^!?\[(label)\]\[(ref)\]/).replace("label",xr).replace("ref",Ci).getRegex(),oo=ae(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ci).getRegex(),$f=ae("reflink|nolink(?!\\()","g").replace("reflink",lo).replace("nolink",oo).getRegex(),Ti={_backpedal:$n,anyPunctuation:yf,autolink:wf,blockSkip:gf,br:so,code:hf,del:$n,emStrongLDelim:mf,emStrongRDelimAst:vf,emStrongRDelimUnd:bf,escape:io,link:_f,nolink:oo,punctuation:pf,reflink:lo,reflinkSearch:$f,tag:kf,text:df,url:$n},Cf={...Ti,link:ae(/^!?\[(label)\]\((.*?)\)/).replace("label",xr).getRegex(),reflink:ae(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",xr).getRegex()},Ai={...Ti,escape:ae(io).replace("])","~|])").getRegex(),url:ae(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},Sf={...Ai,br:ae(so).replace("{2,}","*").getRegex(),text:ae(Ai.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},kr={normal:Ei,gfm:uf,pedantic:ff},Tn={normal:Ti,gfm:Ai,breaks:Sf,pedantic:Cf};class Ze{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||jt,this.options.tokenizer=this.options.tokenizer||new yr,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={block:kr.normal,inline:Tn.normal};this.options.pedantic?(n.block=kr.pedantic,n.inline=Tn.pedantic):this.options.gfm&&(n.block=kr.gfm,this.options.breaks?n.inline=Tn.breaks:n.inline=Tn.gfm),this.tokenizer.rules=n}static get rules(){return{block:kr,inline:Tn}}static lex(t,n){return new Ze(n).lex(t)}static lexInline(t,n){return new Ze(n).inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,` +`),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){const r=this.inlineQueue[n];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[],r=!1){this.options.pedantic&&(t=t.replace(/\t/g," ").replace(/^ +$/gm,""));let i,s,l;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(o=>(i=o.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))){if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length),i.raw.length===1&&n.length>0?n[n.length-1].raw+=` +`:n.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length),s=n[n.length-1],s&&(s.type==="paragraph"||s.type==="text")?(s.raw+=` +`+i.raw,s.text+=` +`+i.text,this.inlineQueue[this.inlineQueue.length-1].src=s.text):n.push(i);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length),s=n[n.length-1],s&&(s.type==="paragraph"||s.type==="text")?(s.raw+=` +`+i.raw,s.text+=` +`+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=s.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),n.push(i);continue}if(l=t,this.options.extensions&&this.options.extensions.startBlock){let o=1/0;const a=t.slice(1);let u;this.options.extensions.startBlock.forEach(c=>{u=c.call({lexer:this},a),typeof u=="number"&&u>=0&&(o=Math.min(o,u))}),o<1/0&&o>=0&&(l=t.substring(0,o+1))}if(this.state.top&&(i=this.tokenizer.paragraph(l))){s=n[n.length-1],r&&(s==null?void 0:s.type)==="paragraph"?(s.raw+=` +`+i.raw,s.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):n.push(i),r=l.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length),s=n[n.length-1],s&&s.type==="text"?(s.raw+=` +`+i.raw,s.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):n.push(i);continue}if(t){const o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){let r,i,s,l=t,o,a,u;if(this.tokens.links){const c=Object.keys(this.tokens.links);if(c.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(l))!=null;)c.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.blockSkip.exec(l))!=null;)l=l.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(o=this.tokenizer.rules.inline.anyPunctuation.exec(l))!=null;)l=l.slice(0,o.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(a||(u=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(r=c.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))){if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&r.type==="text"&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length),i=n[n.length-1],i&&r.type==="text"&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(r=this.tokenizer.emStrong(t,l,u)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.codespan(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.br(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.del(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.autolink(t)){t=t.substring(r.raw.length),n.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(t))){t=t.substring(r.raw.length),n.push(r);continue}if(s=t,this.options.extensions&&this.options.extensions.startInline){let c=1/0;const h=t.slice(1);let p;this.options.extensions.startInline.forEach(m=>{p=m.call({lexer:this},h),typeof p=="number"&&p>=0&&(c=Math.min(c,p))}),c<1/0&&c>=0&&(s=t.substring(0,c+1))}if(r=this.tokenizer.inlineText(s)){t=t.substring(r.raw.length),r.raw.slice(-1)!=="_"&&(u=r.raw.slice(-1)),a=!0,i=n[n.length-1],i&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(t){const c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return n}}class _r{options;parser;constructor(t){this.options=t||jt}space(t){return""}code({text:t,lang:n,escaped:r}){var l;const i=(l=(n||"").match(/^\S*/))==null?void 0:l[0],s=t.replace(/\n$/,"")+` +`;return i?'<pre><code class="language-'+Ue(i)+'">'+(r?s:Ue(s,!0))+`</code></pre> +`:"<pre><code>"+(r?s:Ue(s,!0))+`</code></pre> +`}blockquote({tokens:t}){return`<blockquote> +${this.parser.parse(t)}</blockquote> +`}html({text:t}){return t}heading({tokens:t,depth:n}){return`<h${n}>${this.parser.parseInline(t)}</h${n}> +`}hr(t){return`<hr> +`}list(t){const n=t.ordered,r=t.start;let i="";for(let o=0;o<t.items.length;o++){const a=t.items[o];i+=this.listitem(a)}const s=n?"ol":"ul",l=n&&r!==1?' start="'+r+'"':"";return"<"+s+l+`> +`+i+"</"+s+`> +`}listitem(t){let n="";if(t.task){const r=this.checkbox({checked:!!t.checked});t.loose?t.tokens.length>0&&t.tokens[0].type==="paragraph"?(t.tokens[0].text=r+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=r+" "+t.tokens[0].tokens[0].text)):t.tokens.unshift({type:"text",raw:r+" ",text:r+" "}):n+=r+" "}return n+=this.parser.parse(t.tokens,!!t.loose),`<li>${n}</li> +`}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p> +`}table(t){let n="",r="";for(let s=0;s<t.header.length;s++)r+=this.tablecell(t.header[s]);n+=this.tablerow({text:r});let i="";for(let s=0;s<t.rows.length;s++){const l=t.rows[s];r="";for(let o=0;o<l.length;o++)r+=this.tablecell(l[o]);i+=this.tablerow({text:r})}return i&&(i=`<tbody>${i}</tbody>`),`<table> +<thead> +`+n+`</thead> +`+i+`</table> +`}tablerow({text:t}){return`<tr> +${t}</tr> +`}tablecell(t){const n=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+n+`</${r}> +`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${t}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:n,tokens:r}){const i=this.parser.parseInline(r),s=Jl(t);if(s===null)return i;t=s;let l='<a href="'+t+'"';return n&&(l+=' title="'+n+'"'),l+=">"+i+"</a>",l}image({href:t,title:n,text:r}){const i=Jl(t);if(i===null)return r;t=i;let s=`<img src="${t}" alt="${r}"`;return n&&(s+=` title="${n}"`),s+=">",s}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):t.text}}class Ri{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}}class Qe{options;renderer;textRenderer;constructor(t){this.options=t||jt,this.options.renderer=this.options.renderer||new _r,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Ri}static parse(t,n){return new Qe(n).parse(t)}static parseInline(t,n){return new Qe(n).parseInline(t)}parse(t,n=!0){let r="";for(let i=0;i<t.length;i++){const s=t[i];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[s.type]){const o=s,a=this.options.extensions.renderers[o.type].call({parser:this},o);if(a!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(o.type)){r+=a||"";continue}}const l=s;switch(l.type){case"space":{r+=this.renderer.space(l);continue}case"hr":{r+=this.renderer.hr(l);continue}case"heading":{r+=this.renderer.heading(l);continue}case"code":{r+=this.renderer.code(l);continue}case"table":{r+=this.renderer.table(l);continue}case"blockquote":{r+=this.renderer.blockquote(l);continue}case"list":{r+=this.renderer.list(l);continue}case"html":{r+=this.renderer.html(l);continue}case"paragraph":{r+=this.renderer.paragraph(l);continue}case"text":{let o=l,a=this.renderer.text(o);for(;i+1<t.length&&t[i+1].type==="text";)o=t[++i],a+=` +`+this.renderer.text(o);n?r+=this.renderer.paragraph({type:"paragraph",raw:a,text:a,tokens:[{type:"text",raw:a,text:a}]}):r+=a;continue}default:{const o='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return r}parseInline(t,n){n=n||this.renderer;let r="";for(let i=0;i<t.length;i++){const s=t[i];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[s.type]){const o=this.options.extensions.renderers[s.type].call({parser:this},s);if(o!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){r+=o||"";continue}}const l=s;switch(l.type){case"escape":{r+=n.text(l);break}case"html":{r+=n.html(l);break}case"link":{r+=n.link(l);break}case"image":{r+=n.image(l);break}case"strong":{r+=n.strong(l);break}case"em":{r+=n.em(l);break}case"codespan":{r+=n.codespan(l);break}case"br":{r+=n.br(l);break}case"del":{r+=n.del(l);break}case"text":{r+=n.text(l);break}default:{const o='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return r}}class An{options;block;constructor(t){this.options=t||jt}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}provideLexer(){return this.block?Ze.lex:Ze.lexInline}provideParser(){return this.block?Qe.parse:Qe.parseInline}}ji(An,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"]));class ao{defaults=_i();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Qe;Renderer=_r;TextRenderer=Ri;Lexer=Ze;Tokenizer=yr;Hooks=An;constructor(...t){this.use(...t)}walkTokens(t,n){var i,s;let r=[];for(const l of t)switch(r=r.concat(n.call(this,l)),l.type){case"table":{const o=l;for(const a of o.header)r=r.concat(this.walkTokens(a.tokens,n));for(const a of o.rows)for(const u of a)r=r.concat(this.walkTokens(u.tokens,n));break}case"list":{const o=l;r=r.concat(this.walkTokens(o.items,n));break}default:{const o=l;(s=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&s[o.type]?this.defaults.extensions.childTokens[o.type].forEach(a=>{const u=o[a].flat(1/0);r=r.concat(this.walkTokens(u,n))}):o.tokens&&(r=r.concat(this.walkTokens(o.tokens,n)))}}return r}use(...t){const n=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(r=>{const i={...r};if(i.async=this.defaults.async||i.async||!1,r.extensions&&(r.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){const l=n.renderers[s.name];l?n.renderers[s.name]=function(...o){let a=s.renderer.apply(this,o);return a===!1&&(a=l.apply(this,o)),a}:n.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const l=n[s.level];l?l.unshift(s.tokenizer):n[s.level]=[s.tokenizer],s.start&&(s.level==="block"?n.startBlock?n.startBlock.push(s.start):n.startBlock=[s.start]:s.level==="inline"&&(n.startInline?n.startInline.push(s.start):n.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(n.childTokens[s.name]=s.childTokens)}),i.extensions=n),r.renderer){const s=this.defaults.renderer||new _r(this.defaults);for(const l in r.renderer){if(!(l in s))throw new Error(`renderer '${l}' does not exist`);if(["options","parser"].includes(l))continue;const o=l,a=r.renderer[o],u=s[o];s[o]=(...c)=>{let h=a.apply(s,c);return h===!1&&(h=u.apply(s,c)),h||""}}i.renderer=s}if(r.tokenizer){const s=this.defaults.tokenizer||new yr(this.defaults);for(const l in r.tokenizer){if(!(l in s))throw new Error(`tokenizer '${l}' does not exist`);if(["options","rules","lexer"].includes(l))continue;const o=l,a=r.tokenizer[o],u=s[o];s[o]=(...c)=>{let h=a.apply(s,c);return h===!1&&(h=u.apply(s,c)),h}}i.tokenizer=s}if(r.hooks){const s=this.defaults.hooks||new An;for(const l in r.hooks){if(!(l in s))throw new Error(`hook '${l}' does not exist`);if(["options","block"].includes(l))continue;const o=l,a=r.hooks[o],u=s[o];An.passThroughHooks.has(l)?s[o]=c=>{if(this.defaults.async)return Promise.resolve(a.call(s,c)).then(p=>u.call(s,p));const h=a.call(s,c);return u.call(s,h)}:s[o]=(...c)=>{let h=a.apply(s,c);return h===!1&&(h=u.apply(s,c)),h}}i.hooks=s}if(r.walkTokens){const s=this.defaults.walkTokens,l=r.walkTokens;i.walkTokens=function(o){let a=[];return a.push(l.call(this,o)),s&&(a=a.concat(s.call(this,o))),a}}this.defaults={...this.defaults,...i}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,n){return Ze.lex(t,n??this.defaults)}parser(t,n){return Qe.parse(t,n??this.defaults)}parseMarkdown(t){return(r,i)=>{const s={...i},l={...this.defaults,...s},o=this.onError(!!l.silent,!!l.async);if(this.defaults.async===!0&&s.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof r>"u"||r===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof r!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));l.hooks&&(l.hooks.options=l,l.hooks.block=t);const a=l.hooks?l.hooks.provideLexer():t?Ze.lex:Ze.lexInline,u=l.hooks?l.hooks.provideParser():t?Qe.parse:Qe.parseInline;if(l.async)return Promise.resolve(l.hooks?l.hooks.preprocess(r):r).then(c=>a(c,l)).then(c=>l.hooks?l.hooks.processAllTokens(c):c).then(c=>l.walkTokens?Promise.all(this.walkTokens(c,l.walkTokens)).then(()=>c):c).then(c=>u(c,l)).then(c=>l.hooks?l.hooks.postprocess(c):c).catch(o);try{l.hooks&&(r=l.hooks.preprocess(r));let c=a(r,l);l.hooks&&(c=l.hooks.processAllTokens(c)),l.walkTokens&&this.walkTokens(c,l.walkTokens);let h=u(c,l);return l.hooks&&(h=l.hooks.postprocess(h)),h}catch(c){return o(c)}}}onError(t,n){return r=>{if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,t){const i="<p>An error occurred:</p><pre>"+Ue(r.message+"",!0)+"</pre>";return n?Promise.resolve(i):i}if(n)return Promise.reject(r);throw r}}}const zt=new ao;function ge(e,t){return zt.parse(e,t)}ge.options=ge.setOptions=function(e){return zt.setOptions(e),ge.defaults=zt.defaults,Kl(ge.defaults),ge},ge.getDefaults=_i,ge.defaults=jt,ge.use=function(...e){return zt.use(...e),ge.defaults=zt.defaults,Kl(ge.defaults),ge},ge.walkTokens=function(e,t){return zt.walkTokens(e,t)},ge.parseInline=zt.parseInline,ge.Parser=Qe,ge.parser=Qe.parse,ge.Renderer=_r,ge.TextRenderer=Ri,ge.Lexer=Ze,ge.lexer=Ze.lex,ge.Tokenizer=yr,ge.Hooks=An,ge.parse=ge;function Ef(e){if(typeof e=="function"&&(e={highlight:e}),!e||typeof e.highlight!="function")throw new Error("Must provide highlight function");return typeof e.langPrefix!="string"&&(e.langPrefix="language-"),{async:!!e.async,walkTokens(t){if(t.type!=="code")return;const n=co(t.lang);if(e.async)return Promise.resolve(e.highlight(t.text,n,t.lang||"")).then(uo(t));const r=e.highlight(t.text,n,t.lang||"");if(r instanceof Promise)throw new Error("markedHighlight is not set to async but the highlight function is async. Set the async option to true on markedHighlight to await the async highlight function.");uo(t)(r)},useNewRenderer:!0,renderer:{code(t,n,r){typeof t=="object"&&(r=t.escaped,n=t.lang,t=t.text);const i=co(n),s=i?` class="${e.langPrefix}${go(i)}"`:"";return t=t.replace(/\n$/,""),`<pre><code${s}>${r?t:go(t,!0)} +</code></pre>`}}}}function co(e){return(e||"").match(/\S*/)[0]}function uo(e){return t=>{typeof t=="string"&&t!==e.text&&(e.escaped=!0,e.text=t)}}const fo=/[&<>"']/,Tf=new RegExp(fo.source,"g"),ho=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,Af=new RegExp(ho.source,"g"),Rf={"&":"&","<":"<",">":">",'"':""","'":"'"},po=e=>Rf[e];function go(e,t){if(t){if(fo.test(e))return e.replace(Tf,po)}else if(ho.test(e))return e.replace(Af,po);return e}const If=/\$.*?\$/,Lf=/^\$(.*?)\$/,Mf=/^(?:\s{0,3})\$\$((?:[^\n]|\n[^\n])+?)\n{0,1}\$\$/,Of=e=>[{name:"blockMath",level:"block",tokenizer(t){const n=Mf.exec(t);if(n!==null)return{type:"html",raw:n[0],text:e(!0,n[1])}}},{name:"inlineMath",level:"inline",start(t){const n=t.search(If);return n!==-1?n:t.length},tokenizer(t){const n=Lf.exec(t);if(n!==null)return{type:"html",raw:n[0],text:e(!1,n[1])}}}],mo=(e="",t={})=>e.replace(/:(.+?):/g,(n,r)=>t[r]?`<img class="wl-emoji" src="${t[r]}" alt="${r}">`:n),jf=(e,{emojiMap:t,highlighter:n,texRenderer:r})=>{const i=new ao;if(i.setOptions({breaks:!0}),n&&i.use(Ef({highlight:n})),r){const s=Of(r);i.use({extensions:s})}return i.parse(mo(e,t))},Ii=e=>{const{path:t}=e.dataset;return t!=null&&t.length?t:null},zf=e=>e.match(/[\w\d\s,.\u00C0-\u024F\u0400-\u04FF]+/giu),Pf=e=>e.match(/[\u4E00-\u9FD5]/gu),Ff=e=>{var t,n;return(((t=zf(e))==null?void 0:t.reduce((r,i)=>r+(["",",","."].includes(i.trim())?0:i.trim().split(/\s+/u).length),0))??0)+(((n=Pf(e))==null?void 0:n.length)??0)},Df=async()=>{if(!navigator)return"";const{userAgentData:e}=navigator;let t=navigator.userAgent;if(!e||e.platform!=="Windows")return t;const{platformVersion:n}=await e.getHighEntropyValues(["platformVersion"]);return n&&parseInt(n.split(".")[0])>=13&&(t=t.replace("Windows NT 10.0","Windows NT 11.0")),t},vo=({serverURL:e,path:t=window.location.pathname,selector:n=".waline-comment-count",lang:r=navigator.language})=>{const i=new AbortController,s=document.querySelectorAll(n);return s.length&&Hi({serverURL:Fn(e),paths:Array.from(s).map(l=>ss(Ii(l)??t)),lang:r,signal:i.signal}).then(l=>{s.forEach((o,a)=>{o.innerText=l[a].toString()})}).catch(Wl),i.abort.bind(i)},bo=({size:e})=>ne("svg",{class:"wl-close-icon",viewBox:"0 0 1024 1024",width:e,height:e},[ne("path",{d:"M697.173 85.333h-369.92c-144.64 0-241.92 101.547-241.92 252.587v348.587c0 150.613 97.28 252.16 241.92 252.16h369.92c144.64 0 241.494-101.547 241.494-252.16V337.92c0-151.04-96.854-252.587-241.494-252.587z",fill:"currentColor"}),ne("path",{d:"m640.683 587.52-75.947-75.861 75.904-75.862a37.29 37.29 0 0 0 0-52.778 37.205 37.205 0 0 0-52.779 0l-75.946 75.818-75.862-75.946a37.419 37.419 0 0 0-52.821 0 37.419 37.419 0 0 0 0 52.821l75.947 75.947-75.776 75.733a37.29 37.29 0 1 0 52.778 52.821l75.776-75.776 75.947 75.947a37.376 37.376 0 0 0 52.779-52.821z",fill:"#888"})]),Hf=()=>ne("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},ne("path",{d:"m341.013 394.667 27.755 393.45h271.83l27.733-393.45h64.106l-28.01 397.952a64 64 0 0 1-63.83 59.498H368.768a64 64 0 0 1-63.83-59.52l-28.053-397.93h64.128zm139.307 19.818v298.667h-64V414.485h64zm117.013 0v298.667h-64V414.485h64zM181.333 288h640v64h-640v-64zm453.483-106.667v64h-256v-64h256z",fill:"red"})),Uf=()=>ne("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},ne("path",{d:"M563.2 463.3 677 540c1.7 1.2 3.7 1.8 5.8 1.8.7 0 1.4-.1 2-.2 2.7-.5 5.1-2.1 6.6-4.4l25.3-37.8c1.5-2.3 2.1-5.1 1.6-7.8s-2.1-5.1-4.4-6.6l-73.6-49.1 73.6-49.1c2.3-1.5 3.9-3.9 4.4-6.6.5-2.7 0-5.5-1.6-7.8l-25.3-37.8a10.1 10.1 0 0 0-6.6-4.4c-.7-.1-1.3-.2-2-.2-2.1 0-4.1.6-5.8 1.8l-113.8 76.6c-9.2 6.2-14.7 16.4-14.7 27.5.1 11 5.5 21.3 14.7 27.4zM387 348.8h-45.5c-5.7 0-10.4 4.7-10.4 10.4v153.3c0 5.7 4.7 10.4 10.4 10.4H387c5.7 0 10.4-4.7 10.4-10.4V359.2c0-5.7-4.7-10.4-10.4-10.4zm333.8 241.3-41-20a10.3 10.3 0 0 0-8.1-.5c-2.6.9-4.8 2.9-5.9 5.4-30.1 64.9-93.1 109.1-164.4 115.2-5.7.5-9.9 5.5-9.5 11.2l3.9 45.5c.5 5.3 5 9.5 10.3 9.5h.9c94.8-8 178.5-66.5 218.6-152.7 2.4-5 .3-11.2-4.8-13.6zm186-186.1c-11.9-42-30.5-81.4-55.2-117.1-24.1-34.9-53.5-65.6-87.5-91.2-33.9-25.6-71.5-45.5-111.6-59.2-41.2-14-84.1-21.1-127.8-21.1h-1.2c-75.4 0-148.8 21.4-212.5 61.7-63.7 40.3-114.3 97.6-146.5 165.8-32.2 68.1-44.3 143.6-35.1 218.4 9.3 74.8 39.4 145 87.3 203.3.1.2.3.3.4.5l36.2 38.4c1.1 1.2 2.5 2.1 3.9 2.6 73.3 66.7 168.2 103.5 267.5 103.5 73.3 0 145.2-20.3 207.7-58.7 37.3-22.9 70.3-51.5 98.1-85 27.1-32.7 48.7-69.5 64.2-109.1 15.5-39.7 24.4-81.3 26.6-123.8 2.4-43.6-2.5-87-14.5-129zm-60.5 181.1c-8.3 37-22.8 72-43 104-19.7 31.1-44.3 58.6-73.1 81.7-28.8 23.1-61 41-95.7 53.4-35.6 12.7-72.9 19.1-110.9 19.1-82.6 0-161.7-30.6-222.8-86.2l-34.1-35.8c-23.9-29.3-42.4-62.2-55.1-97.7-12.4-34.7-18.8-71-19.2-107.9-.4-36.9 5.4-73.3 17.1-108.2 12-35.8 30-69.2 53.4-99.1 31.7-40.4 71.1-72 117.2-94.1 44.5-21.3 94-32.6 143.4-32.6 49.3 0 97 10.8 141.8 32 34.3 16.3 65.3 38.1 92 64.8 26.1 26 47.5 56 63.6 89.2 16.2 33.2 26.6 68.5 31 105.1 4.6 37.5 2.7 75.3-5.6 112.3z",fill:"currentColor"})),Nf=()=>ne("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},[ne("path",{d:"M784 112H240c-88 0-160 72-160 160v480c0 88 72 160 160 160h544c88 0 160-72 160-160V272c0-88-72-160-160-160zm96 640c0 52.8-43.2 96-96 96H240c-52.8 0-96-43.2-96-96V272c0-52.8 43.2-96 96-96h544c52.8 0 96 43.2 96 96v480z",fill:"currentColor"}),ne("path",{d:"M352 480c52.8 0 96-43.2 96-96s-43.2-96-96-96-96 43.2-96 96 43.2 96 96 96zm0-128c17.6 0 32 14.4 32 32s-14.4 32-32 32-32-14.4-32-32 14.4-32 32-32zm462.4 379.2-3.2-3.2-177.6-177.6c-25.6-25.6-65.6-25.6-91.2 0l-80 80-36.8-36.8c-25.6-25.6-65.6-25.6-91.2 0L200 728c-4.8 6.4-8 14.4-8 24 0 17.6 14.4 32 32 32 9.6 0 16-3.2 22.4-9.6L380.8 640l134.4 134.4c6.4 6.4 14.4 9.6 24 9.6 17.6 0 32-14.4 32-32 0-9.6-4.8-17.6-9.6-24l-52.8-52.8 80-80L769.6 776c6.4 4.8 12.8 8 20.8 8 17.6 0 32-14.4 32-32 0-8-3.2-16-8-20.8z",fill:"currentColor"})]),Vf=({active:e=!1})=>ne("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},[ne("path",{d:`M850.654 323.804c-11.042-25.625-26.862-48.532-46.885-68.225-20.022-19.61-43.258-34.936-69.213-45.73-26.78-11.124-55.124-16.727-84.375-16.727-40.622 0-80.256 11.123-114.698 32.135A214.79 214.79 0 0 0 512 241.819a214.79 214.79 0 0 0-23.483-16.562c-34.442-21.012-74.076-32.135-114.698-32.135-29.25 0-57.595 5.603-84.375 16.727-25.872 10.711-49.19 26.12-69.213 45.73-20.105 19.693-35.843 42.6-46.885 68.225-11.453 26.615-17.303 54.877-17.303 83.963 0 27.439 5.603 56.03 16.727 85.117 9.31 24.307 22.659 49.52 39.715 74.981 27.027 40.293 64.188 82.316 110.33 124.915 76.465 70.615 152.189 119.394 155.402 121.371l19.528 12.525c8.652 5.52 19.776 5.52 28.427 0l19.529-12.525c3.213-2.06 78.854-50.756 155.401-121.371 46.143-42.6 83.304-84.622 110.33-124.915 17.057-25.46 30.487-50.674 39.716-74.981 11.124-29.087 16.727-57.678 16.727-85.117.082-29.086-5.768-57.348-17.221-83.963z${e?"":"M512 761.5S218.665 573.55 218.665 407.767c0-83.963 69.461-152.023 155.154-152.023 60.233 0 112.473 33.618 138.181 82.727 25.708-49.109 77.948-82.727 138.18-82.727 85.694 0 155.155 68.06 155.155 152.023C805.335 573.551 512 761.5 512 761.5z"}`,fill:e?"red":"currentColor"})]),Bf=()=>ne("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},[ne("path",{d:"M710.816 654.301c70.323-96.639 61.084-230.578-23.705-314.843-46.098-46.098-107.183-71.109-172.28-71.109-65.008 0-126.092 25.444-172.28 71.109-45.227 46.098-70.756 107.183-70.756 172.106 0 64.923 25.444 126.007 71.194 172.106 46.099 46.098 107.184 71.109 172.28 71.109 51.414 0 100.648-16.212 142.824-47.404l126.53 126.006c7.058 7.06 16.297 10.979 26.406 10.979 10.105 0 19.343-3.919 26.402-10.979 14.467-14.467 14.467-38.172 0-52.723L710.816 654.301zm-315.107-23.265c-65.88-65.88-65.88-172.54 0-238.42 32.069-32.07 74.245-49.149 119.471-49.149 45.227 0 87.407 17.603 119.472 49.149 65.88 65.879 65.88 172.539 0 238.42-63.612 63.178-175.242 63.178-238.943 0zm0 0",fill:"currentColor"}),ne("path",{d:"M703.319 121.603H321.03c-109.8 0-199.469 89.146-199.469 199.38v382.034c0 109.796 89.236 199.38 199.469 199.38h207.397c20.653 0 37.384-16.645 37.384-37.299 0-20.649-16.731-37.296-37.384-37.296H321.03c-68.582 0-124.352-55.77-124.352-124.267V321.421c0-68.496 55.77-124.267 124.352-124.267h382.289c68.582 0 124.352 55.771 124.352 124.267V524.72c0 20.654 16.736 37.299 37.385 37.299 20.654 0 37.384-16.645 37.384-37.299V320.549c-.085-109.8-89.321-198.946-199.121-198.946zm0 0",fill:"currentColor"})]),Wf=()=>ne("svg",{width:"16",height:"16",ariaHidden:"true"},ne("path",{d:"M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z",fill:"currentColor"})),qf=()=>ne("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},ne("path",{d:"M810.667 213.333a64 64 0 0 1 64 64V704a64 64 0 0 1-64 64H478.336l-146.645 96.107a21.333 21.333 0 0 1-33.024-17.856V768h-85.334a64 64 0 0 1-64-64V277.333a64 64 0 0 1 64-64h597.334zm0 64H213.333V704h149.334v63.296L459.243 704h351.424V277.333zm-271.36 213.334v64h-176.64v-64h176.64zm122.026-128v64H362.667v-64h298.666z",fill:"currentColor"})),Kf=()=>ne("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},ne("path",{d:"M813.039 318.772L480.53 651.278H360.718V531.463L693.227 198.961C697.904 194.284 704.027 192 710.157 192C716.302 192 722.436 194.284 727.114 198.961L813.039 284.88C817.72 289.561 820 295.684 820 301.825C820 307.95 817.72 314.093 813.039 318.772ZM710.172 261.888L420.624 551.431V591.376H460.561L750.109 301.825L710.172 261.888ZM490.517 291.845H240.906V771.09H720.156V521.479C720.156 504.947 733.559 491.529 750.109 491.529C766.653 491.529 780.063 504.947 780.063 521.479V791.059C780.063 813.118 762.18 831 740.125 831H220.937C198.882 831 181 813.118 181 791.059V271.872C181 249.817 198.882 231.935 220.937 231.935H490.517C507.06 231.935 520.47 245.352 520.47 261.888C520.47 278.424 507.06 291.845 490.517 291.845Z",fill:"currentColor"})),Gf=()=>ne("svg",{class:"verified-icon",viewBox:"0 0 1024 1024",width:"14",height:"14"},ne("path",{d:"m894.4 461.56-54.4-63.2c-10.4-12-18.8-34.4-18.8-50.4v-68c0-42.4-34.8-77.2-77.2-77.2h-68c-15.6 0-38.4-8.4-50.4-18.8l-63.2-54.4c-27.6-23.6-72.8-23.6-100.8 0l-62.8 54.8c-12 10-34.8 18.4-50.4 18.4h-69.2c-42.4 0-77.2 34.8-77.2 77.2v68.4c0 15.6-8.4 38-18.4 50l-54 63.6c-23.2 27.6-23.2 72.4 0 100l54 63.6c10 12 18.4 34.4 18.4 50v68.4c0 42.4 34.8 77.2 77.2 77.2h69.2c15.6 0 38.4 8.4 50.4 18.8l63.2 54.4c27.6 23.6 72.8 23.6 100.8 0l63.2-54.4c12-10.4 34.4-18.8 50.4-18.8h68c42.4 0 77.2-34.8 77.2-77.2v-68c0-15.6 8.4-38.4 18.8-50.4l54.4-63.2c23.2-27.6 23.2-73.2-.4-100.8zm-216-25.2-193.2 193.2a30 30 0 0 1-42.4 0l-96.8-96.8a30.16 30.16 0 0 1 0-42.4c11.6-11.6 30.8-11.6 42.4 0l75.6 75.6 172-172c11.6-11.6 30.8-11.6 42.4 0 11.6 11.6 11.6 30.8 0 42.4z",fill:"#27ae60"})),Rn=({size:e=100})=>ne("svg",{width:e,height:e,viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"},ne("circle",{cx:50,cy:50,fill:"none",stroke:"currentColor",strokeWidth:"4",r:"40","stroke-dasharray":"85 30"},ne("animateTransform",{attributeName:"transform",type:"rotate",repeatCount:"indefinite",dur:"1s",values:"0 50 50;360 50 50",keyTimes:"0;1"}))),Zf=()=>ne("svg",{width:24,height:24,fill:"currentcolor",viewBox:"0 0 24 24"},[ne("path",{style:"transform: translateY(0.5px)",d:"M18.968 10.5H15.968V11.484H17.984V12.984H15.968V15H14.468V9H18.968V10.5V10.5ZM8.984 9C9.26533 9 9.49967 9.09367 9.687 9.281C9.87433 9.46833 9.968 9.70267 9.968 9.984V10.5H6.499V13.5H8.468V12H9.968V14.016C9.968 14.2973 9.87433 14.5317 9.687 14.719C9.49967 14.9063 9.26533 15 8.984 15H5.984C5.70267 15 5.46833 14.9063 5.281 14.719C5.09367 14.5317 5 14.2973 5 14.016V9.985C5 9.70367 5.09367 9.46933 5.281 9.282C5.46833 9.09467 5.70267 9.001 5.984 9.001H8.984V9ZM11.468 9H12.968V15H11.468V9V9Z"}),ne("path",{d:"M18.5 3H5.75C3.6875 3 2 4.6875 2 6.75V18C2 20.0625 3.6875 21.75 5.75 21.75H18.5C20.5625 21.75 22.25 20.0625 22.25 18V6.75C22.25 4.6875 20.5625 3 18.5 3ZM20.75 18C20.75 19.2375 19.7375 20.25 18.5 20.25H5.75C4.5125 20.25 3.5 19.2375 3.5 18V6.75C3.5 5.5125 4.5125 4.5 5.75 4.5H18.5C19.7375 4.5 20.75 5.5125 20.75 6.75V18Z"})]),Qf=()=>Qt("WALINE_USER_META",{nick:"",mail:"",link:""}),Jf=()=>Qt("WALINE_COMMENT_BOX_EDITOR",""),Yf="WALINE_LIKE";let yo=null;const wo=()=>yo??(yo=Qt(Yf,[])),Xf="WALINE_REACTION";let xo=null;const eh=()=>xo??(xo=Qt(Xf,{}));var Jt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ko={},Yt={},In={},th=Jt&&Jt.__awaiter||function(e,t,n,r){function i(s){return s instanceof n?s:new n(function(l){l(s)})}return new(n||(n=Promise))(function(s,l){function o(c){try{u(r.next(c))}catch(h){l(h)}}function a(c){try{u(r.throw(c))}catch(h){l(h)}}function u(c){c.done?s(c.value):i(c.value).then(o,a)}u((r=r.apply(e,t||[])).next())})},nh=Jt&&Jt.__generator||function(e,t){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,i,s,l;return l={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function o(u){return function(c){return a([u,c])}}function a(u){if(r)throw new TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(n=0)),n;)try{if(r=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=t.call(e,n)}catch(c){u=[6,c],i=0}finally{r=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}};Object.defineProperty(In,"__esModule",{value:!0}),In.ReCaptchaInstance=void 0;var rh=function(){function e(t,n,r){this.siteKey=t,this.recaptchaID=n,this.recaptcha=r,this.styleContainer=null}return e.prototype.execute=function(t){return th(this,void 0,void 0,function(){var n;return nh(this,function(r){switch(r.label){case 0:return this.recaptcha.enterprise?[4,this.recaptcha.enterprise.execute(this.recaptchaID,{action:t})]:[3,2];case 1:return n=r.sent(),[3,4];case 2:return[4,this.recaptcha.execute(this.recaptchaID,{action:t})];case 3:n=r.sent(),r.label=4;case 4:return[2,n]}})})},e.prototype.getSiteKey=function(){return this.siteKey},e.prototype.hideBadge=function(){this.styleContainer===null&&(this.styleContainer=document.createElement("style"),this.styleContainer.innerHTML=".grecaptcha-badge{visibility:hidden !important;}",document.head.appendChild(this.styleContainer))},e.prototype.showBadge=function(){this.styleContainer!==null&&(document.head.removeChild(this.styleContainer),this.styleContainer=null)},e}();In.ReCaptchaInstance=rh;var Li=Jt&&Jt.__assign||function(){return Li=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},Li.apply(this,arguments)};Object.defineProperty(Yt,"__esModule",{value:!0}),Yt.getInstance=Yt.load=void 0;var ih=In,yt;(function(e){e[e.NOT_LOADED=0]="NOT_LOADED",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED"})(yt||(yt={}));var _o=function(){function e(){}return e.load=function(t,n){if(n===void 0&&(n={}),typeof document>"u")return Promise.reject(new Error("This is a library for the browser!"));if(e.getLoadingState()===yt.LOADED)return e.instance.getSiteKey()===t?Promise.resolve(e.instance):Promise.reject(new Error("reCAPTCHA already loaded with different site key!"));if(e.getLoadingState()===yt.LOADING)return t!==e.instanceSiteKey?Promise.reject(new Error("reCAPTCHA already loaded with different site key!")):new Promise(function(i,s){e.successfulLoadingConsumers.push(function(l){return i(l)}),e.errorLoadingRunnable.push(function(l){return s(l)})});e.instanceSiteKey=t,e.setLoadingState(yt.LOADING);var r=new e;return new Promise(function(i,s){r.loadScript(t,n.useRecaptchaNet||!1,n.useEnterprise||!1,n.renderParameters?n.renderParameters:{},n.customUrl).then(function(){e.setLoadingState(yt.LOADED);var l=r.doExplicitRender(grecaptcha,t,n.explicitRenderParameters?n.explicitRenderParameters:{},n.useEnterprise||!1),o=new ih.ReCaptchaInstance(t,l,grecaptcha);e.successfulLoadingConsumers.forEach(function(a){return a(o)}),e.successfulLoadingConsumers=[],n.autoHideBadge&&o.hideBadge(),e.instance=o,i(o)}).catch(function(l){e.errorLoadingRunnable.forEach(function(o){return o(l)}),e.errorLoadingRunnable=[],s(l)})})},e.getInstance=function(){return e.instance},e.setLoadingState=function(t){e.loadingState=t},e.getLoadingState=function(){return e.loadingState===null?yt.NOT_LOADED:e.loadingState},e.prototype.loadScript=function(t,n,r,i,s){var l=this;n===void 0&&(n=!1),r===void 0&&(r=!1),i===void 0&&(i={}),s===void 0&&(s="");var o=document.createElement("script");o.setAttribute("recaptcha-v3-script",""),o.setAttribute("async",""),o.setAttribute("defer","");var a="https://www.google.com/recaptcha/api.js";n?r?a="https://recaptcha.net/recaptcha/enterprise.js":a="https://recaptcha.net/recaptcha/api.js":r&&(a="https://www.google.com/recaptcha/enterprise.js"),s&&(a=s),i.render&&(i.render=void 0);var u=this.buildQueryString(i);return o.src=a+"?render=explicit"+u,new Promise(function(c,h){o.addEventListener("load",l.waitForScriptToLoad(function(){c(o)},r),!1),o.onerror=function(p){e.setLoadingState(yt.NOT_LOADED),h(p)},document.head.appendChild(o)})},e.prototype.buildQueryString=function(t){var n=Object.keys(t);return n.length<1?"":"&"+Object.keys(t).filter(function(r){return!!t[r]}).map(function(r){return r+"="+t[r]}).join("&")},e.prototype.waitForScriptToLoad=function(t,n){var r=this;return function(){window.grecaptcha===void 0?setTimeout(function(){r.waitForScriptToLoad(t,n)},e.SCRIPT_LOAD_DELAY):n?window.grecaptcha.enterprise.ready(function(){t()}):window.grecaptcha.ready(function(){t()})}},e.prototype.doExplicitRender=function(t,n,r,i){var s=Li({sitekey:n},r);return r.container?i?t.enterprise.render(r.container,s):t.render(r.container,s):i?t.enterprise.render(s):t.render(s)},e.loadingState=null,e.instance=null,e.instanceSiteKey=null,e.successfulLoadingConsumers=[],e.errorLoadingRunnable=[],e.SCRIPT_LOAD_DELAY=25,e}();Yt.load=_o.load,Yt.getInstance=_o.getInstance,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ReCaptchaInstance=e.getInstance=e.load=void 0;var t=Yt;Object.defineProperty(e,"load",{enumerable:!0,get:function(){return t.load}}),Object.defineProperty(e,"getInstance",{enumerable:!0,get:function(){return t.getInstance}});var n=In;Object.defineProperty(e,"ReCaptchaInstance",{enumerable:!0,get:function(){return n.ReCaptchaInstance}})}(ko);const $o={},sh=e=>{const t=$o[e]??($o[e]=ko.load(e,{useRecaptchaNet:!0,autoHideBadge:!0}));return{execute:n=>t.then(r=>r.execute(n))}},lh=e=>({execute:async t=>{const{load:n}=Uu("https://challenges.cloudflare.com/turnstile/v0/api.js",void 0,{async:!1});await n();const r=window==null?void 0:window.turnstile;return new Promise(i=>{r==null||r.ready(()=>{r==null||r.render(".wl-captcha-container",{sitekey:e,action:t,size:"compact",callback:i})})})}}),oh="WALINE_USER";let Co=null;const $r=()=>Co??(Co=Qt(oh,{})),ah={key:0,class:"wl-reaction"},ch=["textContent"],uh={class:"wl-reaction-list"},fh=["onClick"],hh={class:"wl-reaction-img"},dh=["src","alt"],ph=["textContent"],gh=["textContent"];var mh=pn({__name:"ArticleReaction",setup(e,{expose:t}){t();const n=eh(),r=rr("config"),i=q(-1),s=q([]),l=_e(()=>r.value.locale),o=_e(()=>r.value.reaction.length>0),a=_e(()=>{const{reaction:p,path:m}=r.value;return p.map((w,k)=>({icon:w,desc:l.value[`reaction${k}`],active:n.value[m]===k}))});let u;const c=async()=>{if(!o.value)return;const{serverURL:p,lang:m,path:w,reaction:k}=r.value,C=new AbortController;u=C.abort.bind(C);const v=await Sr({serverURL:p,lang:m,paths:[w],type:k.map(($,U)=>`reaction${U}`),signal:C.signal});s.value=k.map(($,U)=>v[0][`reaction${U}`])},h=async p=>{if(i.value===-1){const{serverURL:m,lang:w,path:k}=r.value,C=n.value[k];i.value=p,C!==void 0&&(await zn({serverURL:m,lang:w,path:k,type:`reaction${C}`,action:"desc"}),s.value[C]=Math.max(s.value[C]-1,0)),C!==p&&(await zn({serverURL:m,lang:w,path:k,type:`reaction${p}`}),s.value[p]=(s.value[p]||0)+1),C===p?delete n.value[k]:n.value[k]=p,i.value=-1}};return mn(()=>{Ve(()=>[r.value.serverURL,r.value.path],()=>{c()},{immediate:!0})}),si(()=>u==null?void 0:u()),(p,m)=>a.value.length?(L(),z("div",ah,[D("div",{class:"wl-reaction-title",textContent:X(l.value.reactionTitle)},null,8,ch),D("ul",uh,[(L(!0),z(he,null,Ne(a.value,({active:w,icon:k,desc:C},v)=>(L(),z("li",{key:v,class:ve(["wl-reaction-item",{active:w}]),onClick:$=>h(v)},[D("div",hh,[D("img",{src:k,alt:C},null,8,dh),i.value===v?(L(),at(K(Rn),{key:0,class:"wl-reaction-loading"})):(L(),z("div",{key:1,class:"wl-reaction-votes",textContent:X(s.value[v]||0)},null,8,ph))]),D("div",{class:"wl-reaction-text",textContent:X(C)},null,8,gh)],10,fh))),128))])])):J("v-if",!0)}}),Ln=new Map;function vh(e){var t=Ln.get(e);t&&t.destroy()}function bh(e){var t=Ln.get(e);t&&t.update()}var Mn=null;typeof window>"u"?((Mn=function(e){return e}).destroy=function(e){return e},Mn.update=function(e){return e}):((Mn=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(n){return function(r){if(r&&r.nodeName&&r.nodeName==="TEXTAREA"&&!Ln.has(r)){var i,s=null,l=window.getComputedStyle(r),o=(i=r.value,function(){u({testForHeightReduction:i===""||!r.value.startsWith(i),restoreTextAlign:null}),i=r.value}),a=(function(h){r.removeEventListener("autosize:destroy",a),r.removeEventListener("autosize:update",c),r.removeEventListener("input",o),window.removeEventListener("resize",c),Object.keys(h).forEach(function(p){return r.style[p]=h[p]}),Ln.delete(r)}).bind(r,{height:r.style.height,resize:r.style.resize,textAlign:r.style.textAlign,overflowY:r.style.overflowY,overflowX:r.style.overflowX,wordWrap:r.style.wordWrap});r.addEventListener("autosize:destroy",a),r.addEventListener("autosize:update",c),r.addEventListener("input",o),window.addEventListener("resize",c),r.style.overflowX="hidden",r.style.wordWrap="break-word",Ln.set(r,{destroy:a,update:c}),c()}function u(h){var p,m,w=h.restoreTextAlign,k=w===void 0?null:w,C=h.testForHeightReduction,v=C===void 0||C,$=l.overflowY;if(r.scrollHeight!==0&&(l.resize==="vertical"?r.style.resize="none":l.resize==="both"&&(r.style.resize="horizontal"),v&&(p=function(A){for(var j=[];A&&A.parentNode&&A.parentNode instanceof Element;)A.parentNode.scrollTop&&j.push([A.parentNode,A.parentNode.scrollTop]),A=A.parentNode;return function(){return j.forEach(function(W){var H=W[0],Y=W[1];H.style.scrollBehavior="auto",H.scrollTop=Y,H.style.scrollBehavior=null})}}(r),r.style.height=""),m=l.boxSizing==="content-box"?r.scrollHeight-(parseFloat(l.paddingTop)+parseFloat(l.paddingBottom)):r.scrollHeight+parseFloat(l.borderTopWidth)+parseFloat(l.borderBottomWidth),l.maxHeight!=="none"&&m>parseFloat(l.maxHeight)?(l.overflowY==="hidden"&&(r.style.overflow="scroll"),m=parseFloat(l.maxHeight)):l.overflowY!=="hidden"&&(r.style.overflow="hidden"),r.style.height=m+"px",k&&(r.style.textAlign=k),p&&p(),s!==m&&(r.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),s=m),$!==l.overflow&&!k)){var U=l.textAlign;l.overflow==="hidden"&&(r.style.textAlign=U==="start"?"end":"start"),u({restoreTextAlign:U,testForHeightReduction:!0})}}function c(){u({testForHeightReduction:!0,restoreTextAlign:null})}}(n)}),e}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],vh),e},Mn.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],bh),e});var So=Mn;const yh=["data-index"],wh=["src","title","onClick"];var xh=pn({__name:"ImageWall",props:{items:{default:()=>[]},columnWidth:{default:300},gap:{default:0}},emits:["insert"],setup(e,{expose:t}){const n=e;t();let r=null;const i=q(null),s=q({}),l=q([]),o=()=>{const p=Math.floor((i.value.getBoundingClientRect().width+n.gap)/(n.columnWidth+n.gap));return p>0?p:1},a=p=>new Array(p).fill(null).map(()=>[]),u=async p=>{var m;if(p>=n.items.length)return;await qt();const w=Array.from(((m=i.value)==null?void 0:m.children)??[]).reduce((k,C)=>C.getBoundingClientRect().height<k.getBoundingClientRect().height?C:k);l.value[Number(w.dataset.index)].push(p),await u(p+1)},c=async(p=!1)=>{if(l.value.length===o()&&!p)return;l.value=a(o());const m=window.scrollY;await u(0),window.scrollTo({top:m})},h=p=>{s.value[p.target.src]=!0};return mn(()=>{c(!0),r=new ResizeObserver(()=>{c()}),r.observe(i.value),Ve(()=>[n.items],()=>{s.value={},c(!0)}),Ve(()=>[n.columnWidth,n.gap],()=>{c()})}),Xa(()=>r.unobserve(i.value)),(p,m)=>(L(),z("div",{ref_key:"wall",ref:i,class:"wl-gallery",style:rn({gap:`${p.gap}px`})},[(L(!0),z(he,null,Ne(l.value,(w,k)=>(L(),z("div",{key:k,class:"wl-gallery-column","data-index":k,style:rn({gap:`${p.gap}px`})},[(L(!0),z(he,null,Ne(w,C=>(L(),z(he,{key:C},[s.value[p.items[C].src]?J("v-if",!0):(L(),at(K(Rn),{key:0,size:36,style:{margin:"20px auto"}})),D("img",{class:"wl-gallery-item",src:p.items[C].src,title:p.items[C].title,loading:"lazy",onLoad:h,onClick:v=>p.$emit("insert",``)},null,40,wh)],64))),128))],12,yh))),128))],4))}});const kh={key:0,class:"wl-login-info"},_h={class:"wl-avatar"},$h=["title"],Ch=["title"],Sh=["src"],Eh=["title","textContent"],Th={class:"wl-panel"},Ah=["for","textContent"],Rh=["id","onUpdate:modelValue","name","type"],Ih=["placeholder"],Lh={class:"wl-preview"},Mh=["innerHTML"],Oh={class:"wl-footer"},jh={class:"wl-actions"},zh={href:"https://guides.github.com/features/mastering-markdown/",title:"Markdown Guide","aria-label":"Markdown is supported",class:"wl-action",target:"_blank",rel:"noopener noreferrer"},Ph=["title"],Fh=["title"],Dh=["title","aria-label"],Hh=["title"],Uh={class:"wl-info"},Nh={class:"wl-text-number"},Vh={key:0},Bh=["textContent"],Wh=["textContent"],qh=["disabled"],Kh=["placeholder"],Gh={key:1,class:"wl-loading"},Zh={key:0,class:"wl-tab-wrapper"},Qh=["title","onClick"],Jh=["src","alt"],Yh={key:0,class:"wl-tabs"},Xh=["onClick"],ed=["src","alt","title"],td=["title"];var Eo=pn({__name:"CommentBox",props:{edit:{default:null},rootId:{default:""},replyId:{default:""},replyUser:{default:""}},emits:["log","cancelEdit","cancelReply","submit"],setup(e,{emit:t}){const n=e,r=t,i=rr("config"),s=Jf(),l=Qf(),o=$r(),a=q({}),u=q(null),c=q(null),h=q(null),p=q(null),m=q(null),w=q(null),k=q(null),C=q({tabs:[],map:{}}),v=q(0),$=q(!1),U=q(!1),A=q(!1),j=q(""),W=q(0),H=cn({loading:!0,list:[]}),Y=q(0),Me=q(!1),G=q(""),re=q(!1),me=q(!1),P=_e(()=>i.value.locale),Q=_e(()=>{var O;return!!((O=o.value)!=null&&O.token)}),le=_e(()=>i.value.imageUploader!==!1),xe=O=>{const T=u.value,N=T.selectionStart,de=T.selectionEnd||0,f=T.scrollTop;s.value=T.value.substring(0,N)+O+T.value.substring(de,T.value.length),T.focus(),T.selectionStart=N+O.length,T.selectionEnd=N+O.length,T.scrollTop=f},be=O=>{if(re.value)return;const T=O.key;(O.ctrlKey||O.metaKey)&&T==="Enter"&&je()},ye=O=>{const T=`![${i.value.locale.uploading} ${O.name}]()`;return xe(T),re.value=!0,Promise.resolve().then(()=>i.value.imageUploader(O)).then(N=>{s.value=s.value.replace(T,`\r +`)}).catch(N=>{alert(N.message),s.value=s.value.replace(T,"")}).then(()=>{re.value=!1})},Ee=O=>{var T;if((T=O.dataTransfer)!=null&&T.items){const N=ql(O.dataTransfer.items);N&&le.value&&(ye(N),O.preventDefault())}},dt=O=>{if(O.clipboardData){const T=ql(O.clipboardData.items);T&&le.value&&ye(T)}},wt=()=>{const O=c.value;O.files&&le.value&&ye(O.files[0]).then(()=>{O.value=""})},je=async()=>{var O,T,N,de,f,d;const{serverURL:g,lang:y,login:b,wordLimit:x,requiredMeta:R,recaptchaV3Key:E,turnstileKey:S}=i.value,_=await Df(),M={comment:G.value,nick:l.value.nick,mail:l.value.mail,link:l.value.link,url:i.value.path,ua:_};if(!n.edit)if((O=o.value)!=null&&O.token)M.nick=o.value.display_name,M.mail=o.value.email,M.link=o.value.url;else{if(b==="force")return;if(R.includes("nick")&&!M.nick)return(T=a.value.nick)==null||T.focus(),alert(P.value.nickError);if(R.includes("mail")&&!M.mail||M.mail&&!ea(M.mail))return(N=a.value.mail)==null||N.focus(),alert(P.value.mailError);M.nick||(M.nick=P.value.anonymous)}if(!M.comment){(de=u.value)==null||de.focus();return}if(!Me.value)return alert(P.value.wordHint.replace("$0",x[0].toString()).replace("$1",x[1].toString()).replace("$2",W.value.toString()));M.comment=mo(M.comment,C.value.map),n.replyId&&n.rootId&&(M.pid=n.replyId,M.rid=n.rootId,M.at=n.replyUser),re.value=!0;try{E&&(M.recaptchaV3=await sh(E).execute("social")),S&&(M.turnstile=await lh(S).execute("social"));const I={serverURL:g,lang:y,token:(f=o.value)==null?void 0:f.token,comment:M},F=await(n.edit?en({objectId:n.edit.objectId,...I}):Fi(I));if(re.value=!1,F.errmsg)return alert(F.errmsg);r("submit",F.data),s.value="",j.value="",await qt(),n.replyId&&r("cancelReply"),(d=n.edit)!=null&&d.objectId&&r("cancelEdit")}catch(I){re.value=!1,alert(I.message)}},On=O=>{O.preventDefault();const{lang:T,serverURL:N}=i.value;Ui({serverURL:N,lang:T}).then(de=>{o.value=de,(de.remember?localStorage:sessionStorage).setItem("WALINE_USER",JSON.stringify(de)),r("log")})},Cr=()=>{o.value={},localStorage.setItem("WALINE_USER","null"),sessionStorage.setItem("WALINE_USER","null"),r("log")},jn=O=>{O.preventDefault();const{lang:T,serverURL:N}=i.value,de=800,f=800,d=(window.innerWidth-de)/2,g=(window.innerHeight-f)/2,y=new URLSearchParams({lng:T,token:o.value.token}),b=window.open(`${N}/ui/profile?${y.toString()}`,"_blank",`width=${de},height=${f},left=${d},top=${g},scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no`);b==null||b.postMessage({type:"TOKEN",data:o.value.token},"*")},xt=O=>{var T,N,de,f;!((T=h.value)!=null&&T.contains(O.target))&&!((N=p.value)!=null&&N.contains(O.target))&&($.value=!1),!((de=m.value)!=null&&de.contains(O.target))&&!((f=w.value)!=null&&f.contains(O.target))&&(U.value=!1)},kt=async O=>{var T;const{scrollTop:N,clientHeight:de,scrollHeight:f}=O.target,d=(de+N)/f,g=i.value.search,y=((T=k.value)==null?void 0:T.value)??"";d<.9||H.loading||me.value||(H.loading=!0,(g.more&&H.list.length?await g.more(y,H.list.length):await g.search(y)).length?H.list=[...H.list,...g.more&&H.list.length?await g.more(y,H.list.length):await g.search(y)]:me.value=!0,H.loading=!1,setTimeout(()=>{O.target.scrollTop=N},50))},Pt=Tu(O=>{H.list=[],me.value=!1,kt(O)},300);return Ve([i,W],([O,T])=>{const{wordLimit:N}=O;N?T<N[0]&&N[0]!==0?(Y.value=N[0],Me.value=!1):T>N[1]?(Y.value=N[1],Me.value=!1):(Y.value=N[1],Me.value=!0):(Y.value=0,Me.value=!0)},{immediate:!0}),mr("click",xt),mr("message",({data:O})=>{!O||O.type!=="profile"||(o.value={...o.value,...O.data},[localStorage,sessionStorage].filter(T=>T.getItem("WALINE_USER")).forEach(T=>T.setItem("WALINE_USER",JSON.stringify(o))))}),Ve(U,async O=>{var T;if(!O)return;const N=i.value.search;k.value&&(k.value.value=""),H.loading=!0,H.list=await(((T=N.default)==null?void 0:T.call(N))??N.search("")),H.loading=!1}),mn(()=>{var O;(O=n.edit)!=null&&O.objectId&&(s.value=n.edit.orig),Ve(()=>s.value,T=>{const{highlighter:N,texRenderer:de}=i.value;G.value=T,j.value=jf(T,{emojiMap:C.value.map,highlighter:N,texRenderer:de}),W.value=Ff(T),T?So(u.value):So.destroy(u.value)},{immediate:!0}),Ve(()=>i.value.emoji,T=>qu(T).then(N=>{C.value=N}),{immediate:!0})}),(O,T)=>{var N,de;return L(),z("div",{key:K(o).token,class:"wl-comment"},[K(i).login!=="disable"&&Q.value&&!((N=O.edit)!=null&&N.objectId)?(L(),z("div",kh,[D("div",_h,[D("button",{type:"submit",class:"wl-logout-btn",title:P.value.logout,onClick:Cr},[oe(K(bo),{size:14})],8,$h),D("a",{href:"#",class:"wl-login-nick","aria-label":"Profile",title:P.value.profile,onClick:jn},[D("img",{src:K(o).avatar,alt:"avatar"},null,8,Sh)],8,Ch)]),D("a",{href:"#",class:"wl-login-nick","aria-label":"Profile",title:P.value.profile,onClick:jn,textContent:X(K(o).display_name)},null,8,Eh)])):J("v-if",!0),D("div",Th,[K(i).login!=="force"&&K(i).meta.length&&!Q.value?(L(),z("div",{key:0,class:ve(["wl-header",`item${K(i).meta.length}`])},[(L(!0),z(he,null,Ne(K(i).meta,f=>(L(),z("div",{key:f,class:"wl-header-item"},[D("label",{for:`wl-${f}`,textContent:X(P.value[f]+(K(i).requiredMeta.includes(f)||!K(i).requiredMeta.length?"":`(${P.value.optional})`))},null,8,Ah),tr(D("input",{id:`wl-${f}`,ref_for:!0,ref:d=>{d&&(a.value[f]=d)},"onUpdate:modelValue":d=>K(l)[f]=d,class:ve(["wl-input",`wl-${f}`]),name:f,type:f==="mail"?"email":"text"},null,10,Rh),[[vu,K(l)[f]]])]))),128))],2)):J("v-if",!0),tr(D("textarea",{id:"wl-edit",ref_key:"editorRef",ref:u,"onUpdate:modelValue":T[0]||(T[0]=f=>ke(s)?s.value=f:null),class:"wl-editor",placeholder:O.replyUser?`@${O.replyUser}`:P.value.placeholder,onKeydown:be,onDrop:Ee,onPaste:dt},null,40,Ih),[[wi,K(s)]]),tr(D("div",Lh,[T[7]||(T[7]=D("hr",null,null,-1)),D("h4",null,X(P.value.preview)+":",1),D("div",{class:"wl-content",innerHTML:j.value},null,8,Mh)],512),[[Sl,A.value]]),D("div",Oh,[D("div",jh,[D("a",zh,[oe(K(Wf))]),tr(D("button",{ref_key:"emojiButtonRef",ref:h,type:"button",class:ve(["wl-action",{active:$.value}]),title:P.value.emoji,onClick:T[1]||(T[1]=f=>$.value=!$.value)},[oe(K(Uf))],10,Ph),[[Sl,C.value.tabs.length]]),K(i).search?(L(),z("button",{key:0,ref_key:"gifButtonRef",ref:m,type:"button",class:ve(["wl-action",{active:U.value}]),title:P.value.gif,onClick:T[2]||(T[2]=f=>U.value=!U.value)},[oe(K(Zf))],10,Fh)):J("v-if",!0),D("input",{id:"wl-image-upload",ref_key:"imageUploadRef",ref:c,class:"upload","aria-hidden":"true",type:"file",accept:".png,.jpg,.jpeg,.webp,.bmp,.gif",onChange:wt},null,544),le.value?(L(),z("label",{key:1,for:"wl-image-upload",class:"wl-action",title:P.value.uploadImage,"aria-label":P.value.uploadImage},[oe(K(Nf))],8,Dh)):J("v-if",!0),D("button",{type:"button",class:ve(["wl-action",{active:A.value}]),title:P.value.preview,onClick:T[3]||(T[3]=f=>A.value=!A.value)},[oe(K(Bf))],10,Hh)]),D("div",Uh,[T[9]||(T[9]=D("div",{class:"wl-captcha-container"},null,-1)),D("div",Nh,[ct(X(W.value)+" ",1),K(i).wordLimit?(L(),z("span",Vh,[T[8]||(T[8]=ct(" / ")),D("span",{class:ve({illegal:!Me.value}),textContent:X(Y.value)},null,10,Bh)])):J("v-if",!0),ct(" "+X(P.value.word),1)]),K(i).login!=="disable"&&!Q.value?(L(),z("button",{key:0,type:"button",class:"wl-btn",onClick:On,textContent:X(P.value.login)},null,8,Wh)):J("v-if",!0),K(i).login!=="force"||Q.value?(L(),z("button",{key:1,type:"submit",class:"primary wl-btn",title:"Cmd|Ctrl + Enter",disabled:re.value,onClick:je},[re.value?(L(),at(K(Rn),{key:0,size:16})):(L(),z(he,{key:1},[ct(X(P.value.submit),1)],64))],8,qh)):J("v-if",!0)]),D("div",{ref_key:"gifPopupRef",ref:w,class:ve(["wl-gif-popup",{display:U.value}])},[D("input",{ref_key:"gifSearchInputRef",ref:k,type:"text",placeholder:P.value.gifSearchPlaceholder,onInput:T[4]||(T[4]=(...f)=>K(Pt)&&K(Pt)(...f))},null,40,Kh),H.list.length?(L(),at(xh,{key:0,items:H.list,"column-width":200,gap:6,onInsert:T[5]||(T[5]=f=>xe(f)),onScroll:kt},null,8,["items"])):J("v-if",!0),H.loading?(L(),z("div",Gh,[oe(K(Rn),{size:30})])):J("v-if",!0)],2),D("div",{ref_key:"emojiPopupRef",ref:p,class:ve(["wl-emoji-popup",{display:$.value}])},[(L(!0),z(he,null,Ne(C.value.tabs,(f,d)=>(L(),z(he,{key:f.name},[d===v.value?(L(),z("div",Zh,[(L(!0),z(he,null,Ne(f.items,g=>(L(),z("button",{key:g,type:"button",title:g,onClick:y=>xe(`:${g}:`)},[$.value?(L(),z("img",{key:0,class:"wl-emoji",src:C.value.map[g],alt:g,loading:"lazy",referrerPolicy:"no-referrer"},null,8,Jh)):J("v-if",!0)],8,Qh))),128))])):J("v-if",!0)],64))),128)),C.value.tabs.length>1?(L(),z("div",Yh,[(L(!0),z(he,null,Ne(C.value.tabs,(f,d)=>(L(),z("button",{key:f.name,type:"button",class:ve(["wl-tab",{active:v.value===d}]),onClick:g=>v.value=d},[D("img",{class:"wl-emoji",src:f.icon,alt:f.name,title:f.name,loading:"lazy",referrerPolicy:"no-referrer"},null,8,ed)],10,Xh))),128))])):J("v-if",!0)],2)])]),O.replyId||(de=O.edit)!=null&&de.objectId?(L(),z("button",{key:1,type:"button",class:"wl-close",title:P.value.cancelReply,onClick:T[6]||(T[6]=f=>O.replyId?r("cancelReply"):r("cancelEdit"))},[oe(K(bo),{size:24})],8,td)):J("v-if",!0)])}}});const nd=["id"],rd={class:"wl-user","aria-hidden":"true"},id=["src"],sd={class:"wl-card"},ld={class:"wl-head"},od=["href"],ad={key:1,class:"wl-nick"},cd=["textContent"],ud=["textContent"],fd=["textContent"],hd=["textContent"],dd=["textContent"],pd={class:"wl-comment-actions"},gd=["title"],md=["title"],vd={class:"wl-meta","aria-hidden":"true"},bd=["data-value","textContent"],yd={key:0,class:"wl-content"},wd={key:0},xd=["href"],kd=["innerHTML"],_d={key:1,class:"wl-admin-actions"},$d={class:"wl-comment-status"},Cd=["disabled","onClick","textContent"],Sd={key:3,class:"wl-quote"};var Ed=pn({__name:"CommentCard",props:{comment:{},edit:{default:null},rootId:{},reply:{default:null}},emits:["log","submit","delete","edit","like","status","sticky","reply"],setup(e,{emit:t}){const n=e,r=t,i=["approved","waiting","spam"],s=rr("config"),l=wo(),o=Hu(),a=$r(),u=_e(()=>s.value.locale),c=_e(()=>{const{link:v}=n.comment;return v?os(v)?v:`https://${v}`:""}),h=_e(()=>l.value.includes(n.comment.objectId)),p=_e(()=>Yo(new Date(n.comment.time),o.value,u.value)),m=_e(()=>a.value.type==="administrator"),w=_e(()=>n.comment.user_id&&a.value.objectId===n.comment.user_id),k=_e(()=>{var v;return n.comment.objectId===((v=n.reply)==null?void 0:v.objectId)}),C=_e(()=>{var v;return n.comment.objectId===((v=n.edit)==null?void 0:v.objectId)});return(v,$)=>{var U;const A=tc("CommentCard",!0);return L(),z("div",{id:v.comment.objectId,class:"wl-card-item"},[D("div",rd,[v.comment.avatar?(L(),z("img",{key:0,class:"wl-user-avatar",src:v.comment.avatar,alt:""},null,8,id)):J("v-if",!0),v.comment.type?(L(),at(K(Gf),{key:1})):J("v-if",!0)]),D("div",sd,[D("div",ld,[c.value?(L(),z("a",{key:0,class:"wl-nick",href:c.value,target:"_blank",rel:"nofollow noopener noreferrer"},X(v.comment.nick),9,od)):(L(),z("span",ad,X(v.comment.nick),1)),v.comment.type==="administrator"?(L(),z("span",{key:2,class:"wl-badge",textContent:X(u.value.admin)},null,8,cd)):J("v-if",!0),v.comment.label?(L(),z("span",{key:3,class:"wl-badge",textContent:X(v.comment.label)},null,8,ud)):J("v-if",!0),v.comment.sticky?(L(),z("span",{key:4,class:"wl-badge",textContent:X(u.value.sticky)},null,8,fd)):J("v-if",!0),typeof v.comment.level=="number"?(L(),z("span",{key:5,class:ve(`wl-badge level${v.comment.level}`),textContent:X(u.value[`level${v.comment.level}`]||`Level ${v.comment.level}`)},null,10,hd)):J("v-if",!0),D("span",{class:"wl-time",textContent:X(p.value)},null,8,dd),D("div",pd,[m.value||w.value?(L(),z(he,{key:0},[D("button",{type:"button",class:"wl-edit",onClick:$[0]||($[0]=j=>r("edit",v.comment))},[oe(K(Kf))]),D("button",{type:"button",class:"wl-delete",onClick:$[1]||($[1]=j=>r("delete",v.comment))},[oe(K(Hf))])],64)):J("v-if",!0),D("button",{type:"button",class:"wl-like",title:h.value?u.value.cancelLike:u.value.like,onClick:$[2]||($[2]=j=>r("like",v.comment))},[oe(K(Vf),{active:h.value},null,8,["active"]),ct(" "+X("like"in v.comment?v.comment.like:""),1)],8,gd),D("button",{type:"button",class:ve(["wl-reply",{active:k.value}]),title:k.value?u.value.cancelReply:u.value.reply,onClick:$[3]||($[3]=j=>r("reply",k.value?null:v.comment))},[oe(K(qf))],10,md)])]),D("div",vd,[(L(),z(he,null,Ne(["addr","browser","os"],j=>(L(),z(he,null,[v.comment[j]?(L(),z("span",{key:j,class:ve(`wl-${j}`),"data-value":v.comment[j],textContent:X(v.comment[j])},null,10,bd)):J("v-if",!0)],64))),64))]),C.value?J("v-if",!0):(L(),z("div",yd,[v.comment.reply_user?(L(),z("p",wd,[D("a",{href:"#"+v.comment.pid},"@"+X(v.comment.reply_user.nick),9,xd),$[17]||($[17]=D("span",null,": ",-1))])):J("v-if",!0),D("div",{innerHTML:v.comment.comment},null,8,kd)])),m.value&&!C.value?(L(),z("div",_d,[D("span",$d,[(L(),z(he,null,Ne(i,j=>D("button",{key:j,type:"submit",class:ve(`wl-btn wl-${j}`),disabled:v.comment.status===j,onClick:W=>r("status",{status:j,comment:v.comment}),textContent:X(u.value[j])},null,10,Cd)),64))]),m.value&&!("rid"in v.comment)?(L(),z("button",{key:0,type:"submit",class:"wl-btn wl-sticky",onClick:$[4]||($[4]=j=>r("sticky",v.comment))},X(v.comment.sticky?u.value.unsticky:u.value.sticky),1)):J("v-if",!0)])):J("v-if",!0),k.value||C.value?(L(),z("div",{key:2,class:ve({"wl-reply-wrapper":k.value,"wl-edit-wrapper":C.value})},[oe(Eo,{edit:v.edit,"reply-id":(U=v.reply)==null?void 0:U.objectId,"reply-user":v.comment.nick,"root-id":v.rootId,onLog:$[5]||($[5]=j=>r("log")),onCancelReply:$[6]||($[6]=j=>r("reply",null)),onCancelEdit:$[7]||($[7]=j=>r("edit",null)),onSubmit:$[8]||($[8]=j=>r("submit",j))},null,8,["edit","reply-id","reply-user","root-id"])],2)):J("v-if",!0),"children"in v.comment?(L(),z("div",Sd,[(L(!0),z(he,null,Ne(v.comment.children,j=>(L(),at(A,{key:j.objectId,comment:j,reply:v.reply,edit:v.edit,"root-id":v.rootId,onLog:$[9]||($[9]=W=>r("log")),onDelete:$[10]||($[10]=W=>r("delete",W)),onEdit:$[11]||($[11]=W=>r("edit",W)),onLike:$[12]||($[12]=W=>r("like",W)),onReply:$[13]||($[13]=W=>r("reply",W)),onStatus:$[14]||($[14]=W=>r("status",W)),onSticky:$[15]||($[15]=W=>r("sticky",W)),onSubmit:$[16]||($[16]=W=>r("submit",W))},null,8,["comment","reply","edit","root-id"]))),128))])):J("v-if",!0)])],8,nd)}}});const To="3.3.2",Td={"data-waline":""},Ad={class:"wl-meta-head"},Rd={class:"wl-count"},Id=["textContent"],Ld={class:"wl-sort"},Md=["onClick"],Od={class:"wl-cards"},jd={key:1,class:"wl-operation"},zd=["textContent"],Pd={key:2,class:"wl-loading"},Fd=["textContent"],Dd={key:4,class:"wl-operation"},Hd=["textContent"],Ud={key:5,class:"wl-power"};var Nd=pn({__name:"WalineComment",props:["serverURL","path","meta","requiredMeta","dark","commentSorting","lang","locale","pageSize","wordLimit","emoji","login","highlighter","texRenderer","imageUploader","search","copyright","recaptchaV3Key","turnstileKey","reaction"],setup(e){const t=e,n={latest:"insertedAt_desc",oldest:"insertedAt_asc",hottest:"like_desc"},r=Object.keys(n),i=$r(),s=wo(),l=q("loading"),o=q(0),a=q(1),u=q(0),c=_e(()=>Zo(t)),h=q(c.value.commentSorting),p=q([]),m=q(null),w=q(null),k=_e(()=>Qo(c.value.dark)),C=_e(()=>c.value.locale);Vu(k,{id:"waline-darkmode"});let v;const $=P=>{var Q;const{serverURL:le,path:xe,pageSize:be}=c.value,ye=new AbortController;l.value="loading",v==null||v(),Pi({serverURL:le,lang:c.value.lang,path:xe,pageSize:be,sortBy:n[h.value],page:P,signal:ye.signal,token:(Q=i.value)==null?void 0:Q.token}).then(Ee=>{l.value="success",o.value=Ee.count,p.value.push(...Ee.data),a.value=P,u.value=Ee.totalPages}).catch(Ee=>{Ee.name!=="AbortError"&&(console.error(Ee.message),l.value="error")}),v=ye.abort.bind(ye)},U=()=>$(a.value+1),A=()=>{o.value=0,p.value=[],$(1)},j=P=>{h.value!==P&&(h.value=P,A())},W=P=>{m.value=P},H=P=>{w.value=P},Y=P=>{if(w.value)w.value.comment=P.comment,w.value.orig=P.orig;else if("rid"in P){const Q=p.value.find(({objectId:le})=>le===P.rid);if(!Q)return;Array.isArray(Q.children)||(Q.children=[]),Q.children.push(P)}else p.value.unshift(P),o.value+=1},Me=async({comment:P,status:Q})=>{var le;if(P.status===Q)return;const{serverURL:xe,lang:be}=c.value;await en({serverURL:xe,lang:be,token:(le=i.value)==null?void 0:le.token,objectId:P.objectId,comment:{status:Q}}),P.status=Q},G=async P=>{var Q;if("rid"in P)return;const{serverURL:le,lang:xe}=c.value;await en({serverURL:le,lang:xe,token:(Q=i.value)==null?void 0:Q.token,objectId:P.objectId,comment:{sticky:P.sticky?0:1}}),P.sticky=!P.sticky},re=async({objectId:P})=>{var Q;if(!confirm("Are you sure you want to delete this comment?"))return;const{serverURL:le,lang:xe}=c.value;await Di({serverURL:le,lang:xe,token:(Q=i.value)==null?void 0:Q.token,objectId:P}),p.value.some((be,ye)=>be.objectId===P?(p.value=p.value.filter((Ee,dt)=>dt!==ye),!0):be.children.some((Ee,dt)=>Ee.objectId===P?(p.value[ye].children=be.children.filter((wt,je)=>je!==dt),!0):!1))},me=async P=>{var Q;const{serverURL:le,lang:xe}=c.value,{objectId:be}=P,ye=s.value.includes(be);await en({serverURL:le,lang:xe,objectId:be,token:(Q=i.value)==null?void 0:Q.token,comment:{like:!ye}}),ye?s.value=s.value.filter(Ee=>Ee!==be):(s.value=[...s.value,be],s.value.length>50&&(s.value=s.value.slice(-50))),P.like=(P.like||0)+(ye?-1:1)};return fc("config",c),mn(()=>{Ve(()=>[t.serverURL,t.path],()=>A(),{immediate:!0})}),si(()=>v==null?void 0:v()),(P,Q)=>(L(),z("div",Td,[oe(mh),!m.value&&!w.value?(L(),at(Eo,{key:0,onLog:A,onSubmit:Y})):J("v-if",!0),D("div",Ad,[D("div",Rd,[o.value?(L(),z("span",{key:0,class:"wl-num",textContent:X(o.value)},null,8,Id)):J("v-if",!0),ct(" "+X(C.value.comment),1)]),D("ul",Ld,[(L(!0),z(he,null,Ne(K(r),le=>(L(),z("li",{key:le,class:ve([le===h.value?"active":""]),onClick:xe=>j(le)},X(C.value[le]),11,Md))),128))])]),D("div",Od,[(L(!0),z(he,null,Ne(p.value,le=>(L(),at(Ed,{key:le.objectId,"root-id":le.objectId,comment:le,reply:m.value,edit:w.value,onLog:A,onReply:W,onEdit:H,onSubmit:Y,onStatus:Me,onDelete:re,onSticky:G,onLike:me},null,8,["root-id","comment","reply","edit"]))),128))]),l.value==="error"?(L(),z("div",jd,[D("button",{type:"button",class:"wl-btn",onClick:A,textContent:X(C.value.refresh)},null,8,zd)])):l.value==="loading"?(L(),z("div",Pd,[oe(K(Rn),{size:30})])):p.value.length?a.value<u.value?(L(),z("div",Dd,[D("button",{type:"button",class:"wl-btn",onClick:U,textContent:X(C.value.more)},null,8,Hd)])):J("v-if",!0):(L(),z("div",{key:3,class:"wl-empty",textContent:X(C.value.sofa)},null,8,Fd)),c.value.copyright?(L(),z("div",Ud,[Q[0]||(Q[0]=ct(" Powered by ")),Q[1]||(Q[1]=D("a",{href:"https://github.com/walinejs/waline",target:"_blank",rel:"noopener noreferrer"}," Waline ",-1)),ct(" v"+X(K(To)),1)])):J("v-if",!0)]))}});const Ao=(e,t)=>{t.forEach((n,r)=>{const i=e[r].time;typeof i=="number"&&(n.innerText=i.toString())})},Ro=({serverURL:e,path:t=window.location.pathname,selector:n=".waline-pageview-count",update:r=!0,lang:i=navigator.language})=>{const s=new AbortController,l=Array.from(document.querySelectorAll(n)),o=u=>{const c=Ii(u);return c!==null&&t!==c},a=u=>Ni({serverURL:Fn(e),paths:u.map(c=>Ii(c)??t),lang:i,signal:s.signal}).then(c=>Ao(c,u)).catch(Wl);if(r){const u=l.filter(h=>!o(h)),c=l.filter(o);Vi({serverURL:Fn(e),path:t,lang:i}).then(h=>Ao(h,u)),c.length&&a(c)}else a(l);return s.abort.bind(s)},Vd=({el:e="#waline",path:t=window.location.pathname,comment:n=!1,pageview:r=!1,...i})=>{const s=e?ki(e):null;if(e&&!s)throw new Error("Option 'el' do not match any domElement!");if(!i.serverURL)throw new Error("Option 'serverURL' is missing!");const l=cn({...i}),o=cn({comment:n,pageview:r,path:t}),a=()=>{o.comment&&vo({serverURL:l.serverURL,path:o.path,...Ft(o.comment)?{selector:o.comment}:{}})},u=()=>{o.pageview&&Ro({serverURL:l.serverURL,path:o.path,...Ft(o.pageview)?{selector:o.pageview}:{}})},c=s?xu(()=>ne(Nd,{path:o.path,...l})):null;c&&c.mount(s);const h=ul(a),p=ul(u);return{el:s,update:({comment:m,pageview:w,path:k=window.location.pathname,...C}={})=>{Object.entries(C).forEach(([v,$])=>{l[v]=$}),o.path=k,m!==void 0&&(o.comment=m),w!==void 0&&(o.pageview=w)},destroy:()=>{c==null||c.unmount(),h(),p()}}},Bd=({el:e,serverURL:t,count:n,lang:r=navigator.language})=>{var i;const s=$r(),l=ki(e),o=new AbortController;return Bi({serverURL:t,count:n,lang:r,signal:o.signal,token:(i=s.value)==null?void 0:i.token}).then(a=>l&&a.length?(l.innerHTML=`<ul class="wl-recent-list">${a.map(u=>`<li class="wl-recent-item"><a href="${u.url}">${u.nick}</a>:${u.comment}</li>`).join("")}</ul>`,{comments:a,destroy:()=>{o.abort(),l.innerHTML=""}}):{comments:a,destroy:()=>o.abort()})},Wd=({el:e,serverURL:t,count:n,locale:r,lang:i=navigator.language,mode:s="list"})=>{const l=ki(e),o=new AbortController;return Wi({serverURL:t,pageSize:n,lang:i,signal:o.signal}).then(a=>!l||!a.length?{users:a,destroy:()=>o.abort()}:(r={...rs(i),...typeof r=="object"?r:{}},l.innerHTML=`<ul class="wl-user-${s}">${a.map((u,c)=>[`<li class="wl-user-item" aria-label="${u.nick}">`,u.link&&`<a href="${u.link}" target="_blank">`,'<div class="wl-user-avatar">',`<img src="${u.avatar}" alt="${u.nick}">`,`<span class="wl-user-badge">${c+1}</span>`,"</div>",'<div class="wl-user-meta">','<div class="wl-user-name">',u.nick,u.level&&`<span class="wl-badge">${r?r[`level${u.level}`]:`Level ${u.level}`}</span>`,u.label&&`<span class="wl-badge">${u.label}</span>`,"</div>",u.link&&u.link,"</div>",u.link&&"</a>","</li>"].filter(h=>h).join("")).join("")}</ul>`,{users:a,destroy:()=>{o.abort(),l.innerHTML=""}}))};export{Bd as RecentComments,Wd as UserList,Fi as addComment,vo as commentCount,Pn as defaultLocales,Di as deleteComment,Hi as fetchCommentCount,Sr as getArticleCounter,Pi as getComment,Ni as getPageview,Bi as getRecentComment,Wi as getUserList,Vd as init,Ui as login,Ro as pageviewCount,zn as updateArticleCounter,en as updateComment,Vi as updatePageview,To as version};
\ No newline at end of file diff --git a/themes/yinyang/theme.toml b/themes/yinyang/theme.toml new file mode 100644 index 00000000..8d32030c --- /dev/null +++ b/themes/yinyang/theme.toml @@ -0,0 +1,25 @@ +name = "Yinyang" +license = "MIT" +licenselink = "https://github.com/joway/hugo-theme-yinyang/blob/master/LICENSE" +description = "Yinyang theme for Hugo." +homepage = "https://github.com/joway/hugo-theme-yinyang" +tags = [ + "blog", + "minimal", + "minimalist", + "responsive", + "simple", + "clean", + "personal" +] +features = ["blog"] +min_version = "0.50" + +[params] +staticPrefix = "" +# extraCSSFiles = ["css/foo.css", "css/bar.css"] +extraCSSFiles = [] + +[author] + name = "Joway Wang" + homepage = "https://joway.io" |
