Merge pull request 'RSS feed merged to main branch' (#1) from projects-2 into main
Reviewed-on: #1
This commit is contained in:
		
						commit
						f25ac4a5ac
					
				
							
								
								
									
										373
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										373
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -8,7 +8,9 @@
 | 
				
			|||||||
			"name": "my-portfolio",
 | 
								"name": "my-portfolio",
 | 
				
			||||||
			"version": "0.0.1",
 | 
								"version": "0.0.1",
 | 
				
			||||||
			"dependencies": {
 | 
								"dependencies": {
 | 
				
			||||||
				"@sveltejs/adapter-vercel": "^5.3.0"
 | 
									"@sveltejs/adapter-vercel": "^5.3.0",
 | 
				
			||||||
 | 
									"geist": "^1.3.0",
 | 
				
			||||||
 | 
									"moment": "^2.30.1"
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"devDependencies": {
 | 
								"devDependencies": {
 | 
				
			||||||
				"@sveltejs/adapter-auto": "^3.0.0",
 | 
									"@sveltejs/adapter-auto": "^3.0.0",
 | 
				
			||||||
@ -614,6 +616,156 @@
 | 
				
			|||||||
				"node-pre-gyp": "bin/node-pre-gyp"
 | 
									"node-pre-gyp": "bin/node-pre-gyp"
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/env": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==",
 | 
				
			||||||
 | 
								"peer": true
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/swc-darwin-arm64": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==",
 | 
				
			||||||
 | 
								"cpu": [
 | 
				
			||||||
 | 
									"arm64"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"optional": true,
 | 
				
			||||||
 | 
								"os": [
 | 
				
			||||||
 | 
									"darwin"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 10"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/swc-darwin-x64": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==",
 | 
				
			||||||
 | 
								"cpu": [
 | 
				
			||||||
 | 
									"x64"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"optional": true,
 | 
				
			||||||
 | 
								"os": [
 | 
				
			||||||
 | 
									"darwin"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 10"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/swc-linux-arm64-gnu": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==",
 | 
				
			||||||
 | 
								"cpu": [
 | 
				
			||||||
 | 
									"arm64"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"optional": true,
 | 
				
			||||||
 | 
								"os": [
 | 
				
			||||||
 | 
									"linux"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 10"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/swc-linux-arm64-musl": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==",
 | 
				
			||||||
 | 
								"cpu": [
 | 
				
			||||||
 | 
									"arm64"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"optional": true,
 | 
				
			||||||
 | 
								"os": [
 | 
				
			||||||
 | 
									"linux"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 10"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/swc-linux-x64-gnu": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==",
 | 
				
			||||||
 | 
								"cpu": [
 | 
				
			||||||
 | 
									"x64"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"optional": true,
 | 
				
			||||||
 | 
								"os": [
 | 
				
			||||||
 | 
									"linux"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 10"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/swc-linux-x64-musl": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==",
 | 
				
			||||||
 | 
								"cpu": [
 | 
				
			||||||
 | 
									"x64"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"optional": true,
 | 
				
			||||||
 | 
								"os": [
 | 
				
			||||||
 | 
									"linux"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 10"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/swc-win32-arm64-msvc": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==",
 | 
				
			||||||
 | 
								"cpu": [
 | 
				
			||||||
 | 
									"arm64"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"optional": true,
 | 
				
			||||||
 | 
								"os": [
 | 
				
			||||||
 | 
									"win32"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 10"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/swc-win32-ia32-msvc": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==",
 | 
				
			||||||
 | 
								"cpu": [
 | 
				
			||||||
 | 
									"ia32"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"optional": true,
 | 
				
			||||||
 | 
								"os": [
 | 
				
			||||||
 | 
									"win32"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 10"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@next/swc-win32-x64-msvc": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==",
 | 
				
			||||||
 | 
								"cpu": [
 | 
				
			||||||
 | 
									"x64"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"optional": true,
 | 
				
			||||||
 | 
								"os": [
 | 
				
			||||||
 | 
									"win32"
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 10"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/@nodelib/fs.scandir": {
 | 
							"node_modules/@nodelib/fs.scandir": {
 | 
				
			||||||
			"version": "2.1.5",
 | 
								"version": "2.1.5",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
 | 
								"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
 | 
				
			||||||
@ -960,6 +1112,22 @@
 | 
				
			|||||||
				"vite": "^5.0.0"
 | 
									"vite": "^5.0.0"
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@swc/counter": {
 | 
				
			||||||
 | 
								"version": "0.1.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
 | 
				
			||||||
 | 
								"peer": true
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/@swc/helpers": {
 | 
				
			||||||
 | 
								"version": "0.5.5",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"dependencies": {
 | 
				
			||||||
 | 
									"@swc/counter": "^0.1.3",
 | 
				
			||||||
 | 
									"tslib": "^2.4.0"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/@types/cookie": {
 | 
							"node_modules/@types/cookie": {
 | 
				
			||||||
			"version": "0.6.0",
 | 
								"version": "0.6.0",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
 | 
								"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
 | 
				
			||||||
@ -1283,6 +1451,18 @@
 | 
				
			|||||||
				"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
 | 
									"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/busboy": {
 | 
				
			||||||
 | 
								"version": "1.6.0",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"dependencies": {
 | 
				
			||||||
 | 
									"streamsearch": "^1.1.0"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">=10.16.0"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/callsites": {
 | 
							"node_modules/callsites": {
 | 
				
			||||||
			"version": "3.1.0",
 | 
								"version": "3.1.0",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 | 
								"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
 | 
				
			||||||
@ -1305,7 +1485,6 @@
 | 
				
			|||||||
			"version": "1.0.30001620",
 | 
								"version": "1.0.30001620",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz",
 | 
								"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz",
 | 
				
			||||||
			"integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==",
 | 
								"integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==",
 | 
				
			||||||
			"dev": true,
 | 
					 | 
				
			||||||
			"funding": [
 | 
								"funding": [
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					"type": "opencollective",
 | 
										"type": "opencollective",
 | 
				
			||||||
@ -1381,6 +1560,12 @@
 | 
				
			|||||||
				"node": ">=10"
 | 
									"node": ">=10"
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/client-only": {
 | 
				
			||||||
 | 
								"version": "0.0.1",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
 | 
				
			||||||
 | 
								"peer": true
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/code-red": {
 | 
							"node_modules/code-red": {
 | 
				
			||||||
			"version": "1.0.4",
 | 
								"version": "1.0.4",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
 | 
								"resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
 | 
				
			||||||
@ -2089,6 +2274,14 @@
 | 
				
			|||||||
				"node": ">=10"
 | 
									"node": ">=10"
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/geist": {
 | 
				
			||||||
 | 
								"version": "1.3.0",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/geist/-/geist-1.3.0.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-IoGBfcqVEYB4bEwsfHd35jF4+X9LHRPYZymHL4YOltHSs9LJa24DYs1Z7rEMQ/lsEvaAIc61Y9aUxgcJaQ8lrg==",
 | 
				
			||||||
 | 
								"peerDependencies": {
 | 
				
			||||||
 | 
									"next": ">=13.2.0 <15.0.0-0"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/glob": {
 | 
							"node_modules/glob": {
 | 
				
			||||||
			"version": "7.2.3",
 | 
								"version": "7.2.3",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
 | 
								"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
 | 
				
			||||||
@ -2371,6 +2564,12 @@
 | 
				
			|||||||
				"jiti": "bin/jiti.js"
 | 
									"jiti": "bin/jiti.js"
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/js-tokens": {
 | 
				
			||||||
 | 
								"version": "4.0.0",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
 | 
				
			||||||
 | 
								"peer": true
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/js-yaml": {
 | 
							"node_modules/js-yaml": {
 | 
				
			||||||
			"version": "4.1.0",
 | 
								"version": "4.1.0",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
 | 
								"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
 | 
				
			||||||
@ -2478,6 +2677,18 @@
 | 
				
			|||||||
			"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
 | 
								"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
 | 
				
			||||||
			"dev": true
 | 
								"dev": true
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/loose-envify": {
 | 
				
			||||||
 | 
								"version": "1.4.0",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"dependencies": {
 | 
				
			||||||
 | 
									"js-tokens": "^3.0.0 || ^4.0.0"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"bin": {
 | 
				
			||||||
 | 
									"loose-envify": "cli.js"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/lru-cache": {
 | 
							"node_modules/lru-cache": {
 | 
				
			||||||
			"version": "10.2.2",
 | 
								"version": "10.2.2",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
 | 
								"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
 | 
				
			||||||
@ -2596,6 +2807,14 @@
 | 
				
			|||||||
				"node": ">=10"
 | 
									"node": ">=10"
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/moment": {
 | 
				
			||||||
 | 
								"version": "2.30.1",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": "*"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/mri": {
 | 
							"node_modules/mri": {
 | 
				
			||||||
			"version": "1.2.0",
 | 
								"version": "1.2.0",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
 | 
								"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
 | 
				
			||||||
@ -2651,6 +2870,84 @@
 | 
				
			|||||||
			"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
 | 
								"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
 | 
				
			||||||
			"dev": true
 | 
								"dev": true
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/next": {
 | 
				
			||||||
 | 
								"version": "14.2.3",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==",
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"dependencies": {
 | 
				
			||||||
 | 
									"@next/env": "14.2.3",
 | 
				
			||||||
 | 
									"@swc/helpers": "0.5.5",
 | 
				
			||||||
 | 
									"busboy": "1.6.0",
 | 
				
			||||||
 | 
									"caniuse-lite": "^1.0.30001579",
 | 
				
			||||||
 | 
									"graceful-fs": "^4.2.11",
 | 
				
			||||||
 | 
									"postcss": "8.4.31",
 | 
				
			||||||
 | 
									"styled-jsx": "5.1.1"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"bin": {
 | 
				
			||||||
 | 
									"next": "dist/bin/next"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">=18.17.0"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"optionalDependencies": {
 | 
				
			||||||
 | 
									"@next/swc-darwin-arm64": "14.2.3",
 | 
				
			||||||
 | 
									"@next/swc-darwin-x64": "14.2.3",
 | 
				
			||||||
 | 
									"@next/swc-linux-arm64-gnu": "14.2.3",
 | 
				
			||||||
 | 
									"@next/swc-linux-arm64-musl": "14.2.3",
 | 
				
			||||||
 | 
									"@next/swc-linux-x64-gnu": "14.2.3",
 | 
				
			||||||
 | 
									"@next/swc-linux-x64-musl": "14.2.3",
 | 
				
			||||||
 | 
									"@next/swc-win32-arm64-msvc": "14.2.3",
 | 
				
			||||||
 | 
									"@next/swc-win32-ia32-msvc": "14.2.3",
 | 
				
			||||||
 | 
									"@next/swc-win32-x64-msvc": "14.2.3"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"peerDependencies": {
 | 
				
			||||||
 | 
									"@opentelemetry/api": "^1.1.0",
 | 
				
			||||||
 | 
									"@playwright/test": "^1.41.2",
 | 
				
			||||||
 | 
									"react": "^18.2.0",
 | 
				
			||||||
 | 
									"react-dom": "^18.2.0",
 | 
				
			||||||
 | 
									"sass": "^1.3.0"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"peerDependenciesMeta": {
 | 
				
			||||||
 | 
									"@opentelemetry/api": {
 | 
				
			||||||
 | 
										"optional": true
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									"@playwright/test": {
 | 
				
			||||||
 | 
										"optional": true
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									"sass": {
 | 
				
			||||||
 | 
										"optional": true
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/next/node_modules/postcss": {
 | 
				
			||||||
 | 
								"version": "8.4.31",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
 | 
				
			||||||
 | 
								"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"
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"dependencies": {
 | 
				
			||||||
 | 
									"nanoid": "^3.3.6",
 | 
				
			||||||
 | 
									"picocolors": "^1.0.0",
 | 
				
			||||||
 | 
									"source-map-js": "^1.0.2"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": "^10 || ^12 || >=14"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/node-fetch": {
 | 
							"node_modules/node-fetch": {
 | 
				
			||||||
			"version": "2.7.0",
 | 
								"version": "2.7.0",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
 | 
								"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
 | 
				
			||||||
@ -3148,6 +3445,31 @@
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			]
 | 
								]
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/react": {
 | 
				
			||||||
 | 
								"version": "18.3.1",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"dependencies": {
 | 
				
			||||||
 | 
									"loose-envify": "^1.1.0"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">=0.10.0"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/react-dom": {
 | 
				
			||||||
 | 
								"version": "18.3.1",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"dependencies": {
 | 
				
			||||||
 | 
									"loose-envify": "^1.1.0",
 | 
				
			||||||
 | 
									"scheduler": "^0.23.2"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"peerDependencies": {
 | 
				
			||||||
 | 
									"react": "^18.3.1"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/read-cache": {
 | 
							"node_modules/read-cache": {
 | 
				
			||||||
			"version": "1.0.0",
 | 
								"version": "1.0.0",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
 | 
								"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
 | 
				
			||||||
@ -3318,6 +3640,15 @@
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			]
 | 
								]
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/scheduler": {
 | 
				
			||||||
 | 
								"version": "0.23.2",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"dependencies": {
 | 
				
			||||||
 | 
									"loose-envify": "^1.1.0"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/semver": {
 | 
							"node_modules/semver": {
 | 
				
			||||||
			"version": "7.6.2",
 | 
								"version": "7.6.2",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
 | 
								"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
 | 
				
			||||||
@ -3386,6 +3717,15 @@
 | 
				
			|||||||
				"node": ">=0.10.0"
 | 
									"node": ">=0.10.0"
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/streamsearch": {
 | 
				
			||||||
 | 
								"version": "1.1.0",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">=10.0.0"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/string_decoder": {
 | 
							"node_modules/string_decoder": {
 | 
				
			||||||
			"version": "1.3.0",
 | 
								"version": "1.3.0",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
 | 
								"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
 | 
				
			||||||
@ -3458,6 +3798,29 @@
 | 
				
			|||||||
				"url": "https://github.com/sponsors/sindresorhus"
 | 
									"url": "https://github.com/sponsors/sindresorhus"
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/styled-jsx": {
 | 
				
			||||||
 | 
								"version": "5.1.1",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
 | 
				
			||||||
 | 
								"peer": true,
 | 
				
			||||||
 | 
								"dependencies": {
 | 
				
			||||||
 | 
									"client-only": "0.0.1"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"engines": {
 | 
				
			||||||
 | 
									"node": ">= 12.0.0"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"peerDependencies": {
 | 
				
			||||||
 | 
									"react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								"peerDependenciesMeta": {
 | 
				
			||||||
 | 
									"@babel/core": {
 | 
				
			||||||
 | 
										"optional": true
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									"babel-plugin-macros": {
 | 
				
			||||||
 | 
										"optional": true
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/sucrase": {
 | 
							"node_modules/sucrase": {
 | 
				
			||||||
			"version": "3.35.0",
 | 
								"version": "3.35.0",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
 | 
								"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
 | 
				
			||||||
@ -3807,6 +4170,12 @@
 | 
				
			|||||||
			"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
 | 
								"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
 | 
				
			||||||
			"dev": true
 | 
								"dev": true
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"node_modules/tslib": {
 | 
				
			||||||
 | 
								"version": "2.6.2",
 | 
				
			||||||
 | 
								"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
 | 
				
			||||||
 | 
								"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
 | 
				
			||||||
 | 
								"peer": true
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"node_modules/type-check": {
 | 
							"node_modules/type-check": {
 | 
				
			||||||
			"version": "0.4.0",
 | 
								"version": "0.4.0",
 | 
				
			||||||
			"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
 | 
								"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,8 @@
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
	"type": "module",
 | 
						"type": "module",
 | 
				
			||||||
	"dependencies": {
 | 
						"dependencies": {
 | 
				
			||||||
		"@sveltejs/adapter-vercel": "^5.3.0"
 | 
							"@sveltejs/adapter-vercel": "^5.3.0",
 | 
				
			||||||
 | 
							"geist": "^1.3.0",
 | 
				
			||||||
 | 
							"moment": "^2.30.1"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										24
									
								
								src/lib/Commit.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/lib/Commit.svelte
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					<script>
 | 
				
			||||||
 | 
						import moment from 'moment';
 | 
				
			||||||
 | 
						export let link;
 | 
				
			||||||
 | 
						export let title;
 | 
				
			||||||
 | 
						export let description;
 | 
				
			||||||
 | 
						export let published;
 | 
				
			||||||
 | 
						export let author;
 | 
				
			||||||
 | 
						export let guid;
 | 
				
			||||||
 | 
						const pubAgo = moment(published).fromNow();
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div
 | 
				
			||||||
 | 
						class="block p-6 bg-white border border-gray-200 rounded-lg shadow hover:bg-gray-100 dark:bg-gray-800 dark:border-gray-700 dark:hover:bg-gray-700"
 | 
				
			||||||
 | 
					>
 | 
				
			||||||
 | 
						<div class="mb-2 text-2xl font-semibold tracking-tight text-gray-900 dark:text-white">
 | 
				
			||||||
 | 
							{@html title}
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
						<div class="font-normal hover:text-slate-400">
 | 
				
			||||||
 | 
							{@html description}
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
						<div>commited {pubAgo} by {@html author}</div>
 | 
				
			||||||
 | 
						<a class="hover:text-slate-400 underline" href={link}>view commit</a>
 | 
				
			||||||
 | 
						<div class="text-xs text-slate-400">guid:{guid}</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
							
								
								
									
										9
									
								
								src/lib/RssContainer.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/lib/RssContainer.svelte
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<script>
 | 
				
			||||||
 | 
						import RssFeed from './RssFeed.svelte';
 | 
				
			||||||
 | 
						export let url;
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div>
 | 
				
			||||||
 | 
						<h2 class="text-xl mt-4 font-normal">Here are the last 5 commits:</h2>
 | 
				
			||||||
 | 
						<RssFeed {url} />
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
@ -1,7 +1,9 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import { onMount } from 'svelte';
 | 
						import { onMount } from 'svelte';
 | 
				
			||||||
 | 
						import Spinner from './Spinner.svelte';
 | 
				
			||||||
 | 
						import Commit from './Commit.svelte';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const url = 'https://gitea.rannes.dev/rannes.dev/local-weather.rss';
 | 
						export let url;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	let feed = null;
 | 
						let feed = null;
 | 
				
			||||||
	let error = null;
 | 
						let error = null;
 | 
				
			||||||
@ -18,7 +20,10 @@
 | 
				
			|||||||
			const items = Array.from(xml.querySelectorAll('item')).map((item) => ({
 | 
								const items = Array.from(xml.querySelectorAll('item')).map((item) => ({
 | 
				
			||||||
				title: item.querySelector('title')?.textContent,
 | 
									title: item.querySelector('title')?.textContent,
 | 
				
			||||||
				link: item.querySelector('link')?.textContent,
 | 
									link: item.querySelector('link')?.textContent,
 | 
				
			||||||
				description: item.querySelector('description')?.textContent
 | 
									description: item.querySelector('description')?.textContent,
 | 
				
			||||||
 | 
									published: item.querySelector('pubDate')?.textContent,
 | 
				
			||||||
 | 
									author: item.querySelector('author')?.textContent,
 | 
				
			||||||
 | 
									guid: item.querySelector('guid')?.textContent
 | 
				
			||||||
			}));
 | 
								}));
 | 
				
			||||||
			feed = items;
 | 
								feed = items;
 | 
				
			||||||
		} catch (err) {
 | 
							} catch (err) {
 | 
				
			||||||
@ -31,18 +36,16 @@
 | 
				
			|||||||
	});
 | 
						});
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{#if error}
 | 
					<div class="my-4">
 | 
				
			||||||
	<p>Error: {error}</p>
 | 
						{#if error}
 | 
				
			||||||
{:else if !feed}
 | 
							<p>Error: {error}</p>
 | 
				
			||||||
	<p>Loading...</p>
 | 
						{:else if !feed}
 | 
				
			||||||
{:else}
 | 
							<Spinner />
 | 
				
			||||||
	<div>
 | 
						{:else}
 | 
				
			||||||
		{#each feed as item}
 | 
							<div class="flex flex-col gap-2">
 | 
				
			||||||
			<div>
 | 
								{#each feed.slice(0, 5) as commit}
 | 
				
			||||||
				<h3>{item.title}</h3>
 | 
									<Commit {...commit} />
 | 
				
			||||||
				<p>{item.description}</p>
 | 
								{/each}
 | 
				
			||||||
				<a href={item.link} target="_blank">Read more</a>
 | 
							</div>
 | 
				
			||||||
			</div>
 | 
						{/if}
 | 
				
			||||||
		{/each}
 | 
					</div>
 | 
				
			||||||
	</div>
 | 
					 | 
				
			||||||
{/if}
 | 
					 | 
				
			||||||
							
								
								
									
										19
									
								
								src/lib/Spinner.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/lib/Spinner.svelte
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					<div role="status">
 | 
				
			||||||
 | 
						<svg
 | 
				
			||||||
 | 
							aria-hidden="true"
 | 
				
			||||||
 | 
							class="inline w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-gray-600 dark:fill-gray-300"
 | 
				
			||||||
 | 
							viewBox="0 0 100 101"
 | 
				
			||||||
 | 
							fill="none"
 | 
				
			||||||
 | 
							xmlns="http://www.w3.org/2000/svg"
 | 
				
			||||||
 | 
						>
 | 
				
			||||||
 | 
							<path
 | 
				
			||||||
 | 
								d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z"
 | 
				
			||||||
 | 
								fill="currentColor"
 | 
				
			||||||
 | 
							/>
 | 
				
			||||||
 | 
							<path
 | 
				
			||||||
 | 
								d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z"
 | 
				
			||||||
 | 
								fill="currentFill"
 | 
				
			||||||
 | 
							/>
 | 
				
			||||||
 | 
						</svg>
 | 
				
			||||||
 | 
						<span class="sr-only">Loading...</span>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import { blur, fade } from 'svelte/transition';
 | 
						import { blur } from 'svelte/transition';
 | 
				
			||||||
	import '../app.css';
 | 
						import '../app.css';
 | 
				
			||||||
	import ThemeSwitch from '$lib/ThemeSwitch.svelte';
 | 
						import ThemeSwitch from '$lib/ThemeSwitch.svelte';
 | 
				
			||||||
	import '../app.css';
 | 
						import '../app.css';
 | 
				
			||||||
@ -79,5 +79,5 @@
 | 
				
			|||||||
	<slot />
 | 
						<slot />
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<footer class="mt-12">
 | 
					<footer class="mt-12">
 | 
				
			||||||
	<p class="text-sm text-gray-400">built and hosted by christian rannes 2024</p>
 | 
						<p class="text-sm text-gray-400">built by christian rannes 2024</p>
 | 
				
			||||||
</footer>
 | 
					</footer>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,11 @@
 | 
				
			|||||||
<div class="main-container text-center">
 | 
					<div class="main-container text-center">
 | 
				
			||||||
    <h1 class="text-xl mb-2">Welcome to my corner of the internet</h1>
 | 
						<h1 class="text-xl mb-2">Welcome to my corner of the internet</h1>
 | 
				
			||||||
    <p>You most likely ended up here after listening to me rambling about the wonders of self hosted services, and how life would be much easier if we could just containerize everything.
 | 
						<p>
 | 
				
			||||||
    </p>
 | 
							You most likely ended up here after listening to me rambling about the wonders of self hosted
 | 
				
			||||||
    <p class="italic text-sm mt-8">This page is my initial svelte project to try out the framework, and at the time of writing (24th April 2024) many pages are still lacking content.</p>
 | 
							services, and how life would be much easier if we could just containerize everything.
 | 
				
			||||||
</div>
 | 
						</p>
 | 
				
			||||||
 | 
						<p class="italic text-sm mt-8">
 | 
				
			||||||
 | 
							This page is my initial svelte project to try out the framework, and at the time of writing
 | 
				
			||||||
 | 
							(24th April 2024) many pages are still lacking content.
 | 
				
			||||||
 | 
						</p>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,9 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import { fade } from 'svelte/transition';
 | 
						import { fade } from 'svelte/transition';
 | 
				
			||||||
	import RssFeed from '../_components/RssFeed.svelte';
 | 
						import RssFeed from '../../lib/RssFeed.svelte';
 | 
				
			||||||
 | 
						import RssContainer from '../../lib/RssContainer.svelte';
 | 
				
			||||||
 | 
						const weatherRss = 'https://gitea.rannes.dev/rannes.dev/local-weather.rss';
 | 
				
			||||||
 | 
						const titlesRss = 'https://gitea.rannes.dev/rannes.dev/titles.rss';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div in:fade>
 | 
					<div in:fade>
 | 
				
			||||||
@ -38,6 +41,7 @@
 | 
				
			|||||||
				href="https://gitea.rannes.dev/rannes.dev/titles">git repo here!</a
 | 
									href="https://gitea.rannes.dev/rannes.dev/titles">git repo here!</a
 | 
				
			||||||
			>
 | 
								>
 | 
				
			||||||
		</p>
 | 
							</p>
 | 
				
			||||||
 | 
							<RssContainer url={titlesRss} />;
 | 
				
			||||||
	</article>
 | 
						</article>
 | 
				
			||||||
	<article>
 | 
						<article>
 | 
				
			||||||
		<h2 class="font-normal text-xl my-2 mt-4">Weather application</h2>
 | 
							<h2 class="font-normal text-xl my-2 mt-4">Weather application</h2>
 | 
				
			||||||
@ -61,5 +65,6 @@
 | 
				
			|||||||
				href="https://gitea.rannes.dev/rannes.dev/local-weather">the code here.</a
 | 
									href="https://gitea.rannes.dev/rannes.dev/local-weather">the code here.</a
 | 
				
			||||||
			>
 | 
								>
 | 
				
			||||||
		</p>
 | 
							</p>
 | 
				
			||||||
 | 
							<RssContainer url={weatherRss} />
 | 
				
			||||||
	</article>
 | 
						</article>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,14 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import { fade } from 'svelte/transition';
 | 
						import { fade } from 'svelte/transition';
 | 
				
			||||||
 | 
						import RssFeed from '../../lib/RssFeed.svelte';
 | 
				
			||||||
 | 
						import RssContainer from '../../lib/RssContainer.svelte';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const projectRssUrl = 'https://gitea.rannes.dev/rannes.dev/my-portfolio.rss';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div in:fade>
 | 
					<div in:fade>
 | 
				
			||||||
	<h1 class="text-2xl">Svelte Portfolio Page</h1>
 | 
						<h1 class="text-2xl">Svelte Portfolio Page</h1>
 | 
				
			||||||
	<p class="text-left">
 | 
						<p class="text-left">For this product i've used the following:</p>
 | 
				
			||||||
		This portfolio is built using <span class="font-normal">Svelte & Svelte kit</span> and
 | 
					 | 
				
			||||||
		<span class="font-normal">Tailwind CSS</span> as a simple static page.
 | 
					 | 
				
			||||||
	</p>
 | 
					 | 
				
			||||||
	<p class="text-left">
 | 
						<p class="text-left">
 | 
				
			||||||
		<a
 | 
							<a
 | 
				
			||||||
			class="underline font-normal hover:text-slate-400"
 | 
								class="underline font-normal hover:text-slate-400"
 | 
				
			||||||
@ -18,4 +19,5 @@
 | 
				
			|||||||
			>Read more about that here.</a
 | 
								>Read more about that here.</a
 | 
				
			||||||
		>
 | 
							>
 | 
				
			||||||
	</p>
 | 
						</p>
 | 
				
			||||||
 | 
						<RssContainer url={projectRssUrl} />
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user