mirror of
				https://github.com/theoludwig/theoludwig.git
				synced 2025-10-14 20:23:25 +02:00 
			
		
		
		
	feat: add Open source section
This commit is contained in:
		| @@ -5,7 +5,7 @@ | |||||||
| </p> | </p> | ||||||
|  |  | ||||||
| <p align="center"> | <p align="center"> | ||||||
|   <a href="https://github.com/Divlo/Divlo/actions?query=workflow%3A%22Divlo%22"><img src="https://github.com/Divlo/Divlo/actions/workflows/Divlo.yml/badge.svg?branch=master" alt="Divlo's CI" /></a> |   <a href="https://github.com/Divlo/Divlo/actions/workflows/Divlo.yml"><img src="https://github.com/Divlo/Divlo/actions/workflows/Divlo.yml/badge.svg?branch=master" alt="Divlo's CI" /></a> | ||||||
|   <a href="https://github.com/Divlo"><img alt="GitHub" src="https://img.shields.io/badge/-GitHub-5A5A5A?style=flat&labelColor=5A5A5A&logo=github&logoColor=white"/></a> |   <a href="https://github.com/Divlo"><img alt="GitHub" src="https://img.shields.io/badge/-GitHub-5A5A5A?style=flat&labelColor=5A5A5A&logo=github&logoColor=white"/></a> | ||||||
|   <a href="https://gitlab.com/Divlo"><img alt="GitLab" src="https://img.shields.io/badge/-GitLab-303030?style=flat&labelColor=303030&logo=gitlab&logoColor=white"/></a> |   <a href="https://gitlab.com/Divlo"><img alt="GitLab" src="https://img.shields.io/badge/-GitLab-303030?style=flat&labelColor=303030&logo=gitlab&logoColor=white"/></a> | ||||||
|   <a href="https://www.npmjs.com/~divlo"><img alt="npm" src="https://img.shields.io/badge/-npm-c4302b?style=flat&labelColor=c4302b&logo=npm&logoColor=white"/></a> |   <a href="https://www.npmjs.com/~divlo"><img alt="npm" src="https://img.shields.io/badge/-npm-c4302b?style=flat&labelColor=c4302b&logo=npm&logoColor=white"/></a> | ||||||
| @@ -32,7 +32,7 @@ | |||||||
|     "Open-Source enthusiast" |     "Open-Source enthusiast" | ||||||
|   ], |   ], | ||||||
|   "skills": { |   "skills": { | ||||||
|     "languages": ["JavaScript", "TypeScript", "Python"], |     "programmingLanguages": ["JavaScript", "TypeScript", "Python"], | ||||||
|     "frontEnd": ["HTML", "CSS", "Tailwind CSS", "React.js (+ Next.js)"], |     "frontEnd": ["HTML", "CSS", "Tailwind CSS", "React.js (+ Next.js)"], | ||||||
|     "backEnd": ["Node.js", "Fastify", "Prisma", "PostgreSQL", "MySQL"], |     "backEnd": ["Node.js", "Fastify", "Prisma", "PostgreSQL", "MySQL"], | ||||||
|     "tools": ["Ubuntu", "Hyper Terminal", "VSCode", "Git", "Docker"] |     "tools": ["Ubuntu", "Hyper Terminal", "VSCode", "Git", "Docker"] | ||||||
| @@ -46,5 +46,5 @@ | |||||||
|  |  | ||||||
| <p align=center> | <p align=center> | ||||||
|   <img height=175 align="center" src="https://github-readme-stats.vercel.app/api?username=Divlo&show_icons=true&theme=dark" /> |   <img height=175 align="center" src="https://github-readme-stats.vercel.app/api?username=Divlo&show_icons=true&theme=dark" /> | ||||||
|   <img height=175 align="center" src="https://github-readme-stats.vercel.app/api/top-langs/?username=Divlo&hide=html,css&langs_count=8&layout=compact&theme=dark" /> |   <img height=175 align="center" src="https://github-readme-stats.vercel.app/api/top-langs/?username=Divlo&hide=html,css,javascript&langs_count=8&layout=compact&theme=dark" /> | ||||||
| </p> | </p> | ||||||
|   | |||||||
							
								
								
									
										26
									
								
								components/OpenSource/Repository.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								components/OpenSource/Repository.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | import { ShadowContainer } from 'components/design/ShadowContainer' | ||||||
|  | import { GitHubIcon } from 'components/Profile/SocialMediaList/SocialMediaIcons/GitHubIcon' | ||||||
|  |  | ||||||
|  | export interface RepositoryProps { | ||||||
|  |   name: string | ||||||
|  |   description: string | ||||||
|  |   href: string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export const Repository: React.FC<RepositoryProps> = (props) => { | ||||||
|  |   const { name, description, href } = props | ||||||
|  |  | ||||||
|  |   return ( | ||||||
|  |     <ShadowContainer className='cursor-pointer relative p-6 !mb-4 max-h-32 transition-transform duration-200 ease-in-out hover:-translate-y-2'> | ||||||
|  |       <a href={href} target='_blank' rel='noopener noreferrer'> | ||||||
|  |         <div className='flex'> | ||||||
|  |           <GitHubIcon className='h-6 mr-2' /> | ||||||
|  |           <span className='text-yellow dark:text-yellow-dark hover:underline'> | ||||||
|  |             {name} | ||||||
|  |           </span> | ||||||
|  |         </div> | ||||||
|  |         <p className='my-4'>{description}</p> | ||||||
|  |       </a> | ||||||
|  |     </ShadowContainer> | ||||||
|  |   ) | ||||||
|  | } | ||||||
							
								
								
									
										47
									
								
								components/OpenSource/index.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								components/OpenSource/index.tsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | import useTranslation from 'next-translate/useTranslation' | ||||||
|  |  | ||||||
|  | import { Repository } from './Repository' | ||||||
|  |  | ||||||
|  | export const OpenSource: React.FC = () => { | ||||||
|  |   const { t } = useTranslation() | ||||||
|  |  | ||||||
|  |   return ( | ||||||
|  |     <> | ||||||
|  |       <div className='max-w-full mt-0 flex flex-col items-center'> | ||||||
|  |         <p className='text-center'>{t('home:open-source.description')}</p> | ||||||
|  |         <div className='grid grid-cols-1 md:w-10/12 md:grid-cols-2 gap-6 my-6'> | ||||||
|  |           <Repository | ||||||
|  |             name='nodejs/node' | ||||||
|  |             description='Node.js JavaScript runtime ✨️🐢🚀✨️' | ||||||
|  |             href='https://github.com/nodejs/node/commits?author=Divlo' | ||||||
|  |           /> | ||||||
|  |           <Repository | ||||||
|  |             name='standard/standard' | ||||||
|  |             description='🌟 JavaScript Style Guide, with linter & automatic code fixer' | ||||||
|  |             href='https://github.com/standard/standard/commits?author=Divlo' | ||||||
|  |           /> | ||||||
|  |           <Repository | ||||||
|  |             name='nrwl/nx' | ||||||
|  |             description='Smart, Extensible Build Framework' | ||||||
|  |             href='https://github.com/nrwl/nx/commits?author=Divlo' | ||||||
|  |           /> | ||||||
|  |           <Repository | ||||||
|  |             name='facebook/jest' | ||||||
|  |             description='Delightful JavaScript Testing.' | ||||||
|  |             href='https://github.com/facebook/jest/commits?author=Divlo' | ||||||
|  |           /> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |  | ||||||
|  |       <style jsx global>{` | ||||||
|  |         .animation-custom { | ||||||
|  |           position: relative; | ||||||
|  |           transition: all 0.3s ease 0s; | ||||||
|  |         } | ||||||
|  |         .animation-custom:hover { | ||||||
|  |           transform: translateY(-7px); | ||||||
|  |         } | ||||||
|  |       `}</style> | ||||||
|  |     </> | ||||||
|  |   ) | ||||||
|  | } | ||||||
| @@ -1,11 +1,16 @@ | |||||||
|  | import classNames from 'classnames' | ||||||
|  |  | ||||||
| export const Icon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => { | export const Icon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => { | ||||||
|   const { children, ...rest } = props |   const { children, className, ...rest } = props | ||||||
|  |  | ||||||
|   return ( |   return ( | ||||||
|     <svg |     <svg | ||||||
|       xmlns='http://www.w3.org/2000/svg' |       xmlns='http://www.w3.org/2000/svg' | ||||||
|       viewBox='0 0 24 24' |       viewBox='0 0 24 24' | ||||||
|       className='dark:text-white text-black w-8 h-8 fill-current' |       className={classNames( | ||||||
|  |         'dark:text-white text-black w-8 h-8 fill-current', | ||||||
|  |         className | ||||||
|  |       )} | ||||||
|       {...rest} |       {...rest} | ||||||
|     > |     > | ||||||
|       {children} |       {children} | ||||||
|   | |||||||
| @@ -12,7 +12,6 @@ export const Skills: React.FC = () => { | |||||||
|         <SkillComponent skill='JavaScript' /> |         <SkillComponent skill='JavaScript' /> | ||||||
|         <SkillComponent skill='TypeScript' /> |         <SkillComponent skill='TypeScript' /> | ||||||
|         <SkillComponent skill='Python' /> |         <SkillComponent skill='Python' /> | ||||||
|         <SkillComponent skill='C/C++' /> |  | ||||||
|       </SkillsSection> |       </SkillsSection> | ||||||
|  |  | ||||||
|       <SkillsSection title='Front-end'> |       <SkillsSection title='Front-end'> | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ export const SectionHeading: React.FC<SectionHeadingProps> = (props) => { | |||||||
|   const { children, ...rest } = props |   const { children, ...rest } = props | ||||||
|  |  | ||||||
|   return ( |   return ( | ||||||
|     <h2 {...rest} className='text-4xl font-semibold text-center mt-1 mb-7'> |     <h2 {...rest} className='text-4xl font-semibold text-center mt-1 mb-3'> | ||||||
|       {children} |       {children} | ||||||
|     </h2> |     </h2> | ||||||
|   ) |   ) | ||||||
|   | |||||||
| @@ -50,5 +50,8 @@ | |||||||
|         "image": "/images/portfolio/leon.png" |         "image": "/images/portfolio/leon.png" | ||||||
|       } |       } | ||||||
|     ] |     ] | ||||||
|  |   }, | ||||||
|  |   "open-source": { | ||||||
|  |     "description": "List of most famous open source projects I contributed to." | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -50,5 +50,8 @@ | |||||||
|         "image": "/images/portfolio/leon.png" |         "image": "/images/portfolio/leon.png" | ||||||
|       } |       } | ||||||
|     ] |     ] | ||||||
|  |   }, | ||||||
|  |   "open-source": { | ||||||
|  |     "description": "Liste des projets open source les plus célèbres auxquels j'ai contribué." | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										2522
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2522
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -35,7 +35,7 @@ | |||||||
|     "classnames": "2.3.1", |     "classnames": "2.3.1", | ||||||
|     "html-react-parser": "1.2.7", |     "html-react-parser": "1.2.7", | ||||||
|     "next": "11.0.1", |     "next": "11.0.1", | ||||||
|     "next-pwa": "5.2.21", |     "next-pwa": "5.2.22", | ||||||
|     "next-themes": "0.0.15", |     "next-themes": "0.0.15", | ||||||
|     "next-translate": "1.0.7", |     "next-translate": "1.0.7", | ||||||
|     "react": "17.0.2", |     "react": "17.0.2", | ||||||
| @@ -49,15 +49,15 @@ | |||||||
|     "@testing-library/jest-dom": "5.14.1", |     "@testing-library/jest-dom": "5.14.1", | ||||||
|     "@testing-library/react": "12.0.0", |     "@testing-library/react": "12.0.0", | ||||||
|     "@types/jest": "26.0.23", |     "@types/jest": "26.0.23", | ||||||
|     "@types/node": "15.14.0", |     "@types/node": "16.0.0", | ||||||
|     "@types/react": "17.0.13", |     "@types/react": "17.0.13", | ||||||
|     "@types/styled-jsx": "2.2.8", |     "@types/styled-jsx": "2.2.9", | ||||||
|     "@typescript-eslint/eslint-plugin": "4.28.1", |     "@typescript-eslint/eslint-plugin": "4.28.1", | ||||||
|     "autoprefixer": "10.2.6", |     "autoprefixer": "10.2.6", | ||||||
|     "babel-jest": "27.0.6", |     "babel-jest": "27.0.6", | ||||||
|     "dockerfilelint": "1.8.0", |     "dockerfilelint": "1.8.0", | ||||||
|     "editorconfig-checker": "4.0.2", |     "editorconfig-checker": "4.0.2", | ||||||
|     "eslint": "7.29.0", |     "eslint": "7.30.0", | ||||||
|     "eslint-config-next": "11.0.1", |     "eslint-config-next": "11.0.1", | ||||||
|     "eslint-config-prettier": "8.3.0", |     "eslint-config-prettier": "8.3.0", | ||||||
|     "eslint-config-standard-with-typescript": "20.0.0", |     "eslint-config-standard-with-typescript": "20.0.0", | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ import { Portfolio } from 'components/Portfolio' | |||||||
| import { Profile } from 'components/Profile' | import { Profile } from 'components/Profile' | ||||||
| import { SocialMediaList } from 'components/Profile/SocialMediaList' | import { SocialMediaList } from 'components/Profile/SocialMediaList' | ||||||
| import { Skills } from 'components/Skills' | import { Skills } from 'components/Skills' | ||||||
|  | import { OpenSource } from 'components/OpenSource' | ||||||
|  |  | ||||||
| const Home: React.FC = () => { | const Home: React.FC = () => { | ||||||
|   const { t } = useTranslation() |   const { t } = useTranslation() | ||||||
| @@ -47,6 +48,12 @@ const Home: React.FC = () => { | |||||||
|           <Portfolio /> |           <Portfolio /> | ||||||
|         </Section> |         </Section> | ||||||
|       </RevealFade> |       </RevealFade> | ||||||
|  |  | ||||||
|  |       <RevealFade> | ||||||
|  |         <Section id='open-source' heading='Open source' withoutShadowContainer> | ||||||
|  |           <OpenSource /> | ||||||
|  |         </Section> | ||||||
|  |       </RevealFade> | ||||||
|     </> |     </> | ||||||
|   ) |   ) | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user