From 6013181aa1bef0b4a15a0d6be89930bbc8bab392 Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Sun, 10 Dec 2023 17:09:53 -0800 Subject: [PATCH 1/6] Remove commented out code. --- src/routes/api.ts | 9 --------- src/routes/og/+server.ts | 5 ----- 2 files changed, 14 deletions(-) diff --git a/src/routes/api.ts b/src/routes/api.ts index 1a133cd..b6aeac2 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -38,14 +38,12 @@ export async function fetchArticlesApi( since: `${pageQuery.since}`, page: `${pageQuery.page}` }); - // console.log(`Entries params: ${entriesQueryParams}`); if (USE_REDIS_CACHE) { const cached = await redis.get(entriesQueryParams.toString()); if (cached) { const response = JSON.parse(cached); - // console.log('Cache hit!'); const ttl = await redis.ttl(entriesQueryParams.toString()); return { ...response, cacheControl: `max-age=${ttl}` }; @@ -84,14 +82,7 @@ export async function fetchArticlesApi( const { _embedded, page, pages, total, limit } = await pageResponse.json(); const articles: Article[] = []; - // do { - // nbEntries += entries._embedded.items.length; - // console.log(`number of articles fetched: ${_embedded.items.length}`); _embedded.items.forEach((article: WallabagArticle) => { - // if (articles?.length === +WALLABAG_MAX_ARTICLES) { - // console.log('Reached 30 articles'); - // return; - // } const rawTags = article?.tags?.map((tag) => tag.slug); if (intersect(rawTags, Object.values(ArticleTag))?.length > 0) { const tags = rawTags.map((rawTag) => rawTag as unknown as ArticleTag); diff --git a/src/routes/og/+server.ts b/src/routes/og/+server.ts index 76eaa60..2aeb469 100644 --- a/src/routes/og/+server.ts +++ b/src/routes/og/+server.ts @@ -1,10 +1,5 @@ import type { RequestHandler } from '@sveltejs/kit'; -import satori from 'satori'; -import { Resvg } from '@resvg/resvg-js'; -import { html as toReactNode } from 'satori-html'; -import FiraSansSemiBold from '$lib/fonts/FiraSans-SemiBold.ttf'; import SocialImageCard from '$lib/components/socialImageCard.svelte'; -import { dev } from '$app/environment'; import { componentToPng } from '$root/lib/renderImage'; const height = 630; From 47340c102e63c8317f45c038cf0c129c9e21525c Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Mon, 11 Dec 2023 16:26:10 -0800 Subject: [PATCH 2/6] Fixing eslint and types. Cleaning up bandcamp scrape and tests. --- .eslintrc.cjs | 30 ++++++++++++++-------- src/lib/renderImage.ts | 4 ++- src/lib/types/album.ts | 5 +++- src/lib/util/fetchBandcampAlbums.test.ts | 2 -- src/lib/util/fetchBandcampAlbums.ts | 4 +-- src/routes/about/+page.svelte | 3 --- src/routes/articles/+page.ts | 1 - src/routes/articles/[page]/+page.server.ts | 1 + src/routes/og/+server.ts | 9 +++---- 9 files changed, 34 insertions(+), 25 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 3ccf435..770ef68 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,20 +1,30 @@ module.exports = { root: true, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:svelte/recommended', + 'prettier' + ], parser: '@typescript-eslint/parser', - extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], - plugins: ['svelte3', '@typescript-eslint'], - ignorePatterns: ['*.cjs'], - overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], - settings: { - 'svelte3/typescript': () => require('typescript') - }, + plugins: ['@typescript-eslint'], parserOptions: { sourceType: 'module', - ecmaVersion: 2020 + ecmaVersion: 2020, + extraFileExtensions: ['.svelte'] }, env: { browser: true, es2017: true, node: true - } -}; + }, + overrides: [ + { + files: ['*.svelte'], + parser: 'svelte-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser' + } + } + ] +}; \ No newline at end of file diff --git a/src/lib/renderImage.ts b/src/lib/renderImage.ts index 87a7f4a..357ff26 100644 --- a/src/lib/renderImage.ts +++ b/src/lib/renderImage.ts @@ -6,7 +6,9 @@ import { html as toReactNode } from 'satori-html'; import firaSansSemiBold from '$lib/fonts/FiraSans-SemiBold.ttf'; import { dev } from '$app/environment'; -export async function componentToPng(component, props, height, width) { +export async function componentToPng(component, + props: Record, + height: number, width: number) { const result = component.render(props); const markup = toReactNode(`${result.html}`); diff --git a/src/lib/types/album.ts b/src/lib/types/album.ts index 83c34ea..07ec0d1 100644 --- a/src/lib/types/album.ts +++ b/src/lib/types/album.ts @@ -1,9 +1,12 @@ +export type BandCampResults = { + collectionItems: Album[]; +} + export type Album = { url: string; artwork: string; title: string; artist: string; - src?: ExternalImageSource[]; }; export type ExternalImageSource = { diff --git a/src/lib/util/fetchBandcampAlbums.test.ts b/src/lib/util/fetchBandcampAlbums.test.ts index e08138a..09ddd5a 100644 --- a/src/lib/util/fetchBandcampAlbums.test.ts +++ b/src/lib/util/fetchBandcampAlbums.test.ts @@ -4,14 +4,12 @@ import { fetchBandcampAlbums } from './fetchBandcampAlbums'; describe('test fetchBandcampAlbums', () => { it('fetches bandcamp albums', async () => { const albums = await fetchBandcampAlbums(); - console.log('albums'); expect(albums).not.toBeNull(); expect(albums).toBeTruthy(); expect(albums?.length).toBeGreaterThan(0); for (const album of albums) { expect(album?.artist).toHaveLength; expect(album?.artwork).toHaveLength; - expect(album?.src).toHaveLength; expect(album?.title).toHaveLength; expect(album?.url).toHaveLength; } diff --git a/src/lib/util/fetchBandcampAlbums.ts b/src/lib/util/fetchBandcampAlbums.ts index 3aa06d1..9c01bd1 100644 --- a/src/lib/util/fetchBandcampAlbums.ts +++ b/src/lib/util/fetchBandcampAlbums.ts @@ -2,7 +2,7 @@ import { BANDCAMP_USERNAME, USE_REDIS_CACHE } from '$env/static/private'; import scrapeIt from 'scrape-it'; import type { ScrapeResult } from 'scrape-it'; import { redis } from '$lib/server/redis'; -import type { Album } from '../types/album'; +import type { Album, BandCampResults } from '../types/album'; export async function fetchBandcampAlbums() { try { @@ -18,7 +18,7 @@ export async function fetchBandcampAlbums() { } } - const { data }: ScrapeResult = await scrapeIt( + const { data }: ScrapeResult = await scrapeIt( `https://bandcamp.com/${BANDCAMP_USERNAME}`, { collectionItems: { diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte index c9f824a..a09c104 100644 --- a/src/routes/about/+page.svelte +++ b/src/routes/about/+page.svelte @@ -1,5 +1,4 @@ diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts index a24bf43..15731c5 100644 --- a/src/routes/+page.server.ts +++ b/src/routes/+page.server.ts @@ -41,8 +41,13 @@ export const load: PageServerLoad = async ({ fetch, setHeaders, url }) => { url: currentPageUrl }); - const albums = async () => await fetchBandcampAlbums(); - const articles = async () => await fetch(`/api/articles?page=1&limit=3`); + const [albums, articles] = await Promise.all([ + await fetchBandcampAlbums(), + (await fetch(`/api/articles?page=1&limit=3`)).json() + ]); + + console.log('Albums', albums); + console.log('Articles', articles); setHeaders({ 'cache-control': 'max-age=43200' @@ -50,7 +55,7 @@ export const load: PageServerLoad = async ({ fetch, setHeaders, url }) => { return { baseUrl, metaTagsChild: metaTags, - albums: albums(), - articlesData: (await articles()).json() + albums, + articlesData: articles }; }; \ No newline at end of file From b2eb0b874d60ad4b1730caf088c57a624b688c09 Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Fri, 15 Dec 2023 15:13:59 -0800 Subject: [PATCH 6/6] Moving courses taken to a json file and looping. Created components for courses and tech list items. Fixed TypeScript issues. --- .vscode/settings.json | 1 + src/lib/assets/images/cottage.png | Bin 0 -> 43189 bytes src/lib/assets/images/rural.png | Bin 0 -> 38891 bytes src/lib/components/ExternalLink.svelte | 3 +- src/lib/types/article.ts | 9 + src/lib/types/courses.ts | 12 + src/lib/util/fetchBandcampAlbums.ts | 1 + src/routes/+page.server.ts | 7 +- src/routes/+page.svelte | 3 +- src/routes/about/+page.svelte | 300 +++++---------------- src/routes/about/CourseCard.svelte | 40 +++ src/routes/about/TechListItem.svelte | 47 ++++ src/routes/about/course.json | 88 ++++++ src/routes/api.ts | 6 +- src/routes/api/articles/+server.ts | 3 +- src/routes/articles/[page]/+page.server.ts | 11 +- 16 files changed, 280 insertions(+), 251 deletions(-) create mode 100644 src/lib/assets/images/cottage.png create mode 100644 src/lib/assets/images/rural.png create mode 100644 src/lib/types/courses.ts create mode 100644 src/routes/about/CourseCard.svelte create mode 100644 src/routes/about/TechListItem.svelte create mode 100644 src/routes/about/course.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 1d2895a..e6e1636 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,6 +2,7 @@ "cSpell.words": [ "Bandcamp", "bradleyshellnut", + "clazz", "iconify", "Mullvad", "nextjs", diff --git a/src/lib/assets/images/cottage.png b/src/lib/assets/images/cottage.png new file mode 100644 index 0000000000000000000000000000000000000000..4f92d65c552578c22a2d5a19564e8fe6aba13ae7 GIT binary patch literal 43189 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 aghP>Ota^sr>o5H8T2oC=wM_ZtyZ;4KODQV= literal 0 HcmV?d00001 diff --git a/src/lib/assets/images/rural.png b/src/lib/assets/images/rural.png new file mode 100644 index 0000000000000000000000000000000000000000..7aabdc78d66d9909829a11b25f2f0446af1323bc GIT binary patch literal 38891 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 z�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 literal 0 HcmV?d00001 diff --git a/src/lib/components/ExternalLink.svelte b/src/lib/components/ExternalLink.svelte index 3632a52..4e2fcd5 100644 --- a/src/lib/components/ExternalLink.svelte +++ b/src/lib/components/ExternalLink.svelte @@ -6,11 +6,12 @@ export let href: string; export let ariaLabel: string; export let showIcon: boolean = false; + export let clazz = ""; export let icon: IconifyIcon = OpenInNew; - + {#if showIcon} diff --git a/src/lib/types/article.ts b/src/lib/types/article.ts index b93b96c..33d5e60 100644 --- a/src/lib/types/article.ts +++ b/src/lib/types/article.ts @@ -29,3 +29,12 @@ export type WallabagTag = { label: string; slug: string; }; + +export type ArticlePageLoad = { + articles: Article[]; + currentPage: number; + totalPages: number; + limit: number; + totalArticles: number; + cacheControl: string; +}; diff --git a/src/lib/types/courses.ts b/src/lib/types/courses.ts new file mode 100644 index 0000000..b4edbb6 --- /dev/null +++ b/src/lib/types/courses.ts @@ -0,0 +1,12 @@ +export type Course = { + name: string, + externalLinks: ExternalLink[], + tags: string[] +} + +export type ExternalLink = { + ariaLabel: string, + href: string, + showIcon: boolean, + text: string +} \ No newline at end of file diff --git a/src/lib/util/fetchBandcampAlbums.ts b/src/lib/util/fetchBandcampAlbums.ts index 9c01bd1..dbeca6b 100644 --- a/src/lib/util/fetchBandcampAlbums.ts +++ b/src/lib/util/fetchBandcampAlbums.ts @@ -55,5 +55,6 @@ export async function fetchBandcampAlbums() { } } catch (error) { console.error(error); + return []; } } diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts index 15731c5..f60e295 100644 --- a/src/routes/+page.server.ts +++ b/src/routes/+page.server.ts @@ -2,6 +2,8 @@ import type { MetaTagsProps } from 'svelte-meta-tags'; import { PUBLIC_SITE_URL } from '$env/static/public'; import type { PageServerLoad } from './$types'; import { fetchBandcampAlbums } from '$lib/util/fetchBandcampAlbums'; +import type { Album } from '$lib/types/album'; +import type { ArticlePageLoad } from '$lib/types/article'; export const load: PageServerLoad = async ({ fetch, setHeaders, url }) => { let baseUrl = 'https://bradleyshellnut.com'; @@ -41,14 +43,11 @@ export const load: PageServerLoad = async ({ fetch, setHeaders, url }) => { url: currentPageUrl }); - const [albums, articles] = await Promise.all([ + const [albums, articles]: [Album[], ArticlePageLoad] = await Promise.all([ await fetchBandcampAlbums(), (await fetch(`/api/articles?page=1&limit=3`)).json() ]); - console.log('Albums', albums); - console.log('Articles', articles); - setHeaders({ 'cache-control': 'max-age=43200' }); diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index a0155e5..333088c 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -3,8 +3,7 @@ import Bandcamp from '$lib/components/bandcamp/index.svelte'; import Articles from '$lib/components/Articles.svelte'; import type { Album } from '$lib/types/album'; - import type { Article } from '$lib/types/article'; - import type { ArticlePageLoad } from './articles/[page]/+page.server'; + import type { Article, ArticlePageLoad } from '$lib/types/article'; export let data: PageData; let albums: Album[]; diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte index a09c104..278983f 100644 --- a/src/routes/about/+page.svelte +++ b/src/routes/about/+page.svelte @@ -9,12 +9,16 @@ import Svelte from '@iconify-icons/simple-icons/svelte'; import TypeScript from '@iconify-icons/simple-icons/typescript'; import LazyImage from '$lib/components/LazyImage.svelte'; - import adventure from '$lib/assets/images/adventure.png?as=run:0'; + import rural from '$lib/assets/images/rural.png?as=run:0'; import tortie_derp from '$lib/assets/images/tortie_derp.jpg?as=run'; import orange_derp from '$lib/assets/images/orange_derp.jpg?as=run'; import turnip from '$lib/assets/images/turnip.svg'; - import Tag from '$lib/components/Tag.svelte'; - import ExternalLink from '$lib/components/ExternalLink.svelte'; + import CourseCard from './CourseCard.svelte'; + import courseData from './course.json'; + import type { Course } from '$root/lib/types/courses'; + import TechListItem from './TechListItem.svelte'; + + const courses: Course[] = courseData.courses;

@@ -146,113 +121,16 @@ those below:

-
-

- - Wes Bos - -

-
- - - - -
-
-
-

- - Scott Tolinski - - - Level Up Tutorials - -

-
- - - - - - -
-
-
-

- - Amy Kapernick - - - Level Up Tutorials - -

-
- -
-
-
-

- - Andrew Mead - -

-
- - - -
-
-
-

- - Steven Grider - -

-
- - - - - - - -
-
+ {#each courses as course} + + {/each}

Other fun things about me…

- Currently traveling around the world! + Living it up in Mountain View

- -

Traveling around

+ +

Mountain View

-

Bringing these two cats, Turnip and Taco, along for the ride.

+

Hanging out with these two cats, Turnip and Taco.

-

Turnip Turnip

+

Turnip Turnip

@@ -310,31 +188,6 @@ gap: 1rem; margin-top: 1rem; font-size: 2rem; - - & a { - display: grid; - justify-items: center; - - font-weight: bold; - margin-right: 0; - text-decoration: none; - padding: 0.3rem; - margin-left: 1rem; - color: var(--lightGrey); - - & p { - font-size: 1.5rem; - padding-top: 0.3rem; - margin: 0; - } - - &:hover { - color: var(--shellYellow); - & p { - color: var(--shellYellow); - } - } - } } .extracurricular { @@ -343,10 +196,6 @@ place-content: center; gap: 1.5rem; - .card { - max-width: 30rem; - } - @media (max-width: 1000px) { grid-template-columns: repeat(2, auto); --cardHeightMin: 20rem; @@ -358,13 +207,6 @@ } } - .tags { - display: flex; - flex-wrap: wrap; - justify-content: left; - align-items: center; - } - .cat-pics { display: grid; grid-template-columns: repeat(2, minmax(200px, 0.3fr)); diff --git a/src/routes/about/CourseCard.svelte b/src/routes/about/CourseCard.svelte new file mode 100644 index 0000000..d64d9e4 --- /dev/null +++ b/src/routes/about/CourseCard.svelte @@ -0,0 +1,40 @@ + + +
+

+ {#each externalLinks as link} + + {link.text} + + {/each} +

+
+ {#each tags as tag} + + {/each} +
+
+ + \ No newline at end of file diff --git a/src/routes/about/TechListItem.svelte b/src/routes/about/TechListItem.svelte new file mode 100644 index 0000000..dbbbb13 --- /dev/null +++ b/src/routes/about/TechListItem.svelte @@ -0,0 +1,47 @@ + + + + +

{itemText}

+
+ + diff --git a/src/routes/about/course.json b/src/routes/about/course.json new file mode 100644 index 0000000..3014bf9 --- /dev/null +++ b/src/routes/about/course.json @@ -0,0 +1,88 @@ +{ + "courses": [ + { + "name": "Wes Bos", + "externalLinks": [ + { + "ariaLabel": "Wes Bos Courses", + "href": "https://wesbos.com/courses", + "showIcon": true, + "text": "Wes Bos" + } + ], + "tags": ["React", "GraphQL", "Gatsby", "JavaScript"] + }, + { + "name": "Scott Tolinski", + "externalLinks": [ + { + "ariaLabel": "Scott Tolinski", + "href": "https://www.scotttolinski.com", + "showIcon": true, + "text": "Scott Tolinski" + }, + { + "ariaLabel": "Levelup Tutorials", + "href": "https://levelup.video", + "showIcon": true, + "text": "Levelup Tutorials" + } + ], + "tags": ["React", "TypeScript", "Svelte Kit", "Remix", "Figma", "Design Systems"] + }, + { + "name": "Josh Comeau", + "externalLinks": [ + { + "ariaLabel": "Josh Comeau", + "href": "https://www.joshwcomeau.com", + "showIcon": true, + "text": "Josh Comeau" + }, + { + "ariaLabel": "The Joy of React", + "href": "https://www.joyofreact.com/", + "showIcon": true, + "text": "The Joy of React" + } + ], + "tags": ["Full Stack React", "NextJS"] + }, + { + "name": "Amy Kapernick", + "externalLinks": [ + { + "ariaLabel": "Amy Kapernick", + "href": "https://www.amyskapers.dev/", + "showIcon": true, + "text": "Amy Kapernick" + } + ], + "tags": ["Accessibility for Everyone"] + }, + { + "name": "Andrew Mead", + "externalLinks": [ + { + "ariaLabel": "Andrew Mead on Udemy", + "href": "https://www.udemy.com/user/andrewmead/", + "showIcon": true, + "text": "Andrew Mead" + } + ], + "tags": ["GraphQL", "Apollo", "Prisma"] + }, + { + "name": "Steven Grider", + "externalLinks": [ + { + "ariaLabel": "Steven Grider on Udemy", + "href": "https://www.udemy.com/user/sgslo/", + "showIcon": true, + "text": "Steven Grider" + } + ], + "tags": ["React", "Redux", "Docker", "GraphQL", "CSS", "HTML", "JavaScript"] + } + ] +} diff --git a/src/routes/api.ts b/src/routes/api.ts index b6aeac2..5d9ecc2 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -10,7 +10,7 @@ import { USE_REDIS_CACHE } from '$env/static/private'; import intersect from 'just-intersect'; -import type { Article, WallabagArticle } from '$lib/types/article'; +import type { Article, ArticlePageLoad, WallabagArticle } from '$lib/types/article'; import { ArticleTag } from '$lib/types/articleTag'; import type { PageQuery } from '$lib/types/pageQuery'; import { URLSearchParams } from 'url'; @@ -77,7 +77,7 @@ export async function fetchArticlesApi( throw new Error(pageResponse.statusText); } - const cacheControl = pageResponse.headers.get('cache-control'); + const cacheControl = pageResponse.headers.get('cache-control') || 'no-cache'; const { _embedded, page, pages, total, limit } = await pageResponse.json(); const articles: Article[] = []; @@ -101,7 +101,7 @@ export async function fetchArticlesApi( } }); - const responseData = { + const responseData: ArticlePageLoad = { articles, currentPage: page, totalPages: pages > +WALLABAG_MAX_PAGES ? +WALLABAG_MAX_PAGES : pages, diff --git a/src/routes/api/articles/+server.ts b/src/routes/api/articles/+server.ts index a0d42a9..ad6de07 100644 --- a/src/routes/api/articles/+server.ts +++ b/src/routes/api/articles/+server.ts @@ -1,9 +1,8 @@ import { json, error } from '@sveltejs/kit'; import { WALLABAG_MAX_PAGES } from '$env/static/private'; -import type { RequestHandler, RequestEvent } from './$types'; import { fetchArticlesApi } from '$root/routes/api'; -export const GET: RequestHandler = async ({ setHeaders, url }: RequestEvent) => { +export async function GET({ setHeaders, url }) { const page = url?.searchParams?.get('page') || '1'; if (+page > +WALLABAG_MAX_PAGES) { error(404, 'Page does not exist'); diff --git a/src/routes/articles/[page]/+page.server.ts b/src/routes/articles/[page]/+page.server.ts index 8245397..ccd8a50 100644 --- a/src/routes/articles/[page]/+page.server.ts +++ b/src/routes/articles/[page]/+page.server.ts @@ -2,18 +2,9 @@ import { error } from '@sveltejs/kit'; import type { PageServerLoad } from './$types'; import { WALLABAG_MAX_PAGES } from '$env/static/private'; import { PUBLIC_SITE_URL } from '$env/static/public'; -import type { Article } from '$lib/types/article'; +import type { ArticlePageLoad } from '$lib/types/article'; import type { MetaTagsProps } from 'svelte-meta-tags'; -export type ArticlePageLoad = { - articles: Article[]; - currentPage: number; - totalPages: number; - limit: number; - totalArticles: number; - cacheControl: string; -}; - export const load: PageServerLoad = async ({ fetch, params, setHeaders, url }) => { const { page } = params; if (+page > +WALLABAG_MAX_PAGES) {