diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index afef44a..944e85d 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,20 +4,15 @@
-
-
+
+
+
-
-
-
-
+
-
-
-
-
+
@@ -66,6 +61,8 @@
"Python.main.executor": "Run",
"Python.shield_builder.executor": "Run",
"Python.skill.executor": "Run",
+ "Python.skill_shield.executor": "Run",
+ "Python.skill_shield_builder.executor": "Run",
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
@@ -73,7 +70,7 @@
"javascript.nodejs.core.library.configured.version": "20.6.1",
"javascript.nodejs.core.library.typings.version": "20.6.5",
"last_directory_selection": "/Users/lucas/Documents/GitHub/LucasVbr/model",
- "last_opened_file_path": "/Users/lucas/Documents/GitHub/LucasVbr/models",
+ "last_opened_file_path": "/Users/lucas/Documents/GitHub/LucasVbr/src/shield",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
@@ -86,6 +83,7 @@
}]]>
+
@@ -193,7 +191,8 @@
-
+
+
1660658552230
@@ -245,7 +244,15 @@
1703624982444
-
+
+
+ 1704379399992
+
+
+
+ 1704379399992
+
+
@@ -269,16 +276,19 @@
-
+
+
-
+
-
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 6a80e16..0655692 100644
--- a/README.md
+++ b/README.md
@@ -12,41 +12,41 @@ I'm a passionate developer from 🇫🇷 **Pau, France**.
## 🔗 Social Links
-
-
-
-
+
+
+
+
## 🛠Skills
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
---
diff --git a/requirements b/requirements
index 5e4f91a..5b4e75c 100644
--- a/requirements
+++ b/requirements
@@ -1,3 +1,4 @@
pyyaml
json
-requests
\ No newline at end of file
+requests
+simpleicons
\ No newline at end of file
diff --git a/src/model/skill.py b/src/model/skill.py
index 77dc66f..093024b 100644
--- a/src/model/skill.py
+++ b/src/model/skill.py
@@ -1,4 +1,4 @@
-from src.shield.shield_builder import ShieldBuilder
+from src.shield.skill_shield import SkillShield
class Skill:
@@ -7,12 +7,7 @@ class Skill:
def __init__(self, name: str):
self.alt = name
- self.src = (
- ShieldBuilder()
- .set_message(name)
- .set_logo(name)
- .build()
- )
+ self.src = SkillShield(name).__str__()
def __str__(self) -> str:
return f""
diff --git a/src/model/social.py b/src/model/social.py
index 6230821..0ecfb10 100644
--- a/src/model/social.py
+++ b/src/model/social.py
@@ -1,4 +1,4 @@
-from src.shield.shield_builder import ShieldBuilder
+from src.shield.social_shield import SocialShield
class Social:
@@ -7,14 +7,7 @@ class Social:
def __init__(self, name: str, url: str):
self.name = name
- self.img = (
- ShieldBuilder()
- .set_message(name)
- .set_logo(name)
- .set_link(url)
- .set_style("for-the-badge")
- .build()
- )
+ self.img = SocialShield(name, url).__str__()
def __str__(self) -> str:
return f""
diff --git a/src/shield/shield_builder.py b/src/shield/shield_builder.py
index 377b56f..b9a2977 100644
--- a/src/shield/shield_builder.py
+++ b/src/shield/shield_builder.py
@@ -1,5 +1,5 @@
from urllib.parse import urlunsplit, urlencode
-
+from simpleicons.all import icons
class ShieldBuilder:
BASE_URL = "https://img.shields.io/static/v1"
@@ -36,7 +36,7 @@ class ShieldBuilder:
return self
def set_logo(self, logo: str):
- self.logo = logo
+ self.logo = icons.get(logo).slug if logo in icons else None
return self
def set_logo_color(self, logo_color: str):
diff --git a/src/shield/skill_shield.py b/src/shield/skill_shield.py
new file mode 100644
index 0000000..3853513
--- /dev/null
+++ b/src/shield/skill_shield.py
@@ -0,0 +1,33 @@
+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
new file mode 100644
index 0000000..d164572
--- /dev/null
+++ b/src/shield/social_shield.py
@@ -0,0 +1,37 @@
+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()