From 642a479b43a86b3cd41040ca523642466af5d0de Mon Sep 17 00:00:00 2001 From: Nishimiya Date: Sat, 14 Dec 2024 22:40:21 +0700 Subject: [PATCH] FINAL VERSION OF VANILLA | NOW USING VITE + JS (Very Experimental) --- .gitignore | 25 + LICENSE | 21 - README.md | 1 - favicon.ico | Bin 15406 -> 0 bytes index.html | 330 +---------- package-lock.json | 942 ++++++++++++++++++++++++++++++++ package.json | 17 + tenshi.png => public/tenshi.png | Bin src/main.js | 12 + src/rss.js | 87 +++ src/scrobble.js | 29 + src/style.css | 242 ++++++++ 12 files changed, 1362 insertions(+), 344 deletions(-) create mode 100644 .gitignore delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 favicon.ico create mode 100644 package-lock.json create mode 100644 package.json rename tenshi.png => public/tenshi.png (100%) create mode 100644 src/main.js create mode 100644 src/rss.js create mode 100644 src/scrobble.js create mode 100644 src/style.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7ceb59f --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +.env diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 5c02358..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Nishimiya - -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. diff --git a/README.md b/README.md deleted file mode 100644 index 1f3b7c4..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# nishimi-ya.github.io \ No newline at end of file diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index c901c9f8f29b02b53fef938ef6d6e6e65ea65f4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 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 diff --git a/index.html b/index.html index ab8d6e8..beb2826 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ - + @@ -9,7 +9,7 @@ + content="https://raw.githubusercontent.com/nishimi-ya/nishimi-ya.github.io/main/public/tenshi.png" /> @@ -19,251 +19,7 @@ - - + @@ -280,8 +36,8 @@

# Welcome!

In my free time, I write blog post about technologies, art; decentralisation and promoting free software.

-

Donate

- +

Donate | Fetching + currently playing song...

## Social links and stuff

