Compare commits
10 commits
3f8283f1cc
...
4d0a7fbe75
Author | SHA1 | Date | |
---|---|---|---|
4d0a7fbe75 | |||
89d1a5295a | |||
dc43aee71a | |||
0d0310cea7 | |||
d7e94576e5 | |||
d7d0a6b191 | |||
c33737f86f | |||
d1d826c050 | |||
e4bccf7a07 | |||
9befcc8576 |
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/out
|
36
build.py
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
#! /usr/bin/env python3
|
||||||
|
"""Build resume."""
|
||||||
|
|
||||||
|
from os import sep
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from rwx import fs
|
||||||
|
from rwx.ps import run
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
root = Path(__file__).resolve().parent
|
||||||
|
input = root / "in"
|
||||||
|
output = root / "out"
|
||||||
|
web = output / "web"
|
||||||
|
fs.wipe(output)
|
||||||
|
fs.make_directory(web)
|
||||||
|
run(
|
||||||
|
"rsync",
|
||||||
|
"--archive",
|
||||||
|
"--partial",
|
||||||
|
"--progress",
|
||||||
|
"--verbose",
|
||||||
|
f"{input}{sep}",
|
||||||
|
f"{web}{sep}",
|
||||||
|
)
|
||||||
|
run(
|
||||||
|
"qrencode",
|
||||||
|
("--background", "00000000"),
|
||||||
|
("--foreground", "000000FF"),
|
||||||
|
("--level", "L"),
|
||||||
|
("--margin", "1"),
|
||||||
|
("--read-from", str(input / "vcard.vcf")),
|
||||||
|
("--size", "4"),
|
||||||
|
("-t", "SVG"),
|
||||||
|
("--output", str(web / "img" / "vcard.svg")),
|
||||||
|
)
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 745 B After Width: | Height: | Size: 745 B |
Before Width: | Height: | Size: 482 KiB After Width: | Height: | Size: 482 KiB |
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 147 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 6 KiB After Width: | Height: | Size: 6 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 5 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
@ -161,32 +161,30 @@ France</p>
|
||||||
<section>
|
<section>
|
||||||
<h2>Links</h2>
|
<h2>Links</h2>
|
||||||
|
|
||||||
<table>
|
<table><tbody>
|
||||||
<tbody>
|
|
||||||
<tr>
|
<tr>
|
||||||
<th>Forge</th>
|
<th scope="row">Forge</th>
|
||||||
<td class="logo"><img class="logo" src="img/forgejo.svg" alt="ForgeJo logo"></td>
|
<td class="logo"><img class="logo" src="img/forgejo.svg" alt="ForgeJo logo"></td>
|
||||||
<td><a href="https://forge.rwx.work/marc.beninca">forge.rwx.work</a></td>
|
<td><a href="https://forge.rwx.work/marc.beninca">forge.rwx.work</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td colspan="3"><hr></td></tr>
|
<tr><td colspan="3"><hr></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>BlueSky</th>
|
<th scope="row">BlueSky</th>
|
||||||
<td class="logo"><img class="logo" src="img/bluesky.svg" alt="BlueSky logo"></td>
|
<td class="logo"><img class="logo" src="img/bluesky.svg" alt="BlueSky logo"></td>
|
||||||
<td><a href="https://bsky.app/profile/marc.beninca.link">marc.beninca.link</a></td>
|
<td><a href="https://bsky.app/profile/marc.beninca.link">marc.beninca.link</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td colspan="3"><hr></td></tr>
|
<tr><td colspan="3"><hr></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>LinkedIn</th>
|
<th scope="row">LinkedIn</th>
|
||||||
<td class="logo"><img class="logo" src="img/linkedin.svg" alt="LinkedIn logo"></td>
|
<td class="logo"><img class="logo" src="img/linkedin.svg" alt="LinkedIn logo"></td>
|
||||||
<td><a href="https://linkedin.com/in/marc-beninca">marc-beninca</a></td>
|
<td><a href="https://linkedin.com/in/marc-beninca">marc-beninca</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>YouTube</th>
|
<th scope="row">YouTube</th>
|
||||||
<td class="logo"><img class="logo" src="img/youtube.svg" alt="YouTube logo"></td>
|
<td class="logo"><img class="logo" src="img/youtube.svg" alt="YouTube logo"></td>
|
||||||
<td><a href="https://youtube.com/@marc.beninca">marc.beninca</a></td>
|
<td><a href="https://youtube.com/@marc.beninca">marc.beninca</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody></table>
|
||||||
</table>
|
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -195,13 +193,13 @@ France</p>
|
||||||
|
|
||||||
<table><tbody>
|
<table><tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>KeyOxide</th>
|
<th scope="row">KeyOxide</th>
|
||||||
<td class="logo"><img class="logo" src="img/keyoxide.svg" alt="KeyOxide logo"></td>
|
<td class="logo"><img class="logo" src="img/keyoxide.svg" alt="KeyOxide logo"></td>
|
||||||
<td><a href="https://keyoxide.org/aspe:keyoxide.org:WUD5YVN52J3RJ6CD4ZCWYL6S54">ASP</a>,
|
<td><a href="https://keyoxide.org/aspe:keyoxide.org:WUD5YVN52J3RJ6CD4ZCWYL6S54">ASP</a>,
|
||||||
<a href="https://keyoxide.org/08EDA7006234A0EB29A3A8471DBD5EC4BADA5579">OpenPGP</a></td>
|
<a href="https://keyoxide.org/08EDA7006234A0EB29A3A8471DBD5EC4BADA5579">OpenPGP</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>OpenPGP</th>
|
<th scope="row">OpenPGP</th>
|
||||||
<td class="logo"><img class="logo" src="img/openpgp.svg" alt="OpenPGP logo"></td>
|
<td class="logo"><img class="logo" src="img/openpgp.svg" alt="OpenPGP logo"></td>
|
||||||
<td><a href="https://keys.openpgp.org/search?q=08EDA7006234A0EB29A3A8471DBD5EC4BADA5579">keys.openpgp.org</a></td>
|
<td><a href="https://keys.openpgp.org/search?q=08EDA7006234A0EB29A3A8471DBD5EC4BADA5579">keys.openpgp.org</a></td>
|
||||||
</tr>
|
</tr>
|
|
@ -1,8 +1,24 @@
|
||||||
|
/* variables */
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
color-scheme: light dark;
|
--alpha: rgba(0, 0, 0, 0);
|
||||||
|
/* border */
|
||||||
|
--border-off: var(--border-width) none var(--alpha);
|
||||||
|
--border-on: var(--border-width) solid var(--border-color);
|
||||||
|
--border-width: .1rem;
|
||||||
|
/* margin */
|
||||||
--margin: .4rem;
|
--margin: .4rem;
|
||||||
}
|
/* theme */
|
||||||
:root {
|
color-scheme: light dark;
|
||||||
|
/* theme / gradients */
|
||||||
|
--anchor-gradient: linear-gradient(to top, var(--alpha), var(--anchor-background));
|
||||||
|
--banner-gradient: linear-gradient(to top, var(--alpha), var(--banner-background));
|
||||||
|
--body-gradient: linear-gradient(to top, var(--alpha), var(--body-background));
|
||||||
|
--header-gradient: linear-gradient(to top, var(--alpha), var(--header-background));
|
||||||
|
--item-even-gradient: linear-gradient(to top, var(--alpha), var(--item-even));
|
||||||
|
--item-odd-gradient: linear-gradient(to top, var(--alpha), var(--item-odd));
|
||||||
|
--org-gradient: linear-gradient(to top, var(--alpha), var(--org-background));
|
||||||
|
/* theme / light */
|
||||||
--anchor-background: #bbb;
|
--anchor-background: #bbb;
|
||||||
--anchor-text: #f00;
|
--anchor-text: #f00;
|
||||||
--banner-background: #ccf;
|
--banner-background: #ccf;
|
||||||
|
@ -19,6 +35,7 @@
|
||||||
}
|
}
|
||||||
@media screen {
|
@media screen {
|
||||||
[data-theme="dark"] {
|
[data-theme="dark"] {
|
||||||
|
/* theme / dark */
|
||||||
--anchor-background: #222;
|
--anchor-background: #222;
|
||||||
--anchor-text: #f88;
|
--anchor-text: #f88;
|
||||||
--banner-background: #558;
|
--banner-background: #558;
|
||||||
|
@ -34,19 +51,8 @@
|
||||||
--ruler-border: #444;
|
--ruler-border: #444;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
:root {
|
|
||||||
--alpha: rgba(0, 0, 0, 0);
|
/* main */
|
||||||
--border-width: .1rem;
|
|
||||||
--border-off: var(--border-width) none var(--alpha);
|
|
||||||
--border-on: var(--border-width) solid var(--border-color);
|
|
||||||
--anchor-gradient: linear-gradient(to top, var(--alpha), var(--anchor-background));
|
|
||||||
--banner-gradient: linear-gradient(to top, var(--alpha), var(--banner-background));
|
|
||||||
--body-gradient: linear-gradient(to top, var(--alpha), var(--body-background));
|
|
||||||
--header-gradient: linear-gradient(to top, var(--alpha), var(--header-background));
|
|
||||||
--item-even-gradient: linear-gradient(to top, var(--alpha), var(--item-even));
|
|
||||||
--item-odd-gradient: linear-gradient(to top, var(--alpha), var(--item-odd));
|
|
||||||
--org-gradient: linear-gradient(to top, var(--alpha), var(--org-background));
|
|
||||||
}
|
|
||||||
|
|
||||||
#theme {
|
#theme {
|
||||||
background-color: var(--button-background);
|
background-color: var(--button-background);
|
11
vcard.sh
|
@ -1,11 +0,0 @@
|
||||||
#! /usr/bin/env sh
|
|
||||||
|
|
||||||
cat "vcard.vcf" |
|
|
||||||
qrencode \
|
|
||||||
--background "00000000" \
|
|
||||||
--foreground "000000FF" \
|
|
||||||
--level "L" \
|
|
||||||
--margin "1" \
|
|
||||||
--size "4" \
|
|
||||||
-t "SVG" \
|
|
||||||
--output "img/vcard.svg"
|
|