1+ from itertools import product
12from pathlib import Path
3+ import json
4+ import random
5+
26
37def get_resume (format , name = 'resume' ):
48 # TODO: load by format
@@ -28,6 +32,55 @@ def experience_skills(job_id=None):
2832
2933 return [s .strip () for s in skills [job_id ].split ('+' ) if s ]
3034
35+
36+ def salutation_permutations ():
37+ """Say 'Hello, my name is' in a bunch of ways"""
38+ hellojis = 'π π π π' .split ()
39+
40+ hello = (
41+ 'hello sawubona haai molo dumela'
42+ 'hi yo sup hiya hey howzit hoesit aweh hola heita'
43+ ).split ()
44+ hello .extend (['whakind eksΓͺ' , 'hoe lyk it' ])
45+
46+ my_names_are = [
47+ 'my name is' ,
48+ 'my naam is' ,
49+ 'igama lami ngu' ,
50+ 'lebitso la ka ke'
51+ ]
52+
53+ salutation_permutations = list (product (
54+ hellojis , hello , my_names_are
55+ ))
56+ random .shuffle (salutation_permutations )
57+
58+ salutations = [
59+ f'π€{ emoji } { hello } , { my_name_is } '
60+ for emoji , hello , my_name_is in salutation_permutations
61+ ]
62+ return salutations
63+
64+
65+ TYPED_JS = "https://cdn.jsdelivr.net/npm/typed.js@2.0.12"
66+ def typed_salutations ():
67+ return typed_js ('h1' , salutation_permutations ())
68+
69+ def typed_js (dom_element , things_to_type ):
70+ options = json .dumps (dict (
71+ smartBackspace = True ,
72+ startDelay = 3000 ,
73+ showCursor = False ,
74+ typeSpeed = 50 ,
75+ strings = things_to_type ,
76+ ))
77+
78+ return '\n ' .join ([
79+ f'<script src="{ TYPED_JS } "></script>' ,
80+ f"<script>var typed = new Typed('{ dom_element } ', { options } );</script>" ,
81+ ])
82+
83+
3184BADGE_URL_TEMPLATE = "https://img.shields.io/badge/{badge_name}?style={style}&logo={logo}&logoColor={colour}"
3285SKILL_BADGE_MAP = {
3386 # browsers
@@ -81,36 +134,18 @@ def generate_badge_url(skill):
81134 'badge_name style logo colour' .split (),
82135 [skill_id , 'for-the-badge' , skill , 'white' ],
83136 )))
137+ def skills_badge_urls (company = None ):
138+ badges = [
139+ generate_badge_url (skill )
140+ for skill in experience_skills (company )
141+ ]
142+ # remove unrecognised skills
143+ badges = [b for b in badges if b ]
144+
145+ return ' ' .join ([f'<img src="{ url } "/>' for url in badges ])
146+
147+
84148
85149def define_env (env ):
86- @env .macro
87- def skills_badge_urls (company = None ):
88- badges = [
89- generate_badge_url (skill )
90- for skill in experience_skills (company )
91- ]
92- # remove unrecognised skills
93- badges = [b for b in badges if b ]
94-
95- return ' ' .join ([f'<img src="{ url } "/>' for url in badges ])
96-
97- @env .macro
98- def salutation_permutations ():
99- howzits = 'hi yo sup howzit hiya hello' .split ()
100- hellojis = 'π π π π' .split ()
101- # TODO: sample mood-db => moodmoji
102- # TODO: local/pure-py translation?
103- my_names_are = [
104- 'my name is' ,
105- 'my naam is' ,
106- 'igama lami ngu' ,
107- 'mi nobre es' ,
108- 'my name is' ,
109- ]
110- return [
111- 'π hi, my name is' ,
112- 'π hi, my naam is' ,
113- 'π hi, igama lami ngu' ,
114- 'π hi, mi nobre es' ,
115- 'π hi, my name is' ,
116- ]
150+ env .variables ['skills_badge_urls' ] = skills_badge_urls
151+ env .variables ['typed_salutations' ] = typed_salutations
0 commit comments