mirror of
https://github.com/LucasVbr/LucasVbr.git
synced 2026-05-13 17:11:52 +00:00
feat(shields): Use simpleicons to get icon.
This commit is contained in:
Generated
+26
-16
@@ -4,20 +4,15 @@
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="b25cc8d3-396f-4036-b751-5d061242b2fc" name="Changes" comment="Use only Python">
|
||||
<change afterPath="$PROJECT_DIR$/src/shield/shield_builder.py" afterDir="false" />
|
||||
<list default="true" id="b25cc8d3-396f-4036-b751-5d061242b2fc" name="Changes" comment="Add Builder for shields">
|
||||
<change afterPath="$PROJECT_DIR$/src/shield/skill_shield.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/shield/social_shield.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/banner.svg" beforeDir="false" afterPath="$PROJECT_DIR$/assets/banner.svg" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/config.yaml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/config.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/config.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/requirements" beforeDir="false" afterPath="$PROJECT_DIR$/requirements" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/model/skill.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/model/skill.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/model/skill_list.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/model/skill_list.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/model/social.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/model/social.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/model/social_list.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/model/social_list.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/template.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/template.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/template.md" beforeDir="false" afterPath="$PROJECT_DIR$/template.md" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/shield/shield_builder.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/shield/shield_builder.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -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 @@
|
||||
}]]></component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/src/shield" />
|
||||
<recent name="$PROJECT_DIR$/models" />
|
||||
<recent name="$PROJECT_DIR$/src" />
|
||||
<recent name="$PROJECT_DIR$/components" />
|
||||
@@ -193,7 +191,8 @@
|
||||
<workItem from="1691244360881" duration="1235000" />
|
||||
<workItem from="1703610497268" duration="12323000" />
|
||||
<workItem from="1704274694444" duration="8000" />
|
||||
<workItem from="1704364154441" duration="11806000" />
|
||||
<workItem from="1704364154441" duration="13259000" />
|
||||
<workItem from="1704806823609" duration="2836000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="Add OpenClassRooms link">
|
||||
<created>1660658552230</created>
|
||||
@@ -245,7 +244,15 @@
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1703624982444</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="8" />
|
||||
<task id="LOCAL-00008" summary="Add Builder for shields">
|
||||
<option name="closed" value="true" />
|
||||
<created>1704379399992</created>
|
||||
<option name="number" value="00008" />
|
||||
<option name="presentableId" value="LOCAL-00008" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1704379399992</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="9" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
@@ -269,16 +276,19 @@
|
||||
<MESSAGE value="Add package.json and typescript configuration files" />
|
||||
<MESSAGE value="Add ts-node and some skills" />
|
||||
<MESSAGE value="Use only Python" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Use only Python" />
|
||||
<MESSAGE value="Add Builder for shields" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Add Builder for shields" />
|
||||
</component>
|
||||
<component name="XSLT-Support.FileAssociations.UIState">
|
||||
<expand />
|
||||
<select />
|
||||
</component>
|
||||
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||
<SUITE FILE_PATH="coverage/LucasVbr$skill.coverage" NAME="skill Coverage Results" MODIFIED="1704375618832" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/model" />
|
||||
<SUITE FILE_PATH="coverage/LucasVbr$skill.coverage" NAME="skill Coverage Results" MODIFIED="1704808529789" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/model" />
|
||||
<SUITE FILE_PATH="coverage/LucasVbr$download_skill_badges.coverage" NAME="download_skill_badges Coverage Results" MODIFIED="1704375392377" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src" />
|
||||
<SUITE FILE_PATH="coverage/LucasVbr$shield_builder.coverage" NAME="shield_builder Coverage Results" MODIFIED="1704374403309" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/shield" />
|
||||
<SUITE FILE_PATH="coverage/LucasVbr$main.coverage" NAME="main Coverage Results" MODIFIED="1704379050479" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||
<SUITE FILE_PATH="coverage/LucasVbr$skill_shield_builder.coverage" NAME="skill_shield_builder Coverage Results" MODIFIED="1704808074648" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/shield" />
|
||||
<SUITE FILE_PATH="coverage/LucasVbr$main.coverage" NAME="main Coverage Results" MODIFIED="1704809040131" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||
<SUITE FILE_PATH="coverage/LucasVbr$skill_shield.coverage" NAME="skill_shield Coverage Results" MODIFIED="1704808482386" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/shield" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -12,41 +12,41 @@ I'm a passionate developer from 🇫🇷 **Pau, France**.
|
||||
|
||||
## 🔗 Social Links
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## 🛠 Skills
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
|
||||
+2
-1
@@ -1,3 +1,4 @@
|
||||
pyyaml
|
||||
json
|
||||
requests
|
||||
requests
|
||||
simpleicons
|
||||
+2
-7
@@ -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""
|
||||
|
||||
+2
-9
@@ -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""
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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()
|
||||
@@ -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()
|
||||
Reference in New Issue
Block a user