tmp commit

This commit is contained in:
2023-12-03 21:43:12 +01:00
parent 7ea9bbbb5f
commit 8a035affe3
11 changed files with 273 additions and 75 deletions

View File

@@ -3,10 +3,10 @@
<meta charset="UTF-8">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;800&family=Roboto&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;800&family=Roboto&display=swap" rel="stylesheet">
<style>
h1 {
/*font-weight: 800;*/
font-size: 3em;
@@ -46,7 +46,7 @@
}
.flex-container {
min-height: 100vh;
min-height: 100vh;
display: flex;
flex-direction: row;
flex-wrap: wrap;
@@ -55,7 +55,7 @@
align-content: normal;
width: 100%;
}
.flex-items:nth-child(1) {
display: block;
flex-grow: 1;
@@ -64,7 +64,7 @@
align-self: auto;
order: 0;
}
.flex-items:nth-child(2) {
display: block;
flex-grow: 0;
@@ -90,7 +90,7 @@
align-items: normal;
align-content: normal;
}
.flex-items-experience:nth-child(1) {
display: block;
flex-grow: 0;
@@ -100,7 +100,7 @@
width: 70%;
order: 0;
}
.flex-items-experience:nth-child(2) {
display: block;
flex-grow: 0;
@@ -130,7 +130,7 @@
.header {
padding-top: 1em;
}
.flex-items-skills:nth-child(1) {
display: block;
flex-grow: 0;
@@ -140,7 +140,7 @@
width: 50%;
order: 0;
}
.flex-items-skills:nth-child(2) {
display: block;
flex-grow: 0;
@@ -169,7 +169,7 @@
margin: 0;
}
.contact-bar {
font-size: 11pt;
padding-left: 1em;
@@ -190,13 +190,21 @@
}
.email{
}
.icon {
height: 1em;
vertical-align:middle;
}
.bolder {
font-weight: 800;
}
.title {
font-weight: 800;
}
</style>
</head>
<body>
@@ -219,30 +227,92 @@
</div>
<div class="flex-container-skills">
<div class="flex-items-skills">
{% for skill in cv.skills %}
{% if skill.techtype == "LANGUAGE" %}
<div>
<span class="tech-name">{{ skill.name }}</span><span class="tech-level"> ({{ skill.skill | lower}})</span>
</div>
{% endif %}
{% for skill in cv.skills | filter(attribute="techtype",value="Language") %}
<div>
<span class="tech-name">{{ skill.name }}</span>{%if skill.skill %}<span class="tech-level"> ({{ skill.skill | lower}}){%endif %}</span>
</div>
{% endfor %}
</div>
<div class="flex-items-skills">
{% for skill in cv.skills %}
{% if skill.techtype == "TECHNOLOGY" %}
<div>
<span class="tech-name">{{ skill.name }}</span><span class="tech-level"> ({{ skill.skill | lower}})</span>
</div>
{% endif %}
{% for skill in cv.skills | filter(attribute="techtype", value="Technology")%}
<div>
<span class="tech-name">{{ skill.name }}</span>{%if skill.skill %}<span class="tech-level"> ({{ skill.skill | lower}}){%endif %}</span>
</div>
{% endfor %}
</div>
</div>
</div>
<div class="part">
<div class="section-header">
<div class="flex-container-skills">
<div class="flex-items-skills">
<h2>{{ "skills-frameworks" | translate(lang=lang) }}</h2>
</div>
<div class="flex-items-skills">
<h2>{{ "skills-databases" | translate(lang=lang) }}</h2>
</div>
</div>
</div>
<div class="flex-container-skills">
<div class="flex-items-skills">
{% for skill in cv.skills | filter(attribute="techtype",value="Framework") %}
<div>
<span class="tech-name">{{ skill.name }}</span>{%if skill.skill %}<span class="tech-level"> ({{ skill.skill | lower}}){%endif %}</span>
</div>
{% endfor %}
</div>
<div class="flex-items-skills">
{% for skill in cv.skills | filter(attribute="techtype", value="Database")%}
<div>
<span class="tech-name">{{ skill.name }}</span>{%if skill.skill %}<span class="tech-level"> ({{ skill.skill | lower}}){%endif %}</span>
</div>
{% endfor %}
</div>
</div>
</div>
<div class="part">
<span class="bolder">{{"tools" | translate(lang=lang)}}:</span>
{% for skill in cv.skills | filter(attribute="techtype",value="Tool") | advanced_filter(attribute="skill", include_null="all") %}
{{ skill.name }}{% if skill.skill %} - {{skill.skill}}{% endif %},<!-- TODO: fix-me (empty "," if operating system empty) %-->
{% endfor %}
<span class="bolder">{{"operating-systems" | translate(lang=lang)}}:</span>
{% for skill in cv.skills | filter(attribute="techtype",value="OperatingSystem") | advanced_filter(attribute="skill", include_null="all") %}
{{ skill.name }}</span>{% if skill.skill %} - {{skill.skill}}{% endif %}{% if not loop.last %},{% endif %}
{% endfor %}
</div>
<div class="part">
<div class="section-header">
<h2>{{ "work-experience" | translate(lang=lang) }}</h2>
</div>
{% for job in cv.jobs %}
{% for job in cv.jobs | filter(attribute="jobtype", value="Contract") %}
<div class="job part-content">
<div class="flex-container-experience">
<div class="flex-items-experience">
<div class="title">{{ job.title }}</div>
<div class="languages">{{ job.languages }}</div>
<p>
{{ job.description | lang_entity(lang=lang) }}
</p>
</div>
<div class="flex-items-experience">
<div class="company">@{{ job.company }}</div>
<div class="dates">
{% if job.from | format_date(type="job") != job.from | format_date(type="job") %}
<div class="text-muted text-small mb-3">{{ job.from | format_date(type="job") }} - {{ job.to | format_date(type="job") }}</div>
{% else %}
<div class="text-muted text-small mb-3">{{ job.from | format_date(type="job") }}</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endfor %}
</div>
<div class="part">
<div class="section-header">
<h2>{{ "work-freelance" | translate(lang=lang) }}</h2>
</div>
{% for job in cv.jobs | filter(attribute="jobtype", value="Freelance") %}
<div class="job part-content">
<div class="flex-container-experience">
<div class="flex-items-experience">
@@ -281,12 +351,12 @@
{% endif %}
{% if education.description %}
<p>
{{ education.description | lang_entity(lang=lang) }}
</p>
{% endif %}
</div>
<div class="flex-items-experience">
{% if education.degree %}
<div class="company">@{{ education.school }}</div>
@@ -317,7 +387,7 @@
{% endif %}
{% if cv.person.social.instagram %}
<i class="fa-instagram"> {{ cv.person.social.instagram | strip_proto }}</i>
{% endif %}
{% endif %}
{% if cv.person.social.mastodon %}
<i class="fa-mastodon">
<img alt="Mastodon" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik0yMS4zMjcgOC41NjZjMC00LjMzOS0yLjg0My01LjYxLTIuODQzLTUuNjEtMS40MzMtLjY1OC0zLjg5NC0uOTM1LTYuNDUxLS45NTZoLS4wNjNjLTIuNTU3LjAyMS01LjAxNi4yOTgtNi40NS45NTYgMCAwLTIuODQzIDEuMjcyLTIuODQzIDUuNjEgMCAuOTkzLS4wMTkgMi4xODEuMDEyIDMuNDQxLjEwMyA0LjI0My43NzggOC40MjUgNC43MDEgOS40NjMgMS44MDkuNDc5IDMuMzYyLjU3OSA0LjYxMi41MSAyLjI2OC0uMTI2IDMuNTQxLS44MDkgMy41NDEtLjgwOWwtLjA3NS0xLjY0NnMtMS42MjEuNTExLTMuNDQxLjQ0OWMtMS44MDQtLjA2Mi0zLjcwNy0uMTk0LTMuOTk5LTIuNDA5YTQuNTIzIDQuNTIzIDAgMCAxLS4wNC0uNjIxczEuNzcuNDMzIDQuMDE0LjUzNmMxLjM3Mi4wNjMgMi42NTgtLjA4IDMuOTY1LS4yMzYgMi41MDYtLjI5OSA0LjY4OC0xLjg0MyA0Ljk2Mi0zLjI1NC40MzQtMi4yMjMuMzk4LTUuNDI0LjM5OC01LjQyNHptLTMuMzUzIDUuNTloLTIuMDgxVjkuMDU3YzAtMS4wNzUtLjQ1Mi0xLjYyLTEuMzU3LTEuNjItMSAwLTEuNTAxLjY0Ny0xLjUwMSAxLjkyN3YyLjc5MWgtMi4wNjlWOS4zNjRjMC0xLjI4LS41MDEtMS45MjctMS41MDItMS45MjctLjkwNSAwLTEuMzU3LjU0Ni0xLjM1NyAxLjYydjUuMDk5SDYuMDI2VjguOTAzYzAtMS4wNzQuMjczLTEuOTI3LjgyMy0yLjU1OC41NjYtLjYzMSAxLjMwNy0uOTU1IDIuMjI4LS45NTUgMS4wNjUgMCAxLjg3Mi40MDkgMi40MDUgMS4yMjhsLjUxOC44NjkuNTE5LS44NjljLjUzMy0uODE5IDEuMzQtMS4yMjggMi40MDUtMS4yMjguOTIgMCAxLjY2Mi4zMjQgMi4yMjguOTU1LjU0OS42MzEuODIyIDEuNDg0LjgyMiAyLjU1OHY1LjI1M3oiLz48L3N2Zz4=" class="icon" />
@@ -333,8 +403,7 @@
+{{cv.person.phone | insert_space_every(times=3)}}
</i>
</div>
</div>
</div>
</body>
</html>
</html>