jekyll-theme-unity 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ });