- created rss feed component
Some checks failed
Node.js CI / build_image (push) Has been cancelled
Vercel Production Deployment / Deploy-Production (push) Failing after 28s

- initiated vercel and updated workflows.
This commit is contained in:
ChrQR 2024-05-18 12:46:38 +02:00
parent 1610c9aba5
commit 8b03312ac0
5 changed files with 92 additions and 0 deletions

View 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 }}

View 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
View File

@ -8,3 +8,4 @@ node_modules
!.env.example
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
.vercel

View 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}

View File

@ -1,5 +1,6 @@
<script>
import { fade } from 'svelte/transition';
import RssFeed from '../_components/RssFeed.svelte';
</script>
<div in:fade>