jekyll-theme-unity 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +56 -0
  4. data/_config.yml +135 -0
  5. data/_includes/assets/Google-Analytics.html +12 -0
  6. data/_includes/assets/anchor-headings.html +164 -0
  7. data/_includes/assets/btt.html +5 -0
  8. data/_includes/assets/code-header.html +6 -0
  9. data/_includes/assets/noscript.html +3 -0
  10. data/_includes/assets/site-banner.html +9 -0
  11. data/_includes/assets/site-top-bar.html +10 -0
  12. data/_includes/assets/toc.html +174 -0
  13. data/_includes/assets/youtube-embed.html +6 -0
  14. data/_includes/footer.html +39 -0
  15. data/_includes/head.html +21 -0
  16. data/_includes/header.html +49 -0
  17. data/_layouts/default.html +23 -0
  18. data/_layouts/page.html +5 -0
  19. data/_layouts/post.html +52 -0
  20. data/_layouts/post_home.html +105 -0
  21. data/_sass/Material/baseline.scss +18 -0
  22. data/_sass/Material/colors.scss +130 -0
  23. data/_sass/Material/elevation.scss +62 -0
  24. data/_sass/Material/motion.scss +180 -0
  25. data/_sass/Material/palette.scss +118 -0
  26. data/_sass/Material/shape.scss +109 -0
  27. data/_sass/Material/state.scss +35 -0
  28. data/_sass/Material/typography.scss +505 -0
  29. data/_sass/custom/layout.scss +1 -0
  30. data/_sass/custom/styles_variables.scss +70 -0
  31. data/_sass/custom/variables.scss +1 -0
  32. data/_sass/jekyll-theme-unity.scss +1 -0
  33. data/_sass/layout/base.scss +525 -0
  34. data/_sass/layout/highlight-dark.scss +357 -0
  35. data/_sass/layout/highlight-light.scss +202 -0
  36. data/_sass/layout/layout.scss +581 -0
  37. data/_sass/layout/styles_variables.scss +156 -0
  38. data/_sass/variables.scss +170 -0
  39. data/assets/css/style.scss +10 -0
  40. data/assets/image/404.svg +34 -0
  41. data/assets/image/Unity.png +0 -0
  42. data/assets/image/bg-banner.png +0 -0
  43. data/assets/image/favicons/android-chrome-192x192.png +0 -0
  44. data/assets/image/favicons/android-chrome-512x512.png +0 -0
  45. data/assets/image/favicons/apple-touch-icon-120x120.png +0 -0
  46. data/assets/image/favicons/apple-touch-icon-152x152.png +0 -0
  47. data/assets/image/favicons/apple-touch-icon-180x180.png +0 -0
  48. data/assets/image/favicons/apple-touch-icon-60x60.png +0 -0
  49. data/assets/image/favicons/apple-touch-icon-76x76.png +0 -0
  50. data/assets/image/favicons/apple-touch-icon.png +0 -0
  51. data/assets/image/favicons/browserconfig.xml +12 -0
  52. data/assets/image/favicons/favicon-16x16.png +0 -0
  53. data/assets/image/favicons/favicon-32x32.png +0 -0
  54. data/assets/image/favicons/favicon.ico +0 -0
  55. data/assets/image/favicons/mstile-150x150.png +0 -0
  56. data/assets/image/favicons/mstile-310x150.png +0 -0
  57. data/assets/image/favicons/mstile-310x310.png +0 -0
  58. data/assets/image/favicons/mstile-70x70.png +0 -0
  59. data/assets/image/favicons/safari-pinned-tab.svg +22 -0
  60. data/assets/image/favicons/site.webmanifest +17 -0
  61. data/assets/image/mobile.png +0 -0
  62. data/assets/js/main.js +228 -0
  63. data/bin/run +196 -0
  64. metadata +195 -0
