helvetic-resume 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{_pages/en/docs.md → README.md} +90 -91
- metadata +4 -86
- data/LICENSE.txt +0 -21
- data/_data/ca.yaml +0 -46
- data/_data/common.yaml +0 -11
- data/_data/en.yaml +0 -46
- data/_data/es.yaml +0 -46
- data/_data/it.yaml +0 -46
- data/_includes/bar_graph.liquid +0 -17
- data/_includes/bluesky.liquid +0 -5
- data/_includes/dot-accent.liquid +0 -3
- data/_includes/dot.liquid +0 -3
- data/_includes/dribbble.liquid +0 -5
- data/_includes/email.liquid +0 -5
- data/_includes/footer.liquid +0 -38
- data/_includes/github.liquid +0 -4
- data/_includes/head.liquid +0 -28
- data/_includes/header.liquid +0 -23
- data/_includes/instagram.liquid +0 -18
- data/_includes/language-menu.liquid +0 -32
- data/_includes/linkedin.liquid +0 -8
- data/_includes/medium.liquid +0 -9
- data/_includes/post_block.liquid +0 -9
- data/_includes/previous-next.liquid +0 -22
- data/_includes/previous-next_has-categories.liquid +0 -41
- data/_includes/print-button.liquid +0 -4
- data/_includes/theme-toggle.liquid +0 -19
- data/_includes/twitter.liquid +0 -9
- data/_layouts/about.liquid +0 -42
- data/_layouts/category-post.liquid +0 -20
- data/_layouts/category_index.liquid +0 -13
- data/_layouts/default.liquid +0 -14
- data/_layouts/home.liquid +0 -96
- data/_layouts/page.liquid +0 -12
- data/_layouts/post.liquid +0 -20
- data/_layouts/redirect.liquid +0 -22
- data/_pages/404.md +0 -8
- data/_pages/ca/articles.md +0 -25
- data/_pages/ca/documentacio.md +0 -91
- data/_pages/ca/quant-a-mi.md +0 -60
- data/_pages/en/about-me.md +0 -59
- data/_pages/en/reports.md +0 -25
- data/_pages/es/articulos.md +0 -25
- data/_pages/es/documentacion.md +0 -93
- data/_pages/es/sobre-mi.md +0 -60
- data/_pages/it/articoli.md +0 -25
- data/_pages/it/chi-sono.md +0 -58
- data/_pages/it/documenti.md +0 -93
- data/_posts/ca/2024-05-15-el-gran-massimo-vignelli.md +0 -45
- data/_posts/ca/2024-10-14-creilles.md +0 -38
- data/_posts/ca/2025-02-06-exemple-markdown.md +0 -172
- data/_posts/ca/2025-03-02-benvinguts-a-jekyll.md +0 -60
- data/_posts/en/2024-05-15-the-great-massimo-vignelli.md +0 -45
- data/_posts/en/2024-10-14-potatoes.md +0 -38
- data/_posts/en/2025-02-06-markdown-sample.md +0 -174
- data/_posts/en/2025-03-02-welcome-to-jekyll.md +0 -59
- data/_posts/es/2024-05-15-es-el-gran-massimo-vignelli.md +0 -45
- data/_posts/es/2024-10-14-patatas.md +0 -38
- data/_posts/es/2025-02-06-ejemplo-markdown.md +0 -172
- data/_posts/es/2025-03-03-bienvenido-a-jekyll.md +0 -60
- data/_posts/it/2024-05-15-il-grande-massimo-vignelli.md +0 -45
- data/_posts/it/2024-10-14-patate.md +0 -38
- data/_posts/it/2025-02-06-esempio-markdown.md +0 -175
- data/_posts/it/2025-03-02-benvenuti-a-jekyll.md +0 -59
- data/_sass/_base.scss +0 -110
- data/_sass/_components.scss +0 -161
- data/_sass/_themes.scss +0 -196
- data/_sass/_utilities.scss +0 -700
- data/_sass/_variables.scss +0 -43
- data/assets/css/print.scss +0 -128
- data/assets/css/style.scss +0 -7
- data/assets/images/avatar.webp +0 -0
- data/assets/images/theme_black.png +0 -0
- data/assets/images/theme_blue.png +0 -0
- data/assets/images/theme_magenta.png +0 -0
- data/assets/images/theme_mint.png +0 -0
- data/assets/images/theme_orange.png +0 -0
- data/assets/images/theme_red.png +0 -0
- data/assets/images/theme_white.png +0 -0
- data/assets/images/theme_yellow.png +0 -0
- data/assets/js/print-button.js +0 -16
- data/assets/js/theme-toggle.js +0 -105
- data/scripts/entrypoint.sh +0 -35
- data/scripts/post-create.sh +0 -21
data/assets/css/print.scss
DELETED
@@ -1,128 +0,0 @@
|
|
1
|
-
---
|
2
|
-
---
|
3
|
-
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css") print;
|
4
|
-
|
5
|
-
@media print {
|
6
|
-
@page {
|
7
|
-
size: A4;
|
8
|
-
margin: 1.8cm;
|
9
|
-
margin-right: 1.5cm;
|
10
|
-
}
|
11
|
-
|
12
|
-
.job {
|
13
|
-
display: inline-block !important;
|
14
|
-
}
|
15
|
-
|
16
|
-
.contact-data, .links {
|
17
|
-
display: block !important;
|
18
|
-
}
|
19
|
-
|
20
|
-
.right-column {
|
21
|
-
margin-left: .5cm;
|
22
|
-
p {font-size: 10pt;}
|
23
|
-
}
|
24
|
-
|
25
|
-
.fa-solid, .print-only {
|
26
|
-
display: inline-block;
|
27
|
-
}
|
28
|
-
|
29
|
-
.fa-solid {
|
30
|
-
display: inline-block !important;
|
31
|
-
font-family: "Font Awesome 6 Free" !important;
|
32
|
-
-webkit-font-smoothing: antialiased;
|
33
|
-
font-weight: 900;
|
34
|
-
}
|
35
|
-
|
36
|
-
@font-face {
|
37
|
-
font-family: "Font Awesome 6 Free";
|
38
|
-
font-style: normal;
|
39
|
-
font-weight: 900;
|
40
|
-
font-display: block;
|
41
|
-
src: url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/webfonts/fa-solid-900.woff2") format("woff2");
|
42
|
-
}
|
43
|
-
|
44
|
-
.section {
|
45
|
-
margin-left: -.65cm;
|
46
|
-
}
|
47
|
-
|
48
|
-
body {
|
49
|
-
font-size: 10pt;
|
50
|
-
line-height: 1.3;
|
51
|
-
background: #fff !important;
|
52
|
-
color: #000 !important;
|
53
|
-
}
|
54
|
-
|
55
|
-
.text-color {
|
56
|
-
color: #000 !important;
|
57
|
-
fill: #000 !important;
|
58
|
-
}
|
59
|
-
|
60
|
-
// Hide non-essential elements
|
61
|
-
nav,
|
62
|
-
footer,
|
63
|
-
.theme-toggle,
|
64
|
-
.print-button,
|
65
|
-
.header-sticky,
|
66
|
-
.language-menu,
|
67
|
-
#divider {
|
68
|
-
display: none !important;
|
69
|
-
}
|
70
|
-
|
71
|
-
// Adjust article layout
|
72
|
-
article {
|
73
|
-
width: 100% !important;
|
74
|
-
margin: 0 !important;
|
75
|
-
padding: 0 !important;
|
76
|
-
}
|
77
|
-
|
78
|
-
// Headers styling
|
79
|
-
h1 {
|
80
|
-
font-size: 20pt !important;
|
81
|
-
padding: 0 !important;
|
82
|
-
margin: 0 !important;
|
83
|
-
}
|
84
|
-
|
85
|
-
h2 {
|
86
|
-
font-size: 14pt;
|
87
|
-
}
|
88
|
-
|
89
|
-
// Links handling
|
90
|
-
a {
|
91
|
-
color: var(--text-accent) !important;
|
92
|
-
text-decoration: none !important;
|
93
|
-
}
|
94
|
-
|
95
|
-
// List styling
|
96
|
-
ul, ol {
|
97
|
-
margin-left: 0;
|
98
|
-
padding-left: .7cm;
|
99
|
-
}
|
100
|
-
|
101
|
-
// Avoid page breaks inside important elements
|
102
|
-
li,
|
103
|
-
tr {
|
104
|
-
page-break-inside: avoid;
|
105
|
-
break-inside: avoid;
|
106
|
-
}
|
107
|
-
|
108
|
-
// Remove background colors and adjust text colors
|
109
|
-
.about {
|
110
|
-
display: flex !important;
|
111
|
-
.prose {
|
112
|
-
padding: .5cm 0 !important;
|
113
|
-
margin-left: .75cm;
|
114
|
-
width: 11.6cm !important;
|
115
|
-
}
|
116
|
-
.prose p, ul, ol {
|
117
|
-
font-size: 11pt;
|
118
|
-
}
|
119
|
-
background: none !important;
|
120
|
-
color: #000 !important;
|
121
|
-
}
|
122
|
-
|
123
|
-
// Adjust graphs if present
|
124
|
-
.graphs {
|
125
|
-
page-break-inside: avoid;
|
126
|
-
break-inside: avoid;
|
127
|
-
}
|
128
|
-
}
|
data/assets/css/style.scss
DELETED
data/assets/images/avatar.webp
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/assets/images/theme_red.png
DELETED
Binary file
|
Binary file
|
Binary file
|
data/assets/js/print-button.js
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
document.addEventListener('DOMContentLoaded', () => {
|
2
|
-
const printButton = document.querySelector('.print-button');
|
3
|
-
if (printButton) {
|
4
|
-
printButton.addEventListener('click', async (e) => {
|
5
|
-
e.preventDefault();
|
6
|
-
|
7
|
-
// Ensure Font Awesome is loaded
|
8
|
-
try {
|
9
|
-
await document.fonts.load('900 1em "Font Awesome 6 Free"');
|
10
|
-
} catch (e) {
|
11
|
-
console.warn('Font loading failed, printing anyway:', e);
|
12
|
-
}
|
13
|
-
window.print();
|
14
|
-
});
|
15
|
-
}
|
16
|
-
});
|
data/assets/js/theme-toggle.js
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
(function () {
|
2
|
-
const THEME_MAP = {
|
3
|
-
dark: ["black", "mint", "blue", "orange"],
|
4
|
-
light: ["white", "red", "yellow", "magenta"],
|
5
|
-
};
|
6
|
-
|
7
|
-
const TRANSLATIONS = {
|
8
|
-
'en': {
|
9
|
-
dark: 'Dark Mode',
|
10
|
-
light: 'Light Mode'
|
11
|
-
},
|
12
|
-
'ca': {
|
13
|
-
dark: 'Mode fosc',
|
14
|
-
light: 'Mode clar'
|
15
|
-
},
|
16
|
-
'es': {
|
17
|
-
dark: 'Modo oscuro',
|
18
|
-
light: 'Modo claro'
|
19
|
-
},
|
20
|
-
'it': {
|
21
|
-
dark: 'Modo scuro',
|
22
|
-
light: 'Modo chiaro'
|
23
|
-
}
|
24
|
-
};
|
25
|
-
|
26
|
-
function getRandomTheme(mode) {
|
27
|
-
const themes = THEME_MAP[mode];
|
28
|
-
const randomIndex = Math.floor(Math.random() * themes.length);
|
29
|
-
return themes[randomIndex];
|
30
|
-
}
|
31
|
-
|
32
|
-
|
33
|
-
function getLocalizedText(mode) {
|
34
|
-
const lang = document.documentElement.lang || 'en';
|
35
|
-
const translations = TRANSLATIONS[lang] || TRANSLATIONS['en'];
|
36
|
-
return translations[mode];
|
37
|
-
}
|
38
|
-
|
39
|
-
function setTheme(preference, specificTheme = null) {
|
40
|
-
if (!document.body) return;
|
41
|
-
|
42
|
-
// Use stored specific theme or get random one
|
43
|
-
const themeName = specificTheme || getRandomTheme(preference);
|
44
|
-
|
45
|
-
// Remove all possible theme classes
|
46
|
-
Object.values(THEME_MAP)
|
47
|
-
.flat()
|
48
|
-
.forEach((theme) => {
|
49
|
-
document.body.classList.remove(`theme-${theme}`);
|
50
|
-
});
|
51
|
-
|
52
|
-
// Add new theme class
|
53
|
-
document.body.classList.add(`theme-${themeName}`);
|
54
|
-
|
55
|
-
// Update HTML attribute for the sun/moon animation
|
56
|
-
document.firstElementChild.setAttribute("data-theme", preference);
|
57
|
-
|
58
|
-
// Update button aria-label
|
59
|
-
const toggle = document.querySelector("#theme-toggle");
|
60
|
-
if (toggle) {
|
61
|
-
toggle.setAttribute("aria-label", preference);
|
62
|
-
const nextMode = preference === 'dark' ? 'light' : 'dark';
|
63
|
-
toggle.setAttribute("title", getLocalizedText(nextMode));
|
64
|
-
}
|
65
|
-
|
66
|
-
// Save both preference and specific theme
|
67
|
-
localStorage.setItem("theme-preference", preference);
|
68
|
-
localStorage.setItem("specific-theme", themeName);
|
69
|
-
}
|
70
|
-
|
71
|
-
function initializeTheme() {
|
72
|
-
// Get saved preferences
|
73
|
-
const savedPreference = localStorage.getItem("theme-preference");
|
74
|
-
const savedSpecificTheme = localStorage.getItem("specific-theme");
|
75
|
-
const systemPreference = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
76
|
-
const initialTheme = savedPreference || systemPreference;
|
77
|
-
|
78
|
-
// Initialize with saved specific theme
|
79
|
-
setTheme(initialTheme, savedSpecificTheme);
|
80
|
-
|
81
|
-
// Add click handler
|
82
|
-
const toggle = document.querySelector("#theme-toggle");
|
83
|
-
if (toggle) {
|
84
|
-
toggle.addEventListener("click", () => {
|
85
|
-
const current = localStorage.getItem("theme-preference") || initialTheme;
|
86
|
-
const newPreference = current === "dark" ? "light" : "dark";
|
87
|
-
// Only get random theme on click
|
88
|
-
setTheme(newPreference);
|
89
|
-
});
|
90
|
-
}
|
91
|
-
}
|
92
|
-
|
93
|
-
// Initialize when DOM is ready
|
94
|
-
if (document.readyState === "loading") {
|
95
|
-
document.addEventListener("DOMContentLoaded", initializeTheme);
|
96
|
-
} else {
|
97
|
-
initializeTheme();
|
98
|
-
}
|
99
|
-
|
100
|
-
// Sync with system changes
|
101
|
-
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", ({ matches: isDark }) => {
|
102
|
-
const savedSpecificTheme = localStorage.getItem("specific-theme");
|
103
|
-
setTheme(isDark ? "dark" : "light", savedSpecificTheme);
|
104
|
-
});
|
105
|
-
})();
|
data/scripts/entrypoint.sh
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
set -euo pipefail
|
3
|
-
echo "Entrypoint script running"
|
4
|
-
cd src
|
5
|
-
CONFIG_FILE=_config.yml
|
6
|
-
|
7
|
-
manage_gemfile_lock() {
|
8
|
-
git config --global --add safe.directory '*'
|
9
|
-
if command -v git &> /dev/null && [ -f Gemfile.lock ]; then
|
10
|
-
if git ls-files --error-unmatch Gemfile.lock &> /dev/null; then
|
11
|
-
echo "Gemfile.lock is tracked by git, keeping it intact"
|
12
|
-
git restore Gemfile.lock 2>/dev/null || true
|
13
|
-
else
|
14
|
-
echo "Gemfile.lock is not tracked by git, removing it"
|
15
|
-
rm Gemfile.lock
|
16
|
-
fi
|
17
|
-
fi
|
18
|
-
}
|
19
|
-
|
20
|
-
start_jekyll() {
|
21
|
-
manage_gemfile_lock
|
22
|
-
bundle exec jekyll serve --force_polling --livereload-port 35737 &
|
23
|
-
}
|
24
|
-
|
25
|
-
start_jekyll
|
26
|
-
|
27
|
-
while true; do
|
28
|
-
inotifywait -q -e modify,move,create,delete $CONFIG_FILE
|
29
|
-
if [ $? -eq 0 ]; then
|
30
|
-
echo "Change detected to $CONFIG_FILE, restarting Jekyll"
|
31
|
-
jekyll_pid=$(pgrep -f jekyll)
|
32
|
-
kill -KILL $jekyll_pid
|
33
|
-
start_jekyll
|
34
|
-
fi
|
35
|
-
done
|
data/scripts/post-create.sh
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
# Install node deps defaulting to yarn
|
3
|
-
if [ -f package.json ]; then
|
4
|
-
if [ -f package-lock.json ]; then
|
5
|
-
npm -i
|
6
|
-
fi
|
7
|
-
yarn
|
8
|
-
fi
|
9
|
-
|
10
|
-
cd src
|
11
|
-
|
12
|
-
if [ -f Gemfile.lock ] && grep "BUNDLED WITH" Gemfile.lock > /dev/null; then
|
13
|
-
cat Gemfile.lock | tail -n 2 | grep -C2 "BUNDLED WITH" | tail -n 1 | xargs gem install bundler -v
|
14
|
-
fi
|
15
|
-
|
16
|
-
# If there's a Gemfile, then run `bundle install`
|
17
|
-
# It's assumed that the Gemfile will install Jekyll too
|
18
|
-
if [ -f Gemfile ]; then
|
19
|
-
bundle install
|
20
|
-
fi
|
21
|
-
|