feat: add new projects page
This commit is contained in:
parent
a1060a7b79
commit
9e6d435903
@ -1,6 +1,7 @@
|
||||
const headerNavLinks = [
|
||||
{ href: '/blog', title: 'Blog' },
|
||||
{ href: '/tags', title: 'Tags' },
|
||||
{ href: '/projects', title: 'Projects' },
|
||||
{ href: '/about', title: 'About' },
|
||||
]
|
||||
|
||||
|
20
data/projectsData.js
Normal file
20
data/projectsData.js
Normal file
@ -0,0 +1,20 @@
|
||||
const projectsData = [
|
||||
{
|
||||
title: 'A Search Engine',
|
||||
description: `What is you could look up any information in the world? Webpages, images, videos
|
||||
and more. Google has many features to help you find exactly what you're looking
|
||||
for.`,
|
||||
imgSrc: '/static/images/google.png',
|
||||
href: 'https://www.google.com',
|
||||
},
|
||||
{
|
||||
title: 'The Time Machine',
|
||||
description: `Imagine being able to travel back in time or to the future. Simple turn the knob
|
||||
to the desired date and press "Go". No more worrying about lost keys or
|
||||
forgotten handphones with this simple yet affordable solution.`,
|
||||
imgSrc: '/static/images/time-machine.jpg',
|
||||
href: '/blog/the-time-machine',
|
||||
},
|
||||
]
|
||||
|
||||
export default projectsData
|
59
pages/projects.js
Normal file
59
pages/projects.js
Normal file
@ -0,0 +1,59 @@
|
||||
import Image from 'next/image'
|
||||
import siteMetadata from '@/data/siteMetadata'
|
||||
import projectsData from '@/data/projectsData'
|
||||
import Link from '@/components/Link'
|
||||
import { PageSeo } from '@/components/SEO'
|
||||
|
||||
export default function Projects() {
|
||||
return (
|
||||
<>
|
||||
<PageSeo
|
||||
title={`Projects - ${siteMetadata.author}`}
|
||||
description={siteMetadata.description}
|
||||
url={`${siteMetadata.siteUrl}/projects`}
|
||||
/>
|
||||
<div className="divide-y divide-gray-200 dark:divide-gray-700">
|
||||
<div className="pt-6 pb-8 space-y-2 md:space-y-5">
|
||||
<h1 className="text-3xl font-extrabold leading-9 tracking-tight text-gray-900 dark:text-gray-100 sm:text-4xl sm:leading-10 md:text-6xl md:leading-14">
|
||||
Projects
|
||||
</h1>
|
||||
<p className="text-lg leading-7 text-gray-500 dark:text-gray-400">
|
||||
Showcase your projects with a hero image (16 x 9)
|
||||
</p>
|
||||
</div>
|
||||
<div className="container py-12">
|
||||
<div className="flex flex-wrap -m-4">
|
||||
{projectsData.map((d) => (
|
||||
<div className="p-4 md:w-1/2" key={d.title}>
|
||||
<div className="h-full border-2 border-gray-200 border-opacity-60 dark:border-gray-700 rounded-md overflow-hidden">
|
||||
<Image
|
||||
alt={d.title}
|
||||
src={d.imgSrc}
|
||||
className="lg:h-48 md:h-36 object-cover object-center"
|
||||
width={721}
|
||||
height={401}
|
||||
/>
|
||||
<div className="p-6">
|
||||
<h2 className="text-2xl font-bold leading-8 tracking-tight mb-3">{d.title}</h2>
|
||||
<p className="prose text-gray-500 max-w-none dark:text-gray-400 mb-3">
|
||||
{d.description}
|
||||
</p>
|
||||
<div className="text-base font-medium leading-6">
|
||||
<Link
|
||||
href={d.href}
|
||||
className="text-blue-500 hover:text-blue-600 dark:hover:text-blue-400"
|
||||
aria-label={`Link to ${d.title}`}
|
||||
>
|
||||
Learn more →
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
BIN
public/static/images/google.png
Normal file
BIN
public/static/images/google.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
BIN
public/static/images/time-machine.jpg
Normal file
BIN
public/static/images/time-machine.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 419 KiB |
Loading…
x
Reference in New Issue
Block a user