Skip to content

Commit bac43ab

Browse files
committed
Initialize base blog
1 parent fd5c8cf commit bac43ab

35 files changed

+108
-1769
lines changed

README.md

Lines changed: 15 additions & 188 deletions
Large diffs are not rendered by default.

app/projects/page.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@ import Card from '@/components/Card'
33
import { genPageMetadata } from 'app/seo'
44

55
export const metadata = genPageMetadata({ title: 'Projects' })
6+
const date = new Date()
7+
const formatter = new Intl.DateTimeFormat('en-US', {
8+
month: 'numeric',
9+
day: 'numeric',
10+
year: 'numeric',
11+
})
12+
const formattedDate = formatter.format(date)
613

714
export default function Projects() {
815
return (
@@ -12,9 +19,7 @@ export default function Projects() {
1219
<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">
1320
Projects
1421
</h1>
15-
<p className="text-lg leading-7 text-gray-500 dark:text-gray-400">
16-
Showcase your projects with a hero image (16 x 9)
17-
</p>
22+
<p className="text-lg leading-7 text-gray-500 dark:text-gray-400">From 2017 to current</p>
1823
</div>
1924
<div className="container py-12">
2025
<div className="-m-4 flex flex-wrap">

app/tag-data.json

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,5 @@
11
{
2-
"markdown": 1,
2+
"markdown": 2,
33
"code": 1,
4-
"features": 1,
5-
"next-js": 6,
6-
"math": 1,
7-
"ols": 1,
8-
"github": 1,
9-
"guide": 5,
10-
"tailwind": 3,
11-
"hello": 1,
12-
"holiday": 1,
13-
"canada": 1,
14-
"images": 1,
15-
"feature": 2,
16-
"writings": 1,
17-
"book": 1,
18-
"reflection": 1,
19-
"multi-author": 1
4+
"gitops": 1
205
}

components/Footer.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@ export default function Footer() {
2626
<div>{` • `}</div>
2727
<Link href="/">{siteMetadata.title}</Link>
2828
</div>
29-
<div className="mb-8 text-sm text-gray-500 dark:text-gray-400">
30-
<Link href="https://github.com/timlrx/tailwind-nextjs-starter-blog">
31-
Tailwind Nextjs Theme
32-
</Link>
33-
</div>
3429
</div>
3530
</footer>
3631
)

components/Header.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import siteMetadata from '@/data/siteMetadata'
22
import headerNavLinks from '@/data/headerNavLinks'
33
import Logo from '@/data/logo.svg'
4+
import LogoLight from '@/data/logo-light.svg'
45
import Link from './Link'
56
import MobileNav from './MobileNav'
67
import ThemeSwitch from './ThemeSwitch'
@@ -17,10 +18,15 @@ const Header = () => {
1718
<Link href="/" aria-label={siteMetadata.headerTitle}>
1819
<div className="flex items-center justify-between">
1920
<div className="mr-3">
20-
<Logo />
21+
<div className="hidden dark:block">
22+
<LogoLight />
23+
</div>
24+
<div className="block dark:hidden">
25+
<Logo />
26+
</div>
2127
</div>
2228
{typeof siteMetadata.headerTitle === 'string' ? (
23-
<div className="hidden h-6 text-2xl font-semibold sm:block">
29+
<div className="hidden h-6 text-3xl font-semibold sm:block">
2430
{siteMetadata.headerTitle}
2531
</div>
2632
) : (

components/ThemeSwitch.tsx

Lines changed: 14 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,7 @@
11
'use client'
22

3-
import { Fragment, useEffect, useState } from 'react'
3+
import { useEffect, useState } from 'react'
44
import { useTheme } from 'next-themes'
5-
import {
6-
Menu,
7-
MenuButton,
8-
MenuItem,
9-
MenuItems,
10-
Radio,
11-
RadioGroup,
12-
Transition,
13-
} from '@headlessui/react'
145

156
const Sun = () => (
167
<svg
@@ -26,6 +17,7 @@ const Sun = () => (
2617
/>
2718
</svg>
2819
)
20+
2921
const Moon = () => (
3022
<svg
3123
xmlns="http://www.w3.org/2000/svg"
@@ -36,22 +28,7 @@ const Moon = () => (
3628
<path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" />
3729
</svg>
3830
)
39-
const Monitor = () => (
40-
<svg
41-
xmlns="http://www.w3.org/2000/svg"
42-
viewBox="0 0 20 20"
43-
fill="none"
44-
stroke="currentColor"
45-
strokeWidth="2"
46-
strokeLinecap="round"
47-
strokeLinejoin="round"
48-
className="group:hover:text-gray-100 h-6 w-6"
49-
>
50-
<rect x="3" y="3" width="14" height="10" rx="2" ry="2"></rect>
51-
<line x1="7" y1="17" x2="13" y2="17"></line>
52-
<line x1="10" y1="13" x2="10" y2="17"></line>
53-
</svg>
54-
)
31+
5532
const Blank = () => <svg className="h-6 w-6" />
5633

5734
const ThemeSwitch = () => {
@@ -61,77 +38,19 @@ const ThemeSwitch = () => {
6138
// When mounted on client, now we can show the UI
6239
useEffect(() => setMounted(true), [])
6340

41+
const toggleTheme = () => {
42+
setTheme(resolvedTheme === 'dark' ? 'light' : 'dark')
43+
}
44+
6445
return (
6546
<div className="mr-5 flex items-center">
66-
<Menu as="div" className="relative inline-block text-left">
67-
<div className="flex items-center justify-center hover:text-primary-500 dark:hover:text-primary-400">
68-
<MenuButton aria-label="Theme switcher">
69-
{mounted ? resolvedTheme === 'dark' ? <Moon /> : <Sun /> : <Blank />}
70-
</MenuButton>
71-
</div>
72-
<Transition
73-
as={Fragment}
74-
enter="transition ease-out duration-100"
75-
enterFrom="transform opacity-0 scale-95"
76-
enterTo="transform opacity-100 scale-100"
77-
leave="transition ease-in duration-75"
78-
leaveFrom="transform opacity-100 scale-100"
79-
leaveTo="transform opacity-0 scale-95"
80-
>
81-
<MenuItems className="absolute right-0 z-50 mt-2 w-32 origin-top-right divide-y divide-gray-100 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none dark:bg-gray-800">
82-
<RadioGroup value={theme} onChange={setTheme}>
83-
<div className="p-1">
84-
<Radio value="light">
85-
<MenuItem>
86-
{({ focus }) => (
87-
<button
88-
className={`${focus ? 'bg-primary-600 text-white' : ''} group flex w-full items-center rounded-md px-2 py-2 text-sm`}
89-
>
90-
<div className="mr-2">
91-
<Sun />
92-
</div>
93-
Light
94-
</button>
95-
)}
96-
</MenuItem>
97-
</Radio>
98-
<Radio value="dark">
99-
<MenuItem>
100-
{({ focus }) => (
101-
<button
102-
className={`${
103-
focus ? 'bg-primary-600 text-white' : ''
104-
} group flex w-full items-center rounded-md px-2 py-2 text-sm`}
105-
>
106-
<div className="mr-2">
107-
<Moon />
108-
</div>
109-
Dark
110-
</button>
111-
)}
112-
</MenuItem>
113-
</Radio>
114-
<Radio value="system">
115-
<MenuItem>
116-
{({ focus }) => (
117-
<button
118-
className={`${
119-
focus ? 'bg-primary-600 text-white' : ''
120-
} group flex w-full items-center rounded-md px-2 py-2 text-sm`}
121-
>
122-
<div className="mr-2">
123-
<Monitor />
124-
</div>
125-
System
126-
</button>
127-
)}
128-
</MenuItem>
129-
</Radio>
130-
</div>
131-
</RadioGroup>
132-
</MenuItems>
133-
</Transition>
134-
</Menu>
47+
<button
48+
onClick={toggleTheme}
49+
className="flex items-center justify-center hover:text-primary-500 dark:hover:text-primary-400"
50+
aria-label="Toggle theme"
51+
>
52+
{mounted ? resolvedTheme === 'dark' ? <Moon /> : <Sun /> : <Blank />}
53+
</button>
13554
</div>
13655
)
13756
}

data/authors/default.mdx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
---
2-
name: Tails Azimuth
2+
name: Frank Carvajal
33
avatar: /static/images/avatar.png
4-
occupation: Professor of Atmospheric Science
5-
company: Stanford University
6-
email: address@yoursite.com
7-
twitter: https://twitter.com/Twitter
4+
occupation: Full Stack SWE & DevOps Eng
5+
company:
6+
email: frankcarv@pm.me
7+
twitter: https://x.com/FullStack_Frank
88
linkedin: https://www.linkedin.com
99
github: https://github.com
1010
---
1111

12-
Tails Azimuth is a professor of atmospheric sciences at the Stanford AI Lab. His research interests includes complexity modelling of tailwinds, headwinds and crosswinds.
12+
👋🏻 Hi, thank you for stopping by!
13+
I'm a Full Stack software engineer/DevOps enthusiast based in Northern California proficient in JavaScript (React, TypeScript), Python, & currently learning Go.
1314

14-
He leads the clean energy group which develops 3D air pollution-climate models, writes differential equation solvers, and manufactures titanium plated air ballons. In his free time he bakes raspberry pi.
15+
Over the past decade, I’ve built a dynamic career blending client-side expertise with server-side development. Currently I'm deeply focused on DevOps, in my current role.
1516

16-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.
17+
I value adaptability, efficiency, and collaboration. Whether it’s writing scalable code, setting up CI/CD pipelines, or tinkering under the hood of new technologies, I bring a holistic approach to add value to every project.

data/blog/code-sample.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Sample .md file
3-
date: '2016-03-08'
4-
tags: ['markdown', 'code', 'features']
3+
date: '2025-01-01'
4+
tags: ['markdown', 'code']
55
draft: false
66
summary: Example of a markdown file with code blocks and syntax highlighting
77
---

0 commit comments

Comments
 (0)