Skip to content

Commit 1b0e811

Browse files
codercatdevmgehrls
andauthored
Release to Prod (#467)
* fix start date (#453) * add author and html to rss (#455) * Fix/course data (#457) * Fixed Author lookup * update sponsor listings * add key to force refresh of data (#460) * #418 feature:/account details (#445) * add feature/account details #418 * fixed wrong href * Fix/picks (#466) * large links wrap text * season 2 picks * fix data refresh issue * fix guest pick wrap * season 1 * move cwcc to posts * season 0 --------- Co-authored-by: Matt Gehrls <mattgehrls@gmail.com>
1 parent cb5a535 commit 1b0e811

File tree

144 files changed

+3954
-2176
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+3954
-2176
lines changed

apps/codingcatdev/src/routes/(content-single)/(non-course)/Author.svelte

Lines changed: 188 additions & 186 deletions
Original file line numberDiff line numberDiff line change
@@ -33,200 +33,202 @@
3333
</script>
3434

3535
{#if data?.content}
36-
<div class="flex justify-center">
37-
<section class="flex flex-col justify-center w-full gap-8 p-2 xl:flex-row xl:p-8">
38-
<div class="flex flex-col w-full gap-2 md:gap-8 max-w-7xl">
39-
<ol class="bcu-breadcrumb">
40-
<li class="capitalize bcu-crumb">
41-
<a href={`/${title}`}>{title}</a>
42-
</li>
43-
<li class="bcu-crumb-separator" aria-hidden>&rsaquo;</li>
44-
<li>{data.content.name}</li>
45-
</ol>
46-
<h1>{data?.content?.name}</h1>
47-
{#if data?.content?.cover}
48-
<div class="w-40 md:w-80">
49-
{#key data.content.cover}
50-
<Image
51-
src={data.content.cover}
52-
alt={data.content.name}
53-
classes="object-cover w-full bg-cover rounded bg-black/50 aspect-square"
54-
/>
55-
{/key}
56-
</div>
57-
{/if}
58-
<section class="flex flex-wrap gap-8 m-2 md:gap-4 socials">
59-
{#if data?.content?.socials}
60-
{#if data.content?.socials?.devto}
61-
<a
62-
target="_blank"
63-
rel="noopener noreferrer"
64-
href={data.content?.socials?.devto}
65-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
66-
>
67-
<Icon src={Devdotto} class="w-8" theme="solid" />
68-
</a>
69-
{/if}
70-
{#if data.content?.socials?.discord}
71-
<a
72-
target="_blank"
73-
rel="noopener noreferrer"
74-
href={data.content?.socials?.discord}
75-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
76-
>
77-
<Icon src={Discord} class="w-8" theme="solid" />
78-
</a>
79-
{/if}
80-
{#if data.content?.socials?.facebook}
81-
<a
82-
target="_blank"
83-
rel="noopener noreferrer"
84-
href={data.content?.socials?.facebook}
85-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
86-
>
87-
<Icon src={Facebook} class="w-8" theme="solid" />
88-
</a>
89-
{/if}
90-
{#if data.content?.socials?.github}
91-
<a
92-
target="_blank"
93-
rel="noopener noreferrer"
94-
href={data.content?.socials?.github}
95-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
96-
>
97-
<Icon src={Github} class="w-8" theme="solid" />
98-
</a>
99-
{/if}
100-
{#if data.content?.socials?.instagram}
101-
<a
102-
target="_blank"
103-
rel="noopener noreferrer"
104-
href={data.content?.socials?.instagram}
105-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
106-
>
107-
<Icon src={Instagram} class="w-8" theme="solid" />
108-
</a>
109-
{/if}
110-
{#if data.content?.socials?.linkedin}
111-
<a
112-
target="_blank"
113-
rel="noopener noreferrer"
114-
href={data.content?.socials?.linkedin}
115-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
116-
>
117-
<Icon src={Linkedin} class="w-8" theme="solid" />
118-
</a>
119-
{/if}
120-
{#if data.content?.socials?.mastodon}
121-
<a
122-
target="_blank"
123-
rel="noopener noreferrer"
124-
href={data.content?.socials?.mastodon}
125-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
126-
>
127-
<Icon src={Mastodon} class="w-8" theme="solid" />
128-
</a>
129-
{/if}
130-
{#if data.content?.socials?.medium}
131-
<a
132-
target="_blank"
133-
rel="noopener noreferrer"
134-
href={data.content?.socials?.medium}
135-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
136-
>
137-
<Icon src={Medium} class="w-8" theme="solid" />
138-
</a>
139-
{/if}
140-
{#if data.content?.socials?.polywork}
141-
<a
142-
target="_blank"
143-
rel="noopener noreferrer"
144-
href={data.content?.socials?.polywork}
145-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
146-
>
147-
<Icon src={Polywork} class="w-8" theme="solid" />
148-
</a>
149-
{/if}
150-
{#if data.content?.socials?.stackoverflow}
151-
<a
152-
target="_blank"
153-
rel="noopener noreferrer"
154-
href={data.content?.socials?.stackoverflow}
155-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
156-
>
157-
<Icon src={Stackoverflow} class="w-8" theme="solid" />
158-
</a>
159-
{/if}
160-
{#if data.content?.socials?.tiktok}
161-
<a
162-
target="_blank"
163-
rel="noopener noreferrer"
164-
href={data.content?.socials?.tiktok}
165-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
166-
>
167-
<Icon src={Tiktok} class="w-8" theme="solid" />
168-
</a>
169-
{/if}
170-
{#if data.content?.socials?.twitch}
171-
<a
172-
target="_blank"
173-
rel="noopener noreferrer"
174-
href={data.content?.socials?.twitch}
175-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
176-
>
177-
<Icon src={Twitch} class="w-8" theme="solid" />
178-
</a>
179-
{/if}
180-
{#if data.content?.socials?.twitter}
181-
<a
182-
target="_blank"
183-
rel="noopener noreferrer"
184-
href={data.content?.socials?.twitter}
185-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
186-
>
187-
<Icon src={Twitter} class="w-8" theme="solid" />
188-
</a>
189-
{/if}
190-
{#if data.content?.socials?.youtube}
191-
<a
192-
target="_blank"
193-
rel="noopener noreferrer"
194-
href={data.content?.socials?.youtube}
195-
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
196-
>
197-
<Icon src={Youtube} class="w-8" theme="solid" />
198-
</a>
199-
{/if}
200-
{#if data.content?.websites}
201-
{#each data.content?.websites as website}
36+
{#key data?.content?.slug}
37+
<div class="flex justify-center">
38+
<section class="flex flex-col justify-center w-full gap-8 p-2 xl:flex-row xl:p-8">
39+
<div class="flex flex-col w-full gap-2 md:gap-8 max-w-7xl">
40+
<ol class="bcu-breadcrumb">
41+
<li class="capitalize bcu-crumb">
42+
<a href={`/${title}`}>{title}</a>
43+
</li>
44+
<li class="bcu-crumb-separator" aria-hidden>&rsaquo;</li>
45+
<li>{data.content.name}</li>
46+
</ol>
47+
<h1>{data?.content?.name}</h1>
48+
{#if data?.content?.cover}
49+
<div class="w-40 md:w-80">
50+
{#key data.content.cover}
51+
<Image
52+
src={data.content.cover}
53+
alt={data.content.name}
54+
classes="object-cover w-full bg-cover rounded bg-black/50 aspect-square"
55+
/>
56+
{/key}
57+
</div>
58+
{/if}
59+
<section class="flex flex-wrap gap-8 m-2 md:gap-4 socials">
60+
{#if data?.content?.socials}
61+
{#if data.content?.socials?.devto}
62+
<a
63+
target="_blank"
64+
rel="noopener noreferrer"
65+
href={data.content?.socials?.devto}
66+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
67+
>
68+
<Icon src={Devdotto} class="w-8" theme="solid" />
69+
</a>
70+
{/if}
71+
{#if data.content?.socials?.discord}
72+
<a
73+
target="_blank"
74+
rel="noopener noreferrer"
75+
href={data.content?.socials?.discord}
76+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
77+
>
78+
<Icon src={Discord} class="w-8" theme="solid" />
79+
</a>
80+
{/if}
81+
{#if data.content?.socials?.facebook}
82+
<a
83+
target="_blank"
84+
rel="noopener noreferrer"
85+
href={data.content?.socials?.facebook}
86+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
87+
>
88+
<Icon src={Facebook} class="w-8" theme="solid" />
89+
</a>
90+
{/if}
91+
{#if data.content?.socials?.github}
92+
<a
93+
target="_blank"
94+
rel="noopener noreferrer"
95+
href={data.content?.socials?.github}
96+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
97+
>
98+
<Icon src={Github} class="w-8" theme="solid" />
99+
</a>
100+
{/if}
101+
{#if data.content?.socials?.instagram}
102+
<a
103+
target="_blank"
104+
rel="noopener noreferrer"
105+
href={data.content?.socials?.instagram}
106+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
107+
>
108+
<Icon src={Instagram} class="w-8" theme="solid" />
109+
</a>
110+
{/if}
111+
{#if data.content?.socials?.linkedin}
112+
<a
113+
target="_blank"
114+
rel="noopener noreferrer"
115+
href={data.content?.socials?.linkedin}
116+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
117+
>
118+
<Icon src={Linkedin} class="w-8" theme="solid" />
119+
</a>
120+
{/if}
121+
{#if data.content?.socials?.mastodon}
122+
<a
123+
target="_blank"
124+
rel="noopener noreferrer"
125+
href={data.content?.socials?.mastodon}
126+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
127+
>
128+
<Icon src={Mastodon} class="w-8" theme="solid" />
129+
</a>
130+
{/if}
131+
{#if data.content?.socials?.medium}
132+
<a
133+
target="_blank"
134+
rel="noopener noreferrer"
135+
href={data.content?.socials?.medium}
136+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
137+
>
138+
<Icon src={Medium} class="w-8" theme="solid" />
139+
</a>
140+
{/if}
141+
{#if data.content?.socials?.polywork}
142+
<a
143+
target="_blank"
144+
rel="noopener noreferrer"
145+
href={data.content?.socials?.polywork}
146+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
147+
>
148+
<Icon src={Polywork} class="w-8" theme="solid" />
149+
</a>
150+
{/if}
151+
{#if data.content?.socials?.stackoverflow}
202152
<a
203153
target="_blank"
204154
rel="noopener noreferrer"
205-
href={website}
155+
href={data.content?.socials?.stackoverflow}
206156
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
207157
>
208-
<Icon src={GlobeAmericas} class="w-8" theme="solid" />
158+
<Icon src={Stackoverflow} class="w-8" theme="solid" />
209159
</a>
210-
{/each}
160+
{/if}
161+
{#if data.content?.socials?.tiktok}
162+
<a
163+
target="_blank"
164+
rel="noopener noreferrer"
165+
href={data.content?.socials?.tiktok}
166+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
167+
>
168+
<Icon src={Tiktok} class="w-8" theme="solid" />
169+
</a>
170+
{/if}
171+
{#if data.content?.socials?.twitch}
172+
<a
173+
target="_blank"
174+
rel="noopener noreferrer"
175+
href={data.content?.socials?.twitch}
176+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
177+
>
178+
<Icon src={Twitch} class="w-8" theme="solid" />
179+
</a>
180+
{/if}
181+
{#if data.content?.socials?.twitter}
182+
<a
183+
target="_blank"
184+
rel="noopener noreferrer"
185+
href={data.content?.socials?.twitter}
186+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
187+
>
188+
<Icon src={Twitter} class="w-8" theme="solid" />
189+
</a>
190+
{/if}
191+
{#if data.content?.socials?.youtube}
192+
<a
193+
target="_blank"
194+
rel="noopener noreferrer"
195+
href={data.content?.socials?.youtube}
196+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
197+
>
198+
<Icon src={Youtube} class="w-8" theme="solid" />
199+
</a>
200+
{/if}
201+
{#if data.content?.websites}
202+
{#each data.content?.websites as website}
203+
<a
204+
target="_blank"
205+
rel="noopener noreferrer"
206+
href={website}
207+
class="hover:!text-primary-500 !text-surface-900 dark:!text-surface-300 dark:hover:!text-primary-500 hover:!scale-110"
208+
>
209+
<Icon src={GlobeAmericas} class="w-8" theme="solid" />
210+
</a>
211+
{/each}
212+
{/if}
211213
{/if}
214+
</section>
215+
<section class="flex flex-col flex-grow w-full gap-2 markdown md:gap-8">
216+
<CopyCodeInjector>
217+
<slot />
218+
</CopyCodeInjector>
219+
</section>
220+
{#if data?.authorCourses?.length}
221+
<h2>Courses</h2>
222+
<ContentList contentItems={data.authorCourses} contentType={ContentType.course} />
223+
{/if}
224+
{#if data?.authorPosts?.length}
225+
<h2>Posts</h2>
226+
<ContentList contentItems={data.authorPosts} contentType={ContentType.post} />
212227
{/if}
213-
</section>
214-
<section class="flex flex-col flex-grow w-full gap-2 markdown md:gap-8">
215-
<CopyCodeInjector>
216-
<slot />
217-
</CopyCodeInjector>
218-
</section>
219-
{#if data?.authorCourses?.length}
220-
<h2>Courses</h2>
221-
<ContentList contentItems={data.authorCourses} contentType={ContentType.course} />
222-
{/if}
223-
{#if data?.authorPosts?.length}
224-
<h2>Posts</h2>
225-
<ContentList contentItems={data.authorPosts} contentType={ContentType.post} />
226-
{/if}
227-
</div>
228-
</section>
229-
</div>
228+
</div>
229+
</section>
230+
</div>
231+
{/key}
230232
{:else}
231233
<p>No data found yet</p>
232234
{/if}

0 commit comments

Comments
 (0)