- Add modern-code-icon.svg and update favicon with gradient styling
- Implement glass effect, hover animations and gradient text in global.css
- Enhance GlassHeader with motion animations and new icon
- Update design variables for modern look including shadows and transitions
The stats grid section was commented out as it's no longer needed on the homepage. This cleanup improves code maintainability by removing unused UI components.
Remove unnecessary JSDoc comments and redundant explanations from components, types, and data files. Simplify code structure while maintaining functionality.
Clean up language handling logic in components by removing redundant comments and simplifying state management. Move type imports to dedicated type import statements where applicable.
- Split types into separate modules for better organization
- Move data files to dedicated directories with proper documentation
- Enhance i18n utilities with better type safety and performance
- Maintain backward compatibility with legacy imports
- Add @astrojs/mdx integration to enable MDX support
- Migrate all markdown files (.md) to MDX (.mdx) format
- Create HighlightBox component for enhanced content styling
- Update astro config to include MDX integration
- Add documentation guide for MDX integration
Add new slogan translations for projects and blog pages in both English and Chinese
Update about and services pages with additional content
Modify footer to include remote work availability notice
Implement a dynamic typewriter animation that cycles through multiple role descriptions. The effect includes customizable typing and deleting speeds, delays, and looping behavior to enhance user engagement on the homepage.
- Remove duplicate mobile frameworks (uniApp, WeChat Mini Program)
- Add React Native and Flutter to mobile skills
- Update languages and frameworks in about section
- Add backend, database and devops details to about section
- Add @astrojs/sitemap dependency and configure it in astro.config.mjs
- Set site URL and markdown theme in astro config
- Remove unused theme variables from global.css
Update the about page content in both English and Chinese versions to reflect current personal information, skills, and interests. Also modify the corresponding data in the data.ts file to maintain consistency across the application.
Add five new technical blog posts covering various frontend and DevOps topics:
- JavaScript map and parseInt trap explanation
- Tailwind CSS integration with Docusaurus v3
- Git commit conventions and best practices
- Browser rendering principles and optimization
- Automated deployment workflows using Gitea Actions
Each post includes detailed explanations, code examples, and practical implementation guidance
refactor(blog): restructure blog post layouts and metadata
docs: add markdown migration guide and project rules update
style(global.css): update typography theme variables
chore: move temp_docs to appropriate blog post locations
- Make terminal mockup full width on all screen sizes
- Add empty state handling for blog list with visual feedback
- Maintain consistent styling across language versions
- Replace custom SVG icons with lucide-react components in TaxonomyPageLayout, CategoryCard, and TagCard
- Remove unnecessary "Back to blog list" links from empty states
- Delete outdated blog posts about React Hooks, Docker, Tailwind CSS, and TypeScript
Implement a reusable Container component with size variants (sm, md, lg, xl, full) to standardize content width across the application. Replace all manual container divs with the new component for consistent styling and maintainability.
Move shared HTML structure, head metadata, and theme scripts to Layout.astro
Remove duplicate code from BlogLayout, BlogPostLayout, and AboutLayout
Keep page-specific content and styling in individual layout files
refactor blog category and tag pages to use new TaxonomyPageLayout
add utility functions for processing taxonomy page data
pass lang prop to GlassHeader component
Move common blog functionality like post filtering, sorting and data extraction into a centralized utils module.
Replace Astro.glob with import.meta.glob for better performance.
Update all blog components and pages to use the new utilities.
- Add new CategoryCard and TagCard components to centralize UI logic
- Convert BlogList from React to Astro component
- Improve category and tag matching by using IDs from frontmatter
- Update all blog pages to use new components
- Add line-height to global styles for better readability
- Add tagId and categoryId fields to blog post frontmatter and interfaces
- Update blog list, category, and tag pages to use IDs for routing
- Implement fallback to regular tags/categories when IDs are not available
- Improve tag and category links with hover effects and proper encoding
- Update post meta component to support multilingual routing
Implement dynamic routing for blog tags and categories in both English and Chinese
Add sorting, filtering and sidebar navigation functionality
Include responsive design with proper styling and fallbacks
- Add @radix-ui/react-scroll-area dependency
- Create scroll-area component with custom styling
- Refactor TOC layout to use scroll-area component
- Improve TOC styling and active state transitions
- Apply consistent TOC styling across blog and about layouts
- Move AuthorCard to bottom of main content with enhanced styling
- Adjust TableOfContents styling and positioning
- Simplify AuthorCard and GlassHeader components
Dynamically load blog posts from markdown files instead of using hardcoded data. Posts are now sorted by date and categories/tags are automatically extracted from frontmatter. This makes content management easier and more maintainable.
Move all interface and type definitions to src/types/index.ts to reduce code duplication and improve maintainability. This includes types for components, blog posts, personal info, and localization.
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.