@@ -0,0 +1,170 @@
1
+ $content-width: 800px !default;
2
+ $mobile-width: 600px !default;
3
+ $pc-width: 800px !default;
4
+ $medium-width: 442px !default;
5
+ $defualt-width: 1000px !default;
6
+
7
+ @mixin link($color, $hover-color, $hover-bgcolor) {
8
+ color: $color;
9
+ text-decoration: none;
10
+ @include duration-550;
11
+ @include easing-standard;
12
+
13
+ &:hover {
14
+ color: $hover-color;
15
+ background: $hover-bgcolor;
16
+ }
17
+ }
18
+ @mixin btn {
19
+ @include duration-550;
20
+ @include easing-standard;
21
+ display: flex;
22
+ flex-direction: column;
23
+ justify-content: center;
24
+ align-items: center;
25
+ gap: 8px;
26
+ padding: 12px 50px;
27
+ left: 40px;
28
+ top: 64px;
29
+ border-radius: 100px;
30
+ }
31
+
32
+ @mixin prompt($bg-color, $color, $icon, $icon-color, $icon-font-family) {
33
+ @include shape-large;
34
+ background-color: $bg-color;
35
+ color: $color;
36
+ padding: 0.8rem 1.2rem;
37
+ &::before {
38
+ content: $icon;
39
+ font-family: $icon-font-family;
40
+ color: $color;
41
+ font-size: 34px;
42
+ line-height: 1;
43
+ padding-right: 10px;
44
+ padding-bottom: 13px;
45
+ font-variation-settings:
46
+ 'FILL' 1,
47
+ 'wght' 400,
48
+ 'GRAD' 0,
49
+ 'opsz' 48
50
+ }
51
+ }
52
+
53
+ @mixin horizontal-scroll {
54
+ &::-webkit-scrollbar {
55
+ height: 16px;
56
+ }
57
+
58
+ &::-webkit-scrollbar-track {
59
+ background-color: transparent;
60
+ }
61
+
62
+ &::-webkit-scrollbar-thumb {
63
+ background: rgba(128, 134, 139, 0.2);
64
+ background-clip: padding-box;
65
+ border: 4px solid transparent;
66
+ border-radius: 10px;
67
+ box-sizing: border-box;
68
+
69
+ &:hover {
70
+ background: rgba(128, 134, 139, 0.4);
71
+ box-sizing: border-box;
72
+ background-clip: padding-box;
73
+ }
74
+ }
75
+ }
76
+
77
+ @mixin elevation1($bg-color) {
78
+ background: linear-gradient(0deg, rgba(208, 188, 255, 0.05), rgba(208, 188, 255, 0.05)), $bg-color;
79
+ }
80
+ @mixin elevation2($bg-color) {
81
+ background: linear-gradient(0deg, rgba(208, 188, 255, 0.08), rgba(208, 188, 255, 0.08)), $bg-color;
82
+ }
83
+ @mixin elevation3($bg-color) {
84
+ background: linear-gradient(0deg, rgba(208, 188, 255, 0.11), rgba(208, 188, 255, 0.11)), $bg-color;
85
+ }
86
+ @mixin elevation4($bg-color) {
87
+ background: linear-gradient(0deg, rgba(208, 188, 255, 0.12), rgba(208, 188, 255, 0.12)), $bg-color;
88
+ }
89
+ @mixin elevation5($bg-color) {
90
+ background: linear-gradient(0deg, rgba(208, 188, 255, 0.14), rgba(208, 188, 255, 0.14)), $bg-color;
91
+ }
92
+
93
+ @keyframes Drawer-Entrance {
94
+ from {
95
+ transform: translateX(-1000rem);
96
+ opacity: 0;
97
+ }
98
+ to {
99
+ transform: translateX(0rem);
100
+ opacity: 1;
101
+ }
102
+ }
103
+ @keyframes Drawer-exit {
104
+ from {
105
+ transform: translateX(0rem);
106
+ opacity: 1;
107
+ }
108
+ to {
109
+ transform: translateX(-1000rem);
110
+ opacity: 0;
111
+
112
+ }
113
+ }
114
+ @keyframes opacitychange {
115
+ from {
116
+ opacity: 0;
117
+ }
118
+ to {
119
+ opacity: 1;
120
+ }
121
+ }
122
+ @keyframes opacityrestore {
123
+ from {
124
+ opacity: 1;
125
+ }
126
+ to {
127
+ opacity: 0;
128
+ }
129
+ }
130
+ @keyframes activeanimation {
131
+ from {
132
+ opacity: 0;
133
+ transform: scaleX(0.32);
134
+ }
135
+ to {
136
+ opacity: 1;
137
+ transform: scaleX(1);
138
+ }
139
+ }
140
+ @keyframes wrapper-animation {
141
+ from {
142
+ opacity: 0;
143
+ transform: translateY(3rem);
144
+ }
145
+ to {
146
+ opacity: 1;
147
+ transform: translateY(0rem);
148
+ }
149
+ }
150
+
151
+ @keyframes TOC-Entrance {
152
+ from {
153
+ transform: translateY(-1rem);
154
+ opacity: 0;
155
+ }
156
+ to {
157
+ transform: translateY(0rem);
158
+ opacity: 1;
159
+ }
160
+ }
161
+
162
+ @keyframes TOC-Exit {
163
+ from {
164
+ transform: translateY(0rem);
165
+ opacity: 1;
166
+ }
167
+ to {
168
+ transform: translateY(-1rem);
169
+ }
170
+ }
@@ -0,0 +1,10 @@
1
+ ---
2
+ ---
3
+
4
+ @import "jekyll-theme-unity";
5
+
6
+ .site-banner {
7
+ @include shape-extra-large;
8
+ background-image: url("{{site.baseurl}}/assets/image/bg-banner.png");
9
+
10
+ }
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.1" id="404" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5
+ width="100%" viewBox="0 0 512 512">
6
+ <path
7
+ d="M 183.7 34.8 C 199.9 25.2 216.7 19.7 235.5 19.8 C 251.1 19.8 265.9 21.5 280.5 27.2 C 287.7 29.9 296 29.6 303.4 32 C 317.4 36.5 331.2 41.9 345 47.2 C 346.4 47.7 348.2 49.7 348.2 51 C 348.1 57 352.4 60.2 355.8 63.9 C 378.4 88.9 387.1 118.3 384.4 151.8 C 382.1 179.1 370 202.3 356.4 225.2 C 349.5 236.7 344.3 249.2 337.7 260.9 C 327.8 278.2 317 295.1 307.2 312.5 C 301.5 322.6 295.9 333 292.4 344 C 288 357.7 289.6 371.8 294.5 385.5 C 298.6 396.9 295.5 403.3 283.4 404 C 270.3 404.8 262.6 397.2 256.2 387.3 C 253.2 382.7 252.1 378.1 252.6 372.7 C 255.7 341.4 263.6 311.6 278.3 283.6 C 282.2 276.4 282.8 267.4 284.7 259.1 C 290.5 233.1 301.9 209.9 319 189.5 C 323.6 184 328.6 178.9 333 173.3 C 334.4 171.6 335.4 168.9 335.2 166.7 C 333.8 143.4 330.4 120.4 322 98.4 C 320.7 95.2 318.4 92 315.8 89.7 C 304.7 79.7 291.2 73.7 277.1 69.6 C 264.2 65.7 250.9 63.4 237.7 60.8 C 235.3 60.4 232 61.3 230 62.8 C 211 76.9 202.1 96.9 196.9 119.2 C 192 140.5 192.4 162.1 190.9 183.7 C 190.3 192.6 190 201.7 185.5 209.9 C 182.4 215.6 177.6 219.2 171.5 221.2 C 167.6 222.5 164 222.7 160.8 218.7 C 159.5 217 156.2 216 153.8 216.1 C 148.6 216.4 145.7 214.2 143.1 209.8 C 131.1 189.2 126.9 166.9 129.9 143.5 C 132.6 122.1 136.6 100.8 144.7 80.6 C 152.5 61.2 165.6 46.1 183.7 34.8 M 326.9 246.9 C 330.3 242.1 333.7 237.2 337.1 232.4 C 336.6 232.1 336.2 231.8 335.7 231.5 C 329.7 234.9 328.2 241.1 325.8 247.1 C 326 247.2 326.1 247.2 326.9 246.9 M 301.1 65.2 C 301.2 65.2 301.3 65.3 301.4 65.3 C 301.4 65.1 301.3 64.9 300.9 64.1 C 288.4 56.3 275.6 49.5 260 52.2 C 273.7 56.5 287.3 60.8 301.1 65.2 M 160.1 166 C 160.9 170 161.5 174.1 162.8 177.8 C 163.2 178.9 166.1 179.8 167.4 179.4 C 168.5 179 169.6 176.7 169.7 175.2 C 170 167.9 169.6 160.6 170 153.4 C 171.5 127.1 180.2 103.4 195.4 82 C 199.2 76.7 202.4 71 205.9 65.5 C 205.5 65.2 205.2 64.9 204.9 64.7 C 202.2 67.1 198.9 69.1 196.9 71.9 C 190.5 81.2 183.8 90.4 178.5 100.3 C 167.7 120.5 162.4 142.5 160.1 166 M 151.9 129.1 C 151.7 131 151.4 132.9 151.1 135.5 C 155.6 122 159.8 109.4 164 96.8 C 156.9 106.2 154.9 117.5 151.9 129.1 M 371.2 128.6 C 370.1 122.7 369 116.9 367.9 111 C 367.4 111.1 366.9 111.2 366.3 111.4 C 365.5 117.6 368.2 123 371.2 128.6 M 350.4 180.8 C 350.5 179.2 350.6 177.5 350.7 175.9 C 350 175.8 349.3 175.7 348.6 175.6 C 348 179.6 347.4 183.6 346.9 187.6 C 347.5 187.7 348.2 187.8 348.9 187.9 C 349.3 185.8 349.8 183.6 350.4 180.8 M 346.3 141.9 C 346.5 145.2 346.8 148.6 347 151.9 C 347.8 151.7 348.5 151.6 349.3 151.4 C 348.4 148.2 347.5 144.9 346.3 141.9 z"/>
8
+ <path
9
+ d="M 247.7 426.7 C 252.1 423.5 256.4 420.7 260.2 417.4 C 267.8 410.8 280.9 409.7 290.4 416.7 C 300.7 424.2 308.5 433.6 308.1 447.9 C 307.8 460.9 301.8 470 291 476.3 C 287.7 478.3 285.4 480.3 284.1 484.2 C 282.6 488.9 280.4 493.5 274.2 494 C 266.4 494.6 258.9 494 255.4 486.1 C 252.6 479.9 248.3 475.3 243.5 471 C 234.6 463 234.1 435.2 247.7 426.7 M 264.1 446.1 C 267.9 449.8 268.9 444.3 271.7 443.4 C 269.6 441.8 267.3 440.3 265.2 440.6 C 262.6 441 262.1 443.3 264.1 446.1 M 277 423.6 C 276.3 423.9 275.6 424.1 274 424.7 C 277 426.5 279.2 427.8 281.5 429.1 C 281.7 428.8 282 428.4 282.3 428 C 280.7 426.6 279.1 425.2 277 423.6 M 287.5 434 C 287.5 434 287.4 433.9 287.4 433.9 C 287.4 433.9 287.4 434 287.5 434 z"/>
10
+ <path opacity="0.000000"
11
+ d="M 160.1 165.6 C 162.4 142.5 167.7 120.5 178.5 100.3 C 183.8 90.4 190.5 81.2 196.9 71.9 C 198.9 69.1 202.2 67.1 204.9 64.7 C 205.2 64.9 205.5 65.2 205.9 65.5 C 202.4 71 199.2 76.7 195.4 82 C 180.2 103.4 171.5 127.1 170 153.4 C 169.6 160.6 170 167.9 169.7 175.2 C 169.6 176.7 168.5 179 167.4 179.4 C 166.1 179.8 163.2 178.9 162.8 177.8 C 161.5 174.1 160.9 170 160.1 165.6 z"/>
12
+ <path opacity="0.000000"
13
+ d="M 300.9 65.1 C 287.3 60.8 273.7 56.5 260 52.2 C 275.6 49.5 288.4 56.3 301 64.5 C 301.1 64.9 300.9 65.1 300.9 65.1 z"/>
14
+ <path opacity="0.000000"
15
+ d="M 151.9 128.8 C 154.9 117.5 156.9 106.2 164 96.8 C 159.8 109.4 155.6 122 151.1 135.5 C 151.4 132.9 151.7 131 151.9 128.8 z"/>
16
+ <path opacity="0.000000"
17
+ d="M 325.9 246.9 C 328.2 241.1 329.7 234.9 335.7 231.5 C 336.2 231.8 336.6 232.1 337.1 232.4 C 333.7 237.2 330.3 242.1 326.5 247 C 326.1 247.1 325.9 246.9 325.9 246.9 z"/>
18
+ <path opacity="0.000000"
19
+ d="M 371.1 128.5 C 368.2 123 365.5 117.6 366.3 111.4 C 366.9 111.2 367.4 111.1 367.9 111 C 369 116.9 370.1 122.7 371.1 128.5 z"/>
20
+ <path opacity="0.000000"
21
+ d="M 350.3 181.1 C 349.8 183.6 349.3 185.8 348.9 187.9 C 348.2 187.8 347.5 187.7 346.9 187.6 C 347.4 183.6 348 179.6 348.6 175.6 C 349.3 175.7 350 175.8 350.7 175.9 C 350.6 177.5 350.5 179.2 350.3 181.1 z"/>
22
+ <path opacity="0.000000"
23
+ d="M 346.4 141.8 C 347.5 144.9 348.4 148.2 349.3 151.4 C 348.5 151.6 347.8 151.7 347 151.9 C 346.8 148.6 346.5 145.2 346.4 141.8 z"/>
24
+ <path opacity="0.000000"
25
+ d="M 301.2 64.8 C 301.3 64.9 301.4 65.1 301.4 65.3 C 301.3 65.3 301.2 65.2 301 65.1 C 300.9 65.1 301.1 64.9 301.2 64.8 z"/>
26
+ <path opacity="0.000000"
27
+ d="M 326.2 247.2 C 326.1 247.2 326 247.2 325.9 247 C 325.9 246.9 326.1 247.1 326.2 247.2 z"/>
28
+ <path opacity="0.000000"
29
+ d="M 264 445.8 C 262.1 443.3 262.6 441 265.2 440.6 C 267.3 440.3 269.6 441.8 271.7 443.4 C 268.9 444.3 267.9 449.8 264 445.8 z"/>
30
+ <path opacity="0.000000"
31
+ d="M 277.2 423.7 C 279.1 425.2 280.7 426.6 282.3 428 C 282 428.4 281.7 428.8 281.5 429.1 C 279.2 427.8 277 426.5 274 424.7 C 275.6 424.1 276.3 423.9 277.2 423.7 z"/>
32
+ <path opacity="0.000000"
33
+ d="M 287.5 434 C 287.4 434 287.4 433.9 287.4 433.9 C 287.4 433.9 287.5 434 287.5 434 z"/>
34
+ </svg>
Binary file
Binary file
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <browserconfig>
3
+ <msapplication>
4
+ <tile>
5
+ <square70x70logo src="/mstile-70x70.png"/>
6
+ <square150x150logo src="/mstile-150x150.png"/>
7
+ <square310x310logo src="/mstile-310x310.png"/>
8
+ <wide310x150logo src="/mstile-310x150.png"/>
9
+ <TileColor>#adc6ff</TileColor>
10
+ </tile>
11
+ </msapplication>
12
+ </browserconfig>
Binary file
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="1378.000000pt" height="1378.000000pt" viewBox="0 0 1378.000000 1378.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+ <metadata>
8
+ Created by potrace 1.14, written by Peter Selinger 2001-2017
9
+ </metadata>
10
+ <g transform="translate(0.000000,1378.000000) scale(0.100000,-0.100000)"
11
+ fill="#000000" stroke="none">
12
+ <path d="M6713 13228 c3 -7 25 -62 50 -123 25 -60 57 -155 71 -210 59 -228 56
13
+ -95 56 -2615 0 -1561 -3 -2343 -11 -2400 -25 -202 -76 -377 -163 -555 -261
14
+ -533 -771 -889 -1368 -954 -128 -14 -3713 -15 -3846 -1 -414 44 -780 222
15
+ -1068 521 -186 194 -307 396 -395 659 l-38 115 -1 -2498 c0 -1691 3 -2529 11
16
+ -2595 79 -731 507 -1378 1154 -1744 214 -122 445 -203 734 -261 106 -21 108
17
+ -21 2554 -24 l2447 -3 0 2085 c0 1410 3 2117 11 2183 31 282 125 546 278 774
18
+ 259 388 637 640 1107 740 l109 23 1920 3 c1711 2 1932 1 2030 -13 646 -94
19
+ 1166 -519 1386 -1134 l38 -106 -2 3065 c-3 3386 3 3093 -63 3355 -203 809
20
+ -841 1452 -1642 1655 -279 70 -31 64 -2836 67 -2038 3 -2527 1 -2523 -9z"/>
21
+ </g>
22
+ </svg>
@@ -0,0 +1,17 @@
1
+ {
2
+ "icons": [
3
+ {
4
+ "src": "/android-chrome-192x192.png",
5
+ "sizes": "192x192",
6
+ "type": "image/png"
7
+ },
8
+ {
9
+ "src": "/android-chrome-512x512.png",
10
+ "sizes": "512x512",
11
+ "type": "image/png"
12
+ }
13
+ ],
14
+ "theme_color": "#adc6ff",
15
+ "background_color": "#adc6ff",
16
+ "display": "standalone"
17
+ }
Binary file
data/assets/js/main.js ADDED
@@ -0,0 +1,228 @@
1
+ const nav_side_bar = document.querySelector("#nav-side-bar");
2
+ const nav_scrim = document.querySelector("#nav-scrim");
3
+ const active_page = window.location.pathname;
4
+ const nav_links = document.querySelectorAll(".nav-links");
5
+ const wrapper_body = document.querySelectorAll("#wrapper");
6
+ const toc = document.querySelectorAll("#toc");
7
+ const BackToTop = document.querySelector("#back-to-top");
8
+ const body = document.querySelector("body");
9
+ const modeToggle = document.querySelector(".nav-theme-toggle");
10
+ const modeToggle_text = document.querySelector("#mode_text");
11
+ const modeToggle_icon = document.querySelector("#nav-theme-toggle-icon");
12
+ const codeBlocks = document.querySelectorAll("td.rouge-code ");
13
+ const copyCodeButtons = document.querySelectorAll("#code-copy-btn");
14
+ let codetable = document.querySelectorAll("table.rouge-table");
15
+ let value = window.innerWidth;
16
+ let darkMode = localStorage.getItem("darkMode");
17
+
18
+ document.querySelector("#top-bar-checkbtn").onclick = function () {
19
+ new Animation("site-animations-show", "site-animations-hide");
20
+ nav_scrim.style.display = "block";
21
+ disableScroll();
22
+ };
23
+ document.querySelector("#nav-side-bar-closebtn").onclick = function () {
24
+ new Animation("site-animations-hide", "site-animations-show");
25
+ nav_scrim.style.display = "none";
26
+ enableScroll();
27
+ setTimeout(() => {
28
+ nav_side_bar.classList.remove("site-animations-hide");
29
+ }, 60);
30
+ };
31
+ nav_scrim.onclick = function () {
32
+ new Animation("site-animations-hide", "site-animations-show");
33
+ nav_scrim.style.display = "none";
34
+ enableScroll();
35
+ setTimeout(() => {
36
+ nav_side_bar.classList.remove("site-animations-hide");
37
+ }, 60);
38
+ };
39
+ class Animation {
40
+ constructor(add, remove) {
41
+ nav_side_bar.classList.remove(remove);
42
+ nav_side_bar.classList.add(add);
43
+ }
44
+ }
45
+
46
+ function disableScroll() {
47
+ // Get the current page scroll position
48
+ scrollTop = window.pageYOffset || document.documentElement.scrollTop;
49
+ (scrollLeft = window.pageXOffset || document.documentElement.scrollLeft),
50
+ // if any scroll is attempted,
51
+ // set this to the previous value
52
+ (window.onscroll = function () {
53
+ window.scrollTo(scrollLeft, scrollTop);
54
+ });
55
+ }
56
+
57
+ function enableScroll() {
58
+ window.onscroll = function () {};
59
+ }
60
+
61
+ nav_links.forEach((link) => {
62
+ link.classList.remove("nav-links-active");
63
+ if (link.href.includes(`${active_page}`)) {
64
+ link.classList.add("nav-links-active");
65
+ } else {
66
+ if (window.location.pathname.includes("/Post/")) {
67
+ if (link.href.includes("Post")) {
68
+ link.classList.add("nav-links-active");
69
+ }
70
+ }
71
+ }
72
+ });
73
+ function checkvalue() {
74
+ if (value == 90) {
75
+ nav_scrim.style.display = "none";
76
+ enableScroll();
77
+ }
78
+ }
79
+ window.addEventListener("DOMContentLoaded", () => {
80
+ const observer = new IntersectionObserver((entries) => {
81
+ if (document.querySelector("#toc")) {
82
+ entries.forEach((entry) => {
83
+ const id = entry.target.getAttribute("id");
84
+ if (entry.isIntersecting === true) {
85
+ document.querySelector(`main li a[href="#${id}"]`).parentElement.classList.add("active");
86
+ document
87
+ .querySelector(`main li a[href="#${id}"]`)
88
+ .parentElement.classList.remove("decative");
89
+ } else {
90
+ document
91
+ .querySelector(`main li a[href="#${id}"]`)
92
+ .parentElement.classList.remove("active");
93
+ document
94
+ .querySelector(`main li a[href="#${id}"]`)
95
+ .parentElement.classList.add("decative");
96
+ }
97
+ });
98
+ }
99
+ });
100
+
101
+ // Track all sections that have an `id` applied
102
+ document.querySelectorAll("h1[id], h2[id], h3[id]").forEach((h1, h2, h3) => {
103
+ observer.observe(h1, h2, h3);
104
+ });
105
+ });
106
+
107
+ window.addEventListener("scroll", scrollFunction);
108
+
109
+ function scrollFunction() {
110
+ if (document.querySelector("#back-to-top")) {
111
+ if (window.pageYOffset > 200) {
112
+ // Show BackToTop
113
+ if (!BackToTop.classList.contains("BTT-Entrance")) {
114
+ BackToTop.classList.remove("BTT-Exit");
115
+ BackToTop.classList.add("BTT-Entrance");
116
+ BackToTop.style.display = "flex";
117
+ }
118
+ } else {
119
+ // Hide BackToTop
120
+ if (BackToTop.classList.contains("BTT-Entrance")) {
121
+ BackToTop.classList.remove("BTT-Entrance");
122
+ BackToTop.classList.add("BTT-Exit");
123
+ setTimeout(function () {
124
+ BackToTop.style.display = "none";
125
+ }, 250);
126
+ }
127
+ }
128
+ }
129
+ }
130
+ if (document.querySelector("#back-to-top")) {
131
+ BackToTop.addEventListener("click", smoothScrollBackToTop);
132
+ }
133
+
134
+ function smoothScrollBackToTop() {
135
+ window.scrollTo(0, 0);
136
+ }
137
+
138
+ function easeInOutCubic(t, b, c, d) {
139
+ t /= d / 2;
140
+ if (t < 1) return (c / 2) * t * t * t + b;
141
+ t -= 2;
142
+ return (c / 2) * (t * t * t + 2) + b;
143
+ }
144
+
145
+ const enableDarkMode = () => {
146
+ // 1. Add the class to the body
147
+ document.body.classList.add("dark");
148
+ // 2. Update darkMode in localStorage
149
+ localStorage.setItem("darkMode", "enabled");
150
+ modeToggle_icon.textContent = "light_mode";
151
+ modeToggle_text.textContent = "Switch to light Mode";
152
+ modeToggle.classList.add("active");
153
+ };
154
+
155
+ const disableDarkMode = () => {
156
+ // 1. Remove the class from the body
157
+ document.body.classList.remove("dark");
158
+ modeToggle.classList.remove("active");
159
+ modeToggle_icon.textContent = "dark_mode";
160
+ modeToggle_text.textContent = "Switch to dark Mode";
161
+ // 2. Update darkMode in localStorage
162
+ localStorage.setItem("darkMode", null);
163
+ };
164
+
165
+ // If the user already visited and enabled darkMode
166
+ // start things off with it on
167
+ if (darkMode === "enabled") {
168
+ enableDarkMode();
169
+ }
170
+
171
+ modeToggle.addEventListener("click", () => {
172
+ // get their darkMode setting
173
+ darkMode = localStorage.getItem("darkMode");
174
+
175
+ // if it not current enabled, enable it
176
+ if (darkMode !== "enabled") {
177
+ enableDarkMode();
178
+ // if it has been enabled, turn it off
179
+ } else {
180
+ disableDarkMode();
181
+ }
182
+ });
183
+
184
+ // copyCodeButtons.forEach((copyCodeButton, index) => {
185
+ // const code = codeBlocks[index].innerText;
186
+
187
+ // copyCodeButton.addEventListener("click", () => {
188
+ // // Copy the code to the user's clipboard
189
+ // window.navigator.clipboard.writeText(code);
190
+
191
+ // // Update the button text visually
192
+ // const { innerText: originalText } = copyCodeButton;
193
+ // copyCodeButton.innerText = "content_paste";
194
+
195
+ // // After 2 seconds, reset the button to its initial UI
196
+ // setTimeout(() => {
197
+ // copyCodeButton.innerText = originalText;
198
+ // }, 2000);
199
+ // });
200
+ // });
201
+
202
+ codeBlocks.forEach(function (codeBlock) {
203
+ var copyButton = document.createElement('div');
204
+ copyButton.className = 'code-header';
205
+ copyButton.ariaLabel = 'Copy code to clipboard';
206
+ copyButton.id = 'code-header';
207
+
208
+ var copyButton_link = document.createElement('span');
209
+ copyButton_link.className = 'material-symbols-rounded';
210
+ copyButton_link.innerText = 'content_copy';
211
+
212
+ copyButton.append(copyButton_link);
213
+
214
+ codeBlock.append(copyButton);
215
+
216
+ copyButton.addEventListener('click', function () {
217
+ let wordToRemove = "$";
218
+ var code = codeBlock.querySelector('pre').innerText.replace(wordToRemove, '');
219
+ window.navigator.clipboard.writeText(code);
220
+
221
+ copyButton_link.innerText = 'content_paste';
222
+ var fourSeconds = 4000;
223
+
224
+ setTimeout(function () {
225
+ copyButton_link.innerText = 'content_copy';
226
+ }, fourSeconds);
227
+ });
228
+ });