feat(shields): Use simpleicons to get icon.

This commit is contained in:
Lucàs
2024-01-09 15:16:43 +01:00
parent b2c6d4c070
commit 3e04dcfeca
8 changed files with 136 additions and 67 deletions
+2 -7
View File
@@ -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"![{self.alt}]({self.src})"
+2 -9
View File
@@ -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"![{self.name}]({self.img})"
+2 -2
View File
@@ -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):
+33
View File
@@ -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()
+37
View File
@@ -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()