Listed in order of preference.

    @@ -339,78 +95,8 @@

    ### Misc

    ## Recent Blog Posts

    - - - + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..5f843b7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,942 @@ +{ + "name": "nishimiya.my.id", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "nishimiya.my.id", + "version": "0.0.0", + "dependencies": { + "dotenv": "^16.4.7" + }, + "devDependencies": { + "vite": "^6.0.1" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz", + "integrity": "sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz", + "integrity": "sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz", + "integrity": "sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz", + "integrity": "sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz", + "integrity": "sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz", + "integrity": "sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz", + "integrity": "sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz", + "integrity": "sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz", + "integrity": "sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz", + "integrity": "sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz", + "integrity": "sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz", + "integrity": "sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz", + "integrity": "sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz", + "integrity": "sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz", + "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz", + "integrity": "sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz", + "integrity": "sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz", + "integrity": "sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz", + "integrity": "sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.1.tgz", + "integrity": "sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.28.1", + "@rollup/rollup-android-arm64": "4.28.1", + "@rollup/rollup-darwin-arm64": "4.28.1", + "@rollup/rollup-darwin-x64": "4.28.1", + "@rollup/rollup-freebsd-arm64": "4.28.1", + "@rollup/rollup-freebsd-x64": "4.28.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.1", + "@rollup/rollup-linux-arm-musleabihf": "4.28.1", + "@rollup/rollup-linux-arm64-gnu": "4.28.1", + "@rollup/rollup-linux-arm64-musl": "4.28.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.28.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.1", + "@rollup/rollup-linux-riscv64-gnu": "4.28.1", + "@rollup/rollup-linux-s390x-gnu": "4.28.1", + "@rollup/rollup-linux-x64-gnu": "4.28.1", + "@rollup/rollup-linux-x64-musl": "4.28.1", + "@rollup/rollup-win32-arm64-msvc": "4.28.1", + "@rollup/rollup-win32-ia32-msvc": "4.28.1", + "@rollup/rollup-win32-x64-msvc": "4.28.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vite": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.3.tgz", + "integrity": "sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.24.0", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e94580b --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "nishimiya.my.id", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^6.0.1" + }, + "dependencies": { + "dotenv": "^16.4.7" + } +} diff --git a/tenshi.png b/public/tenshi.png similarity index 100% rename from tenshi.png rename to public/tenshi.png diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..1c2e944 --- /dev/null +++ b/src/main.js @@ -0,0 +1,12 @@ +// Theme Toggle Function +function toggleTheme() { + document.body.classList.toggle("light-mode"); + const themeToggleButton = document.querySelector('.theme-toggle'); + if (document.body.classList.contains("light-mode")) { + themeToggleButton.textContent = "Dark Mode"; + themeToggleButton.classList.remove("light"); + } else { + themeToggleButton.textContent = "Light Mode"; + themeToggleButton.classList.add("light"); + } +} diff --git a/src/rss.js b/src/rss.js new file mode 100644 index 0000000..9b9c020 --- /dev/null +++ b/src/rss.js @@ -0,0 +1,87 @@ + +// Truncate Titles Function +function truncateTitles() { + const titles = document.querySelectorAll('.rss-feed-item h3'); + titles.forEach(function(title) { + const words = title.textContent.split(' '); + if (words.length > 6) { + const truncatedTitle = words.slice(0, 6).join(' ') + '...'; + title.textContent = truncatedTitle; + } + }); +} + +// Fetch the RSS feed XML and display titles and content +async function loadRSSFeed() { + const rssContainer = document.getElementById("rss-feed"); + const errorContainer = document.getElementById("rss-feed-error"); + + if (!rssContainer) return; // Guard against missing RSS container + + try { + // Check if we've already fetched the feed recently + const cachedFeed = sessionStorage.getItem('rss-feed'); + let xmlText = cachedFeed; + + if (!cachedFeed) { + // Fetch the RSS feed if not cached + const response = await fetch('https://blog.nishimiya.my.id/index.xml'); + xmlText = await response.text(); + // Cache the feed in session storage for later use (expires on session end) + sessionStorage.setItem('rss-feed', xmlText); + } + + const parser = new DOMParser(); + const xmlDoc = parser.parseFromString(xmlText, "text/xml"); + + const items = xmlDoc.getElementsByTagName("item"); + rssContainer.innerHTML = ''; // Clear previous feed content + + // Check if feed items exist + if (items.length === 0) { + throw new Error('No RSS items found.'); + } + + // Loop through the first 5 RSS items (adjustable) + for (let i = 0; i < Math.min(items.length, 5); i++) { + const titleElement = items[i].getElementsByTagName("title")[0]; + const titleText = titleElement.textContent; + + const pubDateElement = items[i].getElementsByTagName("pubDate")[0]; + const pubDateText = new Date(pubDateElement.textContent).toLocaleDateString('en-US', { + weekday: 'long', year: 'numeric', month: 'short', day: 'numeric' + }); + + const linkElement = items[i].getElementsByTagName("link")[0]; + const linkUrl = linkElement.textContent; + + const rssItem = document.createElement("div"); + rssItem.className = "rss-feed-item"; + + const linkTag = document.createElement("a"); + linkTag.href = linkUrl; + linkTag.target = "_blank"; + linkTag.innerHTML = ` +

    ${titleText}

    +

    ${pubDateText}

    + `; + + rssItem.appendChild(linkTag); + rssContainer.appendChild(rssItem); + } + + // Truncate titles after rendering the feed + truncateTitles(); + + } catch (error) { + console.error("Failed to load RSS feed:", error); + + // Show an error message if the RSS feed fails + if (errorContainer) { + errorContainer.innerText = 'Failed to load RSS feed. Please try again later.'; + } + } +} + +// Call loadRSSFeed on page load +document.addEventListener('DOMContentLoaded', loadRSSFeed); diff --git a/src/scrobble.js b/src/scrobble.js new file mode 100644 index 0000000..510f333 --- /dev/null +++ b/src/scrobble.js @@ -0,0 +1,29 @@ +const apiKey = import.meta.env.VITE_API_KEY; // Use environment variable +const username = 'nishi-miya'; // Replace with your Last.fm username + +const fetchRecentTracks = async () => { + const songStatusElement = document.getElementById('song-status'); + + try { + const response = await fetch(`https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=${username}&api_key=${apiKey}&format=json`); + const { recenttracks: { track = [] } = {} } = await response.json(); + + if (track.length > 0) { + const { name: songName, artist, album } = track[0]; + songStatusElement.innerHTML = ` + 🎧 Last Played: ${songName} by ${artist['#text']} (Album: ${album?.['#text'] || 'Unknown Album'}) + `; + } else { + songStatusElement.innerText = "No recent tracks found."; + } + } catch (error) { + console.error("Error fetching Last.fm data:", error); + songStatusElement.innerText = "Failed to fetch song data."; + } +}; + +// Fetch recent track on page load +fetchRecentTracks(); + +// Poll every 30 seconds to keep the status up to date +setInterval(fetchRecentTracks, 30000); diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..2ecd845 --- /dev/null +++ b/src/style.css @@ -0,0 +1,242 @@ +/* Basic Reset */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +/* Body Styles */ +body { + font-family: 'IBM Plex Mono', monospace; + display: flex; + align-items: center; + justify-content: center; + min-height: 100vh; + margin: 0; + background-color: #252323; + color: #f5f5f5; + transition: background-color 0.3s, color 0.3s; + padding: 20px; +} + +/* Container */ +.container { + width: 100%; + max-width: 750px; + padding: 15px; + text-align: left; + margin-top: 50px; + /* Space for fixed theme toggle */ +} + +/* Headings */ +h1 { + font-weight: 600; + font-size: clamp(1.5em, 4vw, 1.8em); + margin-bottom: 0.8em; + word-wrap: break-word; +} + +h2, +h3 { + font-weight: 600; + font-size: clamp(1em, 3vw, 1.2em); + margin-top: 1em; + margin-bottom: 0.5em; + word-wrap: break-word; +} + +/* Paragraphs */ +p { + font-size: clamp(0.9em, 2.5vw, 0.95em); + line-height: 1.5; + margin-bottom: 0.8em; +} + +/* Links */ +a { + color: #76baff; + text-decoration: none; + word-wrap: break-word; +} + +a:hover { + text-decoration: underline; +} + +/* List Styling */ +ul { + list-style-type: none; + padding-left: 1.5em; + margin-bottom: 1em; +} + +ul li { + margin-bottom: 0.5em; + word-wrap: break-word; +} + +ul li::before { + content: "-"; + margin-right: 0.5em; + color: #76baff; +} + +/* Theme Toggle */ +.theme-toggle { + position: fixed; + top: 20px; + right: 20px; + cursor: pointer; + background-color: #eee; + border: none; + border-radius: 20px; + padding: 8px 16px; + color: #333; + font-size: 0.85em; + transition: background-color 0.3s; + z-index: 1000; +} + +.theme-toggle.light { + background-color: #333; + color: #fff; +} + +/* Light Mode */ +.light-mode { + background-color: #f5f5f5; + color: #333; +} + +.light-mode a { + color: #007acc; +} + +.rss-feed-container { + display: flex; + flex-direction: row; + gap: 15px; + margin-top: 20px; + width: 100%; + overflow-x: auto; + scroll-snap-type: x mandatory; + -webkit-overflow-scrolling: touch; + padding: 10px 0; + scrollbar-width: none; + /* Firefox */ + -ms-overflow-style: none; + /* IE and Edge */ + scroll-snap-type: x smooth; + /* Changed from mandatory to smooth */ + scroll-behavior: smooth; + /* Other styles */ +} +} + +.rss-feed-container::-webkit-scrollbar { + display: none; + /* Chrome, Safari, Opera */ +} + +.rss-feed-item { + background-color: #302f2f; + color: #f5f5f5; + padding: 15px; + border-radius: 10px; + border: 1px solid #ccc; + scroll-snap-align: start; + width: 100%; + min-height: 100px; + flex: 0 0 90%; + overflow: hidden; +} + +.rss-feed-item a { + display: block; + text-decoration: none; + color: inherit; +} + +.rss-feed-item h3 { + font-size: clamp(0.9em, 2.5vw, 1em); + margin-bottom: 8px; + color: #76baff; + white-space: normal; + word-wrap: break-word; +} + +.rss-feed-item p { + font-size: clamp(0.8em, 2vw, 0.9em); + line-height: 1.4; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.light-mode .rss-feed-item { + background-color: #fff; + color: #333; + border: 1px solid #ccc; +} + +.light-mode .rss-feed-item h3 { + color: #007acc; +} + +/* Scroll Indicators */ +.rss-feed-wrapper { + position: relative; + width: 100%; + margin-top: 20px; +} + +.scroll-indicator { + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 30px; + height: 30px; + background-color: rgba(118, 186, 255, 0.2); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + z-index: 2; + border: none; + color: #76baff; + font-weight: bold; +} + +.scroll-left { + left: 5px; +} + +.scroll-right { + right: 5px; +} + +/* Updated Media Queries */ +@media (min-width: 768px) { + .rss-feed-item { + flex: 0 0 45%; + /* Show two items on tablets */ + } +} + +@media (min-width: 1024px) { + .rss-feed-item { + flex: 0 0 40%; + /* Show three items on desktop */ + } +} + +/* Touch indicator for mobile */ +@media (max-width: 767px) { + .rss-feed-container::after { + content: ''; + flex: 0 0 10px; + /* Creates space at the end to indicate more content */ + } +}