mirror of
https://github.com/Fluffy-Bean/website.git
synced 2024-12-28 02:16:10 +00:00
Add some of my Certificates to the page
This commit is contained in:
parent
683ece66db
commit
5c41d81288
|
@ -10,9 +10,9 @@ const { href, title, body } = Astro.props;
|
||||||
|
|
||||||
<li class="link-card">
|
<li class="link-card">
|
||||||
<a href={href}>
|
<a href={href}>
|
||||||
<h2>
|
<h3>
|
||||||
{title}
|
{title}
|
||||||
</h2>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
{body}
|
{body}
|
||||||
</p>
|
</p>
|
||||||
|
@ -32,7 +32,6 @@ const { href, title, body } = Astro.props;
|
||||||
|
|
||||||
border-radius: $radius;
|
border-radius: $radius;
|
||||||
|
|
||||||
box-shadow: 0 0 0 rgba(#000, 0);
|
|
||||||
list-style: none;
|
list-style: none;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
|
|
57
src/components/Certificate.astro
Normal file
57
src/components/Certificate.astro
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
---
|
||||||
|
const { certificate } = Astro.props;
|
||||||
|
---
|
||||||
|
|
||||||
|
<div class="certificate">
|
||||||
|
<h3>{certificate.data.title}</h3>
|
||||||
|
<p>{certificate.data.achieved}</p>
|
||||||
|
<p>By: {certificate.data.provider}</p>
|
||||||
|
|
||||||
|
{certificate.data.skills && (
|
||||||
|
<ul class="pill-list">
|
||||||
|
{certificate.data.skills.map(skill => (
|
||||||
|
<li class="pill">{skill}</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{certificate.data.link && (
|
||||||
|
<a href={certificate.data.link} class="button">View</a>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
@import "../styles/vars.scss";
|
||||||
|
|
||||||
|
.certificate {
|
||||||
|
padding: 16px;
|
||||||
|
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
|
||||||
|
text-decoration: none;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
border-radius: $radius;
|
||||||
|
border: 2px solid $gray;
|
||||||
|
background-color: $dark;
|
||||||
|
color: $light;
|
||||||
|
|
||||||
|
> h3 {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
> .pill-list {
|
||||||
|
margin-top: 4px;
|
||||||
|
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
> .button {
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"title": "Databases with SQL and Python",
|
||||||
|
"provider": "Hyperskill",
|
||||||
|
"achieved": "2023-07-01",
|
||||||
|
"skills": [ "SQL", "SQLAlchemy", "Python", "SQLite" ],
|
||||||
|
"link": ""
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"title": "Introduction to Command Line and Unix Shell",
|
||||||
|
"provider": "Hyperskill",
|
||||||
|
"achieved": "2023-07-01",
|
||||||
|
"skills": [ "Bash", "Shell Scripting", "Linux", "Unix" ],
|
||||||
|
"link": ""
|
||||||
|
}
|
7
src/content/certificates/Introduction-to-Python.json
Normal file
7
src/content/certificates/Introduction-to-Python.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"title": "Introduction to Python",
|
||||||
|
"provider": "Hyperskill",
|
||||||
|
"achieved": "2023-07-01",
|
||||||
|
"skills": [ "Python" ],
|
||||||
|
"link": ""
|
||||||
|
}
|
7
src/content/certificates/Introduction-to-SQL.json
Normal file
7
src/content/certificates/Introduction-to-SQL.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"title": "Introduction to SQL",
|
||||||
|
"provider": "Hyperskill",
|
||||||
|
"achieved": "2023-07-01",
|
||||||
|
"skills": [ "SQL", "SQLite", "Databases" ],
|
||||||
|
"link": ""
|
||||||
|
}
|
|
@ -22,7 +22,19 @@ const projectsCollection = defineCollection({
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const certificatesCollection = defineCollection({
|
||||||
|
type: "data",
|
||||||
|
schema: z.object({
|
||||||
|
title: z.string(),
|
||||||
|
provider: z.string(),
|
||||||
|
achieved: z.date(),
|
||||||
|
skills: z.array(z.string()).optional(),
|
||||||
|
link: z.string().optional(),
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
|
||||||
export const collections = {
|
export const collections = {
|
||||||
"posts": postsCollection,
|
"posts": postsCollection,
|
||||||
"projects": projectsCollection,
|
"projects": projectsCollection,
|
||||||
|
"certificates": certificatesCollection,
|
||||||
};
|
};
|
||||||
|
|
|
@ -49,6 +49,14 @@ const { Content } = await post.render();
|
||||||
#markdown {
|
#markdown {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
padding-bottom: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
padding-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: $orange;
|
color: $orange;
|
||||||
|
|
|
@ -1,12 +1,16 @@
|
||||||
---
|
---
|
||||||
import { getPosts} from "../utils";
|
import { getCollection } from "astro:content";
|
||||||
|
|
||||||
|
import { getPosts } from "../utils";
|
||||||
import Layout from "../layouts/Layout.astro";
|
import Layout from "../layouts/Layout.astro";
|
||||||
import Card from "../components/Card.astro";
|
import Card from "../components/Card.astro";
|
||||||
|
import Certificate from "../components/Certificate.astro";
|
||||||
import Music from "../components/Music.astro";
|
import Music from "../components/Music.astro";
|
||||||
|
|
||||||
const tools = ["Proxmox", "JetBrain IDEs", "Docker", "Linux", "SQLite", "Postgres", "MySQL"];
|
const tools = ["Proxmox", "JetBrain IDEs", "Docker", "Linux", "SQLite", "Postgres", "MySQL"];
|
||||||
const languages = ["Go", "Python", "HTML", "CSS", "Sass", "TypeScript", "JavaScript", "Scratch", "PHP", "SQL", "Bash"];
|
const languages = ["Go", "Python", "HTML", "CSS", "Sass", "TypeScript", "JavaScript", "Scratch", "PHP", "SQL", "Bash"];
|
||||||
const frameworks = ["Gin", "Echo", "Flask", "Svelte", "Astro", "raylib"];
|
const frameworks = ["Gin", "Echo", "Flask", "Svelte", "Astro", "raylib"];
|
||||||
|
const certificates = await getCollection("certificates");
|
||||||
const projects = await getPosts("projects");
|
const projects = await getPosts("projects");
|
||||||
const posts = await getPosts("posts");
|
const posts = await getPosts("posts");
|
||||||
---
|
---
|
||||||
|
@ -15,7 +19,7 @@ const posts = await getPosts("posts");
|
||||||
<h1>Leggy Land</h1>
|
<h1>Leggy Land</h1>
|
||||||
<p>Made with Coffee, lots of it.</p>
|
<p>Made with Coffee, lots of it.</p>
|
||||||
|
|
||||||
<div style="margin: 32px 0">
|
<div style="margin: 16px 0 32px">
|
||||||
<Music />
|
<Music />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -33,7 +37,6 @@ const posts = await getPosts("posts");
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<h2>Find me on</h2>
|
|
||||||
<ul class="pill-list">
|
<ul class="pill-list">
|
||||||
<li><a class="button" href="https://www.twitter.com/fluffybeanUwU" target="_blank">Twitter</a></li>
|
<li><a class="button" href="https://www.twitter.com/fluffybeanUwU" target="_blank">Twitter</a></li>
|
||||||
<li><a class="button" href="https://bsky.app/profile/leggy.dev" target="_blank">BlueSky</a></li>
|
<li><a class="button" href="https://bsky.app/profile/leggy.dev" target="_blank">BlueSky</a></li>
|
||||||
|
@ -63,6 +66,17 @@ const posts = await getPosts("posts");
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<h2>Certificates</h2>
|
||||||
|
<ul class="project-list">
|
||||||
|
{certificates.map(certificate => (
|
||||||
|
<li>
|
||||||
|
<Certificate {certificate} />
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<h2>Projects</h2>
|
<h2>Projects</h2>
|
||||||
<ul class="project-list">
|
<ul class="project-list">
|
||||||
|
|
|
@ -5,4 +5,8 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
gap: 16px;
|
gap: 16px;
|
||||||
|
|
||||||
|
> li {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue