Compare commits

..

No commits in common. "ebbd2d3ec51fc9227d0626b9370db4deda9a26a5" and "f09135319a5614ef10274d900d704609e078858b" have entirely different histories.

39 changed files with 158 additions and 288 deletions

View file

@ -0,0 +1,49 @@
import PuppeteerHTMLPDF from "puppeteer-html-pdf";
import { nanoid } from 'nanoid';
import fs from 'fs';
const pluginDefaults = {
// Plugin defaults
tempDir: "dist", // Directory where the temporary files are created
debug: false, // Keep the generated temporary html file for debugging
format: "A4", // Default pdf format
margin: { // PDF file margins
top: "1cm",
right: "1.25cm",
bottom: "1cm",
left: "1.25cm",
}
};
export default function (eleventyConfig, options = {}) {
const pluginConfig = Object.assign(pluginDefaults, options);
eleventyConfig.addTransform("toPDF", async (content) => {
if (this.outputPath && this.outputPath.toLowerCase().endsWith('.pdf')) {
let tempFileName = pluginConfig.debug ? this.page.fileSlug : nanoid();
let htmlFile = `./${pluginConfig.tempDir}/${tempFileName}.html`;
let pdfFile = `./${pluginConfig.tempDir}/${tempFileName}.pdf`;
fs.writeFileSync(htmlFile, content);
const htmlPDF = new PuppeteerHTMLPDF();
const pdfOptions = {
format: pluginConfig.format,
margin: pluginConfig.margin,
path: pdfFile,
};
htmlPDF.setOptions(pdfOptions);
const pdfContent = await htmlPDF.readFile(htmlFile, "utf8");
await htmlPDF.create(pdfContent);
let contents = fs.readFileSync(pdfFile, 'binary');
if (!pluginConfig.debug) {
fs.unlinkSync(htmlFile);
fs.unlinkSync(pdfFile);
}
return Buffer.from(contents,'binary');
} else return content;
});
};

View file

@ -1,6 +1,6 @@
import { inspect } from "util"; import { inspect } from "util";
import eleventyPluginPDF from "eleventy-plugin-pdf";
import pluginIcons from 'eleventy-plugin-icons'; import pluginIcons from 'eleventy-plugin-icons';
import pluginPDF from "./_config/eleventy-plugin-pdf.js";
import pluginTokens from "./_config/eleventy-plugin-tokens.js"; import pluginTokens from "./_config/eleventy-plugin-tokens.js";
import shortcodes from "./_config/shortcodes.js"; import shortcodes from "./_config/shortcodes.js";
@ -16,12 +16,6 @@ export default async function (eleventyConfig) {
process.env.DEBUG && console.log(inspect(sections)); process.env.DEBUG && console.log(inspect(sections));
return sections; return sections;
}); });
eleventyConfig.addCollection("pdfSections", (collectionApi) => {
const sections = collectionApi.getFilteredByGlob("./src/pages/sections/**")
.sort((a, b) => (a.data?.pdf?.order ?? a.data.order) - (b.data?.pdf?.order ?? b.data.order));
process.env.DEBUG && console.log(inspect(sections));
return sections;
});
eleventyConfig.addCollection("projects", (collectionApi) => { eleventyConfig.addCollection("projects", (collectionApi) => {
const projects = collectionApi.getFilteredByGlob("./src/projects/**") const projects = collectionApi.getFilteredByGlob("./src/projects/**")
.sort((a, b) => a.data.order - b.data.order); .sort((a, b) => a.data.order - b.data.order);
@ -34,11 +28,11 @@ export default async function (eleventyConfig) {
.sort((a, b) => a.data.dates.start - b.data.dates.start).reverse(); .sort((a, b) => a.data.dates.start - b.data.dates.start).reverse();
}); });
eleventyConfig.addPassthroughCopy({'src/assets': '/'}) eleventyConfig.addPassthroughCopy('src/favicon.ico')
eleventyConfig.addPlugin(shortcodes); eleventyConfig.addPlugin(shortcodes);
eleventyConfig.addPlugin(pluginTokens, { tokens: "./src/_data/tokens.json", destination: "./src/css/theme.css" }); eleventyConfig.addPlugin(pluginTokens, { tokens: "./src/_data/tokens.json", destination: "./src/css/theme.css" });
eleventyConfig.addPlugin(eleventyPluginPDF); eleventyConfig.addPlugin(pluginPDF);
eleventyConfig.addPlugin(pluginIcons, { eleventyConfig.addPlugin(pluginIcons, {
sources: [ sources: [
{ name: 'lucide', path: 'node_modules/lucide-static/icons', default: true }, { name: 'lucide', path: 'node_modules/lucide-static/icons', default: true },

7
package-lock.json generated
View file

@ -11,7 +11,6 @@
"devDependencies": { "devDependencies": {
"@11ty/eleventy": "^3.0.0", "@11ty/eleventy": "^3.0.0",
"eleventy-plugin-icons": "^4.5.3", "eleventy-plugin-icons": "^4.5.3",
"eleventy-plugin-pdf": "^1.0.1",
"lucide-static": "^0.503.0", "lucide-static": "^0.503.0",
"nanoid": "^5.1.5", "nanoid": "^5.1.5",
"puppeteer-html-pdf": "^4.0.8", "puppeteer-html-pdf": "^4.0.8",
@ -1290,12 +1289,6 @@
"node": ">=16.20.2" "node": ">=16.20.2"
} }
}, },
"node_modules/eleventy-plugin-pdf": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/eleventy-plugin-pdf/-/eleventy-plugin-pdf-1.0.1.tgz",
"integrity": "sha512-kmbjyhSZnXJktYR8WHYQIATPvbSbC7kjxr22FUIx/khEnXG3aHDFcKOB4HNGpUeajee524AHgkBZZDV8sRmYwg==",
"dev": true
},
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",

View file

@ -14,7 +14,6 @@
"devDependencies": { "devDependencies": {
"@11ty/eleventy": "^3.0.0", "@11ty/eleventy": "^3.0.0",
"eleventy-plugin-icons": "^4.5.3", "eleventy-plugin-icons": "^4.5.3",
"eleventy-plugin-pdf": "^1.0.1",
"lucide-static": "^0.503.0", "lucide-static": "^0.503.0",
"nanoid": "^5.1.5", "nanoid": "^5.1.5",
"puppeteer-html-pdf": "^4.0.8", "puppeteer-html-pdf": "^4.0.8",

View file

@ -18,13 +18,10 @@
"Git" "Git"
], ],
"lang": [ "lang": [
"Français", "Français (langue maternelle)",
"Anglais", "Anglais",
"Allemand (Connaissance scolaires)" "Allemand (Connaissance scolaires)"
], ],
"other": [
"Permis de voiture (Catégorie B)"
],
"socials": [ "socials": [
{ {
"title": "Mon Github", "title": "Mon Github",

View file

@ -4,6 +4,6 @@ export default {
url: "http://localhost:8080", url: "http://localhost:8080",
description: "A blog built with Eleventy", description: "A blog built with Eleventy",
lang: "fr", lang: "fr",
repository: "https://codeberg.org/TheThomaas/11ty-resume", repository: "https://github.com/TheThomaas",
repoSrc: "Codeberg" repoSrc: "Github"
} }

View file

@ -1,6 +1,6 @@
<section id="{{ section.data.title | slug }}" class="{{ section.data.classes }} wrapper-full"> <section id="{{ section.data.title | slug }}" class="{{ section.data.classes }} wrapper-full">
{% if section.data.showTitle != false %} {% if section.data.showTitle != false %}
<h2 class="underline">{% if section.data.displayedTitle %}{{ section.data.displayedTitle }}{% else %}{{ section.data.title }}{% endif %}</h2> <h2>{% if section.data.displayedTitle %}{{ section.data.displayedTitle }}{% else %}{{ section.data.title }}{% endif %}</h2>
{% endif %} {% endif %}
{{ section.templateContent }} {{ section.templateContent }}
</section> </section>

View file

@ -4,8 +4,7 @@
<span></span> <span></span>
<div class="links"> <div class="links">
{%- for link in links -%} {%- for link in links -%}
{% render "partials/components/project-link", {% link link.link, "_blank", "data-ghost-button" %}{% icon link.icon %} <span class="sr-only">{{ social.title }}</span>{% endlink %}
link: link %}
{%- endfor -%} {%- endfor -%}
</div> </div>
</div> </div>

View file

@ -1,80 +1,31 @@
{% assign showTitle = true %}
{% if section.data.showTitle == true or section.data.showTitle == false %}
{% assign showTitle = section.data.showTitle %}
{% endif %}
{% if section.data.pdf.showTitle == true or section.data.pdf.showTitle == false %}
{% assign showTitle = section.data.pdf.showTitle %}
{% endif %}
{% assign title = section.data.title %}
{% if section.data.pdf.title %}
{% assign title = section.data.pdf.title %}
{% endif %}
<section> <section>
{% if showTitle %} {% if section.data.showTitle != false %}
<div class="title"> <div class="title">
<h2>{{ title }}</h2> <h2>
{% if section.data.displayedTitle %}
{{ section.data.displayedTitle }}
{% else %}
{{ section.data.title }}
{% endif %}
</h2>
<hr> <hr>
</div> </div>
{% endif %} {% endif %}
{% if items %}
{% for item in items %} {% for item in items %}
<div class="subtitle"> <div class="subtitle">
<h4>{{ item.data.title }}</h4> <h3>{{ item.data.title }}</h3>
{% if item.data.role %}
<p class="underline"> <p class="underline">
<strong>{{ item.data.role }}</strong> <strong>{{ item.data.role }}</strong>
</p> </p>
{% else %}
<span></span>
{% endif %}
{% if item.data.dates %} {% if item.data.dates %}
<div class="timeSection"> <div class="timeSection">
<span>{{ item.data.location }}</span> <span>{{ item.data.location }}</span>
<strong>{{ item.data.dates.start }} - {{ item.data.dates.end }}</strong> <strong>{{ item.data.dates.start }} - {{ item.data.dates.end }}</strong>
</div> </div>
{% endif %} {% endif %}
{% if item.data.links %}
<ul class="list-inline">
{% for link in item.data.links %}
{% assign linkHref = link %}
{% if link.link %}
{% assign linkHref = link.link %}
{% endif %}
{% assign linkTitle = "Voir sur " | append: linkHref %}
{% if linkHref contains "codeberg.org" or linkHref contains "github.com" %}
{% assign linkTitle = "Source" %}
{% endif %}
{% if linkHref contains "npmjs.com" %}
{% assign linkTitle = "Demo" %}
{% endif %}
{% if link.title %}
{% assign linkTitle = link.title %}
{% endif %}
<li>
{% link linkHref, "_blank" %}{{ linkTitle }}{% endlink %}
</li>
{% endfor %}
</ul>
{% endif %}
</div> </div>
{{ item.templateContent }} {{ item.templateContent }}
{% endfor %} {% endfor %}
{% else %}
<ul>
<li><strong>Compétences techniques</strong>: {{ author.skills | join: ", " }}</li>
<li><strong>Langues</strong>: {{ author.lang | join: ", " }}</li>
<li><strong>Autre</strong>: {{ author.other | join: ", " }}</li>
</ul>
{% endif %}
</section> </section>

View file

@ -1,40 +0,0 @@
{% assign linkHref = link %}
{% if link.link %}
{% assign linkHref = link.link %}
{% endif %}
{% assign iconName = "link" %}
{% if linkHref contains "codeberg.org" %}
{% assign iconName = "simple-icons:codeberg" %}
{% endif %}
{% if linkHref contains "npmjs.com" %}
{% assign iconName = "simple-icons:npm" %}
{% endif %}
{% if linkHref contains "github.com" %}
{% assign iconName = "simple-icons:github" %}
{% endif %}
{% if link.icon %}
{% assign iconName = link.icon %}
{% endif %}
{% assign linkTitle = "Voir sur " | append: linkHref %}
{% if linkHref contains "codeberg.org" %}
{% assign linkTitle = "Source sur Codeberg" %}
{% endif %}
{% if linkHref contains "npmjs.com" %}
{% assign linkTitle = "Voir sur NPM" %}
{% endif %}
{% if linkHref contains "github.com" %}
{% assign linkTitle = "Source sur Github" %}
{% endif %}
{% if link.title %}
{% assign linkTitle = link.title %}
{% endif %}
{% link linkHref, "_blank", "data-ghost-button" %}{% icon iconName %} <span class="sr-only">{{ linkTitle }}</span>{% endlink %}

View file

@ -8,8 +8,7 @@
link: data.link, link: data.link,
title: data.title, title: data.title,
location: data.location, location: data.location,
description: data.description, description: data.description %}
templateContent: elements.templateContent %}
{%- endfor -%} {%- endfor -%}
</ol> </ol>
{% endif %} {% endif %}

View file

@ -1,12 +1,13 @@
<footer class="wrapper-full"> <footer class="wrapper-full">
<div> <div>
{% render 'partials/components/socials', socials: author.socials, mail: author.mail, showLabel: false %}
<ul class="list-inline"> <ul class="list-inline">
<li>Réalisé avec {% render 'partials/components/link', label: "Eleventy", href: "https://11ty.dev/", target: "_blank", rel: "nofollow" %}</li> <li>Réalisé avec {% render 'partials/components/link', label: "Eleventy", href: "https://11ty.dev/", target: "_blank", rel: "nofollow" %}</li>
{% if site.repository and site.repository != "" %} {% if site.repository and site.repository != "" %}
<li>Source sur {% render 'partials/components/link', label: site.repoSrc, href: site.repository, target: "_blank", rel: "nofollow" %}</li> <li>Source sur {% render 'partials/components/link', label: site.repoSrc, href: site.repository, target: "_blank", rel: "nofollow" %}</li>
{% endif %} {% endif %}
</ul> </ul>
{% render 'partials/components/socials', socials: author.socials, mail: author.mail, showLabel: false %}
</div> </div>
</footer> </footer>

View file

@ -21,5 +21,3 @@
<meta property="og:url" content="{{ currentUrl }}" /> <meta property="og:url" content="{{ currentUrl }}" />
<link rel="icon" href="/favicon.ico" sizes="any"> <link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<meta name="theme-color" content="#4a7798">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View file

@ -1,3 +0,0 @@
<svg width="513" height="512" viewBox="0 0 513 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M193.735 176.324C230.875 112.227 291.301 94.8749 342.331 109.561C393.504 124.288 435.509 171.284 435.509 236.933V240.933H439.509C462.102 240.933 479.224 251.012 490.768 266.21C502.388 281.51 508.402 302.095 508.254 322.848C508.106 343.597 501.801 364.144 489.25 379.423C476.784 394.599 457.974 404.82 432.143 404.82C419.241 404.82 340.344 405.127 260.395 405.434C180.56 405.741 99.6731 406.046 82.3157 406.047C56.4777 405.153 37.3048 394.406 24.4192 378.889C11.458 363.281 4.72155 342.665 4.27759 322.024C3.83347 301.373 9.69302 281.024 21.5002 265.929C33.2262 250.938 50.95 240.934 74.8645 240.934H79.0627L78.8606 236.741C77.096 200.273 94.3112 178.238 116.632 168.794C139.268 159.218 167.541 162.413 187.889 177.529L191.488 180.203L193.735 176.324Z" fill="#FAFAFA" stroke="#0A0A0A" stroke-width="8"/>
</svg>

Before

Width:  |  Height:  |  Size: 919 B

View file

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="6.65 41.33 76.65 7.35"><path fill="#3e688b" d="M73.529 46.831c.428-.098.875-.162 1.334-.213.963-.115 1.953-.142 2.818-.256-2.631-.395-5.303-.28-7.434-.291-2.525-.011-5.484.01-9.316-.038-7.313-.088-17.271-.14-27.152.303-2.921.136-5.844.254-8.754.469l-3.281.25c-1.917.151-3.833.303-5.751.438-1.624.114-3.624.693-5.374.646-1.995-.054-3.385-1.032-3.818-2.912-.161-.683-.265-1.683.088-2.265.355-.584.552-.75.767-.907.52-.369 1.162-.656 1.468-.667 4.218-.12 8.926-.016 12.702.088 2.964.084 5.934.163 9.838.167 4.678.073 18.688.324 23.364.329 3.1.004 6.193.261 9.277.594 2.566.276 5.16.568 7.797.896 2.551.312 4.066.333 6.645.692.402.052.875.104 1.387.167.426.041.979.114 1.395.141.418.02.996.333 1.771 1.197.041 1.287-.313 1.958-.885 1.98-.521.254-.938.38-1.209.427-1.041.229-2.016.301-2.75.187-.494-.077-1.975.157-3.271.329-.957.135-1.5.156-2.984-.026-.781-.203-.801-.803.109-1.307a7.01 7.01 0 0 1 1.219-.418z"/></svg>

Before

Width:  |  Height:  |  Size: 983 B

View file

@ -1,7 +1,5 @@
.clouds-zone { .clouds-zone {
overflow-x: hidden; top: 70px;
top: 0;
padding-top: 70px;
inset-inline: 0; inset-inline: 0;
position: absolute; position: absolute;
z-index: -1; z-index: -1;

View file

@ -18,7 +18,7 @@
margin-bottom: .4em; margin-bottom: .4em;
} }
.hero-title .accent-font { .hero-title .accent-font {
font-size: clamp(1.25em, 3vmax, 1.5em); font-size: 1.5em;
line-height: 1; line-height: 1;
font-weight: normal; font-weight: normal;
font-style: italic; font-style: italic;

View file

@ -14,20 +14,20 @@
position: absolute; position: absolute;
inset: 1.5rem 0 0 1.5rem; inset: 1.5rem 0 0 1.5rem;
} }
.timeline > li { .timeline li {
--size: 3rem; --size: 3rem;
padding: 0 0 0 calc(var(--size) + 0.8rem); padding: 0 0 0 calc(var(--size) + 0.8rem);
margin: 1.4rem 0; margin: 1.4rem 0;
position: relative; position: relative;
list-style: none; list-style: none;
} }
.timeline > li:last-child { .timeline li:last-child {
margin-bottom: 3rem; margin-bottom: 3rem;
} }
.timeline > li:first-child { .timeline li:first-child {
margin-top: -20px; margin-top: -20px;
} }
.timeline > li:before { .timeline li:before {
content: ""; content: "";
aspect-ratio: 1; aspect-ratio: 1;
inline-size: var(--size); inline-size: var(--size);
@ -41,6 +41,6 @@
inset-inline-start: 0; inset-inline-start: 0;
transform: translateY(50%); transform: translateY(50%);
} }
.timeline > li:hover:before { .timeline li:hover:before {
border-color: var(--color-secondary-600); border-color: var(--color-secondary-600);
} }

View file

@ -4,18 +4,14 @@ footer {
} }
footer > div { footer > div {
place-content: center space-between; place-content: center space-between;
align-items: start; align-items: center;
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column;
} }
footer .list-inline a { footer .list-inline a {
--item-color: var(--text-2); --item-color: var(--text-2);
text-decoration: underline; text-decoration: underline;
} }
footer .list-inline a:hover {
--item-color: var(--text);
}
footer .socials-list { footer .socials-list {
--item-gap: 0.2ch; --item-gap: 0.2ch;
--item-separator: ""; --item-separator: "";
@ -24,9 +20,3 @@ footer .socials-list {
footer .button.button { footer .button.button {
--button-padding: .2em; --button-padding: .2em;
} }
@media (min-width: 768px) {
footer > div {
align-items: center;
flex-direction: row-reverse;
}
}

View file

@ -25,20 +25,14 @@ header nav li {
header nav a { header nav a {
text-underline-offset: 0.4rem; text-underline-offset: 0.4rem;
text-decoration: none; text-decoration: none;
position: relative;
} }
header nav a:hover, header nav a:hover {
text-decoration: underline;
text-decoration-thickness: 0.12rem;
}
header nav a[aria-current="page"] { header nav a[aria-current="page"] {
color: var(--color-secondary-950); color: var(--text-2);
text-shadow: 1px 0 0 currentColor; font-weight: var(--font-weight-semibold);
} text-decoration: underline;
header nav a:hover::after, text-decoration-thickness: 0.12rem;
header nav a[aria-current="page"]:after {
content: "";
background: no-repeat url("/line.svg");
position: absolute;
height: 7px;
width: 100%;
bottom: -6px;
left: 0;
} }

View file

@ -117,17 +117,3 @@ section {
background: color-mix(in srgb, var(--badge-color, var(--color-secondary-600)) 40%, white 100%); background: color-mix(in srgb, var(--badge-color, var(--color-secondary-600)) 40%, white 100%);
border: 1px solid color-mix(in srgb, var(--badge-color, var(--color-secondary-600)) 90%, white 100%); border: 1px solid color-mix(in srgb, var(--badge-color, var(--color-secondary-600)) 90%, white 100%);
} }
.underline {
position: relative;
}
.underline::after {
content: "";
background: no-repeat url("/line.svg");
position: absolute;
height: 10px;
width: 100%;
bottom: 0;
left: 0;
}

View file

@ -1,10 +1,11 @@
:root { :root {
--accent-color: #1155CC; --accent-color: blue;
--font-body: Helvetica, Arial, sans-serif; --font-body: Arial, sans-serif;
--font-display: 'Times New Roman', Times, serif;
} }
html { html {
font-family: var(--font-body, Helvetica, Arial, sans-serif); font-family: var(--font-body, Arial, sans-serif);
margin: 0; margin: 0;
} }
body { body {
@ -19,12 +20,13 @@ body {
h1 { h1 {
text-align:center; text-align:center;
font-size: 1.8rem; font-family: var(--font-display, 'Times New Roman', Times, serif);
font-size: 2rem;
margin: 0; margin: 0;
line-height: 1.6; line-height: 1.6;
} }
h2 { h2 {
color : var(--accent-color, #1155CC); color : var(--accent-color, blue);
} }
p { p {
margin: 0; margin: 0;
@ -35,7 +37,6 @@ ul {
li::marker { li::marker {
color: var(--accent-color, blue); color: var(--accent-color, blue);
} }
a { color : var(--accent-color, #1155CC); }
section {margin-bottom: 1.2rem;} section {margin-bottom: 1.2rem;}
.justify-center { .justify-center {
@ -55,7 +56,7 @@ section {margin-bottom: 1.2rem;}
display: contents; display: contents;
} }
.list-inline li + li::before { .list-inline li + li::before {
content: var(--item-separator, '|'); content: '|';
} }
.title { .title {
@ -81,12 +82,9 @@ section ul {padding: 0;margin-left: 1.2rem;}
margin-inline: 1rem; margin-inline: 1rem;
margin-bottom: .4rem; margin-bottom: .4rem;
} }
.subtitle .list-inline { --item-separator: "•"; gap: .4rem; }
.subtitle .timeSection { font-size: .9rem; } .subtitle .timeSection { font-size: .9rem; }
.subtitle h3, .subtitle h3,
.subtitle h4,
.subtitle p { margin: 0; } .subtitle p { margin: 0; }
.subtitle a { font-size: .9em; }
.subtitle > :first-child {justify-self: start;} .subtitle > :first-child {justify-self: start;}
.subtitle > :last-child {justify-self: end;} .subtitle > :last-child {justify-self: end;}
.subtitle ~ ul {font-size: .9rem;} .subtitle ~ ul {font-size: .9rem;}

View file

@ -1,14 +1,12 @@
--- ---
title: Artionet - Web Agency title: Artionet - Web Agency
role: Stagiaire Front-End role: Stagiaire
description: Stage de 4ème année de CFC, développement web description: Stage de 4ème année de CFC, développement web
location: Delémont, JU location: Delémont
link: https://www.artionet.ch link: https://www.artionet.ch
dates: dates:
start: 2021 start: 2021
end: 2022 end: 2022
--- ---
* Stage de 4ème année de CFC * Stage de 4ème année de CFC, développement web
* **Travail de diplôme**: Amélioration d'un logiciel de l'entreprise en PHP
* Création et intégration de nouveaux sites à l'aide du CMS IceCube2.Net

View file

@ -1,16 +1,12 @@
--- ---
title: Artionet - Web Agency title: Artionet - Web Agency
role: Développeur Front-End role: Développeur
description: Développeur Front-End et Support Client description: Développeur Front-End et Support Client
location: Delémont, JU location: Delémont
link: https://www.artionet.ch link: https://www.artionet.ch
dates: dates:
start: 2022 start: 2022
end: 2025 end: 2025
--- ---
* Design et développement de sites web * Développeur Front-End et Support Client
* Intégration de nouveaux sites à l'aide du CMS IceCube2.Net
* Traitement des demandes du support client et maintenance des sites
* Améliorations du CMS IceCube2.Net
* **Technologies utilisées**: HTML, CSS, JS, Figma, jQuery, Booststrap

View file

@ -2,11 +2,10 @@
title: Ecole des métiers Technique title: Ecole des métiers Technique
role: Etudiant role: Etudiant
description: CFC d'informaticien d'entreprise description: CFC d'informaticien d'entreprise
location: Porrentruy, JU location: Porrentruy
dates: dates:
start: 2018 start: 2018
end: 2022 end: 2022
--- ---
* CFC d'informaticien d'entreprise * CFC d'informaticien d'entreprise
* **Sujets couverts**: HTML, CSS, JS, SQL, Git, Gestion de projet, Réseau/NAS, C++, Java, Linux, Docker

BIN
src/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -3,9 +3,6 @@ title: Compétences
displayedTitle: Mes compétences displayedTitle: Mes compétences
order: 1 order: 1
showTitle: false showTitle: false
pdf:
order: 3
showTitle: true
--- ---

View file

@ -3,8 +3,6 @@ title: Expériences
displayedTitle: Mes expériences displayedTitle: Mes expériences
collection: experiences collection: experiences
order: 3 order: 3
pdf:
order: 1
--- ---
{% assign experiences = collections[collection] %} {% assign experiences = collections[collection] %}

View file

@ -2,8 +2,7 @@
title: A propos title: A propos
order: 0 order: 0
template: 'hero' template: 'hero'
pdf: excludeFromPdf: true
exclude: true
eleventyComputed: eleventyComputed:
description: "{{ author.about }}" description: "{{ author.about }}"
displayedTitle: "Moi c'est <span class='accent-font'>{{ author.firstName }}</span><br>Et je suis {{ author.occupation }}" displayedTitle: "Moi c'est <span class='accent-font'>{{ author.firstName }}</span><br>Et je suis {{ author.occupation }}"

View file

@ -3,8 +3,6 @@ title: Projets
displayedTitle: Mes projets displayedTitle: Mes projets
collection: projects collection: projects
order: 2 order: 2
pdf:
order: 2
--- ---
{% assign projects = collections[collection] %} {% assign projects = collections[collection] %}

View file

@ -25,10 +25,13 @@ links:
</ul> </ul>
</section> </section>
<p style="margin-bottom: 1ch;">{{ author.about }}</p> <p>
The time is {{ "now" | date: "%Y-%m-%d %H:%M" }}
{% for section in collections.pdfSections %} </p>
{% if section.data.pdf.exclude != true %}
{% for section in collections.sections %}
{% if section.data.excludeFromPdf != true %}
{% assign items = collections[section.data.collection] %} {% assign items = collections[section.data.collection] %}
{% include 'partials/components/pdf/section' %} {% include 'partials/components/pdf/section' %}
{% endif %} {% endif %}

View file

@ -1,13 +1,14 @@
--- ---
title: Cancre Simulator title: Cancre Simulator
description: Un jeu multijoueur réalisé pour les Portes Ouvertes 2020 de l'EMT description: Un jeu fait pour les Portes Ouvertes 2020
background: linear-gradient(45deg, rgb(255, 241, 241) 30%, rgb(255, 196, 196) 100%)
links: links:
- https://github.com/divtec-cejef/2020-JCO-CancreSimulator - title: Voir sur Github
link: https://github.com
icon: simple-icons:github
tags: tags:
- C# - C#
- Unity - Unity
--- ---
* {{description}} * desc1
* **Technologies** : {{ tags | join: ", " }} * desc2

View file

@ -1,16 +0,0 @@
---
title: eleventy-plugin-pdf
description: Un plugin pour Eleventy qui permet de créer un fichier PDF
background: linear-gradient(45deg, rgb(255, 226, 224) 30%, rgb(255, 157, 154) 100%)
order: 0
links:
- https://www.npmjs.com/package/eleventy-plugin-pdf
- https://codeberg.org/TheThomaas/eleventy-plugin-pdf
tags:
- 11ty
- NPM
- JS
---
* Un plugin pour Eleventy qui permet de créer un fichier PDF à l'aide de Puppeteer
* **Technologies** : {{ tags | join: ", " }}

View file

@ -1,14 +1,10 @@
--- ---
title: Qui est-ce ? title: Qui est-ce ?
description: Un "Qui est-ce ?" fait en Python et avec des LEGO Mindstorms (Projet scolaire) description: Un "Qui est-ce ?" fait en Python et avec des LEGO Mindstorms
order: 9
links: links:
- https://github.com/divtec-cejef/2019-CCH-BrickPi7-Thomas-Mathieu - title: Voir sur Github
link: https://github.com
icon: simple-icons:github
tags: tags:
- Python - Python
- TTS
--- ---
* {{description}}
* Le joueur affronte l'ordinateur. Les deux se posent des questions à l'aide d'un sélecteur rotatif
* Le robot pose également les questions à haute voix

View file

@ -1,14 +1,14 @@
--- ---
title: LDAP title: LDAP
description: Edition d'utilisateurs d'un annuaire LDAP depuis un site (Projet scolaire) description: Ajouter, voir et se connecter à des utilisateurs LDAP depuis un site
background: linear-gradient(45deg, rgb(220, 246, 255) 30%, rgb(178, 239, 255) 100%)
links: links:
- https://github.com/TheThomaas/PHP-M159-LDAP - title: Voir le site
link: https://google.com
icon: link
- title: Voir sur Github
link: https://github.com
icon: simple-icons:github
tags: tags:
- PHP - PHP
- LDAP - LDAP
- SQL
--- ---
* {{description}}
* **Technologies** : {{ tags | join: ", " }}

View file

@ -1,4 +1,4 @@
{ {
"permalink": false, "permalink": false,
"order": 8 "order": 1
} }

View file

@ -1,14 +1,14 @@
--- ---
title: Capteurs de temperature title: Sigfox Temperature
description: Des capteurs de température affichés sur un tableau de bord (Projet scolaire) description: Des capteurs de température affichés sur un tableau de bord
background: linear-gradient(45deg, var(--color-secondary-100) 30%, var(--color-secondary-300) 100%)
links: links:
- https://github.com/TheThomaas/iot_temperature_humidity - title: Voir le site
link: https://google.com
icon: link
- title: Voir sur Github
link: https://github.com
icon: simple-icons:github
tags: tags:
- JS
- IOT - IOT
- PHP
- Arduino
--- ---
* {{description}}
* **Technologies** : {{ tags | join: ", " }}

View file

@ -1,11 +1,10 @@
--- ---
title: Snake title: Snake
description: Un snake réalisé en Java (Projet scolaire) description: Un snake réalisé en Java
background: linear-gradient(45deg, var(--color-primary-50) 30%, var(--color-primary-200) 100%)
links: links:
- https://github.com/TheThomaas/snake - title: Voir sur Github
link: https://github.com
icon: simple-icons:github
tags: tags:
- Java - Java
--- ---
* {{description}}