{post.title}
-By {post.author}
--
- Published on - - {formatter.format(new Date(post.date))} - -
- +{post.title}
+By {post.author}
++
+ Published on + + {formatter.format(new Date(post.date))} + +
+ + {/if} {/each}diff --git a/website/package.json b/website/package.json index acb9f507..b8095342 100644 --- a/website/package.json +++ b/website/package.json @@ -50,6 +50,7 @@ "highlight.js": "11.9.0", "lucide-svelte": "^0.323.0", "mdsvex-relative-images": "^1.0.3", + "rehype-auto-ads": "^1.2.0", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", "remark-container": "^0.1.2", diff --git a/website/pnpm-lock.yaml b/website/pnpm-lock.yaml index d2e9f5fe..7fa6b46c 100644 --- a/website/pnpm-lock.yaml +++ b/website/pnpm-lock.yaml @@ -32,6 +32,9 @@ importers: mdsvex-relative-images: specifier: ^1.0.3 version: 1.0.3 + rehype-auto-ads: + specifier: ^1.2.0 + version: 1.2.0 rehype-autolink-headings: specifier: ^7.1.0 version: 7.1.0 @@ -783,6 +786,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -873,6 +879,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} @@ -1069,15 +1079,27 @@ packages: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + + hast-util-from-parse5@8.0.2: + resolution: {integrity: sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==} + hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + hast-util-to-string@3.0.0: resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} + hastscript@9.0.0: + resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} + highlight.js@11.9.0: resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} engines: {node: '>=12.0.0'} @@ -1467,6 +1489,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -1609,6 +1634,9 @@ packages: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -1634,6 +1662,9 @@ packages: resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==} engines: {node: '>=8'} + rehype-auto-ads@1.2.0: + resolution: {integrity: sha512-w0ysjJQginhKai13wcUF/4t1fu3UvPsVt4Y3htGGGs6ojA+J5Nz01I1NOqwrOhgSoT5Bfv7Mihww6tmtV108+g==} + rehype-autolink-headings@7.1.0: resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} @@ -1960,6 +1991,9 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + vfile-message@2.0.4: resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} @@ -2016,6 +2050,9 @@ packages: vite: optional: true + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -2660,6 +2697,8 @@ snapshots: color-name@1.1.4: {} + comma-separated-tokens@2.0.3: {} + commander@10.0.1: {} commander@4.1.1: {} @@ -2725,6 +2764,8 @@ snapshots: emoji-regex@9.2.2: {} + entities@4.5.0: {} + es6-promise@3.3.1: {} esbuild@0.19.12: @@ -2982,6 +3023,26 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.2 + parse5: 7.2.1 + vfile: 6.0.1 + vfile-message: 4.0.2 + + hast-util-from-parse5@8.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + devlop: 1.1.0 + hastscript: 9.0.0 + property-information: 6.5.0 + vfile: 6.0.1 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + hast-util-heading-rank@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -2990,10 +3051,22 @@ snapshots: dependencies: '@types/hast': 3.0.4 + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-string@3.0.0: dependencies: '@types/hast': 3.0.4 + hastscript@9.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + highlight.js@11.9.0: {} ignore@5.3.1: {} @@ -3510,6 +3583,10 @@ snapshots: dependencies: callsites: 3.1.0 + parse5@7.2.1: + dependencies: + entities: 4.5.0 + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -3617,6 +3694,8 @@ snapshots: prismjs@1.29.0: {} + property-information@6.5.0: {} + punycode@2.3.1: {} purgecss@6.0.0-alpha.0: @@ -3640,6 +3719,15 @@ snapshots: regexparam@3.0.0: {} + rehype-auto-ads@1.2.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + hast-util-is-element: 3.0.0 + unified: 11.0.4 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.1 + rehype-autolink-headings@7.1.0: dependencies: '@types/hast': 3.0.4 @@ -4072,6 +4160,11 @@ snapshots: util-deprecate@1.0.2: {} + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.2 + vfile: 6.0.1 + vfile-message@2.0.4: dependencies: '@types/unist': 2.0.10 @@ -4119,6 +4212,8 @@ snapshots: optionalDependencies: vite: 5.1.0(@types/node@20.11.16) + web-namespaces@2.0.1: {} + which@2.0.2: dependencies: isexe: 2.0.0 diff --git a/website/posts/images/.gitkeep b/website/posts/images/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/website/posts/spotube-basics.md b/website/posts/spotube-basics.md index 841fbac9..43a33d67 100644 --- a/website/posts/spotube-basics.md +++ b/website/posts/spotube-basics.md @@ -3,6 +3,7 @@ title: Spotube Basics author: Kingkor Roy Tirtho date: 2024-02-10 published: true +cover_img: /images/spotube-basics/cover.jpg --- Spotube is an open-source Spotify client that allows users to stream music from Spotify. To use Spotube, you need to sign in with your Spotify account. Here's a step-by-step guide on how to sign in to Spotube. diff --git a/website/src/app.d.ts b/website/src/app.d.ts index c627dc68..c2f2a735 100644 --- a/website/src/app.d.ts +++ b/website/src/app.d.ts @@ -17,6 +17,10 @@ declare namespace App { } } -declare module '@fortawesome/pro-solid-svg-icons/index.es' { - export * from '@fortawesome/pro-solid-svg-icons'; +declare namespace globalThis { + declare var adsbygoogle: any[]; +} + +declare module "@fortawesome/pro-solid-svg-icons/index.es" { + export * from "@fortawesome/pro-solid-svg-icons"; } diff --git a/website/src/app.html b/website/src/app.html index 088ddd5d..470db728 100644 --- a/website/src/app.html +++ b/website/src/app.html @@ -13,6 +13,9 @@ + + %sveltekit.head% diff --git a/website/src/lib/components/ads/ads.svelte b/website/src/lib/components/ads/ads.svelte new file mode 100644 index 00000000..54cfc2c0 --- /dev/null +++ b/website/src/lib/components/ads/ads.svelte @@ -0,0 +1,32 @@ + + + diff --git a/website/src/lib/components/navbar/darkmode-toggle.svelte b/website/src/lib/components/navbar/darkmode-toggle.svelte index ec4f757c..d05622f9 100644 --- a/website/src/lib/components/navbar/darkmode-toggle.svelte +++ b/website/src/lib/components/navbar/darkmode-toggle.svelte @@ -17,10 +17,8 @@
By {post.author}
-- Published on - - {formatter.format(new Date(post.date))} - -
- +By {post.author}
++ Published on + + {formatter.format(new Date(post.date))} + +
+ + {/if} {/each}{new Date(date).toDateString()}
+{readingTime?.text ?? ''}
+{new Date(date).toDateString()}
-{readingTime?.text ?? ''}
-