diff --git a/src/app.html b/src/app.html index 77a5ff5..c1524fb 100644 --- a/src/app.html +++ b/src/app.html @@ -2,7 +2,7 @@ - + %sveltekit.head% diff --git a/src/lib/components/projects/projects.svelte b/src/lib/components/projects/projects.svelte index 758a0a2..c50f7e3 100644 --- a/src/lib/components/projects/projects.svelte +++ b/src/lib/components/projects/projects.svelte @@ -2,6 +2,29 @@ import ProjectsCard from './projectsCard.svelte'; let { independent_page = true } = $props(); + + let limitProjects = $derived(independent_page ? 0 : 8); + + let projectsPromise = $state(null); + + $effect(async () => { + try { + const res = await fetch( + `https://darkicewolf50cloud.bajacloud.duckdns.org/projects/${limitProjects}` + ); + if (!res.ok) { + projectsPromise = null; + return; + } + const data = await res.json(); + projectsPromise = Array.isArray(data) ? data : null; + } catch (e) { + console.error('Fetch error:', e); + projectsPromise = null; + } + }); + + $inspect(projectsPromise).with(console.trace); {#if independent_page} @@ -12,6 +35,16 @@

Top Featured and Recent Projects

+ import { page } from '$app/state'; - console.log(page.status); + // $inspect(page.status); +Brock Tomlinson - Not Found +
-

{page.status} Page not found

+

{page.status} - Page not found

We are terribly sorry, but the page you requested doesn't exist.

+ + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 17feca4..4fbfd76 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -6,7 +6,7 @@ let languages = ['Rust', 'Python', 'YAML', 'HTML5', 'CSS', 'JavaScript', 'Markdown']; let backend = ['Actix', 'FastAPI', 'Dioxus', 'Diesel']; - let frontend = ['React', 'Dioxus', 'Vue']; + let frontend = ['React', 'Dioxus', 'SvelteKit']; let databases = ['Sqlite', 'PostgreSQL', 'Mongodb', 'DynamoDB']; let tools = [ 'Vs Code', diff --git a/src/routes/blog/[slug]/+page.svelte b/src/routes/blog/[slug]/+page.svelte index e69de29..9888e9e 100644 --- a/src/routes/blog/[slug]/+page.svelte +++ b/src/routes/blog/[slug]/+page.svelte @@ -0,0 +1,163 @@ + + +Brock Tomlinson - {blogTitle} + + + +
+ Go Back + {#await blogPromise} +

Loading...

+ {:then blogContent} + {#if blogContent} +
+
+

{blogContent.blog_title}

+
+
    + {#each blogContent.tags as tag, tagIndex} +
  • {tag}
  • + {/each} +
+

{blogContent.date_last_edit}

+
+
+
{@html blogContent.html_blog_content}
+
+ {:else} +

An Error has occurred or blog not found

+ {/if} + {:catch} +

An Error has occurred

+ {/await} +
+ + diff --git a/src/routes/blogs/[slug]/+page.svelte b/src/routes/blogs/[slug]/+page.svelte new file mode 100644 index 0000000..49cece2 --- /dev/null +++ b/src/routes/blogs/[slug]/+page.svelte @@ -0,0 +1,292 @@ + + +Brock Tomlinson - Blogs - {pageNum} + + +
+
+

Blogs

+

+ This is a collection of blog posts, ranging from tutorials, technologies I found interesting, + and opinion pieces +

+

These blogs are my opinion and mine alone

+
+
+ {#await blogsPromise} +

Loading blogs...

+ {:then blogs} + {#if blogs && blogs.length > 0} + {#each blogs as blog, blogIndex} + +
+

{blog.blog_title}

+
+
    + {#each blog.tags as tag, tagIndex} +
  • {tag}
  • + {/each} +
+

{blog.date_last_edit}

+
+
+
{@html blog.html_blog_content}
+ +
+ {/each} + {:else} +
+

No more blogs available

+ +
+ {/if} + {:catch error} +

An error has occurred

+ {/await} +
+
+ {#if pageNum > 0} + + {/if} +
+ + +
+ {'Next -->'} +
+
+ + diff --git a/src/routes/blogs/[slugs]/+page.svelte b/src/routes/blogs/[slugs]/+page.svelte deleted file mode 100644 index e69de29..0000000 diff --git a/src/routes/sitemap.xml/+server.js b/src/routes/sitemap.xml/+server.js new file mode 100644 index 0000000..0ccf42c --- /dev/null +++ b/src/routes/sitemap.xml/+server.js @@ -0,0 +1,44 @@ +// src/routes/sitemap.xml/+server.ts (or +server.js) +import { format } from 'date-fns'; // Optional, if you want etc. + +export async function GET() { + const baseUrl = 'https://yourdomain.com'; // Replace with your domain + + const staticPages = [ + '', // Home page + 'contact', + 'projects' + ]; + + const urls = staticPages + .map( + (path) => ` + + ${baseUrl}/${path} + ${format(new Date(), 'yyyy-MM-dd')} + monthly + 0.8 + ` + ) + .join(''); + + return new Response( + ` + + + ${urls} + `.trim(), + { + headers: { + 'Content-Type': 'application/xml' + } + } + ); +} diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..eed0c09 Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/robots.txt b/static/robots.txt new file mode 100644 index 0000000..8875f68 --- /dev/null +++ b/static/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /blogs/