- created rss feed component
- initiated vercel and updated workflows.
This commit is contained in:
parent
1610c9aba5
commit
8b03312ac0
21
.gitea/workflows/vercel-preview.yaml
Normal file
21
.gitea/workflows/vercel-preview.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
name: Vercel Preview Deployment
|
||||||
|
env:
|
||||||
|
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
|
||||||
|
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- main
|
||||||
|
jobs:
|
||||||
|
Deploy-Preview:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install Vercel CLI
|
||||||
|
run: npm install --global vercel@latest
|
||||||
|
- name: Pull Vercel Environment Information
|
||||||
|
run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
|
||||||
|
- name: Build Project Artifacts
|
||||||
|
run: vercel build --token=${{ secrets.VERCEL_TOKEN }}
|
||||||
|
- name: Deploy Project Artifacts to Vercel
|
||||||
|
run: vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }}
|
21
.gitea/workflows/vercel-production.yaml
Normal file
21
.gitea/workflows/vercel-production.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
name: Vercel Production Deployment
|
||||||
|
env:
|
||||||
|
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
|
||||||
|
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
jobs:
|
||||||
|
Deploy-Production:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install Vercel CLI
|
||||||
|
run: npm install --global vercel@latest
|
||||||
|
- name: Pull Vercel Environment Information
|
||||||
|
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
|
||||||
|
- name: Build Project Artifacts
|
||||||
|
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
|
||||||
|
- name: Deploy Project Artifacts to Vercel
|
||||||
|
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@ node_modules
|
|||||||
!.env.example
|
!.env.example
|
||||||
vite.config.js.timestamp-*
|
vite.config.js.timestamp-*
|
||||||
vite.config.ts.timestamp-*
|
vite.config.ts.timestamp-*
|
||||||
|
.vercel
|
||||||
|
48
src/routes/_components/RssFeed.svelte
Normal file
48
src/routes/_components/RssFeed.svelte
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<script>
|
||||||
|
import { onMount } from 'svelte';
|
||||||
|
|
||||||
|
const url = 'https://gitea.rannes.dev/rannes.dev/local-weather.rss';
|
||||||
|
|
||||||
|
let feed = null;
|
||||||
|
let error = null;
|
||||||
|
|
||||||
|
async function fetchFeed() {
|
||||||
|
try {
|
||||||
|
const response = await fetch(url);
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP error! status: ${response.status}`);
|
||||||
|
}
|
||||||
|
const text = await response.text();
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const xml = parser.parseFromString(text, 'application/xml');
|
||||||
|
const items = Array.from(xml.querySelectorAll('item')).map((item) => ({
|
||||||
|
title: item.querySelector('title')?.textContent,
|
||||||
|
link: item.querySelector('link')?.textContent,
|
||||||
|
description: item.querySelector('description')?.textContent
|
||||||
|
}));
|
||||||
|
feed = items;
|
||||||
|
} catch (err) {
|
||||||
|
error = err.message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
fetchFeed();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if error}
|
||||||
|
<p>Error: {error}</p>
|
||||||
|
{:else if !feed}
|
||||||
|
<p>Loading...</p>
|
||||||
|
{:else}
|
||||||
|
<div>
|
||||||
|
{#each feed as item}
|
||||||
|
<div>
|
||||||
|
<h3>{item.title}</h3>
|
||||||
|
<p>{item.description}</p>
|
||||||
|
<a href={item.link} target="_blank">Read more</a>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
{/if}
|
@ -1,5 +1,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import { fade } from 'svelte/transition';
|
import { fade } from 'svelte/transition';
|
||||||
|
import RssFeed from '../_components/RssFeed.svelte';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div in:fade>
|
<div in:fade>
|
||||||
|
Loading…
Reference in New Issue
Block a user