refactor(profile): centralize personal info in data module and update components
Move all personal information to a centralized data module and update components to use this source. This improves maintainability by having a single source of truth for profile data and makes it easier to update information across the application.
This commit is contained in:
@@ -35,17 +35,17 @@ const pageTitle = t('site.title');
|
||||
|
||||
<!-- Main title -->
|
||||
<h1 class="text-6xl md:text-8xl font-bold mb-6 bg-gradient-to-r from-gray-900 via-purple-600 to-purple-800 dark:from-white dark:via-purple-200 dark:to-purple-300 bg-clip-text text-transparent">
|
||||
Joy Zhao
|
||||
{personalInfo.name}
|
||||
</h1>
|
||||
|
||||
<!-- Subtitle -->
|
||||
<p class="text-2xl md:text-3xl text-muted-foreground mb-8 font-light">
|
||||
Full Stack Engineer 👨💻
|
||||
{personalInfo.position.en} 👨💻
|
||||
</p>
|
||||
|
||||
<!-- Description -->
|
||||
<p class="text-lg text-muted-foreground max-w-3xl mx-auto mb-12 leading-relaxed">
|
||||
Crafting elegant solutions to complex problems with clean code and innovative thinking. Welcome to my personal dev workspace where ideas come to life.
|
||||
{personalInfo.description.en}
|
||||
</p>
|
||||
|
||||
<!-- Action buttons -->
|
||||
@@ -61,7 +61,7 @@ const pageTitle = t('site.title');
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="mailto:rkesh2003@gmail.com"
|
||||
href={`mailto:${personalInfo.email}`}
|
||||
class="border border-purple-500 text-purple-500 hover:bg-purple-500 hover:text-white px-8 py-3 rounded-lg font-semibold transition-colors flex items-center gap-2"
|
||||
>
|
||||
<svg class="h-5 w-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
@@ -118,7 +118,7 @@ const pageTitle = t('site.title');
|
||||
<div class="w-3 h-3 rounded-full bg-green-500"></div>
|
||||
</div>
|
||||
<div class="text-gray-400 text-sm font-mono">
|
||||
john@dev-workspace
|
||||
{personalInfo.terminal.username}
|
||||
</div>
|
||||
<div></div>
|
||||
</div>
|
||||
@@ -224,15 +224,11 @@ const pageTitle = t('site.title');
|
||||
About Me
|
||||
</h3>
|
||||
<div class="prose prose-lg dark:prose-invert max-w-none">
|
||||
<p class="text-gray-700 dark:text-gray-300 leading-relaxed">
|
||||
I'm a passionate developer with 5+ years of experience building web applications and contributing to open source projects. I specialize in creating clean, efficient, and maintainable code.
|
||||
</p>
|
||||
<p class="text-gray-700 dark:text-gray-300 leading-relaxed">
|
||||
When I'm not coding, you can find me exploring new technologies, writing tech articles, or enjoying a fresh cup of coffee while debugging complex problems.
|
||||
</p>
|
||||
<p class="text-gray-700 dark:text-gray-300 leading-relaxed">
|
||||
I believe in continuous learning and staying up-to-date with the latest industry trends and best practices.
|
||||
</p>
|
||||
{personalInfo.about.en.map((paragraph) => (
|
||||
<p class="text-gray-700 dark:text-gray-300 leading-relaxed">
|
||||
{paragraph}
|
||||
</p>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -243,7 +239,7 @@ const pageTitle = t('site.title');
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"></path>
|
||||
</svg>
|
||||
<div class="text-2xl font-bold text-gray-900 dark:text-white mb-1">
|
||||
152
|
||||
{personalInfo.stats.repositories}
|
||||
</div>
|
||||
<div class="text-xs text-gray-600 dark:text-gray-400">
|
||||
Repositories
|
||||
@@ -255,7 +251,7 @@ const pageTitle = t('site.title');
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.618 5.984A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016zM12 9v2.25"></path>
|
||||
</svg>
|
||||
<div class="text-2xl font-bold text-gray-900 dark:text-white mb-1">
|
||||
42K
|
||||
{personalInfo.stats.commits}
|
||||
</div>
|
||||
<div class="text-xs text-gray-600 dark:text-gray-400">
|
||||
Commits
|
||||
@@ -267,7 +263,7 @@ const pageTitle = t('site.title');
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"></path>
|
||||
</svg>
|
||||
<div class="text-2xl font-bold text-gray-900 dark:text-white mb-1">
|
||||
87
|
||||
{personalInfo.stats.contributions}
|
||||
</div>
|
||||
<div class="text-xs text-gray-600 dark:text-gray-400">
|
||||
PRs Merged
|
||||
|
||||
Reference in New Issue
Block a user