From 07e5c1e73d752415a8a433c629b2614e98eb507b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=A0s?= <86352901+LucasVbr@users.noreply.github.com> Date: Mon, 14 Jul 2025 00:30:34 +0200 Subject: [PATCH] feat: Clear main branch Took 3 minutes --- .gitignore | 6 -- .idea/.gitignore | 8 ++ .idea/LucasVbr.iml | 14 +++ .idea/discord.xml | 7 ++ .idea/inspectionProfiles/Project_Default.xml | 26 +++++ .../inspectionProfiles/profiles_settings.xml | 6 ++ .idea/misc.xml | 7 ++ .idea/modules.xml | 8 ++ .idea/vcs.xml | 12 +++ .idea/watcherTasks.xml | 4 + .idea/webResources.xml | 14 +++ README.md | 68 -------------- config.yaml | 48 ---------- main.py | 17 ---- requirements | 5 - src/config.py | 31 ------ src/model/skill.py | 13 --- src/model/skill_list.py | 11 --- src/model/social.py | 14 --- src/model/social_list.py | 8 -- src/shield/shield_builder.py | 94 ------------------- src/shield/skill_shield.py | 33 ------- src/shield/social_shield.py | 37 -------- src/template.py | 10 -- template.md | 36 ------- 25 files changed, 106 insertions(+), 431 deletions(-) delete mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/LucasVbr.iml create mode 100644 .idea/discord.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/watcherTasks.xml create mode 100644 .idea/webResources.xml delete mode 100644 README.md delete mode 100644 config.yaml delete mode 100644 main.py delete mode 100644 requirements delete mode 100644 src/config.py delete mode 100644 src/model/skill.py delete mode 100644 src/model/skill_list.py delete mode 100644 src/model/social.py delete mode 100644 src/model/social_list.py delete mode 100644 src/shield/shield_builder.py delete mode 100644 src/shield/skill_shield.py delete mode 100644 src/shield/social_shield.py delete mode 100644 src/template.py delete mode 100644 template.md diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 241e833..0000000 --- a/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.idea/ -.vscode/ - -venv/ - -.DS_Store diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/LucasVbr.iml b/.idea/LucasVbr.iml new file mode 100644 index 0000000..42ac0e6 --- /dev/null +++ b/.idea/LucasVbr.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..30bab2a --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..677c559 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,26 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e96f1cc --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..c02f1e4 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..7ddfc9e --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml new file mode 100644 index 0000000..afc2f4e --- /dev/null +++ b/.idea/watcherTasks.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/webResources.xml b/.idea/webResources.xml new file mode 100644 index 0000000..614e30f --- /dev/null +++ b/.idea/webResources.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 5ca31c5..0000000 --- a/README.md +++ /dev/null @@ -1,68 +0,0 @@ -## Hi there! Waving Hand - -I'm **Lucàs**, a passionate developer based in 🇫🇷 **Pau, France**.
-My journey in the world of programming started 7 years ago when I fell in love with ![HTML5](https://img.shields.io/static/v1?message=HTML5&logo=html5&logoColor=white&label=+&color=E34F26) ![CSS3](https://img.shields.io/static/v1?message=CSS3&logo=css3&logoColor=white&label=+&color=1572B6) ![JavaScript](https://img.shields.io/static/v1?message=JavaScript&logo=javascript&logoColor=white&label=+&color=F7DF1E). - -### Rocket What I do - -- 💻 Currently, I'm studying at **UPPA** for my Master's degree in Informatics. -- 🌐 I specialize in Web Development, and I'm always eager to explore new technologies and frameworks. -- 🌱 I'm constantly learning and expanding my skill set to stay up-to-date with the ever-evolving tech landscape. - -### Globe Showing Europe-Africa Connect with me - -[![Portfolio](https://img.shields.io/static/v1?message=Portfolio&style=for-the-badge&logoColor=white&label=+&color=black&link=https%3A%2F%2Fwww.lucasvbr.dev)](https://www.lucasvbr.dev) -[![Linkedin](https://img.shields.io/static/v1?message=LinkedIn&style=for-the-badge&logo=linkedin&logoColor=white&label=+&color=0A66C2&link=https%3A%2F%2Fwww.linkedin.com%2Fin%2Flucasvbr)](https://www.linkedin.com/in/lucasvbr) -[![FreeCodeCamp](https://img.shields.io/static/v1?message=freeCodeCamp&style=for-the-badge&logo=freecodecamp&logoColor=white&label=+&color=0A0A23&link=https%3A%2F%2Fwww.freecodecamp.org%2FLucasVbr)](https://www.freecodecamp.org/LucasVbr) -[![OpenClassRooms](https://img.shields.io/static/v1?message=OpenClassRooms&style=for-the-badge&logoColor=white&label=+&color=black&link=https%3A%2F%2Fopenclassrooms.com%2Ffr%2Fmembers%2F97j9zltv6225)](https://openclassrooms.com/fr/members/97j9zltv6225) -[![Exercism](https://img.shields.io/static/v1?message=Exercism&style=for-the-badge&logo=exercism&logoColor=white&label=+&color=009CAB&link=https%3A%2F%2Fexercism.org%2Fprofiles%2FLucasVbr)](https://exercism.org/profiles/LucasVbr) - -### Hammer and Wrench Tech Stack - -![Android](https://img.shields.io/static/v1?message=Android&logo=android&logoColor=white&label=+&color=3DDC84) -![Angular](https://img.shields.io/static/v1?message=Angular&logo=angular&logoColor=white&label=+&color=DD0031) -![Astro](https://img.shields.io/static/v1?message=Astro&logo=astro&logoColor=white&label=+&color=FF5D01) -![Bootstrap](https://img.shields.io/static/v1?message=Bootstrap&logo=bootstrap&logoColor=white&label=+&color=7952B3) -![Bulma](https://img.shields.io/static/v1?message=Bulma&logo=bulma&logoColor=white&label=+&color=00D1B2) -![Bun](https://img.shields.io/static/v1?message=Bun&logo=bun&logoColor=white&label=+&color=000000) -![C](https://img.shields.io/static/v1?message=C&logo=c&logoColor=white&label=+&color=A8B9CC) -![CSS3](https://img.shields.io/static/v1?message=CSS3&logo=css3&logoColor=white&label=+&color=1572B6) -![Deno](https://img.shields.io/static/v1?message=Deno&logo=deno&logoColor=white&label=+&color=000000) -![Docker](https://img.shields.io/static/v1?message=Docker&logo=docker&logoColor=white&label=+&color=2496ED) -![Express](https://img.shields.io/static/v1?message=Express&logo=express&logoColor=white&label=+&color=000000) -![Figma](https://img.shields.io/static/v1?message=Figma&logo=figma&logoColor=white&label=+&color=F24E1E) -![GNU Bash](https://img.shields.io/static/v1?message=GNU_Bash&logo=gnubash&logoColor=white&label=+&color=4EAA25) -![Git](https://img.shields.io/static/v1?message=Git&logo=git&logoColor=white&label=+&color=F05032) -![HTML5](https://img.shields.io/static/v1?message=HTML5&logo=html5&logoColor=white&label=+&color=E34F26) -![JavaScript](https://img.shields.io/static/v1?message=JavaScript&logo=javascript&logoColor=white&label=+&color=F7DF1E) -![MariaDB](https://img.shields.io/static/v1?message=MariaDB&logo=mariadb&logoColor=white&label=+&color=003545) -![MongoDB](https://img.shields.io/static/v1?message=MongoDB&logo=mongodb&logoColor=white&label=+&color=47A248) -![MySQL](https://img.shields.io/static/v1?message=MySQL&logo=mysql&logoColor=white&label=+&color=4479A1) -![Node.js](https://img.shields.io/static/v1?message=Node.js&logo=nodedotjs&logoColor=white&label=+&color=339933) -![OCaml](https://img.shields.io/static/v1?message=OCaml&logo=ocaml&logoColor=white&label=+&color=EC6813) -![PHP](https://img.shields.io/static/v1?message=PHP&logo=php&logoColor=white&label=+&color=777BB4) -![PostgreSQL](https://img.shields.io/static/v1?message=PostgreSQL&logo=postgresql&logoColor=white&label=+&color=4169E1) -![Pug](https://img.shields.io/static/v1?message=Pug&logo=pug&logoColor=white&label=+&color=A86454) -![Python](https://img.shields.io/static/v1?message=Python&logo=python&logoColor=white&label=+&color=3776AB) -![React](https://img.shields.io/static/v1?message=React&logo=react&logoColor=white&label=+&color=61DAFB) -![SQLite](https://img.shields.io/static/v1?message=SQLite&logo=sqlite&logoColor=white&label=+&color=003B57) -![Symfony](https://img.shields.io/static/v1?message=Symfony&logo=symfony&logoColor=white&label=+&color=000000) -![TypeScript](https://img.shields.io/static/v1?message=TypeScript&logo=typescript&logoColor=white&label=+&color=3178C6) - -### Handshake Let's collaborate - -👀 I'm always open to collaboration and exciting projects. If you have something in mind, feel free to reach out! - ---- - - diff --git a/config.yaml b/config.yaml deleted file mode 100644 index b38fab3..0000000 --- a/config.yaml +++ /dev/null @@ -1,48 +0,0 @@ -user: "LucasVbr" - -socials: - - name: "Portfolio" - url: "https://www.lucasvbr.dev" - - - name: "Linkedin" - url: "https://www.linkedin.com/in/lucasvbr" - - - name: "FreeCodeCamp" - url: "https://www.freecodecamp.org/LucasVbr" - - - name: "OpenClassRooms" - url: "https://openclassrooms.com/fr/members/97j9zltv6225" - - - name: "Exercism" - url: "https://exercism.org/profiles/LucasVbr" - -skills: - - Android - - Angular - - Astro - - Bun - - Bootstrap - - Bulma - - C - - CSS3 - - Deno - - Docker - - Express - - Figma - - Git - - GNU Bash - - HTML5 - - JavaScript - - MariaDB - - MongoDB - - MySQL - - Node.js - - OCaml - - PHP - - PostgreSQL - - Pug - - Python - - React - - SQLite - - Symfony - - TypeScript \ No newline at end of file diff --git a/main.py b/main.py deleted file mode 100644 index c878ea5..0000000 --- a/main.py +++ /dev/null @@ -1,17 +0,0 @@ -from src.config import Config -from src.template import Template - -CONFIG_FILE = 'config.yaml' -TEMPLATE_FILE = 'template.md' -OUTPUT_FILE = 'README.md' - -if __name__ == '__main__': - template = Template(TEMPLATE_FILE) - data = Config(CONFIG_FILE).get_data() - - # Generate README file - render = template.render(**data) - with open(OUTPUT_FILE, 'w') as f: - f.write(render) - - print(f"{OUTPUT_FILE} generated successfully! 🎉") diff --git a/requirements b/requirements deleted file mode 100644 index 98eb82d..0000000 --- a/requirements +++ /dev/null @@ -1,5 +0,0 @@ -pyyaml -json -requests -simpleicons -urllib3 \ No newline at end of file diff --git a/src/config.py b/src/config.py deleted file mode 100644 index 71a72e1..0000000 --- a/src/config.py +++ /dev/null @@ -1,31 +0,0 @@ -import yaml -from src.model.skill_list import skill_list -import requests -from src.model.social_list import social_list - - -class Config: - config_file_path: str - config_data: dict[str, any] = None - - def __init__(self, config_file_path: str): - self.config_file_path = config_file_path - - def load_config_file(self): - with open(self.config_file_path, 'r') as config_file: - self.config_data = yaml.safe_load(config_file) - - def handle_user_info(self): - user = self.config_data["user"] - response = requests.get(f"https://api.github.com/users/{user}") - if response.status_code != 200: - raise Exception("User not found") - self.config_data["user"] = response.json() - - def get_data(self): - self.load_config_file() - self.handle_user_info() - self.config_data["skills"] = skill_list(self.config_data["skills"]) - self.config_data["socials"] = social_list(self.config_data["socials"]) - - return self.config_data diff --git a/src/model/skill.py b/src/model/skill.py deleted file mode 100644 index 093024b..0000000 --- a/src/model/skill.py +++ /dev/null @@ -1,13 +0,0 @@ -from src.shield.skill_shield import SkillShield - - -class Skill: - alt: str - src: str - - def __init__(self, name: str): - self.alt = name - self.src = SkillShield(name).__str__() - - def __str__(self) -> str: - return f"![{self.alt}]({self.src})" diff --git a/src/model/skill_list.py b/src/model/skill_list.py deleted file mode 100644 index ee746ad..0000000 --- a/src/model/skill_list.py +++ /dev/null @@ -1,11 +0,0 @@ -from src.model.skill import Skill - - -def skill_list(skills: list[str]) -> dict[str, str]: - # Sort and remove duplicates - skills = list(set(skills)) - skills.sort() - - skills = {skill: Skill(skill).__str__() for skill in skills} - skills["all"] = "\n".join([str(skill) for skill in skills.values()]) - return skills diff --git a/src/model/social.py b/src/model/social.py deleted file mode 100644 index a96ad54..0000000 --- a/src/model/social.py +++ /dev/null @@ -1,14 +0,0 @@ -from src.shield.social_shield import SocialShield - - -class Social: - name: str - img: str - - def __init__(self, name: str, url: str): - self.name = name - self.img = SocialShield(name, url).__str__() - self.url = url - - def __str__(self) -> str: - return f"[![{self.name}]({self.img})]({self.url})" diff --git a/src/model/social_list.py b/src/model/social_list.py deleted file mode 100644 index f3106ca..0000000 --- a/src/model/social_list.py +++ /dev/null @@ -1,8 +0,0 @@ -from src.model.social import Social - - -def social_list(socials: list) -> dict[str, str]: - socials: dict[str, str] = {social.get("name"): str(Social(social.get("name"), social.get("url"))) for social in - socials} - socials["all"] = "\n".join([str(social) for social in socials.values()]) - return socials diff --git a/src/shield/shield_builder.py b/src/shield/shield_builder.py deleted file mode 100644 index b9a2977..0000000 --- a/src/shield/shield_builder.py +++ /dev/null @@ -1,94 +0,0 @@ -from urllib.parse import urlunsplit, urlencode -from simpleicons.all import icons - -class ShieldBuilder: - BASE_URL = "https://img.shields.io/static/v1" - - message: str = None - style: str = None - logo: str = None - logo_color: str = None - label: str = None - label_color: str = None - color: str = None - cache_seconds: int = None - link: str = None - - def __init__(self): - self.logo_color = "white" - self.label = " " - self.color = "black" - - def set_message(self, message: str): - self.message = ( - message - .replace("_", "__") - .replace("-", "--") - .replace(" ", "_") - ) - return self - - def set_style(self, style: str): - if not style in ["flat", "flat-square", "plastic", "for-the-badge", "social"]: - raise Exception("Invalid style") - - self.style = style - return self - - def set_logo(self, logo: str): - self.logo = icons.get(logo).slug if logo in icons else None - return self - - def set_logo_color(self, logo_color: str): - self.logo_color = logo_color - return self - - def set_label(self, label: str): - self.label = label - return self - - def set_label_color(self, label_color: str): - self.label_color = label_color - return self - - def set_color(self, color: str): - self.color = color - return self - - def set_cache_seconds(self, cache_seconds: int): - self.cache_seconds = cache_seconds - return self - - def set_link(self, link: str): - self.link = link - return self - - def get_query(self): - query = { - "message": self.message, - "style": self.style, - "logo": self.logo, - "logoColor": self.logo_color, - "label": self.label, - "labelColor": self.label_color, - "color": self.color, - "cacheSeconds": self.cache_seconds, - "link": self.link - } - - # Remove None values - return {k: v for k, v in query.items() if v is not None} - - def build(self): - query = urlencode(self.get_query()) - return urlunsplit(("", "", self.BASE_URL, query, "")) - - -if "__main__" == __name__: - shield_builder = ( - ShieldBuilder() - .set_logo("HTML5") - .set_message("HTML5") - .build() - ) - print(shield_builder) diff --git a/src/shield/skill_shield.py b/src/shield/skill_shield.py deleted file mode 100644 index 3853513..0000000 --- a/src/shield/skill_shield.py +++ /dev/null @@ -1,33 +0,0 @@ -from simpleicons.all import icons - -from src.shield.shield_builder import ShieldBuilder - - -class SkillShield: - - def __init__(self, name: str = None): - self.builder = ShieldBuilder() - self.skill = self.set_skill(name) if name is not None else None - - def get_skill(self): - return self.skill - - def set_skill(self, name: str): - self.skill = icons.get(name) - - if self.skill is not None: - (self.builder.set_message(self.skill.title) - .set_logo(self.skill.slug) - .set_color(self.skill.hex) - ) - else: - self.builder.set_message(name) - - def get_builder(self): - return self.builder - - def __repr__(self): - self.__str__() - - def __str__(self): - return self.builder.build() diff --git a/src/shield/social_shield.py b/src/shield/social_shield.py deleted file mode 100644 index d164572..0000000 --- a/src/shield/social_shield.py +++ /dev/null @@ -1,37 +0,0 @@ -from simpleicons.all import icons - -from src.shield.shield_builder import ShieldBuilder - - -class SocialShield: - - def __init__(self, name: str = None, url: str = None): - self.builder = ShieldBuilder().set_style("for-the-badge") - self.name = name - self.url = url - self.social = self.set_social(name, url) if name is not None and url is not None else None - - def get_social(self): - return self.social - - def set_social(self, name: str, url: str): - self.social = icons.get(name) - - if self.social is not None: - (self.builder.set_message(self.social.title) - .set_logo(self.social.slug) - .set_color(self.social.hex) - ) - else: - self.builder.set_message(name) - - self.builder.set_link(url) - - def get_builder(self): - return self.builder - - def __repr__(self): - self.__str__() - - def __str__(self): - return self.builder.build() diff --git a/src/template.py b/src/template.py deleted file mode 100644 index b5a91f9..0000000 --- a/src/template.py +++ /dev/null @@ -1,10 +0,0 @@ -class Template: - - def __init__(self, template_path: str): - self.template_path = template_path - - def render(self, **kwargs): - with open(self.template_path, 'r') as f: - template = f.read() - - return template.format(**kwargs) diff --git a/template.md b/template.md deleted file mode 100644 index 181c03b..0000000 --- a/template.md +++ /dev/null @@ -1,36 +0,0 @@ -## Hi there! Waving Hand - -I'm **{user[name]}**, a passionate developer based in 🇫🇷 **{user[location]}**.
-My journey in the world of programming started 7 years ago when I fell in love with {skills[HTML5]} {skills[CSS3]} {skills[JavaScript]}. - -### Rocket What I do - -- 💻 Currently, I'm studying at **{user[company]}** for my Master's degree in Informatics. -- 🌐 I specialize in Web Development, and I'm always eager to explore new technologies and frameworks. -- 🌱 I'm constantly learning and expanding my skill set to stay up-to-date with the ever-evolving tech landscape. - -### Globe Showing Europe-Africa Connect with me - -{socials[all]} - -### Hammer and Wrench Tech Stack - -{skills[all]} - -### Handshake Let's collaborate - -👀 I'm always open to collaboration and exciting projects. If you have something in mind, feel free to reach out! - ---- - -